def create_volume_from_snapshot(self, volume, snapshot): """Creates a volume from snapshot.""" LOG.info('iXsystems Craete Volume From Snapshot') LOG.info('create_volume_from_snapshot %s', snapshot['name']) existing_vol = ix_utils.generate_freenas_volume_name( snapshot['volume_name'], self.configuration.ixsystems_iqn_prefix) freenas_snapshot = ix_utils.generate_freenas_snapshot_name( snapshot['name'], self.configuration.ixsystems_iqn_prefix) freenas_volume = ix_utils.generate_freenas_volume_name( volume['name'], self.configuration.ixsystems_iqn_prefix) freenas_volume['size'] = volume['size'] freenas_volume['target_size'] = volume['size'] self.common._create_volume_from_snapshot(freenas_volume['name'], freenas_snapshot['name'], existing_vol['name']) self.common._create_iscsitarget(freenas_volume['target'], freenas_volume['name'])
def delete_snapshot(self, snapshot): """Driver entry point for deleting a snapshot.""" LOG.info('iXsystems Delete Snapshot') LOG.debug('delete_snapshot %s', snapshot['name']) freenas_snapshot = ix_utils.generate_freenas_snapshot_name( snapshot['name'], self.configuration.ixsystems_iqn_prefix) freenas_volume = ix_utils.generate_freenas_volume_name( snapshot['volume_name'], self.configuration.ixsystems_iqn_prefix) self.common._delete_snapshot(freenas_snapshot['name'], freenas_volume['name'])
def extend_volume(self, volume, new_size): """Driver entry point to extend an existing volumes size.""" LOG.info('iXsystems Extent Volume') LOG.info('extend_volume %s', volume['name']) freenas_volume = ix_utils.generate_freenas_volume_name( volume['name'], self.configuration.ixsystems_iqn_prefix) freenas_new_size = new_size if volume['size'] != freenas_new_size: self.common._extend_volume(freenas_volume['name'], freenas_new_size)
def delete_volume(self, volume): """Deletes volume and corresponding iscsi target.""" LOG.info('iXsystems Delete Volume') LOG.debug('delete_volume %s', volume['name']) freenas_volume = ix_utils.generate_freenas_volume_name( volume['name'], self.configuration.ixsystems_iqn_prefix) if freenas_volume['target']: self.common._delete_iscsitarget(freenas_volume['target']) if freenas_volume['name']: self.common._delete_volume(freenas_volume['name'])
def _create_export(self, volume_name): freenas_volume = ix_utils.generate_freenas_volume_name(volume_name, self.configuration.ixsystems_iqn_prefix) if freenas_volume is None: LOG.error(_('Error in exporting FREENAS volume!')) handle = None else: handle = "%s:%s,%s %s" % \ (self.configuration.ixsystems_server_hostname, self.configuration.ixsystems_server_iscsi_port, freenas_volume['target'], freenas_volume['iqn']) LOG.debug('provider_location: %s', handle) return handle
def create_volume(self, volume): """Creates a volume of specified size and export it as iscsi target.""" LOG.info('iXsystems Create Volume') LOG.debug('create_volume : volume name :: %s', volume['name']) freenas_volume = ix_utils.generate_freenas_volume_name( volume['name'], self.configuration.ixsystems_iqn_prefix) LOG.debug('volume name after freenas generate : %s', json.dumps(freenas_volume)) freenas_volume['size'] = volume['size'] freenas_volume['target_size'] = volume['size'] self.common._create_volume(freenas_volume['name'], freenas_volume['size']) #Remove LUN Creation from here,check at initi self.common._create_iscsitarget(freenas_volume['target'], freenas_volume['name'])
def initialize_connection(self, volume, connector): """Driver entry point to attach a volume to an instance.""" LOG.info('iXsystems Initialise Connection') freenas_volume = ix_utils.generate_freenas_volume_name( volume['name'], self.configuration.ixsystems_iqn_prefix) if not freenas_volume['name']: # is this snapshot? freenas_volume = ix_utils.generate_freenas_snapshot_name( volume['name'], self.configuration.ixsystems_iqn_prefix) LOG.info('initialize_connection Entry: %s \t %s', volume['name'], connector['host']) properties = {} properties['target_discovered'] = False properties['target_portal'] = ix_utils.get_iscsi_portal( self.configuration.ixsystems_server_hostname, self.configuration.ixsystems_server_iscsi_port) properties['target_iqn'] = freenas_volume['iqn'] properties['volume_id'] = volume['id'] LOG.debug('initialize_connection data: %s', properties) return {'driver_volume_type': 'iscsi', 'data': properties}