Creates better exceptions for http code 409
Depends-On: I0cdfae8f784a16fd05634cc2559429ea78c50424 Change-Id: I9f130635fec545a54100c1d94dd6028930f5fe71
This commit is contained in:
parent
63e56b6990
commit
641fd184b2
|
@ -114,6 +114,26 @@ class Conflict(ClientException):
|
|||
message = "Conflict"
|
||||
|
||||
|
||||
class NamedMetricAreadyExists(Conflict, MutipleMeaningException):
|
||||
message = "Named metric already exists"
|
||||
match = re.compile("Named metric .* does not exist")
|
||||
|
||||
|
||||
class ResourceAlreadyExists(Conflict, MutipleMeaningException):
|
||||
message = "Resource already exists"
|
||||
match = re.compile("Resource .* already exists")
|
||||
|
||||
|
||||
class ArchivePolicyAlreadyExists(Conflict, MutipleMeaningException):
|
||||
message = "Archive policy already exists"
|
||||
match = re.compile("Archive policy .* already exists")
|
||||
|
||||
|
||||
class ArchivePolicyRuleAlreadyExists(Conflict, MutipleMeaningException):
|
||||
message = "Archive policy rule already exists"
|
||||
match = re.compile("Archive policy Rule .* already exists")
|
||||
|
||||
|
||||
class OverLimit(RetryAfterException):
|
||||
"""HTTP 413 - Over limit:
|
||||
|
||||
|
@ -147,6 +167,9 @@ _error_classes = [BadRequest, Unauthorized, Forbidden, NotFound,
|
|||
_error_classes_enhanced = {
|
||||
NotFound: [MetricNotFound, ResourceNotFound, ArchivePolicyNotFound,
|
||||
ArchivePolicyRuleNotFound],
|
||||
Conflict: [NamedMetricAreadyExists, ResourceAlreadyExists,
|
||||
ArchivePolicyAlreadyExists,
|
||||
ArchivePolicyRuleAlreadyExists]
|
||||
}
|
||||
_code_map = dict(
|
||||
(c.http_status, (c, _error_classes_enhanced.get(c, [])))
|
||||
|
|
|
@ -23,6 +23,16 @@ class ArchivePolicyClientTest(base.ClientTestBase):
|
|||
policy = self.details_multiple(result)[0]
|
||||
self.assertEqual('low', policy["name"])
|
||||
|
||||
# CREATE FAIL
|
||||
result = self.gnocchi(
|
||||
u'archive-policy', params=u"create low"
|
||||
u" --back-window 0"
|
||||
u" -d granularity:1s,points:86400",
|
||||
fail_ok=True, merge_stderr=True)
|
||||
self.assertFirstLineStartsWith(
|
||||
result.split('\n'),
|
||||
"Archive policy low already exists (HTTP 409)")
|
||||
|
||||
# GET
|
||||
result = self.gnocchi(
|
||||
'archive-policy', params="show low")
|
||||
|
|
|
@ -23,6 +23,15 @@ class ArchivePolicyRuleClientTest(base.ClientTestBase):
|
|||
policy_rule = self.details_multiple(result)[0]
|
||||
self.assertEqual('test', policy_rule["name"])
|
||||
|
||||
# CREATE FAIL
|
||||
result = self.gnocchi(
|
||||
u'archive-policy-rule', params=u"create test"
|
||||
u" --archive-policy high"
|
||||
u" --metric-pattern 'disk.io.*'",
|
||||
fail_ok=True, merge_stderr=True)
|
||||
self.assertFirstLineStartsWith(
|
||||
result.split('\n'),
|
||||
"Archive policy rule test already exists (HTTP 409)")
|
||||
# GET
|
||||
result = self.gnocchi(
|
||||
'archive-policy-rule', params="show test")
|
||||
|
|
|
@ -170,6 +170,15 @@ class MetricClientTest(base.ClientTestBase):
|
|||
self.assertNotEqual('None', metric["resource"])
|
||||
self.assertIn("metric-test", metric["archive_policy/name"])
|
||||
|
||||
# CREATE FAIL
|
||||
result = self.gnocchi(
|
||||
u'metric', params=u"create"
|
||||
u" --archive-policy-name metric-test2 -r metric-res metric-name",
|
||||
fail_ok=True, merge_stderr=True)
|
||||
self.assertFirstLineStartsWith(
|
||||
result.split('\n'),
|
||||
"Named metric metric-name already exists (HTTP 409)")
|
||||
|
||||
# GET
|
||||
result = self.gnocchi('metric',
|
||||
params="show -r metric-res metric-name")
|
||||
|
|
|
@ -31,6 +31,15 @@ class ResourceClientTest(base.ClientTestBase):
|
|||
self.assertEqual('None', resource["project_id"])
|
||||
self.assertNotEqual('None', resource["started_at"])
|
||||
|
||||
# CREATE FAIL
|
||||
result = self.gnocchi('resource',
|
||||
params="create generic -a id:%s" %
|
||||
self.RESOURCE_ID,
|
||||
fail_ok=True, merge_stderr=True)
|
||||
self.assertFirstLineStartsWith(
|
||||
result.split('\n'),
|
||||
"Resource %s already exists (HTTP 409)" % self.RESOURCE_ID)
|
||||
|
||||
# UPDATE
|
||||
result = self.gnocchi(
|
||||
'resource', params=("update -t generic %s -a project_id:%s "
|
||||
|
|
Loading…
Reference in New Issue