diff --git a/ceilometermiddleware/swift.py b/ceilometermiddleware/swift.py index 9d09c1a..564e1cf 100644 --- a/ceilometermiddleware/swift.py +++ b/ceilometermiddleware/swift.py @@ -216,7 +216,7 @@ class Swift(object): # build object store details target = cadf_resource.Resource( typeURI='service/storage/object', - id=account.partition(self.reseller_prefix)[2]) + id=account.partition(self.reseller_prefix)[2] or path) target.metadata = resource_metadata target.action = method.lower() diff --git a/ceilometermiddleware/tests/test_swift.py b/ceilometermiddleware/tests/test_swift.py index 4df627d..115b45a 100644 --- a/ceilometermiddleware/tests/test_swift.py +++ b/ceilometermiddleware/tests/test_swift.py @@ -317,7 +317,7 @@ class TestSwift(tests_base.TestCase): data = notify.call_args_list[0][0] self.assertEqual("account", data[2]['target']['id']) - def test_invalid_reseller_prefix(self): + def test_incomplete_reseller_prefix(self): # Custom reseller prefix set, but without trailing underscore app = swift.Swift( FakeApp(), {'reseller_prefix': 'CUSTOM'}) @@ -329,6 +329,17 @@ class TestSwift(tests_base.TestCase): data = notify.call_args_list[0][0] self.assertEqual("account", data[2]['target']['id']) + def test_invalid_reseller_prefix(self): + app = swift.Swift( + FakeApp(), {'reseller_prefix': 'AUTH_'}) + req = FakeRequest('/1.0/admin/bucket', + environ={'REQUEST_METHOD': 'GET'}) + with mock.patch('oslo_messaging.Notifier.info') as notify: + list(app(req.environ, self.start_response)) + self.assertEqual(1, len(notify.call_args_list)) + data = notify.call_args_list[0][0] + self.assertEqual("1.0/admin/bucket", data[2]['target']['id']) + def test_ignore_requests_from_project(self): app = swift.Swift(FakeApp(), {'ignore_projects': 'skip_proj'})