~jcsackett/charmworld/bac-tag-constraints

« back to all changes in this revision

Viewing changes to charmworld/models.py

[r=benji][bug=][author=abentley] Prerequisite changes for versioning.

Show diffs side-by-side

added added

removed removed

Lines of Context:
188
188
            setattr(self, key, val)
189
189
 
190
190
 
191
 
def construct_charm_id(charm_data):
192
 
    return '~%s/%s/%s/%d' % (
193
 
        charm_data['owner'], charm_data['series'], charm_data['name'],
194
 
        charm_data['store_data']['revision'])
 
191
def construct_charm_id(charm_data, use_revision=True):
 
192
    elements = [charm_data['owner'], charm_data['series'], charm_data['name']]
 
193
    if use_revision:
 
194
        elements.append('%d' % charm_data['store_data']['revision'])
 
195
    return '~' + '/'.join(elements)
195
196
 
196
197
 
197
198
class Charm:
1135
1136
        try:
1136
1137
            self.index_client.index_charm(charm)
1137
1138
        except:
1138
 
            self.index_client.delete_charm(charm['_id'])
 
1139
            self.index_client.delete_charm(charm)
1139
1140
            raise
1140
1141
 
1141
1142
    def get_store_charms(self):
1248
1249
        if spec is None:
1249
1250
            spec = {}
1250
1251
        spec['promulgated'] = True
1251
 
    return collection.find(
 
1252
    return list(collection.find(
1252
1253
        spec, fields, skip, limit, timeout, snapshot, tailable, sort,
1253
 
        max_scan, as_class, **kwargs)
 
1254
        max_scan, as_class, **kwargs))
1254
1255
 
1255
1256
 
1256
1257
def sync_index():