def _get_dhcp_hosts(self, context): """Get network's hosts config in dhcp-host format.""" hosts = [] for ph in self._get_phy_hosts(context): ip = db.phy_pxe_ip_get_by_phy_host_id(context, ph.id) if ip: hosts.append(_host_dhcp(ph.pxe_mac_address, "phyhost-%s" % ph.id, ip.address)) return '\n'.join(hosts)
def attach_volume(self, instance_name, device_path, mountpoint): LOG.info("attach_volume: instance_name=%s device_path=%s mountpoint=%s", instance_name,device_path,mountpoint) i = self._get_phy_host_by_instance_name(instance_name) if not i: raise exception.InstanceNotFound(instance_id=instance_name) ctx = nova_context.get_admin_context() pxe_ip = db.phy_pxe_ip_get_by_phy_host_id(ctx, i.id) if not pxe_ip: if not FLAGS.physical_use_unsafe_iscsi: raise exception.Error("No fixed PXE IP is associated to phy_instance:%s" % instance_name) volume_id = self._volume_id_from_device_path(device_path) tid = volume_id mpstr = mountpoint.replace('/', '.').strip('.') iqn = 'iqn.2010-10.org.openstack:%s-%s' % (tid, mpstr) self._create_iscsi_export_tgtadm(device_path, tid, iqn) if pxe_ip: self._allow_iscsi_tgtadm(tid, pxe_ip.address) else: # unsafe self._allow_iscsi_tgtadm(tid, 'ALL') return True