~ntt-pf-lab/nova/openstack-qa-nova-876120

« back to all changes in this revision

Viewing changes to nova/compute/api.py

Instance metadata now functionally works (completely to spec) through OSAPI

Show diffs side-by-side

added added

removed removed

Lines of Context:
1214
1214
        """Delete the given metadata item from an instance."""
1215
1215
        self.db.instance_metadata_delete(context, instance_id, key)
1216
1216
 
1217
 
    def update_or_create_instance_metadata(self, context, instance_id,
1218
 
                                            metadata):
1219
 
        """Updates or creates instance metadata."""
1220
 
        combined_metadata = self.get_instance_metadata(context, instance_id)
1221
 
        combined_metadata.update(metadata)
1222
 
        self._check_metadata_properties_quota(context, combined_metadata)
1223
 
        self.db.instance_metadata_update_or_create(context, instance_id,
1224
 
                                                    metadata)
 
1217
    def update_instance_metadata(self, context, instance_id,
 
1218
                                 metadata, delete=False):
 
1219
        """Updates or creates instance metadata.
 
1220
 
 
1221
        If delete is True, metadata items that are not specified in the
 
1222
        `metadata` argument will be deleted.
 
1223
 
 
1224
        """
 
1225
        if delete:
 
1226
            _metadata = metadata
 
1227
        else:
 
1228
            _metadata = self.get_instance_metadata(context, instance_id)
 
1229
            _metadata.update(metadata)
 
1230
 
 
1231
        self._check_metadata_properties_quota(context, _metadata)
 
1232
        self.db.instance_metadata_update(context, instance_id, _metadata, True)
 
1233
        return _metadata