コード例 #1
0
    def test_api_strict_updates_from_top_level(self):
        args = dict(strictUpdates='enabled')
        p = Parameters(args)
        assert p.strict_updates == 'enabled'

        args = dict(strictUpdates='disabled')
        p = Parameters(args)
        assert p.strict_updates == 'disabled'
コード例 #2
0
    def test_module_strict_updates_only_parameters(self):
        args = dict(parameters=dict(strictUpdates='disabled'))
        p = Parameters(args)
        assert p.strict_updates == 'disabled'

        args = dict(parameters=dict(strictUpdates='enabled'))
        p = Parameters(args)
        assert p.strict_updates == 'enabled'
コード例 #3
0
    def test_module_strict_updates_override_from_top_level(self):
        args = dict(strict_updates=True,
                    parameters=dict(strictUpdates='disabled'))
        p = Parameters(args)
        assert p.strict_updates == 'enabled'

        args = dict(strict_updates=False,
                    parameters=dict(strictUpdates='enabled'))
        p = Parameters(args)
        assert p.strict_updates == 'disabled'
コード例 #4
0
    def test_module_strict_updates_from_top_level(self):
        # Assumes the user did not provide any parameters

        args = dict(strict_updates=True)
        p = Parameters(args)
        assert p.strict_updates == 'enabled'

        args = dict(strict_updates=False)
        p = Parameters(args)
        assert p.strict_updates == 'disabled'
コード例 #5
0
    def test_update_agent_status_traps(self, *args):
        parameters = load_fixture(
            'update_iapp_service_parameters_f5_http.json')
        set_module_args(
            dict(name='foo',
                 template='f5.http',
                 parameters=parameters,
                 state='present',
                 password='******',
                 server='localhost',
                 user='******'))

        # Configure the parameters that would be returned by querying the
        # remote device
        parameters = load_fixture(
            'create_iapp_service_parameters_f5_http.json')
        current = Parameters(parameters)

        client = AnsibleF5Client(
            argument_spec=self.spec.argument_spec,
            supports_check_mode=self.spec.supports_check_mode,
            f5_product_name=self.spec.f5_product_name)
        mm = ModuleManager(client)

        # Override methods to force specific logic in the module to happen
        mm.exists = Mock(return_value=True)
        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 True
コード例 #6
0
    def test_module_parameters_tables(self):
        args = load_fixture('create_iapp_service_parameters_f5_http.json')
        p = Parameters(args)

        assert 'tables' in p._values

        assert 'columnNames' in p.tables[0]
        assert len(p.tables[0]['columnNames']) == 1
        assert p.tables[0]['columnNames'][0] == 'name'

        assert 'name' in p.tables[0]
        assert p.tables[0]['name'] == 'pool__hosts'

        assert 'rows' in p.tables[0]
        assert len(p.tables[0]['rows']) == 1
        assert 'row' in p.tables[0]['rows'][0]
        assert len(p.tables[0]['rows'][0]['row']) == 1
        assert p.tables[0]['rows'][0]['row'][0] == 'demo.example.com'

        assert len(p.tables[1]['rows']) == 2
        assert 'row' in p.tables[0]['rows'][0]
        assert len(p.tables[1]['rows'][0]['row']) == 2
        assert p.tables[1]['rows'][0]['row'][0] == '10.1.1.1'
        assert p.tables[1]['rows'][0]['row'][1] == '0'
        assert p.tables[1]['rows'][1]['row'][0] == '10.1.1.2'
        assert p.tables[1]['rows'][1]['row'][1] == '0'
コード例 #7
0
 def test_api_parameters_variables(self):
     args = dict(variables=[
         dict(name="client__http_compression",
              encrypted="no",
              value="/#create_new#")
     ])
     p = Parameters(args)
     assert p.variables[0]['name'] == 'client__http_compression'
コード例 #8
0
    def test_module_parameters_keys(self):
        args = load_fixture('create_iapp_service_parameters_f5_http.json')
        p = Parameters(args)

        # Assert the top-level keys
        assert p.name == 'http_example'
        assert p.partition == 'Common'
        assert p.template == '/Common/f5.http'
コード例 #9
0
    def test_module_parameters_keys(self):
        args = load_fixture('create_iapp_service_parameters_f5_http.json')
        p = Parameters(args)

        # Assert the top-level keys
        assert p.name == 'http_example'
        assert p.partition == 'Common'
        assert p.template == '/Common/f5.http'
        assert p.deviceGroup == 'none'
        assert p.inheritedTrafficGroup == 'true'
        assert p.inheritedDevicegroup == 'true'
        assert p.trafficGroup == '/Common/traffic-group-local-only'
コード例 #10
0
    def test_module_parameters_lists(self):
        args = load_fixture('create_iapp_service_parameters_f5_http.json')
        p = Parameters(args)

        assert 'lists' in p._values

        assert p.lists[0]['name'] == 'irules__irules'
        assert p.lists[0]['encrypted'] == 'no'
        assert len(p.lists[0]['value']) == 1
        assert p.lists[0]['value'][0] == '/Common/lgyft'

        assert p.lists[1]['name'] == 'net__client_vlan'
        assert p.lists[1]['encrypted'] == 'no'
        assert len(p.lists[1]['value']) == 1
        assert p.lists[1]['value'][0] == '/Common/net2'
コード例 #11
0
    def test_module_parameters_variables(self):
        args = load_fixture('create_iapp_service_parameters_f5_http.json')
        p = Parameters(args)

        assert 'variables' in p._values
        assert len(p.variables) == 34

        # Assert one configuration value
        assert 'name' in p.variables[0]
        assert 'value' in p.variables[0]
        assert p.variables[0]['name'] == 'afm__dos_security_profile'
        assert p.variables[0]['value'] == '/#do_not_use#'

        # Assert a second configuration value
        assert 'name' in p.variables[1]
        assert 'value' in p.variables[1]
        assert p.variables[1]['name'] == 'afm__policy'
        assert p.variables[1]['value'] == '/#do_not_use#'
コード例 #12
0
 def test_api_parameters_tables(self):
     args = dict(tables=[{
         "name":
         "pool__members",
         "columnNames": ["addr", "port", "connection_limit"],
         "rows": [{
             "row": ["12.12.12.12", "80", "0"]
         }, {
             "row": ["13.13.13.13", "443", 10]
         }]
     }])
     p = Parameters(args)
     assert p.tables[0]['name'] == 'pool__members'
     assert p.tables[0]['columnNames'] == [
         'addr', 'port', 'connection_limit'
     ]
     assert len(p.tables[0]['rows']) == 2
     assert 'row' in p.tables[0]['rows'][0]
     assert 'row' in p.tables[0]['rows'][1]
     assert p.tables[0]['rows'][0]['row'] == ['12.12.12.12', '80', '0']
     assert p.tables[0]['rows'][1]['row'] == ['13.13.13.13', '443', '10']
コード例 #13
0
 def test_api_parameters_device_group(self):
     args = dict(deviceGroup='none')
     p = Parameters(args)
     assert p.deviceGroup == 'none'
コード例 #14
0
 def test_module_template_different_partition_full_path(self):
     args = dict(template='/Common/foo', partition='bar')
     p = Parameters(args)
     assert p.template == '/Common/foo'
コード例 #15
0
 def test_module_template_same_partition_full_path(self):
     args = dict(template='/bar/foo', partition='bar')
     p = Parameters(args)
     assert p.template == '/bar/foo'
コード例 #16
0
 def test_api_parameters_traffic_group(self):
     args = dict(trafficGroup='/Common/traffic-group-local-only')
     p = Parameters(args)
     assert p.trafficGroup == '/Common/traffic-group-local-only'
コード例 #17
0
 def test_api_parameters_inherited_devicegroup(self):
     args = dict(inheritedDevicegroup='true')
     p = Parameters(args)
     assert p.inheritedDevicegroup == 'true'
コード例 #18
0
 def test_api_parameters_inherited_traffic_group(self):
     args = dict(inheritedTrafficGroup='true')
     p = Parameters(args)
     assert p.inheritedTrafficGroup == 'true'