Exemple #1
0
    def create_network_sync(self, payload):
        """Notifies that new networks have been created."""
        if 'networks' in payload:
            networks = payload.get('networks')
        else:
            networks = [payload.get('network')]

        for network in networks:
            if self.traceable:
                LOG.info("Created network: %s", network)
            dbi.add_or_update_network(self.context.session, network.get('id'),
                                      network.get('name'))

        if self.grid_config.tenant_name_persistence:
            keystone_manager.update_tenant_mapping(self.context, networks,
                                                   self.ctxt['tenant_id'],
                                                   self.ctxt['tenant_name'])
    def create_network_sync(self, payload):
        """Notifies that new networks have been created."""
        if 'networks' in payload:
            networks = payload.get('networks')
        else:
            networks = [payload.get('network')]

        for network in networks:
            if self.traceable:
                LOG.info("Created network: %s", network)
            dbi.add_or_update_network(self.context.session,
                                      network.get('id'), network.get('name'))

        if self.grid_config.tenant_name_persistence:
            keystone_manager.update_tenant_mapping(self.context,
                                                   networks,
                                                   self.ctxt['tenant_id'],
                                                   self.ctxt['tenant_name'],
                                                   self.ctxt['auth_token'])
Exemple #3
0
    def _test_update_tenant_mapping(self, auth_token, networks, tenants,
                                    expected_results,
                                    get_tenants, add_or_update_tenant,
                                    sync_tenants_from_keystone):
        context = mock.Mock()
        context.session = 'test_session'
        tenant_id = '1'
        tenant_name = 'test_tenant_name_1'
        get_unknown = mock.Mock()
        get_unknown_params = []
        func = keystone_manager._get_unknown_ids_from_dict

        def store_params(param):
            get_unknown_params.append(param.copy())
            return func(param)

        get_unknown.side_effect = store_params
        get_tenants.return_value = tenants
        with mock.patch('networking_infoblox.neutron.common.keystone_manager.'
                        '_get_unknown_ids_from_dict', get_unknown):
            keystone_manager.update_tenant_mapping(
                context, networks, tenant_id, tenant_name, auth_token)
        add_or_update_tenant.assert_called_once_with(context.session,
                                                     tenant_id, tenant_name)
        assert get_unknown.call_count == expected_results['get_unknown_count']
        assert get_unknown_params == expected_results['get_unknown_params']
        if expected_results['get_tenants_called']:
            get_tenants.assert_called_once()
            assert get_tenants.call_args[0] == (context.session,)
            tenant_ids = expected_results['get_tenant_tenant_ids']
            assert(
                sorted(
                    get_tenants.call_args[1]['tenant_ids']) == tenant_ids)
        else:
            get_tenants.assert_not_called()
        if expected_results['sync_tenants_from_keystone_called']:
            sync_tenants_from_keystone.assert_called_once_with(context,
                                                               auth_token)
        else:
            sync_tenants_from_keystone.assert_not_called()