def test_get_successes_for_task(self):
     op = DrydockNodesOperator(main_dag_name="main",
                               shipyard_conf=CONF_FILE,
                               task_id="t1")
     op.get_task_dict = _fake_get_task_dict
     s = op.get_successes_for_task('0')
     for i in range(1, 3):
         assert "node{}".format(i) in s
예제 #2
0
 def test_get_successess_for_task_more_logging(self):
     op = DrydockNodesOperator(main_dag_name="main",
                               shipyard_conf=CONF_FILE,
                               task_id="t1")
     op.get_task_dict = _fake_get_task_dict
     s = op._get_successes_for_task('99')
     for i in range(97, 98):
         assert "node{}".format(i) in s
     assert "node2" not in s
 def get_deployment_strategy(self, udoc):
     """Assert that the base class method get_unique_doc would be invoked
     """
     op = DrydockNodesOperator(main_dag_name="main",
                               shipyard_conf=CONF_FILE,
                               task_id="t1")
     op.dc = copy.deepcopy(
         DeploymentConfigurationOperator.config_keys_defaults)
     op.dc['physical_provisioner.deployment_strategy'] = 'taco-salad'
     op.setup_deployment_strategy()
     udoc.assert_called_once_with(name='taco-salad',
                                  schema="shipyard/DeploymentStrategy/v1")
    def test_do_execute_with_dgm(self, nl, caplog):
        op = DrydockNodesOperator(main_dag_name="main",
                                  shipyard_conf=CONF_FILE,
                                  task_id="t1")
        op.dc = copy.deepcopy(
            DeploymentConfigurationOperator.config_keys_defaults)
        op.design_ref = {"a": "b"}
        op.notes_helper = get_notes_helper()
        op.action_id = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        op.task_id = "prepare_and_deploy_nodes"

        op.do_execute()
        assert "critical groups have met their success criteria" in caplog.text
예제 #5
0
 def test_execute_deployment(self, cns):
     op = DrydockNodesOperator(main_dag_name="main",
                               shipyard_conf=CONF_FILE,
                               task_id="t1")
     op.dc = copy.deepcopy(
         DeploymentConfigurationOperator.config_keys_defaults)
     op._setup_configured_values()
     op._execute_task = mock.MagicMock(return_value=TASK_RESULT)
     op.join_wait = 0
     group = DeploymentGroup(GROUP_DICT, mock.MagicMock())
     group.actionable_nodes = ['node1', 'node2', 'node3']
     op._execute_deployment(group)
     op._execute_task.assert_called_once()
     cns.assert_called_once()
    def test_do_execute_exception(self, nl, pdg, get_dgm):
        op = DrydockNodesOperator(main_dag_name="main",
                                  shipyard_conf=CONF_FILE,
                                  task_id="t1")
        with pytest.raises(AirflowException):
            op.dc = copy.deepcopy(
                DeploymentConfigurationOperator.config_keys_defaults)
            op.design_ref = {}
            op.notes_helper = get_notes_helper()
            op.action_id = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            op.task_id = "prepare_and_deploy_nodes"

            op.do_execute()

        assert get_dgm.call_count == 1
        assert nl.call_count == 1
        assert pdg.call_count == 1
예제 #7
0
 def test_execute_deployment_k8s_fail(self, cns, caplog):
     op = DrydockNodesOperator(main_dag_name="main",
                               shipyard_conf=CONF_FILE,
                               task_id="t1")
     op.dc = copy.deepcopy(
         DeploymentConfigurationOperator.config_keys_defaults)
     op._setup_configured_values()
     op._execute_task = mock.MagicMock(return_value=TASK_RESULT)
     op.join_wait = 0
     group = DeploymentGroup(GROUP_DICT, mock.MagicMock())
     group.actionable_nodes = ['node1', 'node2', 'node3']
     task_res = op._execute_deployment(group)
     op._execute_task.assert_called_once()
     cns.assert_called_once()
     assert 'node4 failed to join Kubernetes' in caplog.text
     assert len(task_res.successes) == 2
예제 #8
0
 def test_do_execute_with_dgm(self, nl, caplog):
     op = DrydockNodesOperator(main_dag_name="main",
                               shipyard_conf=CONF_FILE,
                               task_id="t1")
     op.dc = copy.deepcopy(
         DeploymentConfigurationOperator.config_keys_defaults)
     op.design_ref = {"a": "b"}
     op.do_execute()
     assert "critical groups have met their success criteria" in caplog.text
예제 #9
0
    def test_do_execute_exception(self, nl, pdg, get_dgm):
        op = DrydockNodesOperator(main_dag_name="main",
                                  shipyard_conf=CONF_FILE,
                                  task_id="t1")
        with pytest.raises(AirflowException):
            op.dc = copy.deepcopy(
                DeploymentConfigurationOperator.config_keys_defaults)
            op.design_ref = {}
            op.do_execute()

        get_dgm.assert_called_once()
        nl.assert_called_once()
        pdg.assert_called_once()
 def test_init_DrydockNodesOperator(self):
     op = DrydockNodesOperator(main_dag_name="main",
                               shipyard_conf=CONF_FILE,
                               task_id="t1")
     assert op is not None