def test_should_fail_when_logical_interconnect_not_found(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = None mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_QOS_AGGREG_CONFIG) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.fail_json.assert_called_once_with( msg=LOGICAL_INTERCONNECT_NOT_FOUND ) @mock.patch.object(OneViewClient, 'from_json_file') @mock.patch('oneview_logical_interconnect.AnsibleModule') def test_should_fail_when_update_qos_raises_exception(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.get_qos_aggregated_configuration.return_value = self.qos_config mock_ov_instance.logical_interconnects.update_qos_aggregated_configuration.side_effect = \ Exception(FAKE_MSG_ERROR) mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_QOS_AGGREG_CONFIG) mock_ansible_module.return_value = mock_ansible_instance self.assertRaises(Exception, LogicalInterconnectModule().run()) mock_ansible_instance.fail_json.assert_called_once_with( msg=FAKE_MSG_ERROR )
def test_should_update_firmware_when_spp_uri_set(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.install_firmware.return_value = self.response self.mock_ansible_module.params = self.PARAMS_FIRMWARE_WITH_SPP_URI LogicalInterconnectModule().run() self.resource.install_firmware.assert_called_once_with(self.expected_data, mock.ANY)
def test_should_fail_when_logical_interconnect_not_found(self): self.resource.get_by_name.return_value = None self.mock_ansible_module.params = self.PARAMS_FIRMWARE_WITH_SPP_URI LogicalInterconnectModule().run() self.mock_ansible_module.fail_json.assert_called_once_with( msg=LOGICAL_INTERCONNECT_NOT_FOUND)
def test_should_fail_when_option_is_invalid(self): self.mock_ansible_module.params = dict( config='config.json', state='ethernet_settings_updated', data=dict(name='Name of the Logical Interconnect')) LogicalInterconnectModule().run() self.mock_ansible_module.fail_json.assert_called_once_with( msg=LOGICAL_INTERCONNECT_NO_OPTIONS_PROVIDED)
def test_should_do_nothing_when_no_changes(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.get_qos_aggregated_configuration.return_value = self.qos_config self.mock_ansible_module.params = self.PARAMS_QOS_AGGREG_NO_CHANGES LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED)
def test_should_do_nothing_when_no_changes(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.update_ethernet_settings.return_value = LOGICAL_INTERCONNECT self.mock_ansible_module.params = self.PARAMS_ETHERNET_SETTINGS_NO_CHANGES LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED)
def test_should_do_nothing_when_no_changes(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.get_port_monitor.return_value = self.monitor_config self.resource.update_port_monitor.return_value = self.monitor_config self.mock_ansible_module.params = self.PARAMS_PORT_MONITOR_CONFIGURATION_NO_CHANGES LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED)
def test_should_load_config_from_file(self, mock_ansible_module, mock_ov_client_from_env_vars, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock({'config': 'config.json'}) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule() mock_ov_client_from_json_file.assert_called_once_with('config.json') mock_ov_client_from_env_vars.not_been_called()
def test_should_update_ethernet_with_merged_data(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.update_ethernet_settings.return_value = LOGICAL_INTERCONNECT self.mock_ansible_module.params = self.PARAMS_ETHERNET_SETTINGS LogicalInterconnectModule().run() expected_uri = '/rest/logical-interconnects/id' expected_data = {'enableIgmpSnooping': True, 'macRefreshInterval': 7} self.resource.update_ethernet_settings.assert_called_once_with(expected_uri, expected_data)
def test_should_install_firmware(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.install_firmware.return_value = self.response self.mock_ansible_module.params = self.PARAMS_FIRMWARE_WITH_SPP_NAME LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_FIRMWARE_INSTALLED, ansible_facts=dict(li_firmware=self.response))
def test_should_update_configuration(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.update_configuration.return_value = LOGICAL_INTERCONNECT self.mock_ansible_module.params = self.PARAMS_CONFIGURATION LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_CONFIGURATION_UPDATED, ansible_facts=dict(logical_interconnect=LOGICAL_INTERCONNECT))
def test_should_generate_interconnect_fib(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.create_forwarding_information_base.return_value = self.response_body self.mock_ansible_module.params = self.PARAMS_GENERATE_FIB LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=self.status, ansible_facts=dict(interconnect_fib=self.response_body))
def test_should_update_ethernet_settings(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.update_ethernet_settings.return_value = LOGICAL_INTERCONNECT self.mock_ansible_module.params = self.PARAMS_ETHERNET_SETTINGS LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_ETH_SETTINGS_UPDATED, ansible_facts=dict(logical_interconnect=LOGICAL_INTERCONNECT))
def test_should_fail_when_ethernet_network_not_found(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.mock_ov_client.ethernet_networks.get_by.side_effect = [[{'uri': '/path/1'}], []] self.resource.update_internal_networks.return_value = {} self.mock_ansible_module.params = self.PARAMS_INTERNAL_NETWORKS LogicalInterconnectModule().run() self.mock_ansible_module.fail_json.assert_called_once_with( msg=LOGICAL_INTERCONNECT_ETH_NETWORK_NOT_FOUND + "Network Name 2" )
def test_should_return_to_a_consistent_state(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.update_compliance.return_value = LOGICAL_INTERCONNECT self.mock_ansible_module.params = self.PARAMS_COMPLIANCE LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_CONSISTENT, ansible_facts=dict(logical_interconnect=LOGICAL_INTERCONNECT))
def test_should_update_firmware_when_spp_uri_set(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.install_firmware.return_value = self.response mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_FIRMWARE_WITH_SPP_URI) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ov_instance.logical_interconnects.install_firmware.assert_called_once_with(self.expected_data, mock.ANY)
def test_should_fail_when_logical_interconnect_not_found(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = None mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_FIRMWARE_WITH_SPP_URI) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.fail_json.assert_called_once_with( msg=LOGICAL_INTERCONNECT_NOT_FOUND )
def test_should_update_qos_aggreg_config(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.resource.get_qos_aggregated_configuration.return_value = self.qos_config self.resource.update_qos_aggregated_configuration.return_value = self.qos_config self.mock_ansible_module.params = self.PARAMS_QOS_AGGREG_CONFIG LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_QOS_UPDATED, ansible_facts=dict(qos_configuration=self.qos_config))
def test_should_update_internal_networks_with_given_list(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.mock_ov_client.ethernet_networks.get_by.side_effect = [[{'uri': '/path/1'}], [{'uri': '/path/2'}]] self.resource.update_internal_networks.return_value = LOGICAL_INTERCONNECT self.mock_ansible_module.params = self.PARAMS_INTERNAL_NETWORKS LogicalInterconnectModule().run() expected_uri = '/rest/logical-interconnects/id' expected_list = ['/path/1', '/path/2', '/path/3'] self.resource.update_internal_networks.assert_called_once_with(expected_uri, expected_list)
def test_should_do_nothing_when_no_changes(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.get_qos_aggregated_configuration.return_value = self.qos_config mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_QOS_AGGREG_NO_CHANGES) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED)
def test_should_do_nothing_when_no_changes(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.update_ethernet_settings.return_value = LOGICAL_INTERCONNECT mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_ETHERNET_SETTINGS_NO_CHANGES) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED)
def test_should_fail_when_compliance_raises_exception(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.update_compliance.side_effect = Exception(FAKE_MSG_ERROR) mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_COMPLIANCE) mock_ansible_module.return_value = mock_ansible_instance self.assertRaises(Exception, LogicalInterconnectModule().run()) mock_ansible_instance.fail_json.assert_called_once_with( msg=FAKE_MSG_ERROR )
def test_should_update_internal_networks(self): self.resource.get_by_name.return_value = LOGICAL_INTERCONNECT self.mock_ov_client.ethernet_networks.get_by.side_effect = [[{'uri': '/path/1'}], [{'uri': '/path/2'}]] self.resource.update_internal_networks.return_value = LOGICAL_INTERCONNECT self.mock_ansible_module.params = self.PARAMS_INTERNAL_NETWORKS LogicalInterconnectModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_INTERNAL_NETWORKS_UPDATED, ansible_facts=dict(logical_interconnect=LOGICAL_INTERCONNECT) )
def test_should_do_nothing_when_no_changes(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.get_port_monitor.return_value = self.monitor_config mock_ov_instance.logical_interconnects.update_port_monitor.return_value = self.monitor_config mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_PORT_MONITOR_CONFIGURATION_NO_CHANGES) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=False, msg=LOGICAL_INTERCONNECT_NO_CHANGES_PROVIDED)
def test_should_fail_when_ethernet_network_not_found(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.ethernet_networks.get_by.side_effect = [[{'uri': '/path/1'}], []] mock_ov_instance.logical_interconnects.update_internal_networks.return_value = {} mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_INTERNAL_NETWORKS) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.fail_json.assert_called_once_with( msg=LOGICAL_INTERCONNECT_ETH_NETWORK_NOT_FOUND + "Network Name 2" )
def test_should_update_ethernet_with_merged_data(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.update_ethernet_settings.return_value = LOGICAL_INTERCONNECT mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_ETHERNET_SETTINGS) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() expected_uri = '/rest/logical-interconnects/id' expected_data = {'enableIgmpSnooping': True, 'macRefreshInterval': 7} mock_ov_instance.logical_interconnects.update_ethernet_settings.assert_called_once_with(expected_uri, expected_data)
def test_should_install_firmware(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.install_firmware.return_value = self.response mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_FIRMWARE_WITH_SPP_NAME) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_FIRMWARE_INSTALLED, ansible_facts=dict(li_firmware=self.response) )
def test_should_update_configuration(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.update_configuration.return_value = LOGICAL_INTERCONNECT mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_CONFIGURATION) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_CONFIGURATION_UPDATED, ansible_facts=dict(logical_interconnect=LOGICAL_INTERCONNECT) )
def test_should_return_to_a_consistent_state(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.update_compliance.return_value = LOGICAL_INTERCONNECT mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_COMPLIANCE) mock_ansible_module.return_value = mock_ansible_instance LogicalInterconnectModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=True, msg=LOGICAL_INTERCONNECT_CONSISTENT, ansible_facts=dict(logical_interconnect=LOGICAL_INTERCONNECT) )
def test_should_fail_when_generate_fib_raises_exception(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.logical_interconnects.get_by_name.return_value = LOGICAL_INTERCONNECT mock_ov_instance.logical_interconnects.create_forwarding_information_base.side_effect = \ Exception(FAKE_MSG_ERROR) mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock(self.PARAMS_GENERATE_FIB) mock_ansible_module.return_value = mock_ansible_instance self.assertRaises(Exception, LogicalInterconnectModule().run()) mock_ansible_instance.fail_json.assert_called_once_with( msg=FAKE_MSG_ERROR )