예제 #1
0
    def test_should_do_nothing_when_templates_not_exists(self):
        self.resource.get_by_name.return_value = None

        self.mock_ansible_module.params = PARAMS_FOR_ABSENT

        ServerProfileTemplateModule().run()

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=False, msg=ServerProfileTemplateModule.MSG_ALREADY_ABSENT)
예제 #2
0
    def test_should_delete_when_template_exists(self):
        self.resource.data = CREATED_BASIC_TEMPLATE

        self.mock_ansible_module.params = PARAMS_FOR_ABSENT

        ServerProfileTemplateModule().run()

        self.resource.delete.assert_called_once_with()

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=True, msg=ServerProfileTemplateModule.MSG_DELETED)
예제 #3
0
    def test_should_not_modify_when_template_already_exists(self):
        self.resource.data = CREATED_BASIC_TEMPLATE
        self.resource.create.return_value = CREATED_BASIC_TEMPLATE

        self.mock_ansible_module.params = PARAMS_FOR_PRESENT

        ServerProfileTemplateModule().run()

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=False,
            msg=ServerProfileTemplateModule.MSG_ALREADY_PRESENT,
            ansible_facts=dict(server_profile_template=CREATED_BASIC_TEMPLATE))
    def test_should_create_new_template_when_it_not_exists(self):
        self.resource.get_by_name.return_value = []
        self.resource.create.return_value = CREATED_BASIC_TEMPLATE

        self.mock_ansible_module.params = PARAMS_FOR_PRESENT

        ServerProfileTemplateModule().run()

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=True,
            msg=ServerProfileTemplateModule.MSG_CREATED,
            ansible_facts=dict(server_profile_template=CREATED_BASIC_TEMPLATE))
    def test_should_fail_when_enclosure_group_not_found(self):
        self.resource.data = CREATED_BASIC_TEMPLATE
        self.resource.update.return_value = CREATED_BASIC_TEMPLATE
        self.mock_ov_client.enclosure_groups.get_by.return_value = []
        self.mock_ov_client.server_hardware_types.get_by.return_value = [{'uri': SHT_URI}]

        self.mock_ansible_module.params = deepcopy(PARAMS_FOR_UPDATE_WITH_NAME)

        ServerProfileTemplateModule().run()

        self.mock_ansible_module.fail_json.assert_called_once_with(
            exception=mock.ANY, msg=ServerProfileTemplateModule.MSG_ENCLOSURE_GROUP_NOT_FOUND + 'EG Name')
예제 #6
0
    def test_should_update_when_data_has_modified_attributes(self):
        self.resource.data = CREATED_BASIC_TEMPLATE
        self.resource.update.return_value = CREATED_BASIC_TEMPLATE

        self.mock_ansible_module.params = PARAMS_FOR_UPDATE

        ServerProfileTemplateModule().run()

        expected = CREATED_BASIC_TEMPLATE.copy()
        expected.update(BASIC_TEMPLATE_MODIFIED)

        self.resource.update.assert_called_once_with(expected)

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=True,
            msg=ServerProfileTemplateModule.MSG_UPDATED,
            ansible_facts=dict(server_profile_template=CREATED_BASIC_TEMPLATE))
    def test_update_using_names_for_dependecies(self):
        self.resource.data = CREATED_BASIC_TEMPLATE
        self.resource.update.return_value = CREATED_BASIC_TEMPLATE
        self.mock_ov_client.enclosure_groups.get_by.return_value = [{'uri': ENCLOSURE_GROUP_URI}]
        self.mock_ov_client.server_hardware_types.get_by.return_value = [{'uri': SHT_URI}]

        self.mock_ansible_module.params = deepcopy(PARAMS_FOR_UPDATE_WITH_NAME)

        ServerProfileTemplateModule().run()

        expected = CREATED_BASIC_TEMPLATE.copy()
        expected.update(BASIC_TEMPLATE_MODIFIED)

        self.resource.update.assert_called_once_with(expected)

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=True,
            msg=ServerProfileTemplateModule.MSG_UPDATED,
            ansible_facts=dict(server_profile_template=CREATED_BASIC_TEMPLATE)
        )
    def test_should_accept_a_sp_as_base(self):
        modified_data = deepcopy(CREATED_BASIC_TEMPLATE)
        modified_data['name'] = None
        params_with_sp = deepcopy(PARAMS_FOR_PRESENT)
        params_with_sp['data'] = dict(name='ProfileTemplate101', serverProfileName='sp1')
        self.mock_ov_client.server_profiles.get_by.return_value = [dict(name='ProfileTemplate101',
                                                                        serverProfileName='sp1',
                                                                        uri='fake')]
        self.mock_ov_client.server_profiles.get_new_profile_template.return_value = modified_data

        self.resource.get_by_name.return_value = []
        self.resource.create.return_value = CREATED_BASIC_TEMPLATE

        self.mock_ansible_module.params = params_with_sp

        ServerProfileTemplateModule().run()

        self.mock_ansible_module.exit_json.assert_called_once_with(
            changed=True,
            msg=ServerProfileTemplateModule.MSG_CREATED,
            ansible_facts=dict(server_profile_template=CREATED_BASIC_TEMPLATE)
        )