summaryrefslogtreecommitdiff
path: root/trove/configuration
diff options
context:
space:
mode:
authorTheron Voran <theron.voran@rackspace.com>2014-06-10 13:46:35 -0500
committerTheron Voran <theron.voran@rackspace.com>2014-06-27 10:34:43 -0500
commit9df5bb4f2a250f608d5ea0be7e426f764eb7b98e (patch)
treed2e0780be438c5149933fd71b9f7dea0ef6d402b /trove/configuration
parent36d39c947483c1d684d023e41bb458d2d2df8efb (diff)
downloadtrove-9df5bb4f2a250f608d5ea0be7e426f764eb7b98e.tar.gz
Add timestamps and instance count to config groups
This commit adds created and updated timestamps to the configuration groups list and details calls. It also adds instance_count to the configuration details call. Timestamps on configuration groups can serve as a secondary indicator for making config edits, as well as a potential time marker for correlating when detrimental config changes were made. It will also help to see how many instances use a particular config and users will be able to see up front how many instances the config changes will affect. Note that instance_count is generated on the fly and not stored in the config db, hence the getattr() usage. Change-Id: I0138a28e9fb4c0c045a1a26df3f8a282d80a7274 Implements: blueprint minor-config-edits Docimpact: change to configuration payloads
Diffstat (limited to 'trove/configuration')
-rw-r--r--trove/configuration/models.py2
-rw-r--r--trove/configuration/service.py5
-rw-r--r--trove/configuration/views.py5
3 files changed, 11 insertions, 1 deletions
diff --git a/trove/configuration/models.py b/trove/configuration/models.py
index eefd11ab..7f91469c 100644
--- a/trove/configuration/models.py
+++ b/trove/configuration/models.py
@@ -196,7 +196,7 @@ class Configuration(object):
class DBConfiguration(dbmodels.DatabaseModelBase):
_data_fields = ['name', 'description', 'tenant_id', 'datastore_version_id',
- 'deleted', 'deleted_at']
+ 'deleted', 'deleted_at', 'created', 'updated']
class ConfigurationParameter(dbmodels.DatabaseModelBase):
diff --git a/trove/configuration/service.py b/trove/configuration/service.py
index 397d1cc3..1a3ae033 100644
--- a/trove/configuration/service.py
+++ b/trove/configuration/service.py
@@ -50,6 +50,11 @@ class ConfigurationsController(wsgi.Controller):
configuration = models.Configuration.load(context, id)
configuration_items = models.Configuration.load_items(context, id)
+ configuration.instance_count = instances_models.DBInstance.find_all(
+ tenant_id=context.tenant,
+ configuration_id=configuration.id,
+ deleted=False).count()
+
return wsgi.Result(views.DetailedConfigurationView(
configuration,
configuration_items).data(), 200)
diff --git a/trove/configuration/views.py b/trove/configuration/views.py
index d410b51e..37b1308c 100644
--- a/trove/configuration/views.py
+++ b/trove/configuration/views.py
@@ -29,6 +29,8 @@ class ConfigurationView(object):
"name": self.configuration.name,
"description": self.configuration.description,
"datastore_version_id": self.configuration.datastore_version_id,
+ "created": self.configuration.created,
+ "updated": self.configuration.updated
}
return {"configuration": configuration_dict}
@@ -93,6 +95,9 @@ class DetailedConfigurationView(object):
"description": self.configuration.description,
"values": values,
"datastore_version_id": self.configuration.datastore_version_id,
+ "created": self.configuration.created,
+ "updated": self.configuration.updated,
+ "instance_count": getattr(self.configuration, "instance_count", 0)
}
return {"configuration": configuration_dict}