def add_PSCSI(self, add_HCTL): saved_pscsis = self.state_store.load_state('pscsi') saved_pscsi_table = {} if saved_pscsis: for saved_uuid, saved_record in saved_pscsis.items(): try: saved_pscsi_table[saved_record['scsi_id']] = saved_uuid except KeyError: pass # Initialise the PSCSI pscsi_record = vscsi_util.get_scsi_device(add_HCTL) if pscsi_record and pscsi_record['scsi_id']: pscsi_uuid = saved_pscsi_table.get(pscsi_record['scsi_id'], None) if pscsi_uuid is None: pscsi_uuid = uuid.createString() XendPSCSI(pscsi_uuid, pscsi_record) self.save_PSCSIs()
def add_PSCSI(self, add_HCTL): saved_pscsis = self.state_store.load_state('pscsi') saved_pscsi_table = {} if saved_pscsis: for saved_uuid, saved_record in saved_pscsis.items(): try: saved_pscsi_table[saved_record['scsi_id']] = saved_uuid except KeyError: pass saved_pscsi_HBAs = self.state_store.load_state('pscsi_HBA') saved_pscsi_HBA_table = {} if saved_pscsi_HBAs: for saved_HBA_uuid, saved_HBA_record in saved_pscsi_HBAs.items(): try: physical_host = int(saved_HBA_record['physical_host']) saved_pscsi_HBA_table[physical_host] = saved_HBA_uuid except (KeyError, ValueError): pass # Initialise the PSCSI and the PSCSI_HBA pscsi_record = vscsi_util.get_scsi_device(add_HCTL) if pscsi_record and pscsi_record['scsi_id']: pscsi_uuid = saved_pscsi_table.get(pscsi_record['scsi_id'], None) if pscsi_uuid is None: physical_host = int(add_HCTL.split(':')[0]) pscsi_HBA_uuid = saved_pscsi_HBA_table.get(physical_host, None) if pscsi_HBA_uuid is None: pscsi_HBA_uuid = uuid.createString() XendPSCSI_HBA(pscsi_HBA_uuid, {'physical_host': physical_host}) pscsi_record['HBA'] = pscsi_HBA_uuid pscsi_uuid = uuid.createString() XendPSCSI(pscsi_uuid, pscsi_record) self.save_PSCSIs() self.save_PSCSI_HBAs()