예제 #1
0
    def _from_db_object(context, consistencygroup, db_consistencygroup,
                        expected_attrs=None):
        if expected_attrs is None:
            expected_attrs = []
        for name, field in consistencygroup.fields.items():
            if name in OPTIONAL_FIELDS:
                continue
            value = db_consistencygroup.get(name)
            setattr(consistencygroup, name, value)

        if 'cgsnapshots' in expected_attrs:
            cgsnapshots = base.obj_make_list(
                context, objects.CGSnapshotsList(context),
                objects.CGSnapshot,
                db_consistencygroup['cgsnapshots'])
            consistencygroup.cgsnapshots = cgsnapshots

        if 'volumes' in expected_attrs:
            volumes = base.obj_make_list(
                context, objects.VolumeList(context),
                objects.Volume,
                db_consistencygroup['volumes'])
            consistencygroup.cgsnapshots = volumes

        consistencygroup._context = context
        consistencygroup.obj_reset_changes()
        return consistencygroup
예제 #2
0
    def _from_db_object(context,
                        consistencygroup,
                        db_consistencygroup,
                        expected_attrs=None):
        if expected_attrs is None:
            expected_attrs = []
        for name, field in consistencygroup.fields.items():
            if name in OPTIONAL_FIELDS:
                continue
            value = db_consistencygroup.get(name)
            setattr(consistencygroup, name, value)

        if 'cgsnapshots' in expected_attrs:
            cgsnapshots = base.obj_make_list(
                context, objects.CGSnapshotsList(context), objects.CGSnapshot,
                db_consistencygroup['cgsnapshots'])
            consistencygroup.cgsnapshots = cgsnapshots

        if 'volumes' in expected_attrs:
            volumes = base.obj_make_list(context, objects.VolumeList(context),
                                         objects.Volume,
                                         db_consistencygroup['volumes'])
            consistencygroup.cgsnapshots = volumes

        consistencygroup._context = context
        consistencygroup.obj_reset_changes()
        return consistencygroup
예제 #3
0
파일: volume.py 프로젝트: HybridF5/jacket
    def _from_db_object(context, volume, db_volume, expected_attrs=None):
        if expected_attrs is None:
            expected_attrs = []
        for name, field in volume.fields.items():
            if name in Volume.OPTIONAL_FIELDS:
                continue
            value = db_volume.get(name)
            if isinstance(field, fields.IntegerField):
                value = value or 0
            volume[name] = value

        # Get data from db_volume object that was queried by joined query
        # from DB
        if 'metadata' in expected_attrs:
            metadata = db_volume.get('volume_metadata', [])
            volume.metadata = {item['key']: item['value'] for item in metadata}
        if 'admin_metadata' in expected_attrs:
            metadata = db_volume.get('volume_admin_metadata', [])
            volume.admin_metadata = {item['key']: item['value']
                                     for item in metadata}
        if 'glance_metadata' in expected_attrs:
            metadata = db_volume.get('volume_glance_metadata', [])
            volume.glance_metadata = {item['key']: item['value']
                                      for item in metadata}
        if 'volume_type' in expected_attrs:
            db_volume_type = db_volume.get('volume_type')
            if db_volume_type:
                vt_expected_attrs = []
                if 'volume_type.extra_specs' in expected_attrs:
                    vt_expected_attrs.append('extra_specs')
                volume.volume_type = objects.VolumeType._from_db_object(
                    context, objects.VolumeType(), db_volume_type,
                    expected_attrs=vt_expected_attrs)
        if 'volume_attachment' in expected_attrs:
            attachments = base.obj_make_list(
                context, objects.VolumeAttachmentList(context),
                objects.VolumeAttachment,
                db_volume.get('volume_attachment'))
            volume.volume_attachment = attachments
        if 'consistencygroup' in expected_attrs:
            consistencygroup = objects.ConsistencyGroup(context)
            consistencygroup._from_db_object(context,
                                             consistencygroup,
                                             db_volume['consistencygroup'])
            volume.consistencygroup = consistencygroup
        if 'snapshots' in expected_attrs:
            snapshots = base.obj_make_list(
                context, objects.SnapshotList(context),
                objects.Snapshot,
                db_volume['snapshots'])
            volume.snapshots = snapshots

        volume._context = context
        volume.obj_reset_changes()
        return volume
예제 #4
0
파일: snapshot.py 프로젝트: HybridF5/jacket
 def get_all(cls, context, search_opts, marker=None, limit=None,
             sort_keys=None, sort_dirs=None, offset=None):
     snapshots = db.snapshot_get_all(context, search_opts, marker, limit,
                                     sort_keys, sort_dirs, offset)
     expected_attrs = Snapshot._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context), objects.Snapshot,
                               snapshots, expected_attrs=expected_attrs)
예제 #5
0
 def get_by_host(cls, context, host, filters=None):
     snapshots = db.snapshot_get_by_host(context, host, filters)
     expected_attrs = Snapshot._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Snapshot,
                               snapshots,
                               expected_attrs=expected_attrs)
예제 #6
0
 def get_active_by_window(cls, context, begin, end):
     snapshots = db.snapshot_get_active_by_window(context, begin, end)
     expected_attrs = Snapshot._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Snapshot,
                               snapshots,
                               expected_attrs=expected_attrs)
예제 #7
0
 def get_all_for_cgsnapshot(cls, context, cgsnapshot_id):
     snapshots = db.snapshot_get_all_for_cgsnapshot(context, cgsnapshot_id)
     expected_attrs = Snapshot._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Snapshot,
                               snapshots,
                               expected_attrs=expected_attrs)
예제 #8
0
파일: backup.py 프로젝트: HybridF5/jacket
 def get_all_by_project(cls, context, project_id, filters=None,
                        marker=None, limit=None, offset=None,
                        sort_keys=None, sort_dirs=None):
     backups = db.backup_get_all_by_project(context, project_id, filters,
                                            marker, limit, offset,
                                            sort_keys, sort_dirs)
     return base.obj_make_list(context, cls(context), objects.Backup,
                               backups)
예제 #9
0
 def get_all(cls, context, filters=None, marker=None, limit=None,
             offset=None, sort_keys=None, sort_dirs=None):
     consistencygroups = db.consistencygroup_get_all(
         context, filters=filters, marker=marker, limit=limit,
         offset=offset, sort_keys=sort_keys, sort_dirs=sort_dirs)
     return base.obj_make_list(context, cls(context),
                               objects.ConsistencyGroup,
                               consistencygroups)
예제 #10
0
파일: volume.py 프로젝트: HybridF5/jacket
 def get_all(cls, context, marker, limit, sort_keys=None, sort_dirs=None,
             filters=None, offset=None):
     volumes = db.volume_get_all(context, marker, limit,
                                 sort_keys=sort_keys, sort_dirs=sort_dirs,
                                 filters=filters, offset=offset)
     expected_attrs = cls._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context), objects.Volume,
                               volumes, expected_attrs=expected_attrs)
예제 #11
0
 def get_all(cls, context, inactive=0, filters=None, marker=None,
             limit=None, sort_keys=None, sort_dirs=None, offset=None):
     types = volume_types.get_all_types(context, inactive, filters,
                                        marker=marker, limit=limit,
                                        sort_keys=sort_keys,
                                        sort_dirs=sort_dirs, offset=offset)
     expected_attrs = VolumeType._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeType, types.values(),
                               expected_attrs=expected_attrs)
예제 #12
0
파일: backup.py 프로젝트: bopopescu/jacket
 def get_all(cls,
             context,
             filters=None,
             marker=None,
             limit=None,
             offset=None,
             sort_keys=None,
             sort_dirs=None):
     backups = db.backup_get_all(context, filters, marker, limit, offset,
                                 sort_keys, sort_dirs)
     return base.obj_make_list(context, cls(context), objects.Backup,
                               backups)
예제 #13
0
 def get_all(cls,
             context,
             search_opts,
             marker=None,
             limit=None,
             sort_keys=None,
             sort_dirs=None,
             offset=None):
     snapshots = db.snapshot_get_all(context, search_opts, marker, limit,
                                     sort_keys, sort_dirs, offset)
     expected_attrs = Snapshot._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Snapshot,
                               snapshots,
                               expected_attrs=expected_attrs)
예제 #14
0
 def get_all(cls,
             context,
             filters=None,
             marker=None,
             limit=None,
             offset=None,
             sort_keys=None,
             sort_dirs=None):
     consistencygroups = db.consistencygroup_get_all(context,
                                                     filters=filters,
                                                     marker=marker,
                                                     limit=limit,
                                                     offset=offset,
                                                     sort_keys=sort_keys,
                                                     sort_dirs=sort_dirs)
     return base.obj_make_list(context, cls(context),
                               objects.ConsistencyGroup, consistencygroups)
예제 #15
0
 def get_all(cls,
             context,
             inactive=0,
             filters=None,
             marker=None,
             limit=None,
             sort_keys=None,
             sort_dirs=None,
             offset=None):
     types = volume_types.get_all_types(context,
                                        inactive,
                                        filters,
                                        marker=marker,
                                        limit=limit,
                                        sort_keys=sort_keys,
                                        sort_dirs=sort_dirs,
                                        offset=offset)
     expected_attrs = VolumeType._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.VolumeType,
                               types.values(),
                               expected_attrs=expected_attrs)
예제 #16
0
파일: backup.py 프로젝트: HybridF5/jacket
 def get_all_by_host(cls, context, host):
     backups = db.backup_get_all_by_host(context, host)
     return base.obj_make_list(context, cls(context), objects.Backup,
                               backups)
예제 #17
0
파일: service.py 프로젝트: HybridF5/jacket
 def get_all_by_binary(cls, context, binary, disabled=None):
     services = db.service_get_all_by_binary(context, binary,
                                             disabled=disabled)
     return base.obj_make_list(context, cls(context), objects.Service,
                               services)
예제 #18
0
파일: service.py 프로젝트: HybridF5/jacket
 def get_all(cls, context, filters=None):
     services = db.service_get_all(context, filters)
     return base.obj_make_list(context, cls(context), objects.Service,
                               services)
예제 #19
0
파일: service.py 프로젝트: bopopescu/jacket
 def get_all_by_binary(cls, context, binary, disabled=None):
     services = db.service_get_all_by_binary(context,
                                             binary,
                                             disabled=disabled)
     return base.obj_make_list(context, cls(context), objects.Service,
                               services)
예제 #20
0
파일: service.py 프로젝트: bopopescu/jacket
 def get_all(cls, context, filters=None):
     services = db.service_get_all(context, filters)
     return base.obj_make_list(context, cls(context), objects.Service,
                               services)
예제 #21
0
 def get_all_by_host(cls, context, volume_id, host):
     attachments = db.volume_attachment_get_by_host(context, volume_id,
                                                    host)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeAttachment, attachments)
예제 #22
0
파일: snapshot.py 프로젝트: HybridF5/jacket
 def get_by_host(cls, context, host, filters=None):
     snapshots = db.snapshot_get_by_host(context, host, filters)
     expected_attrs = Snapshot._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context), objects.Snapshot,
                               snapshots, expected_attrs=expected_attrs)
예제 #23
0
파일: snapshot.py 프로젝트: HybridF5/jacket
 def get_active_by_window(cls, context, begin, end):
     snapshots = db.snapshot_get_active_by_window(context, begin, end)
     expected_attrs = Snapshot._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context), objects.Snapshot,
                               snapshots, expected_attrs=expected_attrs)
예제 #24
0
 def get_all_by_instance_uuid(cls, context, volume_id, instance_uuid):
     attachments = db.volume_attachment_get_by_instance_uuid(
         context, volume_id, instance_uuid)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeAttachment, attachments)
예제 #25
0
파일: backup.py 프로젝트: bopopescu/jacket
 def get_all_by_host(cls, context, host):
     backups = db.backup_get_all_by_host(context, host)
     return base.obj_make_list(context, cls(context), objects.Backup,
                               backups)
예제 #26
0
 def get_all_by_instance_uuid(cls, context, volume_id, instance_uuid):
     attachments = db.volume_attachment_get_by_instance_uuid(
         context, volume_id, instance_uuid)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeAttachment, attachments)
예제 #27
0
파일: backup.py 프로젝트: bopopescu/jacket
 def get_all_by_volume(cls, context, volume_id, filters=None):
     backups = db.backup_get_all_by_volume(context, volume_id, filters)
     return base.obj_make_list(context, cls(context), objects.Backup,
                               backups)
예제 #28
0
파일: volume.py 프로젝트: HybridF5/jacket
 def get_all_by_group(cls, context, group_id, filters=None):
     volumes = db.volume_get_all_by_group(context, group_id, filters)
     expected_attrs = cls._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context), objects.Volume,
                               volumes, expected_attrs=expected_attrs)
예제 #29
0
파일: backup.py 프로젝트: HybridF5/jacket
 def get_all_by_volume(cls, context, volume_id, filters=None):
     backups = db.backup_get_all_by_volume(context, volume_id, filters)
     return base.obj_make_list(context, cls(context), objects.Backup,
                               backups)
예제 #30
0
 def get_all_by_host(cls, context, volume_id, host):
     attachments = db.volume_attachment_get_by_host(context, volume_id,
                                                    host)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeAttachment, attachments)
예제 #31
0
파일: snapshot.py 프로젝트: HybridF5/jacket
 def get_all_for_cgsnapshot(cls, context, cgsnapshot_id):
     snapshots = db.snapshot_get_all_for_cgsnapshot(context, cgsnapshot_id)
     expected_attrs = Snapshot._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context), objects.Snapshot,
                               snapshots, expected_attrs=expected_attrs)