gnocchi: Don't fail if archive policy exists

Change-Id: I19abcd590fee728ee1ccd6cd0454505a2d503bd8
This commit is contained in:
Mehdi Abaakouk 2018-09-18 10:28:43 +02:00
parent 04d7d0a9c4
commit 0b66f310ae
2 changed files with 21 additions and 6 deletions

View File

@ -272,9 +272,10 @@ class GnocchiPublisher(publisher.ConfigPublisherBase):
if not self._already_configured_archive_policies:
for ap in self.archive_policies_definition:
try:
self._gnocchi.archive_policy.get(ap["name"])
except gnocchi_exc.ArchivePolicyNotFound:
self._gnocchi.archive_policy.create(ap)
except gnocchi_exc.ArchivePolicyAlreadyExists:
# created in the meantime by another worker
pass
self._already_configured_archive_policies = True
@property

View File

@ -532,10 +532,24 @@ class PublisherWorkflowTest(base.BaseTestCase,
gnocchi_id = uuid.uuid4()
expected_calls = [
mock.call.archive_policy.get("ceilometer-low"),
mock.call.archive_policy.get("ceilometer-low-rate"),
mock.call.archive_policy.get("ceilometer-high"),
mock.call.archive_policy.get("ceilometer-high-rate"),
mock.call.archive_policy.create({"name": "ceilometer-low",
"back_window": 0,
"aggregation_methods": ["mean"],
"definition": mock.ANY}),
mock.call.archive_policy.create({"name": "ceilometer-low-rate",
"back_window": 0,
"aggregation_methods": [
"mean", "rate:mean"],
"definition": mock.ANY}),
mock.call.archive_policy.create({"name": "ceilometer-high",
"back_window": 0,
"aggregation_methods": ["mean"],
"definition": mock.ANY}),
mock.call.archive_policy.create({"name": "ceilometer-high-rate",
"back_window": 0,
"aggregation_methods": [
"mean", "rate:mean"],
"definition": mock.ANY}),
mock.call.metric.batch_resources_metrics_measures(
{resource_id: {metric_name: self.metric_attributes}},
create_metrics=True)