Пример #1
0
    def _create_target_fchba_details(self, remote_descriptors):
        result = []
        if remote_descriptors:
            for remote_descriptor in remote_descriptors:
                try:
                    port_id = Sfn(int)(remote_descriptor.target_n_port_id, 16)
                    wwpn = wwn.normalize(remote_descriptor.target_port_wwn)
                    wwnn = wwn.normalize(remote_descriptor.target_node_wwn)
                    port_type = remote_descriptor.port_type
                    port_name = ''
                    node_name = ''
                    if remote_descriptor.symbolic_port_name and remote_descriptor.symbolic_port_name.lower(
                    ) != 'none':
                        port_name = remote_descriptor.symbolic_port_name
                    if remote_descriptor.symbolic_node_name and remote_descriptor.symbolic_node_name.lower(
                    ) != 'none':
                        node_name = remote_descriptor.symbolic_node_name

                    fchba = fc_hba_model.FcHba('', node_name, wwn=wwnn)
                    fcport = fc_hba_model.FcPort(port_id,
                                                 wwpn,
                                                 type=port_type,
                                                 name=port_name)
                    result.append((fchba, fcport, None))
                except (TypeError, ValueError):
                    logger.debugException(
                        'Failed to create target fchba/fcport data object')
        return tuple(result)
Пример #2
0
    def get_fc_hbas(self, shell):
        result = []
        descriptors = fc_hba_descriptors_by_hpux_fcmsutil.get_fc_hba_descriptors(
            shell)
        find_name_by_id_in_hex = Sfn(vendors.find_name_by_id_in_hex)
        for ioscan_dscriptor, fc_descriptor, fc_vpd_descriptor in descriptors:
            try:
                hba_id = ioscan_dscriptor.device_filename
                name = ioscan_dscriptor.device_filename
                node_wwn = fc_descriptor.n_port_node_world_wide_name
                node_wwn = wwn.normalize(node_wwn)
                vendor = find_name_by_id_in_hex(fc_descriptor.vendor_id)
                model = fc_vpd_descriptor.part_number
                serial_number = fc_vpd_descriptor.part_serial_number
                driver_version = fc_descriptor.driver_version
                firmware_version = fc_vpd_descriptor.rom_firmware_version
                port_speed = fc_descriptor.link_speed
                fchba = fc_hba_model.FcHba(hba_id,
                                           name,
                                           wwn=node_wwn,
                                           vendor=vendor,
                                           model=model,
                                           serial_number=serial_number,
                                           driver_version=driver_version,
                                           firmware_version=firmware_version)
                port_id = fc_descriptor.local_n_port_id
                port_wwn = wwn.normalize(
                    fc_descriptor.n_port_port_world_wide_name)
                type_ = fc_descriptor.topology
                ports = []

                port_id = Sfn(int)(port_id, 16)
                speed = _parse_port_speed(port_speed)

                remote_descriptors = Sfn(fc_hba_descriptors_by_hpux_fcmsutil.
                                         get_remote_fc_hba_descriptors)(
                                             shell,
                                             ioscan_dscriptor.device_filename)
                target_fchbas = self._create_target_fchba_details(
                    remote_descriptors)
                ports.append((fc_hba_model.FcPort(port_id, port_wwn, type_,
                                                  None, speed), target_fchbas))
                result.append((fchba, tuple(ports)))
            except (TypeError, ValueError), ex:
                logger.debugException('Failed to create fchba data object')
 def _create_target_fchba_details(self, remote_descriptors):
     result = []
     if remote_descriptors:
         for nodewwn, port_descriptors in remote_descriptors.items():
             for port_descriptor in port_descriptors:
                 portid, portwwn = port_descriptor
                 try:
                     port_id = Sfn(int)(portid, 16)
                     wwpn = wwn.normalize(portwwn)
                     wwnn = wwn.normalize(nodewwn)
                     port_name = ''
                     node_name = ''
                     fchba = fc_hba_model.FcHba('', node_name, wwn=wwnn)
                     fcport = fc_hba_model.FcPort(port_id, wwpn, type=None, name=port_name)
                     result.append((fchba, fcport, None))
                 except (TypeError, ValueError):
                     logger.debugException('Failed to create target fchba/fcport data object')
     return tuple(result)
Пример #4
0
    def _create_target_fchba_details(self, remote_descriptors):
        result = []
        if remote_descriptors:
            for remote_descriptor in remote_descriptors:
                try:
                    port_id = Sfn(int)(remote_descriptor.target_n_port_id, 16)
                    wwpn = wwn.normalize(remote_descriptor.target_port_wwn)
                    wwnn = wwn.normalize(remote_descriptor.target_node_wwn)
                    port_type = remote_descriptor.port_type
                    port_name = ''
                    node_name = ''
                    if remote_descriptor.symbolic_port_name and remote_descriptor.symbolic_port_name.lower() != 'none':
                        port_name = remote_descriptor.symbolic_port_name
                    if remote_descriptor.symbolic_node_name and remote_descriptor.symbolic_node_name.lower() != 'none':
                        node_name = remote_descriptor.symbolic_node_name

                    fchba = fc_hba_model.FcHba('', node_name, wwn=wwnn)
                    fcport = fc_hba_model.FcPort(port_id, wwpn, type=port_type, name = port_name)
                    result.append((fchba, fcport, None))
                except (TypeError, ValueError):
                    logger.debugException('Failed to create target fchba/fcport data object')
        return tuple(result)
Пример #5
0
 def _create_target_fchba_details(self, remote_descriptors):
     result = []
     if remote_descriptors:
         for nodewwn, port_descriptors in remote_descriptors.items():
             for port_descriptor in port_descriptors:
                 portid, portwwn = port_descriptor
                 try:
                     port_id = Sfn(int)(portid, 16)
                     wwpn = wwn.normalize(portwwn)
                     wwnn = wwn.normalize(nodewwn)
                     port_name = ''
                     node_name = ''
                     fchba = fc_hba_model.FcHba('', node_name, wwn=wwnn)
                     fcport = fc_hba_model.FcPort(port_id,
                                                  wwpn,
                                                  type=None,
                                                  name=port_name)
                     result.append((fchba, fcport, None))
                 except (TypeError, ValueError):
                     logger.debugException(
                         'Failed to create target fchba/fcport data object')
     return tuple(result)
Пример #6
0
    def get_fc_hbas(self, shell):
        result = []
        descriptors = fc_hba_descriptors_by_hpux_fcmsutil.get_fc_hba_descriptors(shell)
        find_name_by_id_in_hex = Sfn(vendors.find_name_by_id_in_hex)
        for ioscan_dscriptor, fc_descriptor, fc_vpd_descriptor in descriptors:
            try:
                hba_id = ioscan_dscriptor.device_filename
                name = ioscan_dscriptor.device_filename
                node_wwn = fc_descriptor.n_port_node_world_wide_name
                node_wwn = wwn.normalize(node_wwn)
                vendor = find_name_by_id_in_hex(fc_descriptor.vendor_id)
                model = fc_vpd_descriptor.part_number
                serial_number = fc_vpd_descriptor.part_serial_number
                driver_version = fc_descriptor.driver_version
                firmware_version = fc_vpd_descriptor.rom_firmware_version
                port_speed = fc_descriptor.link_speed
                fchba = fc_hba_model.FcHba(hba_id, name, wwn=node_wwn,
                                           vendor=vendor, model=model,
                                           serial_number=serial_number,
                                           driver_version=driver_version,
                                           firmware_version=firmware_version)
                port_id = fc_descriptor.local_n_port_id
                port_wwn = wwn.normalize(fc_descriptor.n_port_port_world_wide_name)
                type_ = fc_descriptor.topology
                ports = []

                port_id = Sfn(int)(port_id, 16)
                speed = _parse_port_speed(port_speed)

                remote_descriptors = Sfn(fc_hba_descriptors_by_hpux_fcmsutil.get_remote_fc_hba_descriptors)(shell, ioscan_dscriptor.device_filename)
                target_fchbas = self._create_target_fchba_details(remote_descriptors)
                ports.append((fc_hba_model.FcPort(port_id, port_wwn, type_, None, speed),
                                  target_fchbas))
                result.append((fchba, tuple(ports)))
            except (TypeError, ValueError), ex:
                logger.debugException('Failed to create fchba data object')