def test_reserve_authority_member_without_dhcp_support(
            self, dbi_next_authority_mock, dbi_network_view_mock):
        user_id = 'test user'
        self.grid_config.dhcp_support = False
        self.grid_config.dns_view = 'test-view'

        test_authority_member = utils.json_to_obj(
            'AuthorityMember',
            {'member_id': 'member-id', 'member_type': 'GM',
             'member_ip': '11.11.1.10', 'member_ipv6': None,
             'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
             'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
             'member_wapi': '11.11.1.10'})
        dbi_next_authority_mock.return_value = test_authority_member

        test_network_view = utils.json_to_obj(
            'NetworkView',
            {'id': 'test-id', 'network_view': 'test-view', 'shared': False})
        dbi_network_view_mock.return_value = test_network_view

        ib_cxt = ib_context.InfobloxContext(self.ctx, user_id, None, None,
                                            self.grid_config, self.plugin)
        ib_cxt.mapping.network_view = test_network_view.network_view

        ib_cxt.reserve_authority_member()

        self.assertEqual(test_network_view.network_view,
                         ib_cxt.mapping.network_view)
        self.assertEqual(test_authority_member.member_id,
                         ib_cxt.mapping.authority_member.member_id)
Exemple #2
0
    def test_reserve_authority_member_without_dhcp_support(
            self, dbi_next_authority_mock, dbi_network_view_mock):
        user_id = 'test user'
        self.grid_config.dhcp_support = False
        self.grid_config.dns_view = 'test-view'

        test_authority_member = utils.json_to_obj(
            'AuthorityMember',
            {'member_id': 'member-id', 'member_type': 'GM',
             'member_ip': '11.11.1.10', 'member_ipv6': None,
             'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
             'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
             'member_wapi': '11.11.1.10'})
        dbi_next_authority_mock.return_value = test_authority_member

        test_network_view = utils.json_to_obj(
            'NetworkView',
            {'id': 'test-id', 'network_view': 'test-view', 'shared': False})
        dbi_network_view_mock.return_value = test_network_view

        ib_cxt = self._get_ib_context(user_id, None, None)
        ib_cxt.mapping.network_view = test_network_view.network_view

        ib_cxt.reserve_authority_member()

        self.assertEqual(test_network_view.network_view,
                         ib_cxt.mapping.network_view)
        self.assertEqual(test_authority_member.member_id,
                         ib_cxt.mapping.authority_member.member_id)
    def test_update_network_sync_with_network_view_mapping(
            self, netview_mapping_mock, find_row_mock):
        test_opts = dict()
        self.helper.prepare_test(test_opts)

        test_netview_mapping = utils.json_to_obj('NetworkViewMapping', {
            'network_view_id': 'test-id',
            'network_view': 'test-view'
        })
        test_netview = utils.json_to_obj('NetworkView', {
            'id': 'test-id',
            'network_view': 'test-view'
        })
        netview_mapping_mock.return_value = [test_netview_mapping]
        find_row_mock.return_value = test_netview

        ipam_controller = ipam.IpamAsyncController(self.ib_cxt)
        with mock.patch.object(dbi,
                               'get_subnets_by_network_id',
                               return_value=[{
                                   'id': 'subnet-id',
                                   'cidr': '11.11.1.0/24',
                                   'network_id': 'test_net'
                               }]):
            ipam_controller.update_network_sync()
            assert self.ib_cxt.ibom.get_network.called
            assert self.ib_cxt.ibom.update_network_options.called
Exemple #4
0
    def test_get_nameservers_dns_fields(self):
        test_dhcp_member_1 = utils.json_to_obj(
            'DhcpMember', {
                'member_id': 'member-id',
                'member_type': 'REGULAR',
                'member_ip': '11.11.1.12',
                'member_ipv6': '2001::1',
                'member_dhcp_ip': '12.12.1.12',
                'member_dhcp_ipv6': '2009::1',
                'member_dns_ip': '15.10.1.2',
                'member_dns_ipv6': '2016::1',
                'member_name': 'm1',
                'member_status': 'ON'
            })
        test_dhcp_member_2 = utils.json_to_obj(
            'DhcpMember', {
                'member_id': 'member-id',
                'member_type': 'CPM',
                'member_ip': '11.11.1.13',
                'member_ipv6': '2001::2',
                'member_dhcp_ip': '12.12.1.13',
                'member_dhcp_ipv6': '2009::2',
                'member_dns_ip': '15.10.1.3',
                'member_dns_ipv6': '2016::2',
                'member_name': 'm1',
                'member_status': 'ON'
            })
        dns_members = [test_dhcp_member_1, test_dhcp_member_2]

        self._test_get_nameservers(dns_members, 'member_dns_ip', 4)
        self._test_get_nameservers(dns_members, 'member_dns_ipv6', 6)
    def test_get_dns_members_with_dhcp_support(self):
        user_id = 'test user'
        tenant_id = '90fbad5a098a4b7cb98826128d5b40b3'

        # prepare network
        network_name = 'Test Network'
        network = self.plugin_stub.create_network(tenant_id, network_name)

        # prepare subnet
        subnet_name = 'Test Subnet'
        subnet_cidr = '11.11.1.0/24'
        subnet = self.plugin_stub.create_subnet(tenant_id, subnet_name,
                                                network['id'], subnet_cidr)

        self.grid_config.dhcp_support = True

        ib_cxt = ib_context.InfobloxContext(self.ctx, user_id, network, subnet,
                                            self.grid_config, self.plugin)

        test_authority_member = utils.json_to_obj(
            'AuthorityMember',
            {'member_id': 'member-id', 'member_type': 'GM',
             'member_ip': '11.11.1.11', 'member_ipv6': None,
             'member_name': 'gm', 'member_status': 'ON',
             'member_wapi': '11.11.1.11'})
        ib_cxt.mapping.authority_member = test_authority_member

        test_dhcp_member_1 = utils.json_to_obj(
            'DhcpMember',
            {'member_id': 'member-id', 'member_type': 'REGULAR',
             'member_ip': '11.11.1.12', 'member_ipv6': None,
             'member_name': 'm1', 'member_status': 'ON',
             'member_wapi': '11.11.1.12'})
        test_dhcp_member_2 = utils.json_to_obj(
            'DhcpMember',
            {'member_id': 'member-id', 'member_type': 'CPM',
             'member_ip': '11.11.1.13', 'member_ipv6': None,
             'member_name': 'm2', 'member_status': 'ON',
             'member_wapi': '11.11.1.13'})
        ib_cxt.mapping.dhcp_members = [test_dhcp_member_1, test_dhcp_member_2]
        ib_cxt.mapping.dns_members = [test_dhcp_member_1, test_dhcp_member_2]

        grid_primaries, grid_secondaries = ib_cxt.get_dns_members()

        expected_primaries = [
            ib_objects.AnyMember(_struct='memberserver',
                                 name=test_authority_member.member_name)]
        expected_secondaries = [
            ib_objects.AnyMember(_struct='memberserver',
                                 name=test_dhcp_member_1.member_name),
            ib_objects.AnyMember(_struct='memberserver',
                                 name=test_dhcp_member_2.member_name)]
        self.assertEqual(expected_primaries, grid_primaries)
        self.assertEqual(expected_secondaries, grid_secondaries)
Exemple #6
0
    def test_get_dns_members_with_dhcp_support(self):
        user_id = 'test user'
        tenant_id = '90fbad5a098a4b7cb98826128d5b40b3'

        # prepare network
        network_name = 'Test Network'
        network = self.plugin_stub.create_network(tenant_id, network_name)

        # prepare subnet
        subnet_name = 'Test Subnet'
        subnet_cidr = '11.11.1.0/24'
        subnet = self.plugin_stub.create_subnet(tenant_id, subnet_name,
                                                network['id'], subnet_cidr)

        self.grid_config.dhcp_support = True

        ib_cxt = self._get_ib_context(user_id, network, subnet)

        test_authority_member = utils.json_to_obj(
            'AuthorityMember',
            {'member_id': 'member-id', 'member_type': 'GM',
             'member_ip': '11.11.1.11', 'member_ipv6': None,
             'member_name': 'gm', 'member_status': 'ON',
             'member_wapi': '11.11.1.11'})
        ib_cxt.mapping.authority_member = test_authority_member

        test_dhcp_member_1 = utils.json_to_obj(
            'DhcpMember',
            {'member_id': 'member-id', 'member_type': 'REGULAR',
             'member_ip': '11.11.1.12', 'member_ipv6': None,
             'member_name': 'm1', 'member_status': 'ON',
             'member_wapi': '11.11.1.12'})
        test_dhcp_member_2 = utils.json_to_obj(
            'DhcpMember',
            {'member_id': 'member-id', 'member_type': 'CPM',
             'member_ip': '11.11.1.13', 'member_ipv6': None,
             'member_name': 'm2', 'member_status': 'ON',
             'member_wapi': '11.11.1.13'})
        ib_cxt.mapping.dhcp_members = [test_dhcp_member_1, test_dhcp_member_2]
        ib_cxt.mapping.dns_members = [test_dhcp_member_1, test_dhcp_member_2]

        grid_primaries, grid_secondaries = ib_cxt.get_dns_members()

        expected_primaries = [
            ib_objects.AnyMember(_struct='memberserver',
                                 name=test_authority_member.member_name)]
        expected_secondaries = [
            ib_objects.AnyMember(_struct='memberserver',
                                 name=test_dhcp_member_1.member_name),
            ib_objects.AnyMember(_struct='memberserver',
                                 name=test_dhcp_member_2.member_name)]
        self.assertEqual(expected_primaries, grid_primaries)
        self.assertEqual(expected_secondaries, grid_secondaries)
Exemple #7
0
 def test_json_to_obj(self):
     json_obj = {'a': 1, 'b': {'c': {'d': 2}}}
     my_object = utils.json_to_obj('MyObject', json_obj)
     self.assertEqual(1, my_object.a)
     self.assertEqual(type(my_object.b), type(my_object))
     self.assertEqual(type(my_object.b.c), type(my_object))
     self.assertEqual(2, my_object.b.c.d)
     json_string = '{"a": 1, "b": {"c": {"d": 2}}}'
     my_object = utils.json_to_obj('MyObject', json_string)
     self.assertEqual(1, my_object.a)
     self.assertEqual(type(my_object.b), type(my_object))
     self.assertEqual(type(my_object.b.c), type(my_object))
     self.assertEqual(2, my_object.b.c.d)
Exemple #8
0
    def test_reserve_authority_member_with_dhcp_support(
            self, dbi_next_authority_mock, dbi_network_view_mock):
        user_id = 'test user'
        tenant_id = '90fbad5a098a4b7cb98826128d5b40b3'

        # prepare network
        network_name = 'Test Network'
        network = self.plugin_stub.create_network(tenant_id, network_name)

        # prepare subnet
        subnet_name = 'Test Subnet'
        subnet_cidr = '11.11.2.0/24'
        subnet = self.plugin_stub.create_subnet(tenant_id, subnet_name,
                                                network['id'], subnet_cidr)

        self.grid_config.dhcp_support = True

        test_authority_member = utils.json_to_obj(
            'AuthorityMember', {
                'member_id': 'member-id',
                'member_type': 'CPM',
                'member_ip': '11.11.1.11',
                'member_ipv6': None,
                'member_dns_ip': '12.11.1.11',
                'member_dns_ipv6': None,
                'member_dhcp_ip': None,
                'member_dhcp_ipv6': None,
                'member_name': 'm1',
                'member_status': 'ON',
                'member_wapi': '11.11.1.11'
            })
        dbi_next_authority_mock.return_value = test_authority_member

        test_network_view = utils.json_to_obj(
            'NetworkView', {
                'id': 'ZG5zLm5ldHdvcmtfdmlldyQ1',
                'network_view': 'hs-view-1',
                'shared': False
            })
        dbi_network_view_mock.return_value = test_network_view

        ib_cxt = ib_context.InfobloxContext(self.ctx, user_id, network, subnet,
                                            self.grid_config, self.plugin)
        ib_cxt.mapping.network_view = test_network_view.network_view
        ib_cxt.reserve_authority_member()

        self.assertEqual(test_network_view.network_view,
                         ib_cxt.mapping.network_view)
        self.assertEqual(test_authority_member.member_id,
                         ib_cxt.mapping.authority_member.member_id)
Exemple #9
0
    def __init__(self, neutron_context, user_id, network, subnet, grid_config,
                 plugin=None, grid_members=None, network_views=None,
                 mapping_conditions=None, ib_network=None):
        self.context = neutron_context
        self.user_id = user_id
        self.plugin = plugin if plugin else directory.get_plugin()
        self.network = network if network else {}
        self.subnet = subnet if subnet else {}
        self.ib_network = ib_network

        self.grid_config = grid_config
        self.connector = None
        self.ibom = None
        self.ip_alloc = None
        self.dhcp_port_ip_alloc = None

        self.grid_id = self.grid_config.grid_id
        self.mapping = utils.json_to_obj(
            'Mapping',
            {'network_view_id': None,
             'network_view': None,
             'authority_member': None,
             'shared': False,
             'dns_view': None,
             'dhcp_members': [],
             'dns_members': [],
             'ib_dhcp_members': [],
             'ib_nameservers': None})

        self._discovered_grid_members = grid_members
        self._discovered_network_views = network_views
        self._discovered_mapping_conditions = mapping_conditions

        self._update()
Exemple #10
0
    def test_db_records_to_json(self):
        grid_1_id = 100
        grid_2_id = 200
        dbi.add_grid(self.ctx.session, grid_1_id, 'test grid 1',
                     '{"wapi_version": "2.0",'
                     '"wapi_admin_user": '******'{ "name": "admin", "password": "******" }}',
                     'ON',
                     'gm-id-1')
        dbi.add_grid(self.ctx.session, grid_2_id, 'test grid 2', '{}', 'OFF',
                     'gm-id-2')

        grids = dbi.get_grids(self.ctx.session)

        json = utils.db_records_to_json(grids)

        self.assertEqual('test grid 1', json[0]["grid_name"])
        self.assertEqual('test grid 2', json[1]["grid_name"])

        json_string = json[0]["grid_connection"]
        grid_connection_json = jsonutils.loads(json_string)

        self.assertIsInstance(json_string, six.string_types)
        self.assertIsInstance(grid_connection_json, dict)
        self.assertEqual('2.0', grid_connection_json['wapi_version'])
        self.assertEqual('admin',
                         grid_connection_json['wapi_admin_user']['name'])

        grid_connection = utils.json_to_obj('grid_connection',
                                            grid_connection_json)
        self.assertEqual('2.0', grid_connection.wapi_version)
        self.assertEqual('admin', grid_connection.wapi_admin_user.name)

        self.assertEqual('{}', json[1]["grid_connection"])
        self.assertEqual({}, jsonutils.loads(json[1]["grid_connection"]))
    def __init__(self, neutron_context, user_id, network, subnet, grid_config,
                 plugin=None, grid_members=None, network_views=None,
                 mapping_conditions=None, ib_network=None):
        self.context = neutron_context
        self.user_id = user_id
        self.plugin = plugin if plugin else directory.get_plugin()
        self.network = network if network else {}
        self.subnet = subnet if subnet else {}
        self.ib_network = ib_network

        self.grid_config = grid_config
        self.connector = None
        self.ibom = None
        self.ip_alloc = None
        self.dhcp_port_ip_alloc = None

        self.grid_id = self.grid_config.grid_id
        self.mapping = utils.json_to_obj(
            'Mapping',
            {'network_view_id': None,
             'network_view': None,
             'authority_member': None,
             'shared': False,
             'dns_view': None,
             'dhcp_members': [],
             'dns_members': [],
             'ib_dhcp_members': [],
             'ib_nameservers': None})

        self._discovered_grid_members = grid_members
        self._discovered_network_views = network_views
        self._discovered_mapping_conditions = mapping_conditions

        self._update()
    def test_get_nameservers_dns_fields(self):
        test_dhcp_member_1 = utils.json_to_obj(
            'DhcpMember',
            {'member_id': 'member-id', 'member_type': 'REGULAR',
             'member_ip': '11.11.1.12', 'member_ipv6': '2001::1',
             'member_dhcp_ip': '12.12.1.12', 'member_dhcp_ipv6': '2009::1',
             'member_dns_ip': '15.10.1.2', 'member_dns_ipv6': '2016::1',
             'member_name': 'm1', 'member_status': 'ON'})
        test_dhcp_member_2 = utils.json_to_obj(
            'DhcpMember',
            {'member_id': 'member-id', 'member_type': 'CPM',
             'member_ip': '11.11.1.13', 'member_ipv6': '2001::2',
             'member_dhcp_ip': '12.12.1.13', 'member_dhcp_ipv6': '2009::2',
             'member_dns_ip': '15.10.1.3', 'member_dns_ipv6': '2016::2',
             'member_name': 'm1', 'member_status': 'ON'})
        dns_members = [test_dhcp_member_1, test_dhcp_member_2]

        self._test_get_nameservers(dns_members, 'member_dns_ip', 4)
        self._test_get_nameservers(dns_members, 'member_dns_ipv6', 6)
    def test_reserve_authority_member_with_dhcp_support(
            self, dbi_next_authority_mock, dbi_network_view_mock):
        user_id = 'test user'
        tenant_id = '90fbad5a098a4b7cb98826128d5b40b3'

        # prepare network
        network_name = 'Test Network'
        network = self.plugin_stub.create_network(tenant_id, network_name)

        # prepare subnet
        subnet_name = 'Test Subnet'
        subnet_cidr = '11.11.2.0/24'
        subnet = self.plugin_stub.create_subnet(tenant_id, subnet_name,
                                                network['id'], subnet_cidr)

        self.grid_config.dhcp_support = True

        test_authority_member = utils.json_to_obj(
            'AuthorityMember',
            {'member_id': 'member-id', 'member_type': 'CPM',
             'member_ip': '11.11.1.11', 'member_ipv6': None,
             'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
             'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
             'member_name': 'm1', 'member_status': 'ON',
             'member_wapi': '11.11.1.11'})
        dbi_next_authority_mock.return_value = test_authority_member

        test_network_view = utils.json_to_obj(
            'NetworkView',
            {'id': 'ZG5zLm5ldHdvcmtfdmlldyQ1', 'network_view': 'hs-view-1',
             'shared': False})
        dbi_network_view_mock.return_value = test_network_view

        ib_cxt = ib_context.InfobloxContext(self.ctx, user_id, network, subnet,
                                            self.grid_config, self.plugin)
        ib_cxt.mapping.network_view = test_network_view.network_view
        ib_cxt.reserve_authority_member()

        self.assertEqual(test_network_view.network_view,
                         ib_cxt.mapping.network_view)
        self.assertEqual(test_authority_member.member_id,
                         ib_cxt.mapping.authority_member.member_id)
Exemple #14
0
 def test_reserve_service_members_without_ib_network_for_gm_authortity(
         self):
     test_authority_member = utils.json_to_obj(
         'AuthorityMember',
         {'member_id': 'member-id-gm', 'member_type': 'GM',
          'member_ip': '11.11.1.11', 'member_ipv6': None,
          'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
          'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
          'member_name': 'gm', 'member_status': 'ON',
          'member_wapi': '11.11.1.11'})
     self._test_reserve_service_members_without_ib_network_for_gm_auth(
         test_authority_member, True, [test_authority_member])
     self._test_reserve_service_members_without_ib_network_for_gm_auth(
         test_authority_member, False, [])
 def test_reserve_service_members_without_ib_network_for_gm_authortity(
         self):
     test_authority_member = utils.json_to_obj(
         'AuthorityMember',
         {'member_id': 'member-id-gm', 'member_type': 'GM',
          'member_ip': '11.11.1.11', 'member_ipv6': None,
          'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
          'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
          'member_name': 'gm', 'member_status': 'ON',
          'member_wapi': '11.11.1.11'})
     self._test_reserve_service_members_without_ib_network_for_gm_auth(
         test_authority_member, True, [test_authority_member])
     self._test_reserve_service_members_without_ib_network_for_gm_auth(
         test_authority_member, False, [])
Exemple #16
0
 def test_reserve_service_members_with_ib_network_with_dhcp_member(self):
     test_dhcp_member = utils.json_to_obj(
         'DhcpMember',
         {'member_id': 'member-id', 'member_type': 'REGULAR',
          'member_ip': '11.11.1.12', 'member_ipv6': None,
          'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
          'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
          'member_name': 'm1', 'member_status': 'ON',
          'member_wapi': '11.11.1.11'})
     self._test_reserve_service_members_with_ib_network_with_dhcp_member(
         test_dhcp_member,
         dns_support=True, expected_dns_members=[test_dhcp_member])
     self._test_reserve_service_members_with_ib_network_with_dhcp_member(
         test_dhcp_member,
         dns_support=False, expected_dns_members=[])
 def test_reserve_service_members_with_ib_network_with_dhcp_member(self):
     test_dhcp_member = utils.json_to_obj(
         'DhcpMember',
         {'member_id': 'member-id', 'member_type': 'REGULAR',
          'member_ip': '11.11.1.12', 'member_ipv6': None,
          'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
          'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
          'member_name': 'm1', 'member_status': 'ON',
          'member_wapi': '11.11.1.11'})
     self._test_reserve_service_members_with_ib_network_with_dhcp_member(
         test_dhcp_member,
         dns_support=True, expected_dns_members=[test_dhcp_member])
     self._test_reserve_service_members_with_ib_network_with_dhcp_member(
         test_dhcp_member,
         dns_support=False, expected_dns_members=[])
Exemple #18
0
 def test_reserve_service_members_without_ib_network_for_cpm_authortity(
         self):
     test_authority_member = utils.json_to_obj(
         'AuthorityMember',
         {'member_id': 'member-id', 'member_type': 'CPM',
          'member_ip': '11.11.1.11', 'member_ipv6': None,
          'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
          'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
          'member_name': 'm1', 'member_status': 'ON',
          'member_wapi': '11.11.1.11'})
     self._test_reserve_service_members_without_ib_network_for_cpm_auth(
         test_authority_member,
         dns_support=True, expected_dns_members=[test_authority_member])
     self._test_reserve_service_members_without_ib_network_for_cpm_auth(
         test_authority_member,
         dns_support=False, expected_dns_members=[])
 def test_reserve_service_members_without_ib_network_for_cpm_authortity(
         self):
     test_authority_member = utils.json_to_obj(
         'AuthorityMember',
         {'member_id': 'member-id', 'member_type': 'CPM',
          'member_ip': '11.11.1.11', 'member_ipv6': None,
          'member_dns_ip': '12.11.1.11', 'member_dns_ipv6': None,
          'member_dhcp_ip': None, 'member_dhcp_ipv6': None,
          'member_name': 'm1', 'member_status': 'ON',
          'member_wapi': '11.11.1.11'})
     self._test_reserve_service_members_without_ib_network_for_cpm_auth(
         test_authority_member,
         dns_support=True, expected_dns_members=[test_authority_member])
     self._test_reserve_service_members_without_ib_network_for_cpm_auth(
         test_authority_member,
         dns_support=False, expected_dns_members=[])
Exemple #20
0
    def test_get_dns_members_without_dhcp_support(self):
        user_id = 'test user'
        tenant_id = '90fbad5a098a4b7cb98826128d5b40b3'

        # prepare network
        network_name = 'Test Network'
        network = self.plugin_stub.create_network(tenant_id, network_name)

        # prepare subnet
        subnet_name = 'Test Subnet'
        subnet_cidr = '11.11.1.0/24'
        subnet = self.plugin_stub.create_subnet(tenant_id, subnet_name,
                                                network['id'], subnet_cidr)

        self.grid_config.dhcp_support = False

        ib_cxt = ib_context.InfobloxContext(self.ctx, user_id, network, subnet,
                                            self.grid_config, self.plugin)

        test_authority_member = utils.json_to_obj(
            'AuthorityMember', {
                'member_id': 'member-id',
                'member_type': 'GM',
                'member_ip': '11.11.1.11',
                'member_ipv6': None,
                'member_name': 'm1',
                'member_status': 'ON',
                'member_wapi': '11.11.1.11'
            })
        ib_cxt.mapping.authority_member = test_authority_member

        grid_primaries, grid_secondaries = ib_cxt.get_dns_members()

        expected_grid_primaries = [
            ib_objects.AnyMember(_struct='memberserver',
                                 name=test_authority_member.member_name)
        ]
        self.assertEqual(expected_grid_primaries[0].name,
                         grid_primaries[0].name)
        self.assertEqual(None, grid_secondaries)