コード例 #1
0
ファイル: block_device.py プロジェクト: zsvic/nova
 def get_by_volume_id(cls,
                      context,
                      volume_id,
                      instance_uuid=None,
                      expected_attrs=None):
     if expected_attrs is None:
         expected_attrs = []
     db_bdms = db.block_device_mapping_get_all_by_volume_id(
         context, volume_id, _expected_cols(expected_attrs))
     if not db_bdms:
         raise exception.VolumeBDMNotFound(volume_id=volume_id)
     if len(db_bdms) > 1:
         LOG.warning(
             'Legacy get_by_volume_id() call found multiple '
             'BDMs for volume %(volume)s', {'volume': volume_id})
     db_bdm = db_bdms[0]
     # NOTE (ndipanov): Move this to the db layer into a
     # get_by_instance_and_volume_id method
     if instance_uuid and instance_uuid != db_bdm['instance_uuid']:
         raise exception.InvalidVolume(
             reason=_("Volume does not belong to the "
                      "requested instance."))
     return cls._from_db_object(context,
                                cls(),
                                db_bdm,
                                expected_attrs=expected_attrs)
コード例 #2
0
ファイル: block_device.py プロジェクト: Juniper/nova
 def get_by_volume(cls, context, volume_id, expected_attrs=None):
     if expected_attrs is None:
         expected_attrs = []
     db_bdms = db.block_device_mapping_get_all_by_volume_id(
             context, volume_id, _expected_cols(expected_attrs))
     if not db_bdms:
         raise exception.VolumeBDMNotFound(volume_id=volume_id)
     if len(db_bdms) > 1:
         raise exception.VolumeBDMIsMultiAttach(volume_id=volume_id)
     return cls._from_db_object(context, cls(), db_bdms[0],
                                expected_attrs=expected_attrs)
コード例 #3
0
 def get_by_volume(cls, context, volume_id, expected_attrs=None):
     if expected_attrs is None:
         expected_attrs = []
     db_bdms = db.block_device_mapping_get_all_by_volume_id(
             context, volume_id, _expected_cols(expected_attrs))
     if not db_bdms:
         raise exception.VolumeBDMNotFound(volume_id=volume_id)
     if len(db_bdms) > 1:
         raise exception.VolumeBDMIsMultiAttach(volume_id=volume_id)
     return cls._from_db_object(context, cls(), db_bdms[0],
                                expected_attrs=expected_attrs)
コード例 #4
0
ファイル: block_device.py プロジェクト: Juniper/nova
 def get_by_volume_id(cls, context, volume_id,
                      instance_uuid=None, expected_attrs=None):
     if expected_attrs is None:
         expected_attrs = []
     db_bdms = db.block_device_mapping_get_all_by_volume_id(
             context, volume_id, _expected_cols(expected_attrs))
     if not db_bdms:
         raise exception.VolumeBDMNotFound(volume_id=volume_id)
     if len(db_bdms) > 1:
         LOG.warning(_LW('Legacy get_by_volume_id() call found multiple '
                         'BDMs for volume %(volume)s'),
                     {'volume': volume_id})
     db_bdm = db_bdms[0]
     # NOTE (ndipanov): Move this to the db layer into a
     # get_by_instance_and_volume_id method
     if instance_uuid and instance_uuid != db_bdm['instance_uuid']:
         raise exception.InvalidVolume(
                 reason=_("Volume does not belong to the "
                          "requested instance."))
     return cls._from_db_object(context, cls(), db_bdm,
                                expected_attrs=expected_attrs)