Remove BuildDataError from Logicalnames

- Removed raising a BuildDataError exception when applying logicalnames.

Change-Id: I15dcab186954284f60fad440659a8558cd8be278
This commit is contained in:
Aaron Sheffield 2018-03-05 10:37:21 -06:00
parent dec96b574d
commit 2b26d5204c
3 changed files with 10 additions and 15 deletions

View File

@ -21,7 +21,6 @@ import logging
from oslo_versionedobjects import fields as ovo_fields
import drydock_provisioner.config as config
import drydock_provisioner.error as errors
import drydock_provisioner.objects as objects
import drydock_provisioner.objects.hostprofile
import drydock_provisioner.objects.base as base
@ -132,7 +131,8 @@ class BaremetalNode(drydock_provisioner.objects.hostprofile.HostProfile):
"""
nodes = xml_root.findall(".//node[businfo='" + bus_type + "@" + address + "'].logicalname")
if len(nodes) >= 1 and nodes[0].text:
# TODO (as1452): log.info() when more than one result after the logger refactor.
if (len(nodes) > 1):
self.logger.info("Multiple nodes found for businfo=%s@%s" % (bus_type, address))
for logicalname in reversed(nodes[0].text.split("/")):
self.logger.debug("Logicalname build dict: alias_name = %s, bus_type = %s, address = %s, "
"to logicalname = %s" % (alias_name, bus_type, address, logicalname))
@ -165,7 +165,7 @@ class BaremetalNode(drydock_provisioner.objects.hostprofile.HostProfile):
device.address)
logicalnames[device.alias] = logicalname
else:
raise errors.BuildDataError("No Build Data found for node_name %s" % (self.get_name()))
self.logger.info("No Build Data found for node_name %s" % (self.get_name()))
self.logicalnames = logicalnames

View File

@ -250,10 +250,7 @@ class Orchestrator(object):
try:
nodes = site_design.baremetal_nodes
for n in nodes or []:
try:
n.compile_applied_model(site_design, state_manager=self.state_manager)
except errors.BuildDataError:
self.logger.info("No Build Data found for node %s." % n.name)
n.compile_applied_model(site_design, state_manager=self.state_manager)
except AttributeError:
self.logger.debug(
"Model inheritance skipped, no node definitions in site design."

View File

@ -12,17 +12,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import pytest
from unittest.mock import Mock
import drydock_provisioner.objects as objects
import drydock_provisioner.error as errors
class TestClass(object):
def test_apply_logicalnames_exception(self, input_files, deckhand_orchestrator,
drydock_state, mock_get_build_data):
"""Test node apply_logicalnames to get an exception"""
def test_apply_logicalnames_else(self, input_files, deckhand_orchestrator,
drydock_state, mock_get_build_data):
"""Test node apply_logicalnames hits the else block"""
input_file = input_files.join("deckhand_fullsite.yaml")
design_ref = "file://%s" % str(input_file)
@ -35,9 +33,9 @@ class TestClass(object):
drydock_state.get_build_data = Mock(side_effect=side_effect)
nodes = design_data.baremetal_nodes
with pytest.raises(errors.BuildDataError):
for n in nodes or []:
n.apply_logicalnames(design_data, state_manager=drydock_state)
for n in nodes or []:
n.apply_logicalnames(design_data, state_manager=drydock_state)
assert n.logicalnames == {}
def test_apply_logicalnames_success(self, input_files, deckhand_orchestrator,
drydock_state, mock_get_build_data):