コード例 #1
0
    def test_add_map(self):
        """Tests the add_map method."""
        pv = pvm_stor.PV.bld(self.adpt, 'pv_name', 'pv_udid')

        scsi_map = scsi_mapper.build_vscsi_mapping('host_uuid',
                                                   self.v1wrap,
                                                   LPAR_UUID,
                                                   pv,
                                                   lpar_slot_num=23)

        # Get the original count
        orig_mappings = len(self.v1wrap.scsi_mappings)

        # Add the actual mapping
        resp1 = scsi_mapper.add_map(self.v1wrap, scsi_map)
        self.assertIsNotNone(resp1)
        self.assertIsInstance(resp1, pvm_vios.VSCSIMapping)

        # Assert that the desired client slot number was set
        self.assertEqual(resp1.client_adapter.lpar_slot_num, 23)

        # The mapping should return as None, as it is already there.
        resp2 = scsi_mapper.add_map(self.v1wrap, scsi_map)
        self.assertIsNone(resp2)

        # Make sure only one was added.
        self.assertEqual(orig_mappings + 1, len(self.v1wrap.scsi_mappings))

        # Now make sure the mapping added can be found
        found = scsi_mapper.find_maps(self.v1wrap.scsi_mappings,
                                      LPAR_UUID,
                                      stg_elem=pv)
        self.assertEqual(1, len(found))
        self.assertEqual(scsi_map, found[0])
コード例 #2
0
    def test_add_map(self):
        """Tests the add_map method."""
        vio_resp = tju.load_file(VIO_MULTI_MAP_FILE, self.adpt)
        vio_w = pvm_vios.VIOS.wrap(vio_resp)

        pv = pvm_stor.PV.bld(self.adpt, 'pv_name', 'pv_udid')

        scsi_map = scsi_mapper.build_vscsi_mapping('host_uuid', vio_w,
                                                   LPAR_UUID, pv)

        # Get the original count
        orig_mappings = len(vio_w.scsi_mappings)

        # Add the actual mapping
        resp1 = scsi_mapper.add_map(vio_w, scsi_map)
        self.assertIsNotNone(resp1)
        self.assertIsInstance(resp1, pvm_vios.VSCSIMapping)

        # The mapping should return as None, as it is already there.
        resp2 = scsi_mapper.add_map(vio_w, scsi_map)
        self.assertIsNone(resp2)

        # Make sure only one was added.
        self.assertEqual(orig_mappings + 1, len(vio_w.scsi_mappings))

        # Now make sure the mapping added can be found
        found = scsi_mapper.find_maps(vio_w.scsi_mappings, LPAR_UUID,
                                      stg_elem=pv)
        self.assertEqual(1, len(found))
        self.assertEqual(scsi_map, found[0])
コード例 #3
0
 def add_func(vios_w):
     LOG.info("Adding logical volume disk connection to VIOS %(vios)s.",
              {'vios': vios_w.name},
              instance=instance)
     mapping = tsk_map.build_vscsi_mapping(self.host_uuid, vios_w,
                                           lpar_uuid, disk_info)
     return tsk_map.add_map(vios_w, mapping)
コード例 #4
0
 def add_func(vios_w):
     LOG.info(_LI("Adding cfg drive mapping for instance %(inst)s for "
                  "Virtual I/O Server %(vios)s"),
              {'inst': instance.name, 'vios': vios_w.name})
     mapping = tsk_map.build_vscsi_mapping(self.host_uuid, vios_w,
                                           lpar_uuid, vopt)
     return tsk_map.add_map(vios_w, mapping)
コード例 #5
0
ファイル: media.py プロジェクト: pratgohi/nova-powervm
 def add_func(vios_w):
     LOG.info(_LI("Adding cfg drive mapping for instance %(inst)s for "
                  "Virtual I/O Server %(vios)s"),
              {'inst': instance.name, 'vios': vios_w.name})
     mapping = tsk_map.build_vscsi_mapping(self.host_uuid, vios_w,
                                           lpar_uuid, vopt)
     return tsk_map.add_map(vios_w, mapping)
コード例 #6
0
ファイル: fileio.py プロジェクト: esberglu/nova-powervm
        def add_func(vios_w):
            # If the vios doesn't match, just return
            if vios_w.uuid not in self.vios_uuids:
                return None

            LOG.info("Adding logical volume disk connection to VIOS %(vios)s.",
                     {'vios': vios_w.name},
                     instance=self.instance)
            slot, lua = slot_mgr.build_map.get_vscsi_slot(vios_w, path)
            if slot_mgr.is_rebuild and not slot:
                LOG.debug(
                    'Detected a device with path %(path)s on VIOS '
                    '%(vios)s on the rebuild that did not exist on the '
                    'source. Ignoring.', {
                        'path': path,
                        'vios': vios_w.uuid
                    },
                    instance=self.instance)
                return None

            mapping = tsk_map.build_vscsi_mapping(self.host_uuid,
                                                  vios_w,
                                                  self.vm_uuid,
                                                  fio,
                                                  lpar_slot_num=slot,
                                                  lua=lua)
            return tsk_map.add_map(vios_w, mapping)
コード例 #7
0
 def add_func(vios_w):
     LOG.info("Attaching SSP disk from VIOS %s.",
              vios_w.name,
              instance=instance)
     mapping = tsk_map.build_vscsi_mapping(self._host_uuid, vios_w,
                                           lpar_uuid, lu)
     return tsk_map.add_map(vios_w, mapping)
コード例 #8
0
 def add_func(vios_w):
     LOG.info(_LI("Adding SSP disk connection between VM %(vm)s and "
                  "VIOS %(vios)s."),
              {'vm': instance.name, 'vios': vios_w.name})
     mapping = tsk_map.build_vscsi_mapping(
         self.host_uuid, vios_w, lpar_uuid, lu)
     return tsk_map.add_map(vios_w, mapping)
コード例 #9
0
ファイル: localdisk.py プロジェクト: pkdevboxy/nova-powervm
 def add_func(vios_w):
     LOG.info(_LI("Adding logical volume disk connection between VM "
                  "%(vm)s and VIOS %(vios)s."),
              {'vm': instance.name, 'vios': vios_w.name})
     mapping = tsk_map.build_vscsi_mapping(
         self.host_uuid, vios_w, lpar_uuid, disk_info)
     return tsk_map.add_map(vios_w, mapping)
コード例 #10
0
ファイル: media.py プロジェクト: Aman306/nova-powervm
 def add_func(vios_w):
     LOG.info(
         "Adding config drive mapping to Virtual I/O Server "
         "%(vios)s", {'vios': vios_w.name},
         instance=instance)
     mapping = tsk_map.build_vscsi_mapping(None, vios_w, lpar_uuid,
                                           vopt)
     return tsk_map.add_map(vios_w, mapping)
コード例 #11
0
 def add_func(vios_w):
     LOG.info("Adding vSCSI mapping to Physical Volume %(dev)s on "
              "vios %(vios)s.",
              {'dev': device_name, 'vios': vios_w.name},
              instance=self.instance)
     pv = pvm_stor.PV.bld(self.adapter, device_name, tag=tag)
     v_map = tsk_map.build_vscsi_mapping(None, vios_w, self.vm_uuid, pv)
     return tsk_map.add_map(vios_w, v_map)
コード例 #12
0
ファイル: vscsi.py プロジェクト: kairoaraujo/nova-powervm
 def add_func(vios_w):
     LOG.info(
         _LI("Adding vSCSI mapping to Physical Volume %(dev)s " "to VM %(vm)s")
         % {"dev": device_name, "vm": self.vm_uuid}
     )
     pv = pvm_stor.PV.bld(self.adapter, device_name)
     v_map = tsk_map.build_vscsi_mapping(self.host_uuid, vios_w, self.vm_uuid, pv)
     return tsk_map.add_map(vios_w, v_map)
コード例 #13
0
ファイル: fcvscsi.py プロジェクト: arbrandes/nova
 def add_func(vios_w):
     LOG.info("Adding vSCSI mapping to Physical Volume %(dev)s on "
              "vios %(vios)s.",
              {'dev': device_name, 'vios': vios_w.name},
              instance=self.instance)
     pv = pvm_stor.PV.bld(self.adapter, device_name, tag=tag)
     v_map = tsk_map.build_vscsi_mapping(None, vios_w, self.vm_uuid, pv)
     return tsk_map.add_map(vios_w, v_map)
コード例 #14
0
 def add_func(vios_w):
     LOG.info("Adding cfg drive mapping to Virtual I/O Server %s.",
              vios_w.name,
              instance=instance)
     mapping = tsk_map.build_vscsi_mapping(None, vios_w,
                                           vm.get_pvm_uuid(instance),
                                           vopt)
     return tsk_map.add_map(vios_w, mapping)
コード例 #15
0
ファイル: vscsi.py プロジェクト: adreznec/nova-powervm
 def add_func(vios_w):
     LOG.info(_LI("Adding vSCSI mapping to Physical Volume %(dev)s "
                  "to VM %(vm)s") % {'dev': device_name,
                                     'vm': self.vm_uuid})
     pv = pvm_stor.PV.bld(self.adapter, device_name)
     v_map = tsk_map.build_vscsi_mapping(
         self.host_uuid, vios_w, self.vm_uuid, pv,
         lpar_slot_num=lpar_slot_num, lua=lua)
     return tsk_map.add_map(vios_w, v_map)
コード例 #16
0
 def add_func(vios_w):
     LOG.info("Adding vSCSI mapping to Physical Volume %(dev)s on "
              "vios %(vios)s.",
              {'dev': device_name, 'vios': vios_w.name},
              instance=self.instance)
     pv = pvm_stor.PV.bld(self.adapter, device_name, udid=udid,
                          tag=tag)
     v_map = tsk_map.build_vscsi_mapping(
         self.host_uuid, vios_w, self.vm_uuid, pv,
         lpar_slot_num=lpar_slot_num, lua=lua, target_name=target_name)
     return tsk_map.add_map(vios_w, v_map)
コード例 #17
0
ファイル: vscsi.py プロジェクト: pratgohi/nova-powervm
 def add_func(vios_w):
     LOG.info(
         _LI("Adding vSCSI mapping to Physical Volume %(dev)s "
             "to VM %(vm)s") % {
                 'dev': device_name,
                 'vm': self.vm_uuid
             })
     pv = pvm_stor.PV.bld(self.adapter, device_name)
     v_map = tsk_map.build_vscsi_mapping(self.host_uuid, vios_w,
                                         self.vm_uuid, pv)
     return tsk_map.add_map(vios_w, v_map)
コード例 #18
0
        def add_func(vios_w):
            # If the vios doesn't match, just return
            if vios_w.uuid != vios_uuid:
                return None

            LOG.info(_LI("Adding logical volume disk connection between VM "
                         "%(vm)s and VIOS %(vios)s."), {
                             'vm': self.instance.name,
                             'vios': vios_w.name
                         },
                     instance=self.instance)
            mapping = tsk_map.build_vscsi_mapping(self.host_uuid, vios_w,
                                                  self.vm_uuid, fio)
            return tsk_map.add_map(vios_w, mapping)
コード例 #19
0
 def add_func(vios_w):
     LOG.info(
         _LI("Adding vSCSI mapping to Physical Volume %(dev)s "
             "to VM %(vm)s"), {
                 'dev': device_name,
                 'vm': self.vm_uuid
             })
     pv = pvm_stor.PV.bld(self.adapter, device_name, udid)
     v_map = tsk_map.build_vscsi_mapping(self.host_uuid,
                                         vios_w,
                                         self.vm_uuid,
                                         pv,
                                         lpar_slot_num=lpar_slot_num,
                                         lua=lua,
                                         target_name=target_name)
     return tsk_map.add_map(vios_w, v_map)
コード例 #20
0
ファイル: ssp.py プロジェクト: Juniper/nova
 def add_func(vios_w):
     LOG.info("Attaching SSP disk from VIOS %s.",
              vios_w.name, instance=instance)
     mapping = tsk_map.build_vscsi_mapping(
         self._host_uuid, vios_w, lpar_uuid, lu)
     return tsk_map.add_map(vios_w, mapping)
コード例 #21
0
ファイル: media.py プロジェクト: klmitch/nova
 def add_func(vios_w):
     LOG.info("Adding cfg drive mapping to Virtual I/O Server %s.",
              vios_w.name, instance=instance)
     mapping = tsk_map.build_vscsi_mapping(
         None, vios_w, vm.get_pvm_uuid(instance), vopt)
     return tsk_map.add_map(vios_w, mapping)
コード例 #22
0
ファイル: localdisk.py プロジェクト: arbrandes/nova
 def add_func(vios_w):
     LOG.info("Adding logical volume disk connection to VIOS %(vios)s.",
              {'vios': vios_w.name}, instance=instance)
     mapping = tsk_map.build_vscsi_mapping(
         self._host_uuid, vios_w, lpar_uuid, disk_info)
     return tsk_map.add_map(vios_w, mapping)