def test_modify_vlans_idempotent(self, *args): set_module_args( dict(name="my-virtual-server", partition="Common", disabled_vlans=["net1"], state="present", provider=dict(server='localhost', password='******', user='******'))) # Configure the parameters that would be returned by querying the # remote device current = ApiParameters(params=load_fixture('load_ltm_virtual_2.json')) module = AnsibleModule( argument_spec=self.spec.argument_spec, supports_check_mode=self.spec.supports_check_mode, mutually_exclusive=self.spec.mutually_exclusive) # Override methods to force specific logic in the module to happen mm = ModuleManager(module=module) mm.exists = Mock(return_value=True) mm.read_current_from_device = Mock(return_value=current) results = mm.exec_module() assert results['changed'] is False
def test_enable_vs_that_is_already_enabled(self, *args): set_module_args( dict(all_profiles=['http', 'clientssl'], description="Test Virtual Server", destination="10.10.10.10", name="my-snat-pool", partition="Common", port="443", snat="Automap", state="absent", provider=dict(server='localhost', password='******', user='******'))) # Configure the parameters that would be returned by querying the # remote device current = ApiParameters(dict(agent_status_traps='disabled')) module = AnsibleModule( argument_spec=self.spec.argument_spec, supports_check_mode=self.spec.supports_check_mode, mutually_exclusive=self.spec.mutually_exclusive) # Override methods to force specific logic in the module to happen mm = ModuleManager(module=module) mm.exists = Mock(return_value=False) mm.update_on_device = Mock(return_value=True) mm.read_current_from_device = Mock(return_value=current) results = mm.exec_module() assert results['changed'] is False
def test_modify_profiles(self, *args): set_module_args( dict(name="my-virtual-server", partition="Common", profiles=['http', 'clientssl'], state="present", provider=dict(server='localhost', password='******', user='******'))) # Configure the parameters that would be returned by querying the # remote device current = ApiParameters(params=load_fixture('load_ltm_virtual_2.json')) module = AnsibleModule( argument_spec=self.spec.argument_spec, supports_check_mode=self.spec.supports_check_mode, mutually_exclusive=self.spec.mutually_exclusive) # Override methods to force specific logic in the module to happen mm = ModuleManager(module=module) mm.exists = Mock(return_value=True) mm.read_current_from_device = Mock(return_value=current) mm.update_on_device = Mock(return_value=True) results = mm.exec_module() assert results['changed'] is True assert len(results['profiles']) == 2 assert 'name' in results['profiles'][0] assert 'context' in results['profiles'][0] assert results['profiles'][0]['name'] == 'http' assert results['profiles'][0]['context'] == 'all' assert 'name' in results['profiles'][1] assert 'context' in results['profiles'][1] assert results['profiles'][1]['name'] == 'clientssl' assert results['profiles'][1]['context'] == 'clientside'
def test_update_virtual_server(self, *args): set_module_args( dict(profiles=[dict(name='http'), dict(name='clientssl')], description="foo virtual", destination="1.1.1.1", name="my-virtual-server", partition="Common", port="8443", snat="snat-pool1", state="disabled", source='1.2.3.4/32', irules=['irule1', 'irule2'], policies=['policy1', 'policy2'], enabled_vlans=['vlan1', 'vlan2'], pool='my-pool', default_persistence_profile='source_addr', fallback_persistence_profile='dest_addr', provider=dict(server='localhost', password='******', user='******'))) # Configure the parameters that would be returned by querying the # remote device current = ApiParameters(params=load_fixture('load_ltm_virtual_3.json')) module = AnsibleModule( argument_spec=self.spec.argument_spec, supports_check_mode=self.spec.supports_check_mode, mutually_exclusive=self.spec.mutually_exclusive) # Override methods to force specific logic in the module to happen mm = ModuleManager(module=module) mm.exists = Mock(return_value=True) mm.read_current_from_device = Mock(return_value=current) mm.update_on_device = Mock(return_value=True) results = mm.exec_module() assert results['changed'] is True assert results['source'] == '1.2.3.4/32' assert results['description'] == 'foo virtual' assert results['snat'] == '/Common/snat-pool1' assert results['destination'] == '1.1.1.1' assert results['port'] == 8443 assert results['default_persistence_profile'] == '/Common/source_addr' assert results['fallback_persistence_profile'] == '/Common/dest_addr' # policies assert len(results['policies']) == 2 assert '/Common/policy1' in results['policies'] assert '/Common/policy2' in results['policies'] # irules assert len(results['irules']) == 2 assert '/Common/irule1' in results['irules'] assert '/Common/irule2' in results['irules'] # vlans assert len(results['enabled_vlans']) == 2 assert '/Common/vlan1' in results['enabled_vlans'] assert '/Common/vlan2' in results['enabled_vlans'] # profiles assert len(results['profiles']) == 2 assert 'name' in results['profiles'][0] assert 'context' in results['profiles'][0] assert results['profiles'][0]['name'] == 'http' assert results['profiles'][0]['context'] == 'all' assert 'name' in results['profiles'][1] assert 'context' in results['profiles'][1] assert results['profiles'][1]['name'] == 'clientssl' assert results['profiles'][1]['context'] == 'clientside'