Ejemplo n.º 1
0
    def test_lsblk_uuid_no_lsblk(self):
        module = Mock()
        module.get_bin_path = Mock(return_value=None)
        lh = linux.LinuxHardware(module=module, load_on_init=False)
        lsblk_uuids = lh._lsblk_uuid()

        self.assertIsInstance(lsblk_uuids, dict)
        self.assertEqual(len(lsblk_uuids), 0)
Ejemplo n.º 2
0
    def test_blkid_uuid(self):
        module = Mock()
        module.run_command = Mock(return_value=(0, BLKID_OUTPUT,
                                                ''))  # (rc, out, err)
        lh = linux.LinuxHardware(module=module, load_on_init=False)
        blkid_uuid = lh._blkid_uuid('mock_device')

        self.assertEqual(blkid_uuid, '57b1a3e7-9019-4747-9809-7ec52bba9179')
 def idrac_configure_services_mock(self, mocker):
     omsdk_mock = MagicMock()
     idrac_obj = MagicMock()
     omsdk_mock.file_share_manager = idrac_obj
     omsdk_mock.config_mgr = idrac_obj
     type(idrac_obj).create_share_obj = Mock(return_value="servicesstatus")
     type(idrac_obj).set_liason_share = Mock(return_value="servicestatus")
     return idrac_obj
Ejemplo n.º 4
0
    def test_find_bind_mounts_no_findmnts(self):
        module = Mock()
        module.get_bin_path = Mock(return_value=None)
        lh = hardware.linux.LinuxHardware(module=module, load_on_init=False)
        bind_mounts = lh._find_bind_mounts()

        self.assertIsInstance(bind_mounts, set)
        self.assertEqual(len(bind_mounts), 0)
Ejemplo n.º 5
0
 def _mock_module(self):
     mock_module = Mock()
     mock_module.params = {'gather_subset': self.gather_subset,
                           'gather_timeout': 10,
                           'filter': '*'}
     mock_module.get_bin_path = Mock(return_value='/usr/sbin/capsh')
     mock_module.run_command = Mock(return_value=(0, 'Current: =ep', ''))
     return mock_module
Ejemplo n.º 6
0
 def _mock_module(self):
     mock_module = Mock()
     mock_module.params = {
         'gather_subset': self.gather_subset,
         'gather_timeout': 5,
         'filter': '*'
     }
     mock_module.get_bin_path = Mock(return_value=None)
     return mock_module
Ejemplo n.º 7
0
def mock_module():
    mock_module = Mock()
    mock_module.params = {
        'gather_subset': ['all'],
        'gather_timeout': 5,
        'filter': '*'
    }
    mock_module.get_bin_path = Mock(return_value=None)
    return mock_module
Ejemplo n.º 8
0
    def get_port_mock_object(self):
        """
        Helper method to return an na_ontap_port object
        """
        port_obj = port_module()
        port_obj.asup_log_for_cserver = Mock(return_value=None)
        port_obj.server = Mock()
        port_obj.server.invoke_successfully = Mock()

        return port_obj
Ejemplo n.º 9
0
    def test_disable_server_graceful(self):
        set_module_args(
            dict(nitro_user='******',
                 nitro_pass='******',
                 nsip='192.0.2.1',
                 state='present',
                 disabled=True,
                 graceful=True))
        from ansible.modules.network.netscaler import netscaler_server

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        server_proxy_mock = Mock()

        d = {
            'graceful': True,
            'delay': 20,
        }
        with patch.multiple(
                'ansible.modules.network.netscaler.netscaler_server',
                nitro_exception=self.MockException,
                get_nitro_client=m,
                diff_list=Mock(return_value=d),
                get_immutables_intersection=Mock(return_value=[]),
                server_exists=Mock(side_effect=[True, True]),
                ConfigProxy=Mock(return_value=server_proxy_mock),
                do_state_change=Mock(return_value=Mock(errorcode=0))):
            self.module = netscaler_server
            result = self.exited()
            self.assertEqual(
                d, {},
                'Graceful disable options were not discarded from the diff_list with the actual object'
            )
Ejemplo n.º 10
0
    def test_absent_cs_vserver_noop_flow(self):
        set_module_args(
            dict(
                nitro_user='******',
                nitro_pass='******',
                nsip='192.0.2.1',
                state='absent',
            ))
        from ansible.modules.network.netscaler import netscaler_cs_vserver

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        server_proxy_attrs = {
            'diff_object.return_value': {},
        }
        cs_vserver_proxy_mock = Mock()
        cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs)
        config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock)

        with patch.multiple(
                'ansible.modules.network.netscaler.netscaler_cs_vserver',
                get_nitro_client=m,
                diff_list=Mock(return_value={}),
                get_immutables_intersection=Mock(return_value=[]),
                cs_vserver_exists=Mock(side_effect=[False, False]),
                cs_vserver_identical=Mock(side_effect=[False, False]),
                ensure_feature_is_enabled=Mock(return_value=True),
                ConfigProxy=config_proxy_mock,
        ):
            self.module = netscaler_cs_vserver
            self.exited()
            cs_vserver_proxy_mock.assert_not_called()
Ejemplo n.º 11
0
    def test_new_cs_vserver_execution_flow(self):
        set_module_args(
            dict(
                nitro_user='******',
                nitro_pass='******',
                nsip='192.0.2.1',
                state='present',
            ))
        from ansible.modules.network.netscaler import netscaler_cs_vserver

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        server_proxy_attrs = {
            'diff_object.return_value': {},
        }
        cs_vserver_proxy_mock = Mock()
        cs_vserver_proxy_mock.configure_mock(**server_proxy_attrs)
        config_proxy_mock = Mock(return_value=cs_vserver_proxy_mock)

        with patch.multiple(
                'ansible.modules.network.netscaler.netscaler_cs_vserver',
                get_nitro_client=m,
                cs_vserver_exists=Mock(side_effect=[False, True]),
                cs_vserver_identical=Mock(side_effect=[True]),
                ensure_feature_is_enabled=Mock(return_value=True),
                ConfigProxy=config_proxy_mock,
                nitro_exception=self.MockException,
                do_state_change=Mock(return_value=Mock(errorcode=0)),
        ):
            self.module = netscaler_cs_vserver
            self.exited()
            cs_vserver_proxy_mock.assert_has_calls([call.add()])
Ejemplo n.º 12
0
    def test_save_config_not_called_on_state_present(self):
        set_module_args(
            dict(
                nitro_user='******',
                nitro_pass='******',
                nsip='192.0.2.1',
                state='present',
                save_config=False,
            ))
        from ansible.modules.network.netscaler import netscaler_gslb_vserver

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        gslb_service_proxy_mock = Mock()

        with patch.multiple(
                'ansible.modules.network.netscaler.netscaler_gslb_vserver',
                get_nitro_client=m,
                gslb_vserver_exists=Mock(side_effect=[False, True]),
                gslb_vserver_identical=Mock(side_effect=[True]),
                nitro_exception=self.MockException,
                do_state_change=Mock(return_value=Mock(errorcode=0)),
                ensure_feature_is_enabled=Mock(),
                ConfigProxy=Mock(return_value=gslb_service_proxy_mock),
        ):
            self.module = netscaler_gslb_vserver
            self.exited()
            self.assertNotIn(call.save_config(), client_mock.mock_calls)
Ejemplo n.º 13
0
    def test_absent_gslb_site_failed_delete(self):
        set_module_args(dict(
            nitro_user='******',
            nitro_pass='******',
            nsip='192.0.2.1',
            state='absent',
        ))
        from ansible.modules.network.netscaler import netscaler_gslb_site

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        glsb_site_proxy_attrs = {
            'diff_object.return_value': {},
        }
        gslb_site_proxy_mock = Mock()
        gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs)
        config_proxy_mock = Mock(return_value=gslb_site_proxy_mock)

        with patch.multiple(
            'ansible.modules.network.netscaler.netscaler_gslb_site',
            nitro_exception=self.MockException,
            get_nitro_client=m,
            diff_list=Mock(return_value={}),
            get_immutables_intersection=Mock(return_value=[]),
            gslb_site_exists=Mock(side_effect=[True, True]),
            gslb_site_identical=Mock(side_effect=[False, False]),
            ensure_feature_is_enabled=Mock(),
            ConfigProxy=config_proxy_mock,
        ):
            self.module = netscaler_gslb_site
            result = self.failed()
            self.assertEqual(result['msg'], 'GSLB site still exists')
            self.assertTrue(result['failed'])
Ejemplo n.º 14
0
    def test_disabled_state_change_called(self):
        set_module_args(
            dict(
                nitro_user='******',
                nitro_pass='******',
                nsip='192.0.2.1',
                state='present',
            ))

        from ansible.modules.network.netscaler import netscaler_cs_vserver

        cs_vserver_proxy_mock = Mock()

        do_state_change_mock = Mock(return_value=Mock(errorcode=0))
        client_mock = Mock()
        with patch.multiple(
                'ansible.modules.network.netscaler.netscaler_cs_vserver',
                get_nitro_client=Mock(return_value=client_mock),
                ConfigProxy=Mock(return_value=cs_vserver_proxy_mock),
                ensure_feature_is_enabled=Mock(return_value=True),
                cs_vserver_exists=Mock(side_effect=[True, True]),
                cs_vserver_identical=Mock(side_effect=[True, True]),
                nitro_exception=self.MockException,
                do_state_change=do_state_change_mock,
        ):
            self.module = netscaler_cs_vserver
            self.exited()
            self.assertTrue(len(do_state_change_mock.mock_calls) > 0,
                            msg='Did not call state change')
Ejemplo n.º 15
0
    def test_present_gslb_site_identical_flow(self):
        set_module_args(dict(
            nitro_user='******',
            nitro_pass='******',
            nsip='192.0.2.1',
            state='present',
        ))
        from ansible.modules.network.netscaler import netscaler_gslb_site

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        glsb_site_proxy_attrs = {
            'diff_object.return_value': {},
        }
        gslb_site_proxy_mock = Mock()
        gslb_site_proxy_mock.configure_mock(**glsb_site_proxy_attrs)
        config_proxy_mock = Mock(return_value=gslb_site_proxy_mock)

        with patch.multiple(
            'ansible.modules.network.netscaler.netscaler_gslb_site',
            get_nitro_client=m,
            diff_list=Mock(return_value={}),
            get_immutables_intersection=Mock(return_value=[]),
            gslb_site_exists=Mock(side_effect=[True, True]),
            gslb_site_identical=Mock(side_effect=[True, True]),
            nitro_exception=self.MockException,
            ensure_feature_is_enabled=Mock(),
            ConfigProxy=config_proxy_mock,
        ):
            self.module = netscaler_gslb_site
            self.exited()
            gslb_site_proxy_mock.assert_not_called()
Ejemplo n.º 16
0
 def _mock_module(self):
     mock_module = Mock()
     mock_module.params = {
         'gather_subset': self.gather_subset,
         'gather_timeout': 10,
         'filter': '*'
     }
     mock_module.get_bin_path = Mock(return_value='/not/actually/facter')
     mock_module.run_command = Mock(return_value=(0, facter_json_output,
                                                  ''))
     return mock_module
Ejemplo n.º 17
0
 def _mock_module(self):
     mock_module = Mock()
     mock_module.params = {
         'gather_subset': self.gather_subset,
         'gather_timeout': 10,
         'filter': '*'
     }
     mock_module.get_bin_path = Mock(return_value='/usr/bin/lsb_release')
     mock_module.run_command = Mock(
         return_value=(0, lsb_release_a_fedora_output, ''))
     return mock_module
Ejemplo n.º 18
0
def mock_module(gather_subset=None,
                filter=None):
    if gather_subset is None:
        gather_subset = ['all', '!facter', '!ohai']
    if filter is None:
        filter = '*'
    mock_module = Mock()
    mock_module.params = {'gather_subset': gather_subset,
                          'gather_timeout': 5,
                          'filter': filter}
    mock_module.get_bin_path = Mock(return_value=None)
    return mock_module
Ejemplo n.º 19
0
 def test_values_copied_to_actual(self):
     actual = Mock()
     client = Mock()
     values = {
         'some_key': 'some_value',
     }
     ConfigProxy(actual=actual,
                 client=client,
                 attribute_values_dict=values,
                 readwrite_attrs=['some_key'])
     self.assertEqual(actual.some_key,
                      values['some_key'],
                      msg='Failed to pass correct value from values dict')
Ejemplo n.º 20
0
 def test_missing_from_values_dict_not_copied_to_actual(self):
     actual = Mock()
     client = Mock()
     values = {
         'irrelevant_key': 'irrelevant_value',
     }
     print('value %s' % actual.key_for_none)
     ConfigProxy(actual=actual,
                 client=client,
                 attribute_values_dict=values,
                 readwrite_attrs=['key_for_none'])
     print('none %s' % getattr(actual, 'key_for_none'))
     self.assertIsInstance(actual.key_for_none, Mock)
 def test_main_configure_users_failure_case(
         self, idrac_connection_configure_users_mock, idrac_default_args,
         idrac_file_manager_config_users_mock):
     idrac_default_args.update({"share_name": "sharename"})
     error_msg = "Error in Runtime"
     obj2 = MagicMock()
     idrac_connection_configure_users_mock.file_share_manager = obj2
     idrac_connection_configure_users_mock.config_mgr = obj2
     type(obj2).create_share_obj = Mock(side_effect=Exception(error_msg))
     type(obj2).set_liason_share = Mock(side_effect=Exception(error_msg))
     msg = self._run_module_with_fail_json(idrac_default_args)
     assert msg['failed'] is True
     assert msg['msg'] == "Error: {0}".format(error_msg)
    def test_ensure_feature_is_enabled_called(self):
        set_module_args(dict(
            nitro_user='******',
            nitro_pass='******',
            nsip='192.0.2.1',
            state='present',
            save_config=False,
        ))
        from ansible.modules.network.netscaler import netscaler_lb_monitor

        client_mock = Mock()

        lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={}))
        feature_mock = Mock()

        with patch.multiple(
            'ansible.modules.network.netscaler.netscaler_lb_monitor',
            get_nitro_client=Mock(return_value=client_mock),
            lbmonitor_exists=Mock(side_effect=[True, True]),
            lbmonitor_identical=Mock(side_effect=[True, True]),

            ConfigProxy=Mock(return_value=lb_monitor_proxy_mock),
            ensure_feature_is_enabled=feature_mock,
        ):
            self.module = netscaler_lb_monitor
            self.exited()
            feature_mock.assert_called_with(client_mock, 'LB')
    def test_present_server_failed_create(self):
        set_module_args(
            dict(
                nitro_user='******',
                nitro_pass='******',
                nsip='192.0.2.1',
                state='present',
            ))
        from ansible.modules.network.netscaler import netscaler_ssl_certkey

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        ssl_certkey_proxy_attrs = {
            'diff_object.return_value': {},
        }
        ssl_certkey_proxy_mock = Mock()
        ssl_certkey_proxy_mock.configure_mock(**ssl_certkey_proxy_attrs)
        config_proxy_mock = Mock(return_value=ssl_certkey_proxy_mock)

        with patch.multiple(
                'ansible.modules.network.netscaler.netscaler_ssl_certkey',
                nitro_exception=self.MockException,
                get_nitro_client=m,
                diff_list=Mock(return_value={}),
                get_immutables_intersection=Mock(return_value=[]),
                key_exists=Mock(side_effect=[False, False]),
                key_identical=Mock(side_effect=[False, False]),
                ConfigProxy=config_proxy_mock,
        ):
            self.module = netscaler_ssl_certkey
            result = self.failed()
            self.assertEqual(result['msg'], 'SSL certkey does not exist')
            self.assertTrue(result['failed'])
Ejemplo n.º 24
0
    def test_servicegroup_monitor_bindings_sanity(self):
        self.set_module_state('present')
        from ansible.modules.network.netscaler import netscaler_servicegroup
        servicegroup_proxy_mock = MagicMock()
        attrs = {
            'diff_object.return_value': {},
        }
        servicegroup_proxy_mock.configure_mock(**attrs)

        m = MagicMock(return_value=servicegroup_proxy_mock)
        sync_mock = Mock()

        with patch.multiple(
            'ansible.modules.network.netscaler.netscaler_servicegroup',
            ConfigProxy=m,
            servicegroup_exists=Mock(side_effect=[True, True]),
            servicegroup_identical=Mock(side_effect=[True, True]),
            monitor_bindings_identical=Mock(side_effect=[False, False]),
            sync_monitor_bindings=Mock(),
            servicemembers_identical=Mock(side_effect=[True, True]),
            nitro_exception=self.MockException,
            sync_service_members=sync_mock,
            do_state_change=Mock(return_value=Mock(errorcode=0)),
        ):
            self.module = netscaler_servicegroup
            result = self.failed()
            self.assertEqual(result['msg'], 'Monitor bindings are not identical')
    def test_create_new_lb_monitor_workflow(self):
        set_module_args(dict(
            nitro_user='******',
            nitro_pass='******',
            nsip='192.0.2.1',
            state='present',
            save_config=False,
        ))
        from ansible.modules.network.netscaler import netscaler_lb_monitor

        lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={}))

        with patch.multiple(
            'ansible.modules.network.netscaler.netscaler_lb_monitor',
            get_nitro_client=Mock(return_value=Mock()),
            lbmonitor_exists=Mock(side_effect=[False, True]),
            lbmonitor_identical=Mock(side_effect=[True]),

            ConfigProxy=Mock(return_value=lb_monitor_proxy_mock),
            ensure_feature_is_enabled=Mock(return_value=True),
        ):
            self.module = netscaler_lb_monitor
            result = self.exited()
            lb_monitor_proxy_mock.assert_has_calls([call.add()])
            self.assertTrue(result['changed'])
Ejemplo n.º 26
0
    def test_update_servicegroup_when_service_members_differ(self):
        self.set_module_state('present')
        from ansible.modules.network.netscaler import netscaler_servicegroup
        servicegroup_proxy_mock = MagicMock()
        attrs = {
            'diff_object.return_value': {},
        }
        servicegroup_proxy_mock.configure_mock(**attrs)

        m = MagicMock(return_value=servicegroup_proxy_mock)
        sync_mock = Mock()

        with patch.multiple(
            'ansible.modules.network.netscaler.netscaler_servicegroup',
            ConfigProxy=m,
            servicegroup_exists=Mock(side_effect=[True, True]),
            servicegroup_identical=Mock(side_effect=[True, True]),
            monitor_bindings_identical=Mock(side_effect=[True, True]),
            sync_monitor_bindings=Mock(),
            servicemembers_identical=Mock(side_effect=[False, True]),
            sync_service_members=sync_mock,
            do_state_change=Mock(return_value=Mock(errorcode=0)),
        ):
            self.module = netscaler_servicegroup
            result = self.exited()
        # poor man's assert_called_once since python3.5 does not implement that mock method
        self.assertEqual(len(sync_mock.mock_calls), 1, msg='sync monitor bindings not called once')
        self.assertTrue(result['changed'], msg='Change not recorded')
    def test_lb_monitor_exists_sanity_check(self):
        set_module_args(dict(
            nitro_user='******',
            nitro_pass='******',
            nsip='192.0.2.1',
            state='present',
        ))
        from ansible.modules.network.netscaler import netscaler_lb_monitor

        lb_monitor_proxy_mock = Mock(diff_object=Mock(return_value={}))

        client_mock = Mock()

        with patch.multiple(
            'ansible.modules.network.netscaler.netscaler_lb_monitor',
            get_nitro_client=Mock(return_value=client_mock),
            lbmonitor_exists=Mock(side_effect=[False, False]),
            lbmonitor_identical=Mock(side_effect=[False, True]),
            ConfigProxy=Mock(return_value=lb_monitor_proxy_mock),
            ensure_feature_is_enabled=Mock(return_value=True),
            nitro_exception=self.MockException,
        ):
            self.module = netscaler_lb_monitor
            result = self.failed()
            self.assertEqual(result['msg'], 'lb monitor does not exist')
Ejemplo n.º 28
0
    def test_raw_test_environment_is_None(self):

        task = MagicMock(Task)
        task.async_val = False

        task.args = {'_raw_params': 'Args1'}
        task.environment = None
        self.play_context.check_mode = False

        self.mock_am = ActionModule(task, self.connection, self.play_context, loader=None, templar=None, shared_loader_obj=None)
        self.mock_am._low_level_execute_command = Mock(return_value={})
        self.mock_am.display = Mock()

        self.assertEqual(task.environment, None)
Ejemplo n.º 29
0
    def test_save_config_not_called_on_state_present(self):
        set_module_args(
            dict(
                nitro_user='******',
                nitro_pass='******',
                nsip='192.0.2.1',
                state='present',
                save_config=False,
            ))
        from ansible.modules.network.netscaler import netscaler_server

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        server_proxy_mock = Mock()

        with patch.multiple(
                'ansible.modules.network.netscaler.netscaler_server',
                get_nitro_client=m,
                server_exists=Mock(side_effect=[False, True]),
                ConfigProxy=Mock(return_value=server_proxy_mock),
                diff_list=Mock(return_value={}),
                do_state_change=Mock(return_value=Mock(errorcode=0))):
            self.module = netscaler_server
            self.exited()
            self.assertNotIn(call.save_config(), client_mock.mock_calls)
Ejemplo n.º 30
0
    def test_do_state_change_fail(self):
        set_module_args(
            dict(
                nitro_user='******',
                nitro_pass='******',
                nsip='192.0.2.1',
                state='present',
            ))
        from ansible.modules.network.netscaler import netscaler_server

        client_mock = Mock()

        m = Mock(return_value=client_mock)

        server_proxy_mock = Mock()

        with patch.multiple(
                'ansible.modules.network.netscaler.netscaler_server',
                nitro_exception=self.MockException,
                get_nitro_client=m,
                server_exists=Mock(side_effect=[True, False]),
                ConfigProxy=Mock(return_value=server_proxy_mock),
                diff_list=Mock(return_value={}),
                do_state_change=Mock(return_value=Mock(
                    errorcode=1, message='Failed on purpose'))):
            self.module = netscaler_server
            result = self.failed()
            self.assertEqual(
                result['msg'],
                'Error when setting disabled state. errorcode: 1 message: Failed on purpose'
            )