~cloudbuilders/nova/os-keypair-integration

« back to all changes in this revision

Viewing changes to nova/volume/api.py

  • Committer: Vishvananda Ishaya
  • Date: 2011-08-31 18:51:19 UTC
  • mfrom: (1455.1.56 nova)
  • Revision ID: vishvananda@gmail.com-20110831185119-04pppkh6iv7v6p6i
merged trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
132
132
                for i in volume.get('volume_metadata'):
133
133
                    volume_metadata[i['key']] = i['value']
134
134
 
135
 
                for k, v in searchdict:
 
135
                for k, v in searchdict.iteritems():
136
136
                    if k not in volume_metadata.keys()\
137
137
                       or volume_metadata[k] != v:
138
138
                        return False
141
141
            # search_option to filter_name mapping.
142
142
            filter_mapping = {'metadata': _check_metadata_match}
143
143
 
 
144
            result = []
144
145
            for volume in volumes:
145
146
                # go over all filters in the list
146
147
                for opt, values in search_opts.iteritems():
150
151
                        # no such filter - ignore it, go to next filter
151
152
                        continue
152
153
                    else:
153
 
                        if filter_func(volume, values) == False:
154
 
                            # if one of conditions didn't match - remove
155
 
                            volumes.remove(volume)
 
154
                        if filter_func(volume, values):
 
155
                            result.append(volume)
156
156
                            break
 
157
            volumes = result
157
158
        return volumes
158
159
 
159
160
    def get_snapshot(self, context, snapshot_id):
255
256
 
256
257
        self.db.volume_metadata_update(context, volume_id, _metadata, True)
257
258
        return _metadata
 
259
 
 
260
    def get_volume_metadata_value(self, volume, key):
 
261
        """Get value of particular metadata key."""
 
262
        metadata = volume.get('volume_metadata')
 
263
        if metadata:
 
264
            for i in volume['volume_metadata']:
 
265
                if i['key'] == key:
 
266
                    return i['value']
 
267
        return None