From 3ba0c171c0b6f3516662bc0ab660b14cd6d34d8a Mon Sep 17 00:00:00 2001 From: Xavier Queralt Date: Mon, 10 Jun 2013 16:06:40 +0200 Subject: Don't make nova-compute depend on iSCSI Because not all volume drivers require iSCSI it makes sense to not set the initiator in the connector and let the volume drivers return an error if iSCSI is required. bug #1007084 Change-Id: I5da472e5013fdc0c733ecb12b919c1068873bdc6 --- nova/virt/libvirt/driver.py | 9 +++------ nova/virt/libvirt/utils.py | 7 ++++++- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'nova/virt') diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index be47a1e1d..cc989c964 100755 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -929,15 +929,12 @@ class LibvirtDriver(driver.ComputeDriver): 'world wide port names'), instance=instance) - if not self._initiator and not self._fc_wwnns and not self._fc_wwpns: - msg = _("No Volume Connector found.") - LOG.error(msg) - raise exception.NovaException(msg) - connector = {'ip': CONF.my_ip, - 'initiator': self._initiator, 'host': CONF.host} + if self._initiator: + connector['initiator'] = self._initiator + if self._fc_wwnns and self._fc_wwpns: connector["wwnns"] = self._fc_wwnns connector["wwpns"] = self._fc_wwpns diff --git a/nova/virt/libvirt/utils.py b/nova/virt/libvirt/utils.py index 4da7d4f22..3ae366481 100755 --- a/nova/virt/libvirt/utils.py +++ b/nova/virt/libvirt/utils.py @@ -26,6 +26,7 @@ import os from lxml import etree from oslo.config import cfg +from nova import exception from nova.openstack.common import log as logging from nova.openstack.common import processutils from nova import utils @@ -52,7 +53,11 @@ def get_iscsi_initiator(): """Get iscsi initiator name for this machine.""" # NOTE(vish) openiscsi stores initiator name in a file that # needs root permission to read. - contents = utils.read_file_as_root('/etc/iscsi/initiatorname.iscsi') + try: + contents = utils.read_file_as_root('/etc/iscsi/initiatorname.iscsi') + except exception.FileNotFound: + return None + for l in contents.split('\n'): if l.startswith('InitiatorName='): return l[l.index('=') + 1:].strip() -- cgit