def attach_volume(self, connection_info, instance, mountpoint): node = _get_baremetal_node_by_instance_uuid(instance['uuid']) ctx = nova_context.get_admin_context() pxe_ip = bmdb.bm_pxe_ip_get_by_bm_node_id(ctx, node['id']) if not pxe_ip: if not CONF.baremetal.use_unsafe_iscsi: raise exception.NovaException(_( 'No fixed PXE IP is associated to %s') % instance['uuid']) mount_device = mountpoint.rpartition("/")[2] self._volume_driver_method('connect_volume', connection_info, mount_device) device_path = connection_info['data']['device_path'] iqn = _get_iqn(instance['name'], mountpoint) tid = _get_next_tid() _create_iscsi_export_tgtadm(device_path, tid, iqn) if pxe_ip: _allow_iscsi_tgtadm(tid, pxe_ip['address']) else: # NOTE(NTTdocomo): Since nova-compute does not know the # instance's initiator ip, it allows any initiators # to connect to the volume. This means other bare-metal # instances that are not attached the volume can connect # to the volume. Do not set CONF.baremetal.use_unsafe_iscsi # out of dev/test environments. # TODO(NTTdocomo): support CHAP _allow_iscsi_tgtadm(tid, 'ALL')
def attach_volume(self, connection_info, instance_name, mountpoint): node = _get_baremetal_node_by_instance_name(instance_name) if not node: raise exception.InstanceNotFound(instance_id=instance_name) ctx = nova_context.get_admin_context() pxe_ip = bmdb.bm_pxe_ip_get_by_bm_node_id(ctx, node['id']) if not pxe_ip: if not FLAGS.baremetal_use_unsafe_iscsi: raise exception.NovaException( "No fixed PXE IP is associated to %s" % instance_name) mount_device = mountpoint.rpartition("/")[2] conf = self._volume_driver_method('connect_volume', connection_info, mount_device) LOG.debug("conf=%s", conf) device_path = connection_info['data']['device_path'] volume_id = connection_info['data']['volume_id'] tid = volume_id + FLAGS.baremetal_iscsi_tid_offset mpstr = mountpoint.replace('/', '.').strip('.') iqn = '%s:%s-%s' % (FLAGS.baremetal_iscsi_iqn_prefix, tid, mpstr) _create_iscsi_export_tgtadm(device_path, tid, iqn) if pxe_ip: _allow_iscsi_tgtadm(tid, pxe_ip['address']) else: # unsafe _allow_iscsi_tgtadm(tid, 'ALL') return True
def attach_volume(self, connection_info, instance, mountpoint): node = _get_baremetal_node_by_instance_uuid(instance['uuid']) ctx = nova_context.get_admin_context() pxe_ip = bmdb.bm_pxe_ip_get_by_bm_node_id(ctx, node['id']) if not pxe_ip: if not CONF.baremetal.use_unsafe_iscsi: raise exception.NovaException( _('No fixed PXE IP is associated to %s') % instance['uuid']) mount_device = mountpoint.rpartition("/")[2] self._volume_driver_method('connect_volume', connection_info, mount_device) device_path = connection_info['data']['device_path'] iqn = _get_iqn(instance['name'], mountpoint) tid = _get_next_tid() _create_iscsi_export_tgtadm(device_path, tid, iqn) if pxe_ip: _allow_iscsi_tgtadm(tid, pxe_ip['address']) else: # NOTE(NTTdocomo): Since nova-compute does not know the # instance's initiator ip, it allows any initiators # to connect to the volume. This means other bare-metal # instances that are not attached the volume can connect # to the volume. Do not set CONF.baremetal.use_unsafe_iscsi # out of dev/test environments. # TODO(NTTdocomo): support CHAP _allow_iscsi_tgtadm(tid, 'ALL')
def attach_volume(self, connection_info, instance_name, mountpoint): node = _get_baremetal_node_by_instance_name(instance_name) if not node: raise exception.InstanceNotFound(instance_id=instance_name) ctx = nova_context.get_admin_context() pxe_ip = bmdb.bm_pxe_ip_get_by_bm_node_id(ctx, node['id']) if not pxe_ip: if not FLAGS.baremetal_use_unsafe_iscsi: raise exception.NovaException( "No fixed PXE IP is associated to %s" % instance_name) mount_device = mountpoint.rpartition("/")[2] conf = self._volume_driver_method('connect_volume', connection_info, mount_device) LOG.debug("conf=%s", conf) device_path = connection_info['data']['device_path'] volume_id = connection_info['data']['volume_id'] tid = volume_id + FLAGS.baremetal_iscsi_tid_offset mpstr = mountpoint.replace('/', '.').strip('.') iqn = '%s:%s-%s' % (FLAGS.baremetal_iscsi_iqn_prefix, tid, mpstr) _create_iscsi_export_tgtadm(device_path, tid, iqn) if pxe_ip: _allow_iscsi_tgtadm(tid, pxe_ip['address']) else: # unsafe _allow_iscsi_tgtadm(tid, 'ALL') return True