diff options
author | Theron Voran <theron.voran@rackspace.com> | 2014-06-10 13:46:35 -0500 |
---|---|---|
committer | Theron Voran <theron.voran@rackspace.com> | 2014-06-27 10:34:43 -0500 |
commit | 9df5bb4f2a250f608d5ea0be7e426f764eb7b98e (patch) | |
tree | d2e0780be438c5149933fd71b9f7dea0ef6d402b /trove/configuration | |
parent | 36d39c947483c1d684d023e41bb458d2d2df8efb (diff) | |
download | trove-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.py | 2 | ||||
-rw-r--r-- | trove/configuration/service.py | 5 | ||||
-rw-r--r-- | trove/configuration/views.py | 5 |
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} |