Merge "metalsmith list handle missing port"
This commit is contained in:
@@ -14,10 +14,15 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
import enum
|
import enum
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from openstack import exceptions as os_exc
|
||||||
|
|
||||||
from metalsmith import _utils
|
from metalsmith import _utils
|
||||||
|
|
||||||
|
|
||||||
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
_PROGRESS_STATES = frozenset(['deploying', 'wait call-back',
|
_PROGRESS_STATES = frozenset(['deploying', 'wait call-back',
|
||||||
'deploy complete'])
|
'deploy complete'])
|
||||||
_ACTIVE_STATES = frozenset(['active'])
|
_ACTIVE_STATES = frozenset(['active'])
|
||||||
@@ -117,10 +122,13 @@ class Instance(object):
|
|||||||
result = []
|
result = []
|
||||||
vifs = self._connection.baremetal.list_node_vifs(self.node)
|
vifs = self._connection.baremetal.list_node_vifs(self.node)
|
||||||
for vif in vifs:
|
for vif in vifs:
|
||||||
|
try:
|
||||||
port = self._connection.network.get_port(vif)
|
port = self._connection.network.get_port(vif)
|
||||||
port.network = self._connection.network.get_network(
|
port.network = self._connection.network.get_network(
|
||||||
port.network_id)
|
port.network_id)
|
||||||
result.append(port)
|
result.append(port)
|
||||||
|
except os_exc.ResourceNotFound:
|
||||||
|
LOG.warning('vif has missing port: %s', vif)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
|
from openstack import exceptions as os_exc
|
||||||
|
|
||||||
from metalsmith import _instance
|
from metalsmith import _instance
|
||||||
from metalsmith.test import test_provisioner
|
from metalsmith.test import test_provisioner
|
||||||
|
|
||||||
@@ -49,6 +51,17 @@ class TestInstanceIPAddresses(test_provisioner.Base):
|
|||||||
self.assertEqual({'name-0': [],
|
self.assertEqual({'name-0': [],
|
||||||
'name-1': ['10.0.0.2']}, ips)
|
'name-1': ['10.0.0.2']}, ips)
|
||||||
|
|
||||||
|
def test_missing_port(self):
|
||||||
|
self.ports = [
|
||||||
|
mock.Mock(spec=['network_id', 'fixed_ips', 'network'],
|
||||||
|
network_id='0',
|
||||||
|
fixed_ips=[{'ip_address': '192.168.0.1'}]),
|
||||||
|
os_exc.ResourceNotFound(),
|
||||||
|
]
|
||||||
|
self.api.network.get_port.side_effect = self.ports
|
||||||
|
ips = self.instance.ip_addresses()
|
||||||
|
self.assertEqual({'name-0': ['192.168.0.1']}, ips)
|
||||||
|
|
||||||
|
|
||||||
class TestInstanceStates(test_provisioner.Base):
|
class TestInstanceStates(test_provisioner.Base):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
Reference in New Issue
Block a user