diff options
| author | Brian Waldon <brian.waldon@rackspace.com> | 2011-08-08 16:38:14 -0400 |
|---|---|---|
| committer | Brian Waldon <brian.waldon@rackspace.com> | 2011-08-08 16:38:14 -0400 |
| commit | 61cf3721ce94d7f2458e4e469cbee3333f954588 (patch) | |
| tree | 378e9f184ce5150e9fbe5041c535a0b00bde210e /nova/compute | |
| parent | 047f6e0351c21ff2caff903731e61f10ac38e59d (diff) | |
cleaning up instance metadata api code
Diffstat (limited to 'nova/compute')
| -rw-r--r-- | nova/compute/api.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py index d2c08678b..646290e57 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -1175,11 +1175,20 @@ class API(base.Base): """Delete the given metadata item from an instance.""" self.db.instance_metadata_delete(context, instance_id, key) - def update_or_create_instance_metadata(self, context, instance_id, - metadata): - """Updates or creates instance metadata.""" - combined_metadata = self.get_instance_metadata(context, instance_id) - combined_metadata.update(metadata) - self._check_metadata_properties_quota(context, combined_metadata) - self.db.instance_metadata_update_or_create(context, instance_id, - metadata) + def update_instance_metadata(self, context, instance_id, + metadata, delete=False): + """Updates or creates instance metadata. + + If delete is True, metadata items that are not specified in the + `metadata` argument will be deleted. + + """ + if not delete: + _metadata = self.get_instance_metadata(context, instance_id) + _metadata.update(metadata) + else: + _metadata = metadata + + self._check_metadata_properties_quota(context, _metadata) + + self.db.instance_metadata_update(context, instance_id, _metadata, True) |
