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

        if 'volumes' in expected_attrs:
            volumes = base.obj_make_list(
                context, objects.VolumeList(context),
                objects.Volume,
                db_group['volumes'])
            group.volumes = volumes

        if 'volume_types' in expected_attrs:
            volume_types = base.obj_make_list(
                context, objects.VolumeTypeList(context),
                objects.VolumeType,
                db_group['volume_types'])
            group.volume_types = volume_types

        if 'group_snapshots' in expected_attrs:
            group_snapshots = base.obj_make_list(
                context, objects.GroupSnapshotList(context),
                objects.GroupSnapshot,
                db_group['group_snapshots'])
            group.group_snapshots = group_snapshots

        group._context = context
        group.obj_reset_changes()
        return group
Example #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.CGSnapshotList(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.volumes = volumes

        consistencygroup._context = context
        consistencygroup.obj_reset_changes()
        return consistencygroup
Example #3
0
    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:
            volume.metadata = {}
            metadata = db_volume.get('volume_metadata', [])
            if metadata:
                volume.metadata = {item['key']: item['value']
                                   for item in metadata}
        if 'admin_metadata' in expected_attrs:
            volume.admin_metadata = {}
            metadata = db_volume.get('volume_admin_metadata', [])
            if metadata:
                volume.admin_metadata = {item['key']: item['value']
                                         for item in metadata}
        if 'glance_metadata' in expected_attrs:
            volume.glance_metadata = {}
            metadata = db_volume.get('volume_glance_metadata', [])
            if 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:
                volume.volume_type = objects.VolumeType._from_db_object(
                    context, objects.VolumeType(), db_volume_type,
                    expected_attrs='extra_specs')
        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
Example #4
0
    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:
                volume.volume_type = objects.VolumeType._from_db_object(
                    context, objects.VolumeType(), db_volume_type, expected_attrs="extra_specs"
                )
        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
Example #5
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)
Example #6
0
 def get_all_by_generic_group(cls, context, group_id, filters=None):
     # Generic volume group
     volumes = db.volume_get_all_by_generic_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)
Example #7
0
    def _from_db_object(context, cgsnapshot, db_cgsnapshots,
                        expected_attrs=None):
        expected_attrs = expected_attrs or []
        for name, field in cgsnapshot.fields.items():
            if name in OPTIONAL_FIELDS:
                continue
            value = db_cgsnapshots.get(name)
            setattr(cgsnapshot, name, value)

        if 'consistencygroup' in expected_attrs:
            consistencygroup = objects.ConsistencyGroup(context)
            consistencygroup._from_db_object(context, consistencygroup,
                                             db_cgsnapshots[
                                                 'consistencygroup'])
            cgsnapshot.consistencygroup = consistencygroup

        if 'snapshots' in expected_attrs:
            snapshots = base.obj_make_list(
                context, objects.SnapshotsList(context),
                objects.Snapshots,
                db_cgsnapshots['snapshots'])
            cgsnapshot.snapshots = snapshots

        cgsnapshot._context = context
        cgsnapshot.obj_reset_changes()
        return cgsnapshot
Example #8
0
    def get_all(cls, context, is_up=None, get_services=False,
                services_summary=False, read_deleted='no', **filters):
        """Get all clusters that match the criteria.

        :param is_up: Boolean value to filter based on the cluster's up status.
        :param get_services: If we want to load all services from this cluster.
        :param services_summary: If we want to load num_nodes and
                                 num_down_nodes fields.
        :param read_deleted: Filtering based on delete status. Default value is
                             "no".
        :param filters: Field based filters in the form of key/value.
        """

        expected_attrs = Cluster._get_expected_attrs(
            context,
            get_services=get_services,
            services_summary=services_summary)

        clusters = db.cluster_get_all(context, is_up=is_up,
                                      get_services=get_services,
                                      services_summary=services_summary,
                                      read_deleted=read_deleted,
                                      **filters)
        return base.obj_make_list(context, cls(context), Cluster, clusters,
                                  expected_attrs=expected_attrs)
Example #9
0
 def get_all_by_project(
     cls, context, project_id, search_opts, marker=None, limit=None, sort_keys=None, sort_dirs=None, offset=None
 ):
     snapshots = db.snapshot_get_all_by_project(
         context, project_id, search_opts, marker, limit, sort_keys, sort_dirs, offset
     )
     return base.obj_make_list(context, cls(context), objects.Snapshot, snapshots, expected_attrs=["metadata"])
Example #10
0
 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)
     expected_attrs = Backup._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context), objects.Backup,
                               backups, expected_attrs=expected_attrs)
Example #11
0
    def _from_db_object(cls, context, group_snapshot, db_group_snapshots,
                        expected_attrs=None):
        expected_attrs = expected_attrs or []
        for name, field in group_snapshot.fields.items():
            if name in cls.OPTIONAL_FIELDS:
                continue
            value = db_group_snapshots.get(name)
            setattr(group_snapshot, name, value)

        if 'group' in expected_attrs:
            group = objects.Group(context)
            group._from_db_object(context, group,
                                  db_group_snapshots['group'])
            group_snapshot.group = group

        if 'snapshots' in expected_attrs:
            snapshots = base.obj_make_list(
                context, objects.SnapshotsList(context),
                objects.Snapshots,
                db_group_snapshots['snapshots'])
            group_snapshot.snapshots = snapshots

        group_snapshot._context = context
        group_snapshot.obj_reset_changes()
        return group_snapshot
Example #12
0
 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)
Example #13
0
 def get_all_by_volume_id(cls, context, volume_id):
     attachments = db.volume_attachment_get_all_by_volume_id(context,
                                                             volume_id)
     return base.obj_make_list(context,
                               cls(context),
                               objects.VolumeAttachment,
                               attachments)
Example #14
0
 def get_all_active_by_window(cls, context, begin, end):
     backups = db.backup_get_all_active_by_window(context, begin, end)
     expected_attrs = Backup._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Backup,
                               backups,
                               expected_attrs=expected_attrs)
 def get_all_by_group(cls, context, group_id, filters=None):
     volumes = db.volume_get_all_by_group(context, group_id, filters)
     expected_attrs = ['admin_metadata', 'metadata']
     return base.obj_make_list(context,
                               cls(context),
                               objects.Volume,
                               volumes,
                               expected_attrs=expected_attrs)
Example #16
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)
Example #17
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)
Example #18
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)
Example #19
0
 def get_active_by_window(cls, context, begin, end):
     volumes = db.volume_get_active_by_window(context, begin, end)
     expected_attrs = cls._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Volume,
                               volumes,
                               expected_attrs=expected_attrs)
Example #20
0
 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 = ['admin_metadata', 'metadata']
     return base.obj_make_list(context, cls(context), objects.Volume,
                               volumes, expected_attrs=expected_attrs)
Example #21
0
 def get_all_by_instance_uuid(cls,
                              context,
                              instance_uuid,
                              search_opts=None):
     attachments = db.volume_attachment_get_all_by_instance_uuid(
         context, instance_uuid, search_opts)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeAttachment, attachments)
Example #22
0
 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)
Example #23
0
 def get_all(cls, context, filters=None, marker=None, limit=None,
             offset=None, sort_keys=None, sort_dirs=None):
     groups = db.group_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.Group,
                               groups)
Example #24
0
 def get_all(cls, context, inactive=0, search_opts=None):
     types = volume_types.get_all_types(context, inactive, search_opts)
     expected_attrs = ['extra_specs', 'projects']
     return base.obj_make_list(context,
                               cls(context),
                               objects.VolumeType,
                               types.values(),
                               expected_attrs=expected_attrs)
Example #25
0
 def get_all_by_host(cls, context, host, filters=None):
     volumes = db.volume_get_all_by_host(context, host, filters)
     expected_attrs = cls._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Volume,
                               volumes,
                               expected_attrs=expected_attrs)
Example #26
0
 def get_all_by_group(cls, context, group_id):
     # Generic volume group
     types = volume_types.get_all_types_by_group(
         context.elevated(), group_id)
     expected_attrs = VolumeType._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeType, types,
                               expected_attrs=expected_attrs)
 def get_all_by_group(cls, context, group_id, filters=None, marker=None,
                      limit=None, offset=None, sort_keys=None,
                      sort_dirs=None):
     group_snapshots = db.group_snapshot_get_all_by_group(
         context, group_id, 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.GroupSnapshot,
                               group_snapshots)
Example #28
0
 def get_all(cls, context, filters=None, marker=None, limit=None,
             offset=None, sort_keys=None, sort_dirs=None):
     groups = db.group_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.Group,
                               groups)
Example #29
0
 def get_all_by_project(
     cls, context, project_id, marker, limit, sort_keys=None, sort_dirs=None, filters=None, offset=None
 ):
     volumes = db.volume_get_all_by_project(
         context, project_id, marker, limit, sort_keys=sort_keys, sort_dirs=sort_dirs, filters=filters, offset=offset
     )
     expected_attrs = ["admin_metadata", "metadata"]
     return base.obj_make_list(context, cls(context), objects.Volume, volumes, expected_attrs=expected_attrs)
 def get_all_by_project(cls, context, project_id, search_opts=None,
                        marker=None, limit=None, offset=None,
                        sort_keys=None, sort_direction=None):
     attachments = db.volume_attachment_get_all_by_project(
         context, project_id, search_opts, marker, limit, offset, sort_keys,
         sort_direction)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeAttachment, attachments)
Example #31
0
 def get_all_by_project(cls, context, project_id, search_opts):
     snapshots = db.snapshot_get_all_by_project(context, project_id,
                                                search_opts)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Snapshot,
                               snapshots,
                               expected_attrs=['metadata'])
Example #32
0
 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)
Example #33
0
 def get_all_by_group(cls, context, group_id):
     # Generic volume group
     types = volume_types.get_all_types_by_group(
         context.elevated(), group_id)
     expected_attrs = VolumeType._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeType, types,
                               expected_attrs=expected_attrs)
Example #34
0
 def get_all_by_project(cls, context, project_id, search_opts, marker=None,
                        limit=None, sort_keys=None, sort_dirs=None,
                        offset=None):
     snapshots = db.snapshot_get_all_by_project(
         context, project_id, 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)
Example #35
0
 def get_all_by_host(cls, context: context.RequestContext,
                     host: str) -> 'BackupList':
     backups = db.backup_get_all_by_host(context, host)
     expected_attrs = Backup._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Backup,
                               backups,
                               expected_attrs=expected_attrs)
Example #36
0
 def get_all_by_project(cls, context, project_id, filters=None, marker=None,
                        limit=None, offset=None, sort_keys=None,
                        sort_dirs=None):
     consistencygroups = db.consistencygroup_get_all_by_project(
         context, project_id, 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)
Example #37
0
 def get_all(cls, context, marker, limit, sort_key, sort_dir, filters=None):
     volumes = db.volume_get_all(context,
                                 marker,
                                 limit,
                                 sort_key,
                                 sort_dir,
                                 filters=filters)
     return base.obj_make_list(context, cls(context), objects.Volume,
                               volumes)
Example #38
0
 def get_all_by_group(cls, context, group_id, filters=None):
     # Consistency group
     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)
Example #39
0
 def get_all_by_project(cls, context, project_id, filters=None, marker=None,
                        limit=None, offset=None, sort_keys=None,
                        sort_dirs=None):
     consistencygroups = db.consistencygroup_get_all_by_project(
         context, project_id, 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)
Example #40
0
 def get_all_by_project(cls, context, project_id, marker, limit,
                        sort_keys=None, sort_dirs=None, filters=None,
                        offset=None):
     volumes = db.volume_get_all_by_project(context, project_id, 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)
Example #41
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)
Example #42
0
    def get_all(cls, context, filters, marker=None, limit=None,
                sort_keys=None, sort_dirs=None, offset=None):
        """Get all snapshot given some search_opts (filters).

        Special filters accepted are host and cluster_name, that refer to the
        volume's fields.
        """
        snapshots = db.snapshot_get_all(context, filters, 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)
Example #43
0
    def get_all(cls, context, search_opts, marker=None, limit=None,
                sort_keys=None, sort_dirs=None, offset=None):
        """Get all snapshot given some search_opts (filters).

        Special search options accepted are host and cluster_name, that refer
        to the volume's fields.
        """
        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)
Example #44
0
    def _from_db_object(cls,
                        context,
                        consistencygroup,
                        db_consistencygroup,
                        expected_attrs=None):
        if expected_attrs is None:
            expected_attrs = []
        for name, field in consistencygroup.fields.items():
            if name in cls.OPTIONAL_FIELDS:
                continue
            value = db_consistencygroup.get(name)
            setattr(consistencygroup, name, value)

        if 'cgsnapshots' in expected_attrs:
            cgsnapshots = base.obj_make_list(
                context, objects.CGSnapshotList(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.volumes = volumes

        if 'cluster' in expected_attrs:
            db_cluster = db_consistencygroup.get('cluster')
            # If this consistency group doesn't belong to a cluster the cluster
            # field in the ORM instance will have value of None.
            if db_cluster:
                consistencygroup.cluster = objects.Cluster(context)
                objects.Cluster._from_db_object(context,
                                                consistencygroup.cluster,
                                                db_cluster)
            else:
                consistencygroup.cluster = None

        consistencygroup._context = context
        consistencygroup.obj_reset_changes()
        return consistencygroup
Example #45
0
 def get_all_by_volume(cls,
                       context,
                       volume_id,
                       vol_project_id,
                       filters=None):
     backups = db.backup_get_all_by_volume(context, volume_id,
                                           vol_project_id, filters)
     expected_attrs = Backup._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Backup,
                               backups,
                               expected_attrs=expected_attrs)
Example #46
0
    def get_all_replicated(cls, context, filters=None, marker=None, limit=None,
                           offset=None, sort_keys=None, sort_dirs=None):
        groups = db.group_get_all(
            context, filters=filters, marker=marker, limit=limit,
            offset=offset, sort_keys=sort_keys, sort_dirs=sort_dirs)
        grp_obj_list = base.obj_make_list(context, cls(context),
                                          objects.Group,
                                          groups)

        out_groups = [grp for grp in grp_obj_list
                      if grp.is_replicated]

        return out_groups
Example #47
0
 def get_all(cls,
             context,
             search_opts=None,
             marker=None,
             limit=None,
             offset=None,
             sort_keys=None,
             sort_direction=None):
     attachments = db.volume_attachment_get_all(context, search_opts,
                                                marker, limit, offset,
                                                sort_keys, sort_direction)
     return base.obj_make_list(context, cls(context),
                               objects.VolumeAttachment, attachments)
Example #48
0
    def _from_db_object(cls, context, consistencygroup, db_consistencygroup,
                        expected_attrs=None):
        if expected_attrs is None:
            expected_attrs = []
        for name, field in consistencygroup.fields.items():
            if name in cls.OPTIONAL_FIELDS:
                continue
            value = db_consistencygroup.get(name)
            setattr(consistencygroup, name, value)

        if 'cgsnapshots' in expected_attrs:
            cgsnapshots = base.obj_make_list(
                context, objects.CGSnapshotList(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.volumes = volumes

        if 'cluster' in expected_attrs:
            db_cluster = db_consistencygroup.get('cluster')
            # If this consistency group doesn't belong to a cluster the cluster
            # field in the ORM instance will have value of None.
            if db_cluster:
                consistencygroup.cluster = objects.Cluster(context)
                objects.Cluster._from_db_object(context,
                                                consistencygroup.cluster,
                                                db_cluster)
            else:
                consistencygroup.cluster = None

        consistencygroup._context = context
        consistencygroup.obj_reset_changes()
        return consistencygroup
Example #49
0
    def get_all_replicated(cls, context, filters=None, marker=None, limit=None,
                           offset=None, sort_keys=None, sort_dirs=None):
        groups = db.group_get_all(
            context, filters=filters, marker=marker, limit=limit,
            offset=offset, sort_keys=sort_keys, sort_dirs=sort_dirs)
        grp_obj_list = base.obj_make_list(context, cls(context),
                                          objects.Group,
                                          groups)

        out_groups = [grp for grp in grp_obj_list
                      if grp.is_replicated]

        return out_groups
Example #50
0
    def test_obj_make_list(self):
        class MyList(base.ObjectListBase, base.CinderObject):
            pass

        db_objs = [{'foo': 1, 'bar': 'baz', 'missing': 'banana'},
                   {'foo': 2, 'bar': 'bat', 'missing': 'apple'},
                   ]
        mylist = base.obj_make_list('ctxt', MyList(), MyObj, db_objs)
        self.assertEqual(2, len(mylist))
        self.assertEqual('ctxt', mylist._context)
        for index, item in enumerate(mylist):
            self.assertEqual(db_objs[index]['foo'], item.foo)
            self.assertEqual(db_objs[index]['bar'], item.bar)
            self.assertEqual(db_objs[index]['missing'], item.missing)
 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)
     return base.obj_make_list(context,
                               cls(),
                               objects.Snapshot,
                               snapshots,
                               expected_attrs=['metadata'])
Example #52
0
 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)
     expected_attrs = Backup._get_expected_attrs(context)
     return base.obj_make_list(context,
                               cls(context),
                               objects.Backup,
                               backups,
                               expected_attrs=expected_attrs)
    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 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:
            volume.metadata = {}
            metadata = db_volume.get('volume_metadata', [])
            if metadata:
                volume.metadata = {
                    item['key']: item['value']
                    for item in metadata
                }
        if 'admin_metadata' in expected_attrs:
            volume.admin_metadata = {}
            metadata = db_volume.get('volume_admin_metadata', [])
            if metadata:
                volume.admin_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:
                volume.volume_type = objects.VolumeType._from_db_object(
                    context,
                    objects.VolumeType(),
                    db_volume_type,
                    expected_attrs='extra_specs')
        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.objects

        volume._context = context
        volume.obj_reset_changes()
        return volume
Example #54
0
    def _from_db_object(context, cluster, db_cluster, expected_attrs=None):
        """Fill cluster OVO fields from cluster ORM instance."""
        expected_attrs = expected_attrs or tuple()
        for name, field in cluster.fields.items():
            # The only field that cannot be assigned using setattr is services,
            # because it is an ObjectField.   So we don't assign the value if
            # it's a non expected optional field or if it's services field.
            if (name in Cluster.OPTIONAL_FIELDS and name not in expected_attrs) or name == "services":
                continue
            value = getattr(db_cluster, name)
            setattr(cluster, name, value)

        cluster._context = context
        if "services" in expected_attrs:
            cluster.services = base.obj_make_list(
                context, objects.ServiceList(context), objects.Service, db_cluster.services
            )

        cluster.obj_reset_changes()
        return cluster
Example #55
0
 def get_all_by_group(cls,
                      context,
                      group_id,
                      filters=None,
                      marker=None,
                      limit=None,
                      offset=None,
                      sort_keys=None,
                      sort_dirs=None):
     group_snapshots = db.group_snapshot_get_all_by_group(
         context,
         group_id,
         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.GroupSnapshot,
                               group_snapshots)
Example #56
0
 def get_all_by_host(cls, context, host, filters=None):
     volumes = db.volume_get_all_by_host(context, host, filters)
     expected_attrs = cls._get_expected_attrs(context)
     return base.obj_make_list(context, cls(context), objects.Volume,
                               volumes, expected_attrs=expected_attrs)
Example #57
0
 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)
Example #58
0
 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)
Example #59
0
 def get_all(cls, context, marker, limit, sort_key, sort_dir,
             filters=None):
     volumes = db.volume_get_all(context, marker, limit, sort_key,
                                 sort_dir, filters=filters)
     return base.obj_make_list(context, cls(context), objects.Volume,
                               volumes)