Handle no baremetal_nodes in process_node_filter

- Added a try when getting baremetal_nodes from site_design.
   If baremetal_nodes isn't there it will return an empty set.

Change-Id: I413892274d938ffd23102c73a569b83a59025206
This commit is contained in:
Aaron Sheffield 2018-05-10 09:26:17 -05:00
parent 8af92eaf29
commit 8274d56c71
2 changed files with 23 additions and 1 deletions

View File

@ -382,7 +382,15 @@ class Orchestrator(object):
ba.target_nodes = [x.get_id() for x in target_nodes]
def process_node_filter(self, node_filter, site_design):
target_nodes = site_design.baremetal_nodes
try:
target_nodes = site_design.baremetal_nodes
if target_nodes is None:
raise AttributeError()
except AttributeError:
self.logger.debug(
"Invalid site design, no baremetal nodes in site_design."
)
return []
if node_filter is None:
return target_nodes

View File

@ -62,3 +62,17 @@ class TestClass(object):
node_list = deckhand_orchestrator.process_node_filter(nfs, design_data)
assert len(node_list) == 1
def test_no_baremetal_nodes(self, input_files, setup, deckhand_orchestrator,
deckhand_ingester):
input_file = input_files.join("deckhand_fullsite_no_nodes.yaml")
design_state = DrydockState()
design_ref = "file://%s" % str(input_file)
design_status, design_data = deckhand_ingester.ingest_data(
design_state=design_state, design_ref=design_ref)
node_list = deckhand_orchestrator.process_node_filter(None, design_data)
assert node_list == []