Syncing with mitaka dependencies

Change-Id: Ice1c6555d7e008fff0cb174f1ed6d6d4a3f152e3
This commit is contained in:
Sumit Naiksatam 2016-02-05 20:15:26 -08:00
parent 8e606f5a6a
commit c614996bcf
50 changed files with 983 additions and 847 deletions

View File

@ -12,6 +12,8 @@
import contextlib import contextlib
from neutron._i18n import _
from neutron._i18n import _LE
from neutron import context as n_ctx from neutron import context as n_ctx
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
@ -19,6 +21,7 @@ from oslo_utils import importutils
from stevedore import driver from stevedore import driver
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
cfg.CONF.import_group('keystone_authtoken', 'keystonemiddleware.auth_token')
@contextlib.contextmanager @contextlib.contextmanager
@ -49,8 +52,8 @@ def load_plugin(namespace, plugin):
try: try:
plugin_class = importutils.import_class(plugin) plugin_class = importutils.import_class(plugin)
except ImportError as e2: except ImportError as e2:
LOG.exception(_("Error loading plugin by name, %s"), e1) LOG.exception(_LE("Error loading plugin by name, %s"), e1)
LOG.exception(_("Error loading plugin by class, %s"), e2) LOG.exception(_LE("Error loading plugin by class, %s"), e2)
raise ImportError(_("Plugin not found.")) raise ImportError(_("Plugin not found."))
return plugin_class() return plugin_class()

View File

@ -29,7 +29,8 @@ class API(object):
obj_method = getattr(neutron, action) obj_method = getattr(neutron, action)
return obj_method(resource_id)[resource] return obj_method(resource_id)[resource]
def _list_resources(self, context, resource, filters={}): def _list_resources(self, context, resource, filters=None):
filters = filters or {}
resources = resource + 's' resources = resource + 's'
action = 'list_' + resources action = 'list_' + resources
neutron = client.get_client(context) neutron = client.get_client(context)
@ -54,7 +55,8 @@ class API(object):
def show_network(self, context, net_id): def show_network(self, context, net_id):
return self._show_resource(context, 'network', net_id) return self._show_resource(context, 'network', net_id)
def list_networks(self, context, filters={}): def list_networks(self, context, filters=None):
filters = filters or {}
return self._list_resources(context, 'network', filters) return self._list_resources(context, 'network', filters)
def update_network(self, context, net_id, network): def update_network(self, context, net_id, network):
@ -69,7 +71,8 @@ class API(object):
def show_subnet(self, context, subnet_id): def show_subnet(self, context, subnet_id):
return self._show_resource(context, 'subnet', subnet_id) return self._show_resource(context, 'subnet', subnet_id)
def list_subnets(self, context, filters={}): def list_subnets(self, context, filters=None):
filters = filters or {}
return self._list_resources(context, 'subnet', filters) return self._list_resources(context, 'subnet', filters)
def update_subnet(self, context, subnet_id, subnet): def update_subnet(self, context, subnet_id, subnet):
@ -84,7 +87,8 @@ class API(object):
def show_port(self, context, port_id): def show_port(self, context, port_id):
return self._show_resource(context, 'port', port_id) return self._show_resource(context, 'port', port_id)
def list_ports(self, context, filters={}): def list_ports(self, context, filters=None):
filters = filters or {}
return self._list_resources(context, 'port', filters) return self._list_resources(context, 'port', filters)
def update_port(self, context, port_id, port): def update_port(self, context, port_id, port):
@ -99,7 +103,8 @@ class API(object):
def show_security_group(self, context, sg_id): def show_security_group(self, context, sg_id):
return self._show_resource(context, 'security_group', sg_id) return self._show_resource(context, 'security_group', sg_id)
def list_security_groups(self, context, filters={}): def list_security_groups(self, context, filters=None):
filters = filters or {}
return self._list_resources(context, 'security_group', filters) return self._list_resources(context, 'security_group', filters)
def update_security_group(self, context, sg_id, sg): def update_security_group(self, context, sg_id, sg):
@ -114,7 +119,8 @@ class API(object):
def show_security_group_rule(self, context, rule_id): def show_security_group_rule(self, context, rule_id):
return self._show_resource(context, 'security_group_rule', rule_id) return self._show_resource(context, 'security_group_rule', rule_id)
def list_security_group_rules(self, context, filters={}): def list_security_group_rules(self, context, filters=None):
filters = filters or {}
return self._list_resources(context, 'security_group_rule', filters) return self._list_resources(context, 'security_group_rule', filters)
# REVISIT(yi): update_security_group_rule not supported in neutron yet # REVISIT(yi): update_security_group_rule not supported in neutron yet
@ -133,7 +139,8 @@ class API(object):
def show_router(self, context, router_id): def show_router(self, context, router_id):
return self._show_resource(context, 'router', router_id) return self._show_resource(context, 'router', router_id)
def list_routers(self, context, filters={}): def list_routers(self, context, filters=None):
filters = filters or {}
return self._list_resources(context, 'router', filters) return self._list_resources(context, 'router', filters)
def update_router(self, context, router_id, router): def update_router(self, context, router_id, router):

View File

@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from neutron._i18n import _LE
from neutron._i18n import _LW
from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api
from neutron.common import constants as const from neutron.common import constants as const
from neutron.common import exceptions as n_exc from neutron.common import exceptions as n_exc
@ -50,7 +52,7 @@ class LocalAPI(object):
plugins = manager.NeutronManager.get_service_plugins() plugins = manager.NeutronManager.get_service_plugins()
l3_plugin = plugins.get(pconst.L3_ROUTER_NAT) l3_plugin = plugins.get(pconst.L3_ROUTER_NAT)
if not l3_plugin: if not l3_plugin:
LOG.error(_("No L3 router service plugin found.")) LOG.error(_LE("No L3 router service plugin found."))
raise exc.GroupPolicyDeploymentError() raise exc.GroupPolicyDeploymentError()
return l3_plugin return l3_plugin
@ -61,7 +63,7 @@ class LocalAPI(object):
plugins = manager.NeutronManager.get_service_plugins() plugins = manager.NeutronManager.get_service_plugins()
group_policy_plugin = plugins.get(pconst.GROUP_POLICY) group_policy_plugin = plugins.get(pconst.GROUP_POLICY)
if not group_policy_plugin: if not group_policy_plugin:
LOG.error(_("No GroupPolicy service plugin found.")) LOG.error(_LE("No GroupPolicy service plugin found."))
raise exc.GroupPolicyDeploymentError() raise exc.GroupPolicyDeploymentError()
return group_policy_plugin return group_policy_plugin
@ -72,7 +74,7 @@ class LocalAPI(object):
plugins = manager.NeutronManager.get_service_plugins() plugins = manager.NeutronManager.get_service_plugins()
servicechain_plugin = plugins.get(pconst.SERVICECHAIN) servicechain_plugin = plugins.get(pconst.SERVICECHAIN)
if not servicechain_plugin: if not servicechain_plugin:
LOG.error(_("No Servicechain service plugin found.")) LOG.error(_LE("No Servicechain service plugin found."))
raise exc.GroupPolicyDeploymentError() raise exc.GroupPolicyDeploymentError()
return servicechain_plugin return servicechain_plugin
@ -101,9 +103,8 @@ class LocalAPI(object):
{resource: obj}) {resource: obj})
# REVISIT(rkukura): Do create.end notification? # REVISIT(rkukura): Do create.end notification?
if cfg.CONF.dhcp_agent_notification: if cfg.CONF.dhcp_agent_notification:
self._dhcp_agent_notifier.notify(context, self._dhcp_agent_notifier.notify(
{resource: obj}, context, {resource: obj}, resource + '.create.end')
resource + '.create.end')
return obj return obj
def _update_resource(self, plugin, context, resource, resource_id, attrs, def _update_resource(self, plugin, context, resource, resource_id, attrs,
@ -186,7 +187,7 @@ class LocalAPI(object):
self._delete_resource(self._core_plugin, self._delete_resource(self._core_plugin,
plugin_context, 'port', port_id) plugin_context, 'port', port_id)
except n_exc.PortNotFound: except n_exc.PortNotFound:
LOG.warning(_('Port %s already deleted'), port_id) LOG.warning(_LW('Port %s already deleted'), port_id)
def _get_subnet(self, plugin_context, subnet_id): def _get_subnet(self, plugin_context, subnet_id):
return self._get_resource(self._core_plugin, plugin_context, 'subnet', return self._get_resource(self._core_plugin, plugin_context, 'subnet',
@ -210,7 +211,7 @@ class LocalAPI(object):
self._delete_resource(self._core_plugin, plugin_context, 'subnet', self._delete_resource(self._core_plugin, plugin_context, 'subnet',
subnet_id) subnet_id)
except n_exc.SubnetNotFound: except n_exc.SubnetNotFound:
LOG.warning(_('Subnet %s already deleted'), subnet_id) LOG.warning(_LW('Subnet %s already deleted'), subnet_id)
def _get_network(self, plugin_context, network_id): def _get_network(self, plugin_context, network_id):
return self._get_resource(self._core_plugin, plugin_context, 'network', return self._get_resource(self._core_plugin, plugin_context, 'network',
@ -230,7 +231,7 @@ class LocalAPI(object):
self._delete_resource(self._core_plugin, plugin_context, self._delete_resource(self._core_plugin, plugin_context,
'network', network_id) 'network', network_id)
except n_exc.NetworkNotFound: except n_exc.NetworkNotFound:
LOG.warning(_('Network %s already deleted'), network_id) LOG.warning(_LW('Network %s already deleted'), network_id)
def _get_router(self, plugin_context, router_id): def _get_router(self, plugin_context, router_id):
return self._get_resource(self._l3_plugin, plugin_context, 'router', return self._get_resource(self._l3_plugin, plugin_context, 'router',
@ -259,7 +260,7 @@ class LocalAPI(object):
self._l3_plugin.remove_router_interface(plugin_context, router_id, self._l3_plugin.remove_router_interface(plugin_context, router_id,
interface_info) interface_info)
except l3.RouterInterfaceNotFoundForSubnet: except l3.RouterInterfaceNotFoundForSubnet:
LOG.warning(_('Router interface already deleted for subnet %s'), LOG.warning(_LW('Router interface already deleted for subnet %s'),
interface_info) interface_info)
def _add_router_gw_interface(self, plugin_context, router_id, gw_info): def _add_router_gw_interface(self, plugin_context, router_id, gw_info):
@ -278,7 +279,7 @@ class LocalAPI(object):
self._delete_resource(self._l3_plugin, plugin_context, 'router', self._delete_resource(self._l3_plugin, plugin_context, 'router',
router_id) router_id)
except l3.RouterNotFound: except l3.RouterNotFound:
LOG.warning(_('Router %s already deleted'), router_id) LOG.warning(_LW('Router %s already deleted'), router_id)
def _get_sg(self, plugin_context, sg_id): def _get_sg(self, plugin_context, sg_id):
return self._get_resource( return self._get_resource(
@ -302,7 +303,7 @@ class LocalAPI(object):
self._delete_resource(self._core_plugin, plugin_context, self._delete_resource(self._core_plugin, plugin_context,
'security_group', sg_id) 'security_group', sg_id)
except ext_sg.SecurityGroupNotFound: except ext_sg.SecurityGroupNotFound:
LOG.warning(_('Security Group %s already deleted'), sg_id) LOG.warning(_LW('Security Group %s already deleted'), sg_id)
def _get_sg_rule(self, plugin_context, sg_rule_id): def _get_sg_rule(self, plugin_context, sg_rule_id):
return self._get_resource( return self._get_resource(
@ -319,7 +320,7 @@ class LocalAPI(object):
return self._create_resource(self._core_plugin, plugin_context, return self._create_resource(self._core_plugin, plugin_context,
'security_group_rule', attrs) 'security_group_rule', attrs)
except ext_sg.SecurityGroupRuleExists as ex: except ext_sg.SecurityGroupRuleExists as ex:
LOG.warning(_('Security Group already exists %s'), ex.message) LOG.warning(_LW('Security Group already exists %s'), ex.message)
return return
def _update_sg_rule(self, plugin_context, sg_rule_id, attrs): def _update_sg_rule(self, plugin_context, sg_rule_id, attrs):
@ -332,7 +333,7 @@ class LocalAPI(object):
self._delete_resource(self._core_plugin, plugin_context, self._delete_resource(self._core_plugin, plugin_context,
'security_group_rule', sg_rule_id) 'security_group_rule', sg_rule_id)
except ext_sg.SecurityGroupRuleNotFound: except ext_sg.SecurityGroupRuleNotFound:
LOG.warning(_('Security Group Rule %s already deleted'), LOG.warning(_LW('Security Group Rule %s already deleted'),
sg_rule_id) sg_rule_id)
def _get_fip(self, plugin_context, fip_id): def _get_fip(self, plugin_context, fip_id):
@ -357,7 +358,7 @@ class LocalAPI(object):
self._delete_resource(self._l3_plugin, plugin_context, self._delete_resource(self._l3_plugin, plugin_context,
'floatingip', fip_id) 'floatingip', fip_id)
except l3.FloatingIPNotFound: except l3.FloatingIPNotFound:
LOG.warning(_('Floating IP %s Already deleted'), fip_id) LOG.warning(_LW('Floating IP %s Already deleted'), fip_id)
def _get_l2_policy(self, plugin_context, l2p_id): def _get_l2_policy(self, plugin_context, l2p_id):
return self._get_resource(self._group_policy_plugin, plugin_context, return self._get_resource(self._group_policy_plugin, plugin_context,
@ -381,7 +382,7 @@ class LocalAPI(object):
self._delete_resource(self._group_policy_plugin, self._delete_resource(self._group_policy_plugin,
plugin_context, 'l2_policy', l2p_id, False) plugin_context, 'l2_policy', l2p_id, False)
except gp_ext.L2PolicyNotFound: except gp_ext.L2PolicyNotFound:
LOG.warning(_('L2 Policy %s already deleted'), l2p_id) LOG.warning(_LW('L2 Policy %s already deleted'), l2p_id)
def _get_l3_policy(self, plugin_context, l3p_id): def _get_l3_policy(self, plugin_context, l3p_id):
return self._get_resource(self._group_policy_plugin, plugin_context, return self._get_resource(self._group_policy_plugin, plugin_context,
@ -405,7 +406,7 @@ class LocalAPI(object):
self._delete_resource(self._group_policy_plugin, self._delete_resource(self._group_policy_plugin,
plugin_context, 'l3_policy', l3p_id, False) plugin_context, 'l3_policy', l3p_id, False)
except gp_ext.L3PolicyNotFound: except gp_ext.L3PolicyNotFound:
LOG.warning(_('L3 Policy %s already deleted'), l3p_id) LOG.warning(_LW('L3 Policy %s already deleted'), l3p_id)
def _get_external_segment(self, plugin_context, es_id): def _get_external_segment(self, plugin_context, es_id):
return self._get_resource(self._group_policy_plugin, plugin_context, return self._get_resource(self._group_policy_plugin, plugin_context,
@ -429,7 +430,7 @@ class LocalAPI(object):
self._delete_resource(self._group_policy_plugin, plugin_context, self._delete_resource(self._group_policy_plugin, plugin_context,
'external_segment', es_id, False) 'external_segment', es_id, False)
except gp_ext.ExternalSegmentNotFound: except gp_ext.ExternalSegmentNotFound:
LOG.warning(_('External Segment %s already deleted'), es_id) LOG.warning(_LW('External Segment %s already deleted'), es_id)
def _get_external_policy(self, plugin_context, ep_id): def _get_external_policy(self, plugin_context, ep_id):
return self._get_resource(self._group_policy_plugin, plugin_context, return self._get_resource(self._group_policy_plugin, plugin_context,
@ -453,7 +454,7 @@ class LocalAPI(object):
self._delete_resource(self._group_policy_plugin, plugin_context, self._delete_resource(self._group_policy_plugin, plugin_context,
'external_policy', ep_id, False) 'external_policy', ep_id, False)
except gp_ext.ExternalPolicyNotFound: except gp_ext.ExternalPolicyNotFound:
LOG.warning(_('External Policy %s already deleted'), ep_id) LOG.warning(_LW('External Policy %s already deleted'), ep_id)
def _get_policy_rule_set(self, plugin_context, prs_id): def _get_policy_rule_set(self, plugin_context, prs_id):
return self._get_resource(self._group_policy_plugin, plugin_context, return self._get_resource(self._group_policy_plugin, plugin_context,
@ -477,7 +478,7 @@ class LocalAPI(object):
self._delete_resource(self._group_policy_plugin, plugin_context, self._delete_resource(self._group_policy_plugin, plugin_context,
'policy_rule_set', prs_id, False) 'policy_rule_set', prs_id, False)
except gp_ext.PolicyRuleSetNotFound: except gp_ext.PolicyRuleSetNotFound:
LOG.warning(_('Policy Rule Set %s already deleted'), prs_id) LOG.warning(_LW('Policy Rule Set %s already deleted'), prs_id)
def _get_servicechain_instance(self, plugin_context, sci_id): def _get_servicechain_instance(self, plugin_context, sci_id):
return self._get_resource(self._servicechain_plugin, plugin_context, return self._get_resource(self._servicechain_plugin, plugin_context,
@ -502,7 +503,7 @@ class LocalAPI(object):
self._delete_resource(self._servicechain_plugin, plugin_context, self._delete_resource(self._servicechain_plugin, plugin_context,
'servicechain_instance', sci_id, False) 'servicechain_instance', sci_id, False)
except sc_ext.ServiceChainInstanceNotFound: except sc_ext.ServiceChainInstanceNotFound:
LOG.warning(_("servicechain %s already deleted"), sci_id) LOG.warning(_LW("servicechain %s already deleted"), sci_id)
def _get_servicechain_spec(self, plugin_context, scs_id): def _get_servicechain_spec(self, plugin_context, scs_id):
return self._get_resource(self._servicechain_plugin, plugin_context, return self._get_resource(self._servicechain_plugin, plugin_context,
@ -526,7 +527,7 @@ class LocalAPI(object):
self._delete_resource(self._servicechain_plugin, plugin_context, self._delete_resource(self._servicechain_plugin, plugin_context,
'servicechain_spec', scs_id) 'servicechain_spec', scs_id)
except sc_ext.ServiceChainSpecNotFound: except sc_ext.ServiceChainSpecNotFound:
LOG.warning(_("servicechain spec %s already deleted"), scs_id) LOG.warning(_LW("servicechain spec %s already deleted"), scs_id)
def _get_policy_target(self, plugin_context, pt_id): def _get_policy_target(self, plugin_context, pt_id):
return self._get_resource(self._group_policy_plugin, plugin_context, return self._get_resource(self._group_policy_plugin, plugin_context,
@ -550,7 +551,7 @@ class LocalAPI(object):
self._delete_resource(self._group_policy_plugin, plugin_context, self._delete_resource(self._group_policy_plugin, plugin_context,
'policy_target', pt_id, False) 'policy_target', pt_id, False)
except gp_ext.PolicyTargetNotFound: except gp_ext.PolicyTargetNotFound:
LOG.warning(_('Policy Rule Set %s already deleted'), pt_id) LOG.warning(_LW('Policy Rule Set %s already deleted'), pt_id)
def _get_policy_target_group(self, plugin_context, ptg_id): def _get_policy_target_group(self, plugin_context, ptg_id):
return self._get_resource(self._group_policy_plugin, plugin_context, return self._get_resource(self._group_policy_plugin, plugin_context,
@ -575,4 +576,4 @@ class LocalAPI(object):
self._delete_resource(self._group_policy_plugin, plugin_context, self._delete_resource(self._group_policy_plugin, plugin_context,
'policy_target_group', ptg_id) 'policy_target_group', ptg_id)
except sc_ext.ServiceChainSpecNotFound: except sc_ext.ServiceChainSpecNotFound:
LOG.warning(_("Policy Target Group %s already deleted"), ptg_id) LOG.warning(_LW("Policy Target Group %s already deleted"), ptg_id)

View File

@ -12,11 +12,11 @@
import netaddr import netaddr
from neutron.api.v2 import attributes as attr from neutron.api.v2 import attributes as attr
from neutron.common import log
from neutron import context from neutron import context
from neutron.db import common_db_mixin from neutron.db import common_db_mixin
from neutron.db import model_base from neutron.db import model_base
from neutron.db import models_v2 from neutron.db import models_v2
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import uuidutils from oslo_utils import uuidutils
import sqlalchemy as sa import sqlalchemy as sa
@ -1134,7 +1134,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
raise gpolicy.SubnetPrefixLengthExceedsIpPool( raise gpolicy.SubnetPrefixLengthExceedsIpPool(
ip_pool=ip_pool, subnet_size=new_prefix_length) ip_pool=ip_pool, subnet_size=new_prefix_length)
@log.log @log.log_method_call
def create_policy_target(self, context, policy_target): def create_policy_target(self, context, policy_target):
pt = policy_target['policy_target'] pt = policy_target['policy_target']
tenant_id = self._get_tenant_id_for_create(context, pt) tenant_id = self._get_tenant_id_for_create(context, pt)
@ -1147,7 +1147,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
context.session.add(pt_db) context.session.add(pt_db)
return self._make_policy_target_dict(pt_db) return self._make_policy_target_dict(pt_db)
@log.log @log.log_method_call
def update_policy_target(self, context, policy_target_id, policy_target): def update_policy_target(self, context, policy_target_id, policy_target):
pt = policy_target['policy_target'] pt = policy_target['policy_target']
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
@ -1155,18 +1155,18 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
pt_db.update(pt) pt_db.update(pt)
return self._make_policy_target_dict(pt_db) return self._make_policy_target_dict(pt_db)
@log.log @log.log_method_call
def delete_policy_target(self, context, policy_target_id): def delete_policy_target(self, context, policy_target_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
pt_db = self._get_policy_target(context, policy_target_id) pt_db = self._get_policy_target(context, policy_target_id)
context.session.delete(pt_db) context.session.delete(pt_db)
@log.log @log.log_method_call
def get_policy_target(self, context, policy_target_id, fields=None): def get_policy_target(self, context, policy_target_id, fields=None):
pt = self._get_policy_target(context, policy_target_id) pt = self._get_policy_target(context, policy_target_id)
return self._make_policy_target_dict(pt, fields) return self._make_policy_target_dict(pt, fields)
@log.log @log.log_method_call
def get_policy_targets(self, context, filters=None, fields=None, def get_policy_targets(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1179,12 +1179,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_policy_targets_count(self, context, filters=None): def get_policy_targets_count(self, context, filters=None):
return self._get_collection_count(context, PolicyTarget, return self._get_collection_count(context, PolicyTarget,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_policy_target_group(self, context, policy_target_group): def create_policy_target_group(self, context, policy_target_group):
ptg = policy_target_group['policy_target_group'] ptg = policy_target_group['policy_target_group']
tenant_id = self._get_tenant_id_for_create(context, ptg) tenant_id = self._get_tenant_id_for_create(context, ptg)
@ -1202,7 +1202,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
self._process_policy_rule_sets_for_ptg(context, ptg_db, ptg) self._process_policy_rule_sets_for_ptg(context, ptg_db, ptg)
return self._make_policy_target_group_dict(ptg_db) return self._make_policy_target_group_dict(ptg_db)
@log.log @log.log_method_call
def update_policy_target_group(self, context, policy_target_group_id, def update_policy_target_group(self, context, policy_target_group_id,
policy_target_group): policy_target_group):
ptg = policy_target_group['policy_target_group'] ptg = policy_target_group['policy_target_group']
@ -1213,7 +1213,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
ptg_db.update(ptg) ptg_db.update(ptg)
return self._make_policy_target_group_dict(ptg_db) return self._make_policy_target_group_dict(ptg_db)
@log.log @log.log_method_call
def delete_policy_target_group(self, context, policy_target_group_id): def delete_policy_target_group(self, context, policy_target_group_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
ptg_db = self._get_policy_target_group( ptg_db = self._get_policy_target_group(
@ -1231,13 +1231,13 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
# other resources. # other resources.
context.session.delete(ptg_db) context.session.delete(ptg_db)
@log.log @log.log_method_call
def get_policy_target_group(self, context, policy_target_group_id, def get_policy_target_group(self, context, policy_target_group_id,
fields=None): fields=None):
ptg = self._get_policy_target_group(context, policy_target_group_id) ptg = self._get_policy_target_group(context, policy_target_group_id)
return self._make_policy_target_group_dict(ptg, fields) return self._make_policy_target_group_dict(ptg, fields)
@log.log @log.log_method_call
def get_policy_target_groups(self, context, filters=None, fields=None, def get_policy_target_groups(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1250,12 +1250,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_policy_target_groups_count(self, context, filters=None): def get_policy_target_groups_count(self, context, filters=None):
return self._get_collection_count(context, PolicyTargetGroup, return self._get_collection_count(context, PolicyTargetGroup,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_l2_policy(self, context, l2_policy): def create_l2_policy(self, context, l2_policy):
l2p = l2_policy['l2_policy'] l2p = l2_policy['l2_policy']
tenant_id = self._get_tenant_id_for_create(context, l2p) tenant_id = self._get_tenant_id_for_create(context, l2p)
@ -1270,7 +1270,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
context.session.add(l2p_db) context.session.add(l2p_db)
return self._make_l2_policy_dict(l2p_db) return self._make_l2_policy_dict(l2p_db)
@log.log @log.log_method_call
def update_l2_policy(self, context, l2_policy_id, l2_policy): def update_l2_policy(self, context, l2_policy_id, l2_policy):
l2p = l2_policy['l2_policy'] l2p = l2_policy['l2_policy']
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
@ -1278,7 +1278,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
l2p_db.update(l2p) l2p_db.update(l2p)
return self._make_l2_policy_dict(l2p_db) return self._make_l2_policy_dict(l2p_db)
@log.log @log.log_method_call
def delete_l2_policy(self, context, l2_policy_id): def delete_l2_policy(self, context, l2_policy_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
l2p_db = self._get_l2_policy(context, l2_policy_id) l2p_db = self._get_l2_policy(context, l2_policy_id)
@ -1286,12 +1286,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
raise gpolicy.L2PolicyInUse(l2_policy_id=l2_policy_id) raise gpolicy.L2PolicyInUse(l2_policy_id=l2_policy_id)
context.session.delete(l2p_db) context.session.delete(l2p_db)
@log.log @log.log_method_call
def get_l2_policy(self, context, l2_policy_id, fields=None): def get_l2_policy(self, context, l2_policy_id, fields=None):
l2p = self._get_l2_policy(context, l2_policy_id) l2p = self._get_l2_policy(context, l2_policy_id)
return self._make_l2_policy_dict(l2p, fields) return self._make_l2_policy_dict(l2p, fields)
@log.log @log.log_method_call
def get_l2_policies(self, context, filters=None, fields=None, def get_l2_policies(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1304,12 +1304,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_l2_policies_count(self, context, filters=None): def get_l2_policies_count(self, context, filters=None):
return self._get_collection_count(context, L2Policy, return self._get_collection_count(context, L2Policy,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_l3_policy(self, context, l3_policy): def create_l3_policy(self, context, l3_policy):
l3p = l3_policy['l3_policy'] l3p = l3_policy['l3_policy']
tenant_id = self._get_tenant_id_for_create(context, l3p) tenant_id = self._get_tenant_id_for_create(context, l3p)
@ -1332,7 +1332,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
context.session.add(l3p_db) context.session.add(l3p_db)
return self._make_l3_policy_dict(l3p_db) return self._make_l3_policy_dict(l3p_db)
@log.log @log.log_method_call
def update_l3_policy(self, context, l3_policy_id, l3_policy): def update_l3_policy(self, context, l3_policy_id, l3_policy):
l3p = l3_policy['l3_policy'] l3p = l3_policy['l3_policy']
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
@ -1348,7 +1348,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
l3p_db.update(l3p) l3p_db.update(l3p)
return self._make_l3_policy_dict(l3p_db) return self._make_l3_policy_dict(l3p_db)
@log.log @log.log_method_call
def delete_l3_policy(self, context, l3_policy_id): def delete_l3_policy(self, context, l3_policy_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
l3p_db = self._get_l3_policy(context, l3_policy_id) l3p_db = self._get_l3_policy(context, l3_policy_id)
@ -1356,12 +1356,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
raise gpolicy.L3PolicyInUse(l3_policy_id=l3_policy_id) raise gpolicy.L3PolicyInUse(l3_policy_id=l3_policy_id)
context.session.delete(l3p_db) context.session.delete(l3p_db)
@log.log @log.log_method_call
def get_l3_policy(self, context, l3_policy_id, fields=None): def get_l3_policy(self, context, l3_policy_id, fields=None):
l3p = self._get_l3_policy(context, l3_policy_id) l3p = self._get_l3_policy(context, l3_policy_id)
return self._make_l3_policy_dict(l3p, fields) return self._make_l3_policy_dict(l3p, fields)
@log.log @log.log_method_call
def get_l3_policies(self, context, filters=None, fields=None, def get_l3_policies(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1374,12 +1374,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_l3_policies_count(self, context, filters=None): def get_l3_policies_count(self, context, filters=None):
return self._get_collection_count(context, L3Policy, return self._get_collection_count(context, L3Policy,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_network_service_policy(self, context, network_service_policy): def create_network_service_policy(self, context, network_service_policy):
nsp = network_service_policy['network_service_policy'] nsp = network_service_policy['network_service_policy']
tenant_id = self._get_tenant_id_for_create(context, nsp) tenant_id = self._get_tenant_id_for_create(context, nsp)
@ -1394,7 +1394,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
context, nsp_db, nsp) context, nsp_db, nsp)
return self._make_network_service_policy_dict(nsp_db) return self._make_network_service_policy_dict(nsp_db)
@log.log @log.log_method_call
def update_network_service_policy( def update_network_service_policy(
self, context, network_service_policy_id, network_service_policy): self, context, network_service_policy_id, network_service_policy):
nsp = network_service_policy['network_service_policy'] nsp = network_service_policy['network_service_policy']
@ -1407,7 +1407,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
nsp_db.update(nsp) nsp_db.update(nsp)
return self._make_network_service_policy_dict(nsp_db) return self._make_network_service_policy_dict(nsp_db)
@log.log @log.log_method_call
def delete_network_service_policy( def delete_network_service_policy(
self, context, network_service_policy_id): self, context, network_service_policy_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
@ -1418,14 +1418,14 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
network_service_policy_id=network_service_policy_id) network_service_policy_id=network_service_policy_id)
context.session.delete(nsp_db) context.session.delete(nsp_db)
@log.log @log.log_method_call
def get_network_service_policy( def get_network_service_policy(
self, context, network_service_policy_id, fields=None): self, context, network_service_policy_id, fields=None):
nsp = self._get_network_service_policy( nsp = self._get_network_service_policy(
context, network_service_policy_id) context, network_service_policy_id)
return self._make_network_service_policy_dict(nsp, fields) return self._make_network_service_policy_dict(nsp, fields)
@log.log @log.log_method_call
def get_network_service_policies( def get_network_service_policies(
self, context, filters=None, fields=None, sorts=None, limit=None, self, context, filters=None, fields=None, sorts=None, limit=None,
marker=None, page_reverse=False): marker=None, page_reverse=False):
@ -1438,12 +1438,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_network_service_policies_count(self, context, filters=None): def get_network_service_policies_count(self, context, filters=None):
return self._get_collection_count(context, NetworkServicePolicy, return self._get_collection_count(context, NetworkServicePolicy,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_policy_classifier(self, context, policy_classifier): def create_policy_classifier(self, context, policy_classifier):
pc = policy_classifier['policy_classifier'] pc = policy_classifier['policy_classifier']
tenant_id = self._get_tenant_id_for_create(context, pc) tenant_id = self._get_tenant_id_for_create(context, pc)
@ -1462,7 +1462,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
context.session.add(pc_db) context.session.add(pc_db)
return self._make_policy_classifier_dict(pc_db) return self._make_policy_classifier_dict(pc_db)
@log.log @log.log_method_call
def update_policy_classifier(self, context, policy_classifier_id, def update_policy_classifier(self, context, policy_classifier_id,
policy_classifier): policy_classifier):
pc = policy_classifier['policy_classifier'] pc = policy_classifier['policy_classifier']
@ -1478,7 +1478,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
pc_db.update(pc) pc_db.update(pc)
return self._make_policy_classifier_dict(pc_db) return self._make_policy_classifier_dict(pc_db)
@log.log @log.log_method_call
def delete_policy_classifier(self, context, policy_classifier_id): def delete_policy_classifier(self, context, policy_classifier_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
pc_db = self._get_policy_classifier(context, policy_classifier_id) pc_db = self._get_policy_classifier(context, policy_classifier_id)
@ -1489,13 +1489,13 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
policy_classifier_id=policy_classifier_id) policy_classifier_id=policy_classifier_id)
context.session.delete(pc_db) context.session.delete(pc_db)
@log.log @log.log_method_call
def get_policy_classifier(self, context, policy_classifier_id, def get_policy_classifier(self, context, policy_classifier_id,
fields=None): fields=None):
pc = self._get_policy_classifier(context, policy_classifier_id) pc = self._get_policy_classifier(context, policy_classifier_id)
return self._make_policy_classifier_dict(pc, fields) return self._make_policy_classifier_dict(pc, fields)
@log.log @log.log_method_call
def get_policy_classifiers(self, context, filters=None, fields=None, def get_policy_classifiers(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1508,12 +1508,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_policy_classifiers_count(self, context, filters=None): def get_policy_classifiers_count(self, context, filters=None):
return self._get_collection_count(context, PolicyClassifier, return self._get_collection_count(context, PolicyClassifier,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_policy_action(self, context, policy_action): def create_policy_action(self, context, policy_action):
pa = policy_action['policy_action'] pa = policy_action['policy_action']
tenant_id = self._get_tenant_id_for_create(context, pa) tenant_id = self._get_tenant_id_for_create(context, pa)
@ -1528,7 +1528,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
context.session.add(pa_db) context.session.add(pa_db)
return self._make_policy_action_dict(pa_db) return self._make_policy_action_dict(pa_db)
@log.log @log.log_method_call
def update_policy_action(self, context, policy_action_id, policy_action): def update_policy_action(self, context, policy_action_id, policy_action):
pa = policy_action['policy_action'] pa = policy_action['policy_action']
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
@ -1536,7 +1536,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
pa_db.update(pa) pa_db.update(pa)
return self._make_policy_action_dict(pa_db) return self._make_policy_action_dict(pa_db)
@log.log @log.log_method_call
def delete_policy_action(self, context, policy_action_id): def delete_policy_action(self, context, policy_action_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
pa_db = self._get_policy_action(context, policy_action_id) pa_db = self._get_policy_action(context, policy_action_id)
@ -1546,12 +1546,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
policy_action_id=policy_action_id) policy_action_id=policy_action_id)
context.session.delete(pa_db) context.session.delete(pa_db)
@log.log @log.log_method_call
def get_policy_action(self, context, id, fields=None): def get_policy_action(self, context, id, fields=None):
pa = self._get_policy_action(context, id) pa = self._get_policy_action(context, id)
return self._make_policy_action_dict(pa, fields) return self._make_policy_action_dict(pa, fields)
@log.log @log.log_method_call
def get_policy_actions(self, context, filters=None, fields=None, def get_policy_actions(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1564,12 +1564,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_policy_actions_count(self, context, filters=None): def get_policy_actions_count(self, context, filters=None):
return self._get_collection_count(context, PolicyAction, return self._get_collection_count(context, PolicyAction,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_policy_rule(self, context, policy_rule): def create_policy_rule(self, context, policy_rule):
pr = policy_rule['policy_rule'] pr = policy_rule['policy_rule']
tenant_id = self._get_tenant_id_for_create(context, pr) tenant_id = self._get_tenant_id_for_create(context, pr)
@ -1585,7 +1585,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
pr['policy_actions']) pr['policy_actions'])
return self._make_policy_rule_dict(pr_db) return self._make_policy_rule_dict(pr_db)
@log.log @log.log_method_call
def update_policy_rule(self, context, policy_rule_id, policy_rule): def update_policy_rule(self, context, policy_rule_id, policy_rule):
pr = policy_rule['policy_rule'] pr = policy_rule['policy_rule']
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
@ -1597,7 +1597,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
pr_db.update(pr) pr_db.update(pr)
return self._make_policy_rule_dict(pr_db) return self._make_policy_rule_dict(pr_db)
@log.log @log.log_method_call
def delete_policy_rule(self, context, policy_rule_id): def delete_policy_rule(self, context, policy_rule_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
pr_db = self._get_policy_rule(context, policy_rule_id) pr_db = self._get_policy_rule(context, policy_rule_id)
@ -1607,12 +1607,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
raise gpolicy.PolicyRuleInUse(policy_rule_id=policy_rule_id) raise gpolicy.PolicyRuleInUse(policy_rule_id=policy_rule_id)
context.session.delete(pr_db) context.session.delete(pr_db)
@log.log @log.log_method_call
def get_policy_rule(self, context, policy_rule_id, fields=None): def get_policy_rule(self, context, policy_rule_id, fields=None):
pr = self._get_policy_rule(context, policy_rule_id) pr = self._get_policy_rule(context, policy_rule_id)
return self._make_policy_rule_dict(pr, fields) return self._make_policy_rule_dict(pr, fields)
@log.log @log.log_method_call
def get_policy_rules(self, context, filters=None, fields=None, def get_policy_rules(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1625,12 +1625,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_policy_rules_count(self, context, filters=None): def get_policy_rules_count(self, context, filters=None):
return self._get_collection_count(context, PolicyRule, return self._get_collection_count(context, PolicyRule,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_policy_rule_set(self, context, policy_rule_set): def create_policy_rule_set(self, context, policy_rule_set):
prs = policy_rule_set['policy_rule_set'] prs = policy_rule_set['policy_rule_set']
tenant_id = self._get_tenant_id_for_create(context, prs) tenant_id = self._get_tenant_id_for_create(context, prs)
@ -1647,7 +1647,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
context, prs_db, prs['child_policy_rule_sets']) context, prs_db, prs['child_policy_rule_sets'])
return self._make_policy_rule_set_dict(prs_db) return self._make_policy_rule_set_dict(prs_db)
@log.log @log.log_method_call
def update_policy_rule_set(self, context, policy_rule_set_id, def update_policy_rule_set(self, context, policy_rule_set_id,
policy_rule_set): policy_rule_set):
prs = policy_rule_set['policy_rule_set'] prs = policy_rule_set['policy_rule_set']
@ -1664,7 +1664,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
prs_db.update(prs) prs_db.update(prs)
return self._make_policy_rule_set_dict(prs_db) return self._make_policy_rule_set_dict(prs_db)
@log.log @log.log_method_call
def delete_policy_rule_set(self, context, policy_rule_set_id): def delete_policy_rule_set(self, context, policy_rule_set_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
prs_db = self._get_policy_rule_set(context, policy_rule_set_id) prs_db = self._get_policy_rule_set(context, policy_rule_set_id)
@ -1683,12 +1683,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
policy_rule_set_id) policy_rule_set_id)
context.session.delete(prs_db) context.session.delete(prs_db)
@log.log @log.log_method_call
def get_policy_rule_set(self, context, policy_rule_set_id, fields=None): def get_policy_rule_set(self, context, policy_rule_set_id, fields=None):
prs = self._get_policy_rule_set(context, policy_rule_set_id) prs = self._get_policy_rule_set(context, policy_rule_set_id)
return self._make_policy_rule_set_dict(prs, fields) return self._make_policy_rule_set_dict(prs, fields)
@log.log @log.log_method_call
def get_policy_rule_sets(self, context, filters=None, fields=None, def get_policy_rule_sets(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1701,12 +1701,12 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_policy_rule_sets_count(self, context, filters=None): def get_policy_rule_sets_count(self, context, filters=None):
return self._get_collection_count(context, PolicyRuleSet, return self._get_collection_count(context, PolicyRuleSet,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_external_policy(self, context, external_policy): def create_external_policy(self, context, external_policy):
ep = external_policy['external_policy'] ep = external_policy['external_policy']
tenant_id = self._get_tenant_id_for_create(context, ep) tenant_id = self._get_tenant_id_for_create(context, ep)
@ -1722,7 +1722,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
self._process_policy_rule_sets_for_ep(context, ep_db, ep) self._process_policy_rule_sets_for_ep(context, ep_db, ep)
return self._make_external_policy_dict(ep_db) return self._make_external_policy_dict(ep_db)
@log.log @log.log_method_call
def update_external_policy(self, context, external_policy_id, def update_external_policy(self, context, external_policy_id,
external_policy): external_policy):
ep = external_policy['external_policy'] ep = external_policy['external_policy']
@ -1737,7 +1737,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
ep_db.update(ep) ep_db.update(ep)
return self._make_external_policy_dict(ep_db) return self._make_external_policy_dict(ep_db)
@log.log @log.log_method_call
def get_external_policies(self, context, filters=None, fields=None, def get_external_policies(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1750,25 +1750,25 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_external_policies_count(self, context, filters=None): def get_external_policies_count(self, context, filters=None):
return self._get_collection_count(context, ExternalPolicy, return self._get_collection_count(context, ExternalPolicy,
filters=filters) filters=filters)
@log.log @log.log_method_call
def get_external_policy(self, context, external_policy_id, fields=None): def get_external_policy(self, context, external_policy_id, fields=None):
ep = self._get_external_policy( ep = self._get_external_policy(
context, external_policy_id) context, external_policy_id)
return self._make_external_policy_dict(ep, fields) return self._make_external_policy_dict(ep, fields)
@log.log @log.log_method_call
def delete_external_policy(self, context, external_policy_id): def delete_external_policy(self, context, external_policy_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
ep_db = self._get_external_policy( ep_db = self._get_external_policy(
context, external_policy_id) context, external_policy_id)
context.session.delete(ep_db) context.session.delete(ep_db)
@log.log @log.log_method_call
def create_external_segment(self, context, external_segment): def create_external_segment(self, context, external_segment):
es = external_segment['external_segment'] es = external_segment['external_segment']
tenant_id = self._get_tenant_id_for_create(context, es) tenant_id = self._get_tenant_id_for_create(context, es)
@ -1784,7 +1784,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
self._process_segment_ers(context, es_db, es) self._process_segment_ers(context, es_db, es)
return self._make_external_segment_dict(es_db) return self._make_external_segment_dict(es_db)
@log.log @log.log_method_call
def update_external_segment(self, context, external_segment_id, def update_external_segment(self, context, external_segment_id,
external_segment): external_segment):
es = external_segment['external_segment'] es = external_segment['external_segment']
@ -1797,7 +1797,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
es_db.update(es) es_db.update(es)
return self._make_external_segment_dict(es_db) return self._make_external_segment_dict(es_db)
@log.log @log.log_method_call
def get_external_segments(self, context, filters=None, fields=None, def get_external_segments(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1810,25 +1810,25 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_external_segments_count(self, context, filters=None): def get_external_segments_count(self, context, filters=None):
return self._get_collection_count(context, ExternalSegment, return self._get_collection_count(context, ExternalSegment,
filters=filters) filters=filters)
@log.log @log.log_method_call
def get_external_segment(self, context, external_segment_id, fields=None): def get_external_segment(self, context, external_segment_id, fields=None):
es = self._get_external_segment( es = self._get_external_segment(
context, external_segment_id) context, external_segment_id)
return self._make_external_segment_dict(es, fields) return self._make_external_segment_dict(es, fields)
@log.log @log.log_method_call
def delete_external_segment(self, context, external_segment_id): def delete_external_segment(self, context, external_segment_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
es_db = self._get_external_segment( es_db = self._get_external_segment(
context, external_segment_id) context, external_segment_id)
context.session.delete(es_db) context.session.delete(es_db)
@log.log @log.log_method_call
def create_nat_pool(self, context, nat_pool): def create_nat_pool(self, context, nat_pool):
np = nat_pool['nat_pool'] np = nat_pool['nat_pool']
tenant_id = self._get_tenant_id_for_create(context, np) tenant_id = self._get_tenant_id_for_create(context, np)
@ -1842,7 +1842,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
context.session.add(np_db) context.session.add(np_db)
return self._make_nat_pool_dict(np_db) return self._make_nat_pool_dict(np_db)
@log.log @log.log_method_call
def update_nat_pool(self, context, nat_pool_id, nat_pool): def update_nat_pool(self, context, nat_pool_id, nat_pool):
np = nat_pool['nat_pool'] np = nat_pool['nat_pool']
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
@ -1851,7 +1851,7 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
np_db.update(np) np_db.update(np)
return self._make_nat_pool_dict(np_db) return self._make_nat_pool_dict(np_db)
@log.log @log.log_method_call
def get_nat_pools(self, context, filters=None, fields=None, def get_nat_pools(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -1864,16 +1864,16 @@ class GroupPolicyDbPlugin(gpolicy.GroupPolicyPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_nat_pools_count(self, context, filters=None): def get_nat_pools_count(self, context, filters=None):
return self._get_collection_count(context, NATPool, filters=filters) return self._get_collection_count(context, NATPool, filters=filters)
@log.log @log.log_method_call
def get_nat_pool(self, context, nat_pool_id, fields=None): def get_nat_pool(self, context, nat_pool_id, fields=None):
np = self._get_nat_pool(context, nat_pool_id) np = self._get_nat_pool(context, nat_pool_id)
return self._make_nat_pool_dict(np, fields) return self._make_nat_pool_dict(np, fields)
@log.log @log.log_method_call
def delete_nat_pool(self, context, nat_pool_id): def delete_nat_pool(self, context, nat_pool_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
np_db = self._get_nat_pool(context, nat_pool_id) np_db = self._get_nat_pool(context, nat_pool_id)

View File

@ -10,8 +10,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.common import log
from neutron.db import model_base from neutron.db import model_base
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import uuidutils from oslo_utils import uuidutils
import sqlalchemy as sa import sqlalchemy as sa
@ -251,7 +251,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
attribute='allowed_address_pairs', attribute='allowed_address_pairs',
reason='read only attribute') reason='read only attribute')
@log.log @log.log_method_call
def create_policy_target(self, context, policy_target): def create_policy_target(self, context, policy_target):
pt = policy_target['policy_target'] pt = policy_target['policy_target']
tenant_id = self._get_tenant_id_for_create(context, pt) tenant_id = self._get_tenant_id_for_create(context, pt)
@ -269,12 +269,12 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
return self._make_policy_target_dict( return self._make_policy_target_dict(
pt_db, port_attributes=pt.get('port_attributes', {})) pt_db, port_attributes=pt.get('port_attributes', {}))
@log.log @log.log_method_call
def get_policy_targets_count(self, context, filters=None): def get_policy_targets_count(self, context, filters=None):
return self._get_collection_count(context, PolicyTargetMapping, return self._get_collection_count(context, PolicyTargetMapping,
filters=filters) filters=filters)
@log.log @log.log_method_call
def get_policy_targets(self, context, filters=None, fields=None, def get_policy_targets(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -287,7 +287,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def create_policy_target_group(self, context, policy_target_group): def create_policy_target_group(self, context, policy_target_group):
ptg = policy_target_group['policy_target_group'] ptg = policy_target_group['policy_target_group']
tenant_id = self._get_tenant_id_for_create(context, ptg) tenant_id = self._get_tenant_id_for_create(context, ptg)
@ -312,7 +312,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
self._process_policy_rule_sets_for_ptg(context, ptg_db, ptg) self._process_policy_rule_sets_for_ptg(context, ptg_db, ptg)
return self._make_policy_target_group_dict(ptg_db) return self._make_policy_target_group_dict(ptg_db)
@log.log @log.log_method_call
def update_policy_target_group(self, context, policy_target_group_id, def update_policy_target_group(self, context, policy_target_group_id,
policy_target_group): policy_target_group):
ptg = policy_target_group['policy_target_group'] ptg = policy_target_group['policy_target_group']
@ -343,7 +343,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
ptg_db.update(ptg) ptg_db.update(ptg)
return self._make_policy_target_group_dict(ptg_db) return self._make_policy_target_group_dict(ptg_db)
@log.log @log.log_method_call
def create_l2_policy(self, context, l2_policy): def create_l2_policy(self, context, l2_policy):
l2p = l2_policy['l2_policy'] l2p = l2_policy['l2_policy']
tenant_id = self._get_tenant_id_for_create(context, l2p) tenant_id = self._get_tenant_id_for_create(context, l2p)
@ -360,7 +360,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
context.session.add(l2p_db) context.session.add(l2p_db)
return self._make_l2_policy_dict(l2p_db) return self._make_l2_policy_dict(l2p_db)
@log.log @log.log_method_call
def get_l2_policies(self, context, filters=None, fields=None, def get_l2_policies(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -373,12 +373,12 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_l2_policies_count(self, context, filters=None): def get_l2_policies_count(self, context, filters=None):
return self._get_collection_count(context, L2PolicyMapping, return self._get_collection_count(context, L2PolicyMapping,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_l3_policy(self, context, l3_policy): def create_l3_policy(self, context, l3_policy):
l3p = l3_policy['l3_policy'] l3p = l3_policy['l3_policy']
self.validate_ip_pool(l3p.get('ip_pool', None), l3p['ip_version']) self.validate_ip_pool(l3p.get('ip_pool', None), l3p['ip_version'])
@ -409,7 +409,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
context.session.add(l3p_db) context.session.add(l3p_db)
return self._make_l3_policy_dict(l3p_db) return self._make_l3_policy_dict(l3p_db)
@log.log @log.log_method_call
def update_l3_policy(self, context, l3_policy_id, l3_policy): def update_l3_policy(self, context, l3_policy_id, l3_policy):
l3p = l3_policy['l3_policy'] l3p = l3_policy['l3_policy']
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
@ -443,7 +443,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
l3p_db.update(l3p) l3p_db.update(l3p)
return self._make_l3_policy_dict(l3p_db) return self._make_l3_policy_dict(l3p_db)
@log.log @log.log_method_call
def create_external_segment(self, context, external_segment): def create_external_segment(self, context, external_segment):
es = external_segment['external_segment'] es = external_segment['external_segment']
tenant_id = self._get_tenant_id_for_create(context, es) tenant_id = self._get_tenant_id_for_create(context, es)
@ -460,7 +460,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
self._process_segment_ers(context, es_db, es) self._process_segment_ers(context, es_db, es)
return self._make_external_segment_dict(es_db) return self._make_external_segment_dict(es_db)
@log.log @log.log_method_call
def get_external_segments(self, context, filters=None, fields=None, def get_external_segments(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -477,7 +477,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
return self._get_collection_count(context, ExternalSegmentMapping, return self._get_collection_count(context, ExternalSegmentMapping,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_nat_pool(self, context, nat_pool): def create_nat_pool(self, context, nat_pool):
np = nat_pool['nat_pool'] np = nat_pool['nat_pool']
tenant_id = self._get_tenant_id_for_create(context, np) tenant_id = self._get_tenant_id_for_create(context, np)
@ -492,7 +492,7 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
context.session.add(np_db) context.session.add(np_db)
return self._make_nat_pool_dict(np_db) return self._make_nat_pool_dict(np_db)
@log.log @log.log_method_call
def get_nat_pools(self, context, filters=None, fields=None, def get_nat_pools(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):

View File

@ -12,12 +12,13 @@
import ast import ast
from neutron.common import log from neutron._i18n import _LE
from neutron.db import common_db_mixin from neutron.db import common_db_mixin
from neutron.db import model_base from neutron.db import model_base
from neutron.db import models_v2 from neutron.db import models_v2
from neutron import manager from neutron import manager
from neutron.plugins.common import constants as pconst from neutron.plugins.common import constants as pconst
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
from oslo_utils import uuidutils from oslo_utils import uuidutils
@ -168,7 +169,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
plugins = manager.NeutronManager.get_service_plugins() plugins = manager.NeutronManager.get_service_plugins()
grouppolicy_plugin = plugins.get(pconst.GROUP_POLICY) grouppolicy_plugin = plugins.get(pconst.GROUP_POLICY)
if not grouppolicy_plugin: if not grouppolicy_plugin:
LOG.error(_("No Grouppolicy service plugin found.")) LOG.error(_LE("No Grouppolicy service plugin found."))
raise s_exc.ServiceChainDeploymentError() raise s_exc.ServiceChainDeploymentError()
return grouppolicy_plugin return grouppolicy_plugin
@ -255,7 +256,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
if service_type not in schain.sc_supported_type: if service_type not in schain.sc_supported_type:
raise schain.ServiceTypeNotSupported(sc_service_type=service_type) raise schain.ServiceTypeNotSupported(sc_service_type=service_type)
@log.log @log.log_method_call
def create_servicechain_node(self, context, servicechain_node): def create_servicechain_node(self, context, servicechain_node):
node = servicechain_node['servicechain_node'] node = servicechain_node['servicechain_node']
tenant_id = self._get_tenant_id_for_create(context, node) tenant_id = self._get_tenant_id_for_create(context, node)
@ -269,7 +270,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
context.session.add(node_db) context.session.add(node_db)
return self._make_sc_node_dict(node_db) return self._make_sc_node_dict(node_db)
@log.log @log.log_method_call
def update_servicechain_node(self, context, servicechain_node_id, def update_servicechain_node(self, context, servicechain_node_id,
servicechain_node, set_params=False): servicechain_node, set_params=False):
node = servicechain_node['servicechain_node'] node = servicechain_node['servicechain_node']
@ -287,7 +288,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
set_params=set_params) set_params=set_params)
return self._make_sc_node_dict(node_db) return self._make_sc_node_dict(node_db)
@log.log @log.log_method_call
def delete_servicechain_node(self, context, servicechain_node_id): def delete_servicechain_node(self, context, servicechain_node_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
node_db = self._get_servicechain_node(context, node_db = self._get_servicechain_node(context,
@ -297,13 +298,13 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
node_id=servicechain_node_id) node_id=servicechain_node_id)
context.session.delete(node_db) context.session.delete(node_db)
@log.log @log.log_method_call
def get_servicechain_node(self, context, servicechain_node_id, def get_servicechain_node(self, context, servicechain_node_id,
fields=None): fields=None):
node = self._get_servicechain_node(context, servicechain_node_id) node = self._get_servicechain_node(context, servicechain_node_id)
return self._make_sc_node_dict(node, fields) return self._make_sc_node_dict(node, fields)
@log.log @log.log_method_call
def get_servicechain_nodes(self, context, filters=None, fields=None, def get_servicechain_nodes(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -316,7 +317,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_servicechain_nodes_count(self, context, filters=None): def get_servicechain_nodes_count(self, context, filters=None):
return self._get_collection_count(context, ServiceChainNode, return self._get_collection_count(context, ServiceChainNode,
filters=filters) filters=filters)
@ -419,7 +420,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
result.append(sci) result.append(sci)
return result return result
@log.log @log.log_method_call
def create_servicechain_spec(self, context, servicechain_spec, def create_servicechain_spec(self, context, servicechain_spec,
set_params=True): set_params=True):
spec = servicechain_spec['servicechain_spec'] spec = servicechain_spec['servicechain_spec']
@ -435,7 +436,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
context.session.add(spec_db) context.session.add(spec_db)
return self._make_sc_spec_dict(spec_db) return self._make_sc_spec_dict(spec_db)
@log.log @log.log_method_call
def update_servicechain_spec(self, context, spec_id, def update_servicechain_spec(self, context, spec_id,
servicechain_spec, set_params=True): servicechain_spec, set_params=True):
spec = servicechain_spec['servicechain_spec'] spec = servicechain_spec['servicechain_spec']
@ -447,7 +448,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
spec_db.update(spec) spec_db.update(spec)
return self._make_sc_spec_dict(spec_db) return self._make_sc_spec_dict(spec_db)
@log.log @log.log_method_call
def delete_servicechain_spec(self, context, spec_id): def delete_servicechain_spec(self, context, spec_id):
policy_actions = self._grouppolicy_plugin.get_policy_actions( policy_actions = self._grouppolicy_plugin.get_policy_actions(
context, filters={"action_value": [spec_id]}) context, filters={"action_value": [spec_id]})
@ -460,13 +461,13 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
raise schain.ServiceChainSpecInUse(spec_id=spec_id) raise schain.ServiceChainSpecInUse(spec_id=spec_id)
context.session.delete(spec_db) context.session.delete(spec_db)
@log.log @log.log_method_call
def get_servicechain_spec(self, context, spec_id, def get_servicechain_spec(self, context, spec_id,
fields=None): fields=None):
spec = self._get_servicechain_spec(context, spec_id) spec = self._get_servicechain_spec(context, spec_id)
return self._make_sc_spec_dict(spec, fields) return self._make_sc_spec_dict(spec, fields)
@log.log @log.log_method_call
def get_servicechain_specs(self, context, filters=None, fields=None, def get_servicechain_specs(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -479,12 +480,12 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_servicechain_specs_count(self, context, filters=None): def get_servicechain_specs_count(self, context, filters=None):
return self._get_collection_count(context, ServiceChainSpec, return self._get_collection_count(context, ServiceChainSpec,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_servicechain_instance(self, context, servicechain_instance): def create_servicechain_instance(self, context, servicechain_instance):
instance = servicechain_instance['servicechain_instance'] instance = servicechain_instance['servicechain_instance']
tenant_id = self._get_tenant_id_for_create(context, instance) tenant_id = self._get_tenant_id_for_create(context, instance)
@ -514,7 +515,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
context.session.add(instance_db) context.session.add(instance_db)
return self._make_sc_instance_dict(instance_db) return self._make_sc_instance_dict(instance_db)
@log.log @log.log_method_call
def update_servicechain_instance(self, context, servicechain_instance_id, def update_servicechain_instance(self, context, servicechain_instance_id,
servicechain_instance): servicechain_instance):
instance = servicechain_instance['servicechain_instance'] instance = servicechain_instance['servicechain_instance']
@ -526,19 +527,19 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
instance_db.update(instance) instance_db.update(instance)
return self._make_sc_instance_dict(instance_db) return self._make_sc_instance_dict(instance_db)
@log.log @log.log_method_call
def delete_servicechain_instance(self, context, servicechain_instance_id): def delete_servicechain_instance(self, context, servicechain_instance_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
instance_db = self._get_servicechain_instance( instance_db = self._get_servicechain_instance(
context, servicechain_instance_id) context, servicechain_instance_id)
context.session.delete(instance_db) context.session.delete(instance_db)
@log.log @log.log_method_call
def get_servicechain_instance(self, context, sc_instance_id, fields=None): def get_servicechain_instance(self, context, sc_instance_id, fields=None):
instance_db = self._get_servicechain_instance(context, sc_instance_id) instance_db = self._get_servicechain_instance(context, sc_instance_id)
return self._make_sc_instance_dict(instance_db, fields) return self._make_sc_instance_dict(instance_db, fields)
@log.log @log.log_method_call
def get_servicechain_instances(self, context, filters=None, fields=None, def get_servicechain_instances(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):
@ -551,17 +552,17 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
marker_obj=marker_obj, marker_obj=marker_obj,
page_reverse=page_reverse) page_reverse=page_reverse)
@log.log @log.log_method_call
def get_servicechain_instances_count(self, context, filters=None): def get_servicechain_instances_count(self, context, filters=None):
return self._get_collection_count(context, ServiceChainInstance, return self._get_collection_count(context, ServiceChainInstance,
filters=filters) filters=filters)
@log.log @log.log_method_call
def get_service_profiles_count(self, context, filters=None): def get_service_profiles_count(self, context, filters=None):
return self._get_collection_count(context, ServiceProfile, return self._get_collection_count(context, ServiceProfile,
filters=filters) filters=filters)
@log.log @log.log_method_call
def create_service_profile(self, context, service_profile): def create_service_profile(self, context, service_profile):
profile = service_profile['service_profile'] profile = service_profile['service_profile']
tenant_id = self._get_tenant_id_for_create(context, profile) tenant_id = self._get_tenant_id_for_create(context, profile)
@ -577,7 +578,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
context.session.add(profile_db) context.session.add(profile_db)
return self._make_service_profile_dict(profile_db) return self._make_service_profile_dict(profile_db)
@log.log @log.log_method_call
def update_service_profile(self, context, service_profile_id, def update_service_profile(self, context, service_profile_id,
service_profile): service_profile):
profile = service_profile['service_profile'] profile = service_profile['service_profile']
@ -587,7 +588,7 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
profile_db.update(profile) profile_db.update(profile)
return self._make_service_profile_dict(profile_db) return self._make_service_profile_dict(profile_db)
@log.log @log.log_method_call
def delete_service_profile(self, context, service_profile_id): def delete_service_profile(self, context, service_profile_id):
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
profile_db = self._get_service_profile(context, profile_db = self._get_service_profile(context,
@ -597,13 +598,13 @@ class ServiceChainDbPlugin(schain.ServiceChainPluginBase,
profile_id=service_profile_id) profile_id=service_profile_id)
context.session.delete(profile_db) context.session.delete(profile_db)
@log.log @log.log_method_call
def get_service_profile(self, context, service_profile_id, fields=None): def get_service_profile(self, context, service_profile_id, fields=None):
profile_db = self._get_service_profile( profile_db = self._get_service_profile(
context, service_profile_id) context, service_profile_id)
return self._make_service_profile_dict(profile_db, fields) return self._make_service_profile_dict(profile_db, fields)
@log.log @log.log_method_call
def get_service_profiles(self, context, filters=None, fields=None, def get_service_profiles(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None, sorts=None, limit=None, marker=None,
page_reverse=False): page_reverse=False):

View File

@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.api import extensions
from neutron.api.v2 import attributes as attr from neutron.api.v2 import attributes as attr
from gbpservice.neutron.extensions import group_policy as gp from gbpservice.neutron.extensions import group_policy as gp
@ -52,7 +53,7 @@ EXTENDED_ATTRIBUTES_2_0 = {
} }
class Group_policy_mapping(object): class Group_policy_mapping(extensions.ExtensionDescriptor):
@classmethod @classmethod
def get_name(cls): def get_name(cls):
@ -79,3 +80,7 @@ class Group_policy_mapping(object):
return EXTENDED_ATTRIBUTES_2_0 return EXTENDED_ATTRIBUTES_2_0
else: else:
return {} return {}
@classmethod
def get_plugin_interface(cls):
return gp.GroupPolicyPluginBase

View File

@ -10,9 +10,13 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import netaddr
from neutron.callbacks import events
from neutron.callbacks import registry
from neutron.callbacks import resources
from neutron.common import constants as l3_constants
from neutron.db import l3_db from neutron.db import l3_db
from neutron.db import securitygroups_db from neutron.db import securitygroups_db
from neutron import manager
# Monkey patch create floatingip to allow subnet_id to be specified. # Monkey patch create floatingip to allow subnet_id to be specified.
@ -81,7 +85,7 @@ l3_db.L3_NAT_dbonly_mixin.create_floatingip = create_floatingip
# REVISIT(ivar): Monkey patch to allow explicit router_id to be set in Neutron # REVISIT(ivar): Monkey patch to allow explicit router_id to be set in Neutron
# for Floating Ip creation (for internal calls only). Once we split the server, # for Floating Ip creation (for internal calls only). Once we split the server,
# this could be part of a GBP Neutron L3 driver. # this could be part of a GBP Neutron L3 driver.
def get_assoc_data(self, context, fip, floating_network_id): def _get_assoc_data(self, context, fip, floating_network_id):
(internal_port, internal_subnet_id, (internal_port, internal_subnet_id,
internal_ip_address) = self._internal_fip_assoc_data(context, fip) internal_ip_address) = self._internal_fip_assoc_data(context, fip)
if fip.get('router_id'): if fip.get('router_id'):
@ -95,7 +99,40 @@ def get_assoc_data(self, context, fip, floating_network_id):
return fip['port_id'], internal_ip_address, router_id return fip['port_id'], internal_ip_address, router_id
l3_db.L3_NAT_dbonly_mixin.get_assoc_data = get_assoc_data
def _update_fip_assoc(self, context, fip, floatingip_db, external_port):
previous_router_id = floatingip_db.router_id
port_id, internal_ip_address, router_id = (
self._check_and_get_fip_assoc(context, fip, floatingip_db))
floatingip_db.update({'fixed_ip_address': internal_ip_address,
'fixed_port_id': port_id,
'router_id': router_id,
'last_known_router_id': previous_router_id})
next_hop = None
if router_id:
router = self._get_router(context.elevated(), router_id)
gw_port = router.gw_port
if gw_port:
for fixed_ip in gw_port.fixed_ips:
addr = netaddr.IPAddress(fixed_ip.ip_address)
if addr.version == l3_constants.IP_VERSION_4:
next_hop = fixed_ip.ip_address
break
args = {'fixed_ip_address': internal_ip_address,
'fixed_port_id': port_id,
'router_id': router_id,
'last_known_router_id': previous_router_id,
'floating_ip_address': floatingip_db.floating_ip_address,
'floating_network_id': floatingip_db.floating_network_id,
'next_hop': next_hop,
'context': context}
registry.notify(resources.FLOATING_IP,
events.AFTER_UPDATE,
self._update_fip_assoc,
**args)
l3_db.L3_NAT_dbonly_mixin._get_assoc_data = _get_assoc_data
l3_db.L3_NAT_dbonly_mixin._update_fip_assoc = _update_fip_assoc
# REVISIT(ivar): Neutron adds a tenant filter on SG lookup for a given port, # REVISIT(ivar): Neutron adds a tenant filter on SG lookup for a given port,
@ -130,9 +167,3 @@ def _get_security_groups_on_port(self, context, port):
securitygroups_db.SecurityGroupDbMixin._get_security_groups_on_port = ( securitygroups_db.SecurityGroupDbMixin._get_security_groups_on_port = (
_get_security_groups_on_port) _get_security_groups_on_port)
def _load_flavors_manager(self):
pass
manager.NeutronManager._load_flavors_manager = _load_flavors_manager

View File

@ -49,7 +49,7 @@ def delete_network(self, context, id):
attempt = 0 attempt = 0
while True: while True:
attempt += 1 attempt += 1
LOG.info(_("Attempt %(attempt)s to delete network %(net)s"), LOG.info(i18n._LI("Attempt %(attempt)s to delete network %(net)s"),
{'attempt': attempt, 'net': id}) {'attempt': attempt, 'net': id})
if attempt > 100: if attempt > 100:
raise InfiniteLoopError() raise InfiniteLoopError()
@ -150,7 +150,7 @@ def delete_subnet(self, context, id):
attempt = 0 attempt = 0
while True: while True:
attempt += 1 attempt += 1
LOG.info(_("Attempt %(attempt)s to delete subnet %(subnet)s"), LOG.info(i18n._LI("Attempt %(attempt)s to delete subnet %(subnet)s"),
{'attempt': attempt, 'subnet': id}) {'attempt': attempt, 'subnet': id})
if attempt > 100: if attempt > 100:
raise InfiniteLoopError() raise InfiniteLoopError()

View File

@ -48,8 +48,8 @@ class APICMechanismGBPDriver(mech_agent.AgentMechanismDriverBase):
network_type = segment[api.NETWORK_TYPE] network_type = segment[api.NETWORK_TYPE]
if network_type == ofcst.TYPE_OPFLEX: if network_type == ofcst.TYPE_OPFLEX:
opflex_mappings = agent['configurations'].get('opflex_networks') opflex_mappings = agent['configurations'].get('opflex_networks')
LOG.debug(_("Checking segment: %(segment)s " LOG.debug("Checking segment: %(segment)s "
"for mappings: %(mappings)s "), "for mappings: %(mappings)s ",
{'segment': segment, 'mappings': opflex_mappings}) {'segment': segment, 'mappings': opflex_mappings})
return ((opflex_mappings is None) or return ((opflex_mappings is None) or
(segment[api.PHYSICAL_NETWORK] in opflex_mappings)) (segment[api.PHYSICAL_NETWORK] in opflex_mappings))

View File

@ -12,10 +12,11 @@
from keystoneclient import exceptions as k_exceptions from keystoneclient import exceptions as k_exceptions
from keystoneclient.v2_0 import client as k_client from keystoneclient.v2_0 import client as k_client
from neutron.common import log from neutron._i18n import _LE
from neutron.db import model_base from neutron.db import model_base
from neutron.db import models_v2 from neutron.db import models_v2
from oslo_config import cfg from oslo_config import cfg
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
from oslo_utils import excutils from oslo_utils import excutils
@ -80,7 +81,7 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
policy resources to various service chain constructs. policy resources to various service chain constructs.
""" """
@log.log @log.log_method_call
def initialize(self): def initialize(self):
self._cached_agent_notifier = None self._cached_agent_notifier = None
self.chain_owner = ChainMappingDriver.chain_tenant_id(reraise=True) self.chain_owner = ChainMappingDriver.chain_tenant_id(reraise=True)
@ -97,10 +98,10 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
return tenant.id return tenant.id
except k_exceptions.NotFound: except k_exceptions.NotFound:
with excutils.save_and_reraise_exception(reraise=reraise): with excutils.save_and_reraise_exception(reraise=reraise):
LOG.error(_('No tenant with name %s exists.'), tenant) LOG.error(_LE('No tenant with name %s exists.'), tenant)
except k_exceptions.NoUniqueMatch: except k_exceptions.NoUniqueMatch:
with excutils.save_and_reraise_exception(reraise=reraise): with excutils.save_and_reraise_exception(reraise=reraise):
LOG.error(_('Multiple tenants matches found for %s'), LOG.error(_LE('Multiple tenants matches found for %s'),
tenant) tenant)
@staticmethod @staticmethod
@ -119,7 +120,7 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
return k_client.Client(username=user, password=pwd, return k_client.Client(username=user, password=pwd,
auth_url=auth_url) auth_url=auth_url)
@log.log @log.log_method_call
def create_policy_target_postcommit(self, context): def create_policy_target_postcommit(self, context):
if not context._plugin._is_service_target(context._plugin_context, if not context._plugin._is_service_target(context._plugin_context,
context.current['id']): context.current['id']):
@ -134,12 +135,12 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
chain_context, context.current, chain_context, context.current,
mapping.servicechain_instance_id) mapping.servicechain_instance_id)
@log.log @log.log_method_call
def delete_policy_target_precommit(self, context): def delete_policy_target_precommit(self, context):
context._is_service_target = context._plugin._is_service_target( context._is_service_target = context._plugin._is_service_target(
context._plugin_context, context.current['id']) context._plugin_context, context.current['id'])
@log.log @log.log_method_call
def delete_policy_target_postcommit(self, context): def delete_policy_target_postcommit(self, context):
if not context._is_service_target: if not context._is_service_target:
mappings = self._get_ptg_servicechain_mapping( mappings = self._get_ptg_servicechain_mapping(
@ -153,11 +154,11 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
chain_context, context.current, chain_context, context.current,
mapping.servicechain_instance_id) mapping.servicechain_instance_id)
@log.log @log.log_method_call
def create_policy_target_group_precommit(self, context): def create_policy_target_group_precommit(self, context):
self._validate_ptg_prss(context, context.current) self._validate_ptg_prss(context, context.current)
@log.log @log.log_method_call
def create_policy_target_group_postcommit(self, context): def create_policy_target_group_postcommit(self, context):
if (context.current['provided_policy_rule_sets'] and not if (context.current['provided_policy_rule_sets'] and not
context.current.get('proxied_group_id')): context.current.get('proxied_group_id')):
@ -166,12 +167,12 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
providing_ptg=context.current) providing_ptg=context.current)
self._handle_prs_added(context) self._handle_prs_added(context)
@log.log @log.log_method_call
def update_policy_target_group_precommit(self, context): def update_policy_target_group_precommit(self, context):
self._validate_ptg_prss(context, context.current) self._validate_ptg_prss(context, context.current)
self._stash_ptg_modified_chains(context) self._stash_ptg_modified_chains(context)
@log.log @log.log_method_call
def update_policy_target_group_postcommit(self, context): def update_policy_target_group_postcommit(self, context):
#Update service chain instance when any ruleset is changed #Update service chain instance when any ruleset is changed
orig = context.original orig = context.original
@ -193,19 +194,19 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
providing_ptg=context.current) providing_ptg=context.current)
self._handle_prs_updated(context) self._handle_prs_updated(context)
@log.log @log.log_method_call
def delete_policy_target_group_precommit(self, context): def delete_policy_target_group_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_target_group_postcommit(self, context): def delete_policy_target_group_postcommit(self, context):
self._handle_prs_removed(context) self._handle_prs_removed(context)
@log.log @log.log_method_call
def update_policy_classifier_postcommit(self, context): def update_policy_classifier_postcommit(self, context):
self._handle_classifier_update_notification(context) self._handle_classifier_update_notification(context)
@log.log @log.log_method_call
def create_policy_action_precommit(self, context): def create_policy_action_precommit(self, context):
spec_id = context.current['action_value'] spec_id = context.current['action_value']
if spec_id: if spec_id:
@ -215,15 +216,15 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
if not spec.get('shared', False): if not spec.get('shared', False):
self._reject_shared(context.current, 'policy_action') self._reject_shared(context.current, 'policy_action')
@log.log @log.log_method_call
def update_policy_action_postcommit(self, context): def update_policy_action_postcommit(self, context):
self._handle_redirect_spec_id_update(context) self._handle_redirect_spec_id_update(context)
@log.log @log.log_method_call
def create_policy_rule_precommit(self, context): def create_policy_rule_precommit(self, context):
self._reject_multiple_redirects_in_rule(context) self._reject_multiple_redirects_in_rule(context)
@log.log @log.log_method_call
def update_policy_rule_precommit(self, context): def update_policy_rule_precommit(self, context):
self._reject_multiple_redirects_in_rule(context) self._reject_multiple_redirects_in_rule(context)
old_redirect = self._get_redirect_action(context, context.original) old_redirect = self._get_redirect_action(context, context.original)
@ -237,7 +238,7 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
# Make sure the PRS can have a new redirect action # Make sure the PRS can have a new redirect action
self._validate_new_prs_redirect(context, prs) self._validate_new_prs_redirect(context, prs)
@log.log @log.log_method_call
def update_policy_rule_postcommit(self, context): def update_policy_rule_postcommit(self, context):
old_classifier_id = context.original['policy_classifier_id'] old_classifier_id = context.original['policy_classifier_id']
new_classifier_id = context.current['policy_classifier_id'] new_classifier_id = context.current['policy_classifier_id']
@ -260,17 +261,17 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
if old_redirect_policy_actions or new_redirect_policy_actions: if old_redirect_policy_actions or new_redirect_policy_actions:
self._handle_redirect_action(context, policy_rule_sets) self._handle_redirect_action(context, policy_rule_sets)
@log.log @log.log_method_call
def create_policy_rule_set_precommit(self, context): def create_policy_rule_set_precommit(self, context):
self._reject_multiple_redirects_in_prs(context) self._reject_multiple_redirects_in_prs(context)
@log.log @log.log_method_call
def create_policy_rule_set_postcommit(self, context): def create_policy_rule_set_postcommit(self, context):
if context.current['child_policy_rule_sets']: if context.current['child_policy_rule_sets']:
self._handle_redirect_action( self._handle_redirect_action(
context, context.current['child_policy_rule_sets']) context, context.current['child_policy_rule_sets'])
@log.log @log.log_method_call
def update_policy_rule_set_precommit(self, context): def update_policy_rule_set_precommit(self, context):
self._reject_multiple_redirects_in_prs(context) self._reject_multiple_redirects_in_prs(context)
# If a redirect action is added (from 0 to one) we have to validate # If a redirect action is added (from 0 to one) we have to validate
@ -283,7 +284,7 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
if new_red_count > old_red_count: if new_red_count > old_red_count:
self._validate_new_prs_redirect(context, context.current) self._validate_new_prs_redirect(context, context.current)
@log.log @log.log_method_call
def update_policy_rule_set_postcommit(self, context): def update_policy_rule_set_postcommit(self, context):
# Handle any Redirects from the current Policy Rule Set # Handle any Redirects from the current Policy Rule Set
self._handle_redirect_action(context, [context.current['id']]) self._handle_redirect_action(context, [context.current['id']])
@ -297,21 +298,21 @@ class ChainMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._handle_redirect_action( self._handle_redirect_action(
context, context.current['child_policy_rule_sets']) context, context.current['child_policy_rule_sets'])
@log.log @log.log_method_call
def delete_policy_rule_set_postcommit(self, context): def delete_policy_rule_set_postcommit(self, context):
if context.current['child_policy_rule_sets']: if context.current['child_policy_rule_sets']:
self._handle_redirect_action( self._handle_redirect_action(
context, context.current['child_policy_rule_sets']) context, context.current['child_policy_rule_sets'])
@log.log @log.log_method_call
def create_external_policy_postcommit(self, context): def create_external_policy_postcommit(self, context):
self._handle_prs_added(context) self._handle_prs_added(context)
@log.log @log.log_method_call
def update_external_policy_postcommit(self, context): def update_external_policy_postcommit(self, context):
self._handle_prs_updated(context) self._handle_prs_updated(context)
@log.log @log.log_method_call
def delete_external_policy_postcommit(self, context): def delete_external_policy_postcommit(self, context):
self._handle_prs_removed(context) self._handle_prs_removed(context)

View File

@ -18,6 +18,9 @@ from apic_ml2.neutron.plugins.ml2.drivers.cisco.apic import apic_model
from apic_ml2.neutron.plugins.ml2.drivers.cisco.apic import config from apic_ml2.neutron.plugins.ml2.drivers.cisco.apic import config
from apicapi import apic_manager from apicapi import apic_manager
from keystoneclient.v2_0 import client as keyclient from keystoneclient.v2_0 import client as keyclient
from neutron._i18n import _LE
from neutron._i18n import _LI
from neutron._i18n import _LW
from neutron.agent.linux import dhcp from neutron.agent.linux import dhcp
from neutron.api.v2 import attributes from neutron.api.v2 import attributes
from neutron.common import constants as n_constants from neutron.common import constants as n_constants
@ -246,7 +249,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
port = self._get_port(context, new_id) port = self._get_port(context, new_id)
ip_owner_info['port'] = port['id'] ip_owner_info['port'] = port['id']
except n_exc.PortNotFound: except n_exc.PortNotFound:
LOG.warning(_("Proxied port %s could not be found"), LOG.warning(_LW("Proxied port %s could not be found"),
new_id) new_id)
return super(ApicMappingDriver, self).update_ip_owner(ip_owner_info) return super(ApicMappingDriver, self).update_ip_owner(ip_owner_info)
@ -264,7 +267,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
port_context = self._core_plugin.get_bound_port_context( port_context = self._core_plugin.get_bound_port_context(
context, port_id, kwargs['host']) context, port_id, kwargs['host'])
if not port_context: if not port_context:
LOG.warning(_("Device %(device)s requested by agent " LOG.warning(_LW("Device %(device)s requested by agent "
"%(agent_id)s not found in database"), "%(agent_id)s not found in database"),
{'device': port_id, {'device': port_id,
'agent_id': kwargs.get('agent_id')}) 'agent_id': kwargs.get('agent_id')})
@ -284,7 +287,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
ptg, pt = self._port_id_to_ptg(context, port['id']) ptg, pt = self._port_id_to_ptg(context, port['id'])
switched = True switched = True
except n_exc.PortNotFound: except n_exc.PortNotFound:
LOG.warning(_("Proxied port %s could not be found"), LOG.warning(_LW("Proxied port %s could not be found"),
new_id) new_id)
l2p = self._network_id_to_l2p(context, port['network_id']) l2p = self._network_id_to_l2p(context, port['network_id'])
@ -381,14 +384,14 @@ class ApicMappingDriver(api.ResourceMappingDriver,
host_snat_ips) host_snat_ips)
ptg = proxied ptg = proxied
else: else:
LOG.info(_("Active master has changed for PT %s"), LOG.info(_LI("Active master has changed for PT %s"),
pt['id']) pt['id'])
# There's no master mac even if a cluster_id is set. # There's no master mac even if a cluster_id is set.
# Active chain head must have changed in a concurrent # Active chain head must have changed in a concurrent
# operation, get out of here # operation, get out of here
pass pass
except Exception as e: except Exception as e:
LOG.error(_("An exception has occurred while retrieving device " LOG.error(_LE("An exception has occurred while retrieving device "
"gbp details for %(device)s with error %(error)s"), "gbp details for %(device)s with error %(error)s"),
{'device': kwargs.get('device'), 'error': e.message}) {'device': kwargs.get('device'), 'error': e.message})
details = {'device': kwargs.get('device')} details = {'device': kwargs.get('device')}
@ -401,7 +404,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
filters={'name': [HOST_SNAT_POOL], filters={'name': [HOST_SNAT_POOL],
'network_id': [network['id']]}) 'network_id': [network['id']]})
if not snat_subnets: if not snat_subnets:
LOG.info(_("Subnet for host-SNAT-pool could not be found " LOG.info(_LI("Subnet for host-SNAT-pool could not be found "
"for external network %(net_id)s. SNAT will not " "for external network %(net_id)s. SNAT will not "
"function on this network"), {'net_id': network['id']}) "function on this network"), {'net_id': network['id']})
return {} return {}
@ -428,7 +431,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
if port and port['fixed_ips'][0]: if port and port['fixed_ips'][0]:
snat_ip = port['fixed_ips'][0]['ip_address'] snat_ip = port['fixed_ips'][0]['ip_address']
else: else:
LOG.warning(_("SNAT-port creation failed for subnet " LOG.warning(_LW("SNAT-port creation failed for subnet "
"%(subnet_id)s on external network " "%(subnet_id)s on external network "
"%(net_id)s. SNAT will not function on" "%(net_id)s. SNAT will not function on"
"host %(host)s for this network"), "host %(host)s for this network"),
@ -875,7 +878,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
# parent method the notification will not be done # parent method the notification will not be done
self._notify_port_update(context._plugin_context, port['id']) self._notify_port_update(context._plugin_context, port['id'])
except n_exc.PortNotFound: except n_exc.PortNotFound:
LOG.warning(_("Port %s is missing") % context.current['port_id']) LOG.warning(_LW("Port %s is missing") % context.current['port_id'])
return return
def delete_policy_target_group_precommit(self, context): def delete_policy_target_group_precommit(self, context):
@ -1344,7 +1347,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
def process_port_deleted(self, context, port): def process_port_deleted(self, context, port):
# do nothing for floating-ip ports # do nothing for floating-ip ports
if port['device_owner'] == n_constants.DEVICE_OWNER_FLOATINGIP: if port['device_owner'] == n_constants.DEVICE_OWNER_FLOATINGIP:
LOG.debug(_("Ignoring floating-ip port %s") % port['id']) LOG.debug("Ignoring floating-ip port %s", port['id'])
return return
try: try:
self.gbp_plugin.delete_policy_target( self.gbp_plugin.delete_policy_target(
@ -1478,7 +1481,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
is_shadow = bool(l3policy_obj) is_shadow = bool(l3policy_obj)
ext_info = self.apic_manager.ext_net_dict.get(es['name']) ext_info = self.apic_manager.ext_net_dict.get(es['name'])
if not ext_info: if not ext_info:
LOG.warning(_("External Segment %s is not managed by APIC " LOG.warning(_LW("External Segment %s is not managed by APIC "
"mapping driver.") % es['id']) "mapping driver.") % es['id'])
return return
pre_existing = (False if is_shadow else self._is_pre_existing(es)) pre_existing = (False if is_shadow else self._is_pre_existing(es))
@ -2518,7 +2521,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
interface_info) interface_info)
except n_exc.BadRequest: except n_exc.BadRequest:
self._delete_port(plugin_context, port['id']) self._delete_port(plugin_context, port['id'])
LOG.exception(_("Adding subnet to router with " LOG.exception(_LE("Adding subnet to router with "
"explicit port failed")) "explicit port failed"))
def _detach_router_from_subnets(self, plugin_context, router_id, sn_ids): def _detach_router_from_subnets(self, plugin_context, router_id, sn_ids):
@ -2560,7 +2563,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
if not (l3out_info.get('vrf_name') and if not (l3out_info.get('vrf_name') and
l3out_info.get('vrf_tenant')): l3out_info.get('vrf_tenant')):
LOG.warning( LOG.warning(
_("External routed network %s doesn't have private " _LW("External routed network %s doesn't have private "
"network set") % es['name']) "network set") % es['name'])
return return
es_tenant = l3out_info['l3out_tenant'] es_tenant = l3out_info['l3out_tenant']
@ -2596,7 +2599,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
self.apic_manager.ensure_subnet_created_on_apic(nat_epg_tenant, self.apic_manager.ensure_subnet_created_on_apic(nat_epg_tenant,
nat_bd_name, gw + '/' + plen, transaction=trs) nat_bd_name, gw + '/' + plen, transaction=trs)
if not es['subnet_id']: if not es['subnet_id']:
LOG.warning(_("No associated subnet found for" LOG.warning(_LW("No associated subnet found for"
"external segment %(es_id)s. SNAT " "external segment %(es_id)s. SNAT "
"will not function for this network"), "will not function for this network"),
{'es_id': es['id']}) {'es_id': es['id']})
@ -2620,11 +2623,12 @@ class ApicMappingDriver(api.ResourceMappingDriver,
attributes.ATTR_NOT_SPECIFIED, attributes.ATTR_NOT_SPECIFIED,
'dns_nameservers': attributes.ATTR_NOT_SPECIFIED, 'dns_nameservers': attributes.ATTR_NOT_SPECIFIED,
'host_routes': 'host_routes':
attributes.ATTR_NOT_SPECIFIED} attributes.ATTR_NOT_SPECIFIED,
'tenant_id': es['tenant_id']}
subnet = self._create_subnet(context._plugin_context, subnet = self._create_subnet(context._plugin_context,
attrs) attrs)
if not subnet: if not subnet:
LOG.warning(_("Subnet %(pool) creation failed for " LOG.warning(_LW("Subnet %(pool) creation failed for "
"external network %(net_id)s. SNAT " "external network %(net_id)s. SNAT "
"will not function for this network"), "will not function for this network"),
{'pool': HOST_SNAT_POOL, {'pool': HOST_SNAT_POOL,
@ -2656,7 +2660,7 @@ class ApicMappingDriver(api.ResourceMappingDriver,
if not (l3out_info.get('vrf_name') and if not (l3out_info.get('vrf_name') and
l3out_info.get('vrf_tenant')): l3out_info.get('vrf_tenant')):
LOG.warning( LOG.warning(
_("External routed network %s doesn't have private " _LW("External routed network %s doesn't have private "
"network set") % es['name']) "network set") % es['name'])
return return
es_tenant = l3out_info['l3out_tenant'] es_tenant = l3out_info['l3out_tenant']

View File

@ -10,8 +10,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from keystoneclient import auth as ks_auth from keystoneauth1 import loading as ks_loading
from keystoneclient import session as ks_session from neutron._i18n import _LW
from neutron.notifiers import nova as n_nova from neutron.notifiers import nova as n_nova
from novaclient import client as nclient from novaclient import client as nclient
from novaclient import exceptions as nova_exceptions from novaclient import exceptions as nova_exceptions
@ -21,40 +21,24 @@ from oslo_log import log as logging
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
class NovaClient: class NovaClient(object):
def __init__(self): def __init__(self):
auth = ks_auth.load_from_conf_options(cfg.CONF, 'nova') auth = ks_loading.load_auth_from_conf_options(cfg.CONF, 'nova')
endpoint_override = None session = ks_loading.load_session_from_conf_options(
if not auth:
if cfg.CONF.nova_admin_tenant_id:
endpoint_override = "%s/%s" % (cfg.CONF.nova_url,
cfg.CONF.nova_admin_tenant_id)
auth = n_nova.DefaultAuthPlugin(
auth_url=cfg.CONF.nova_admin_auth_url,
username=cfg.CONF.nova_admin_username,
password=cfg.CONF.nova_admin_password,
tenant_id=cfg.CONF.nova_admin_tenant_id,
tenant_name=cfg.CONF.nova_admin_tenant_name,
endpoint_override=endpoint_override)
session = ks_session.Session.load_from_conf_options(
cfg.CONF, 'nova', auth=auth) cfg.CONF, 'nova', auth=auth)
novaclient_cls = nclient.get_client_class(n_nova.NOVA_API_VERSION)
self.nclient = novaclient_cls( self.nclient = nclient.Client(
session=session, n_nova.NOVA_API_VERSION, session=session,
region_name=cfg.CONF.nova.region_name) region_name=cfg.CONF.nova.region_name,
endpoint_type=cfg.CONF.nova.endpoint_type)
def get_server(self, server_id): def get_server(self, server_id):
try: try:
return self.client.servers.get(server_id) return self.client.servers.get(server_id)
except nova_exceptions.NotFound: except nova_exceptions.NotFound:
LOG.warning(_("Nova returned NotFound for server: %s"), LOG.warning(_LW("Nova returned NotFound for server: %s"),
server_id) server_id)
except Exception as e: except Exception as e:
LOG.exception(e) LOG.exception(e)

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.common import log from oslo_log import helpers as log
from gbpservice.neutron.services.grouppolicy import ( from gbpservice.neutron.services.grouppolicy import (
group_policy_driver_api as api) group_policy_driver_api as api)
@ -18,222 +18,222 @@ from gbpservice.neutron.services.grouppolicy import (
class NoopDriver(api.PolicyDriver): class NoopDriver(api.PolicyDriver):
@log.log @log.log_method_call
def initialize(self): def initialize(self):
pass pass
@log.log @log.log_method_call
def create_policy_target_precommit(self, context): def create_policy_target_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_target_postcommit(self, context): def create_policy_target_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_target_precommit(self, context): def update_policy_target_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_target_postcommit(self, context): def update_policy_target_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_target_precommit(self, context): def delete_policy_target_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_target_postcommit(self, context): def delete_policy_target_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_target_group_precommit(self, context): def create_policy_target_group_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_target_group_postcommit(self, context): def create_policy_target_group_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_target_group_precommit(self, context): def update_policy_target_group_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_target_group_postcommit(self, context): def update_policy_target_group_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_target_group_precommit(self, context): def delete_policy_target_group_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_target_group_postcommit(self, context): def delete_policy_target_group_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_l2_policy_precommit(self, context): def create_l2_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_l2_policy_postcommit(self, context): def create_l2_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_l2_policy_precommit(self, context): def update_l2_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_l2_policy_postcommit(self, context): def update_l2_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_l2_policy_precommit(self, context): def delete_l2_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_l2_policy_postcommit(self, context): def delete_l2_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_l3_policy_precommit(self, context): def create_l3_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_l3_policy_postcommit(self, context): def create_l3_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_l3_policy_precommit(self, context): def update_l3_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_l3_policy_postcommit(self, context): def update_l3_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_l3_policy_precommit(self, context): def delete_l3_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_l3_policy_postcommit(self, context): def delete_l3_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_network_service_policy_precommit(self, context): def create_network_service_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_network_service_policy_postcommit(self, context): def create_network_service_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_network_service_policy_precommit(self, context): def update_network_service_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_network_service_policy_postcommit(self, context): def update_network_service_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_network_service_policy_precommit(self, context): def delete_network_service_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_network_service_policy_postcommit(self, context): def delete_network_service_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_classifier_precommit(self, context): def create_policy_classifier_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_classifier_postcommit(self, context): def create_policy_classifier_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_classifier_precommit(self, context): def update_policy_classifier_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_classifier_postcommit(self, context): def update_policy_classifier_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_classifier_precommit(self, context): def delete_policy_classifier_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_classifier_postcommit(self, context): def delete_policy_classifier_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_action_precommit(self, context): def create_policy_action_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_action_postcommit(self, context): def create_policy_action_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_action_precommit(self, context): def update_policy_action_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_action_postcommit(self, context): def update_policy_action_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_action_precommit(self, context): def delete_policy_action_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_action_postcommit(self, context): def delete_policy_action_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_rule_precommit(self, context): def create_policy_rule_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_rule_postcommit(self, context): def create_policy_rule_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_rule_precommit(self, context): def update_policy_rule_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_rule_postcommit(self, context): def update_policy_rule_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_rule_precommit(self, context): def delete_policy_rule_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_rule_postcommit(self, context): def delete_policy_rule_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_rule_set_precommit(self, context): def create_policy_rule_set_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_rule_set_postcommit(self, context): def create_policy_rule_set_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_rule_set_precommit(self, context): def update_policy_rule_set_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_rule_set_postcommit(self, context): def update_policy_rule_set_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_rule_set_precommit(self, context): def delete_policy_rule_set_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_rule_set_postcommit(self, context): def delete_policy_rule_set_postcommit(self, context):
pass pass

View File

@ -10,9 +10,11 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.common import log from neutron._i18n import _LI
from neutron._i18n import _LW
from neutron.db import model_base from neutron.db import model_base
from oslo_config import cfg from oslo_config import cfg
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import excutils from oslo_utils import excutils
import sqlalchemy as sa import sqlalchemy as sa
@ -85,7 +87,7 @@ class ImplicitPolicyDriver(api.PolicyDriver, local_api.LocalAPI):
when the default value of None is specified. when the default value of None is specified.
""" """
@log.log @log.log_method_call
def initialize(self): def initialize(self):
gpip = cfg.CONF.group_policy_implicit_policy gpip = cfg.CONF.group_policy_implicit_policy
gpconf = cfg.CONF.group_policy gpconf = cfg.CONF.group_policy
@ -101,12 +103,12 @@ class ImplicitPolicyDriver(api.PolicyDriver, local_api.LocalAPI):
gpproxy.default_proxy_subnet_prefix_length) gpproxy.default_proxy_subnet_prefix_length)
self._default_es_name = gpip.default_external_segment_name self._default_es_name = gpip.default_external_segment_name
@log.log @log.log_method_call
def create_policy_target_group_postcommit(self, context): def create_policy_target_group_postcommit(self, context):
if not context.current['l2_policy_id']: if not context.current['l2_policy_id']:
self._use_implicit_l2_policy(context) self._use_implicit_l2_policy(context)
@log.log @log.log_method_call
def update_policy_target_group_postcommit(self, context): def update_policy_target_group_postcommit(self, context):
old_l2p_id = context.original['l2_policy_id'] old_l2p_id = context.original['l2_policy_id']
new_l2p_id = context.current['l2_policy_id'] new_l2p_id = context.current['l2_policy_id']
@ -115,17 +117,17 @@ class ImplicitPolicyDriver(api.PolicyDriver, local_api.LocalAPI):
if not new_l2p_id: if not new_l2p_id:
self._use_implicit_l2_policy(context) self._use_implicit_l2_policy(context)
@log.log @log.log_method_call
def delete_policy_target_group_postcommit(self, context): def delete_policy_target_group_postcommit(self, context):
l2p_id = context.current['l2_policy_id'] l2p_id = context.current['l2_policy_id']
self._cleanup_l2_policy(context, l2p_id) self._cleanup_l2_policy(context, l2p_id)
@log.log @log.log_method_call
def create_l2_policy_postcommit(self, context): def create_l2_policy_postcommit(self, context):
if not context.current['l3_policy_id']: if not context.current['l3_policy_id']:
self._use_implicit_l3_policy(context) self._use_implicit_l3_policy(context)
@log.log @log.log_method_call
def update_l2_policy_postcommit(self, context): def update_l2_policy_postcommit(self, context):
old_l3p_id = context.original['l3_policy_id'] old_l3p_id = context.original['l3_policy_id']
new_l3p_id = context.current['l3_policy_id'] new_l3p_id = context.current['l3_policy_id']
@ -134,12 +136,12 @@ class ImplicitPolicyDriver(api.PolicyDriver, local_api.LocalAPI):
if not new_l3p_id: if not new_l3p_id:
self._use_implicit_l3_policy(context) self._use_implicit_l3_policy(context)
@log.log @log.log_method_call
def delete_l2_policy_postcommit(self, context): def delete_l2_policy_postcommit(self, context):
l3p_id = context.current['l3_policy_id'] l3p_id = context.current['l3_policy_id']
self._cleanup_l3_policy(context, l3p_id) self._cleanup_l3_policy(context, l3p_id)
@log.log @log.log_method_call
def create_external_segment_precommit(self, context): def create_external_segment_precommit(self, context):
# REVISIT(ivar): find a better way to retrieve the default ES # REVISIT(ivar): find a better way to retrieve the default ES
if self._default_es_name == context.current['name']: if self._default_es_name == context.current['name']:
@ -150,16 +152,16 @@ class ImplicitPolicyDriver(api.PolicyDriver, local_api.LocalAPI):
raise exc.DefaultExternalSegmentAlreadyExists( raise exc.DefaultExternalSegmentAlreadyExists(
es_name=self._default_es_name) es_name=self._default_es_name)
@log.log @log.log_method_call
def create_external_policy_postcommit(self, context): def create_external_policy_postcommit(self, context):
if not context.current['external_segments']: if not context.current['external_segments']:
self._use_implicit_external_segment(context) self._use_implicit_external_segment(context)
@log.log @log.log_method_call
def update_external_policy_postcommit(self, context): def update_external_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_l3_policy_precommit(self, context): def create_l3_policy_precommit(self, context):
if self._default_l3p_name == context.current['name']: if self._default_l3p_name == context.current['name']:
LOG.debug("Creating default L3 policy: %s", context.current) LOG.debug("Creating default L3 policy: %s", context.current)
@ -173,12 +175,12 @@ class ImplicitPolicyDriver(api.PolicyDriver, local_api.LocalAPI):
raise exc.DefaultL3PolicyAlreadyExists( raise exc.DefaultL3PolicyAlreadyExists(
l3p_name=self._default_l3p_name) l3p_name=self._default_l3p_name)
@log.log @log.log_method_call
def create_l3_policy_postcommit(self, context): def create_l3_policy_postcommit(self, context):
if not context.current['external_segments']: if not context.current['external_segments']:
self._use_implicit_external_segment(context) self._use_implicit_external_segment(context)
@log.log @log.log_method_call
def update_l3_policy_postcommit(self, context): def update_l3_policy_postcommit(self, context):
pass pass
@ -207,7 +209,8 @@ class ImplicitPolicyDriver(api.PolicyDriver, local_api.LocalAPI):
try: try:
self._delete_l2_policy(context._plugin_context, l2p_id) self._delete_l2_policy(context._plugin_context, l2p_id)
except gbp_ext.L2PolicyInUse: except gbp_ext.L2PolicyInUse:
LOG.info(_("Cannot delete implicit L2 Policy %s because it's " LOG.info(_LI(
"Cannot delete implicit L2 Policy %s because it's "
"in use."), l2p_id) "in use."), l2p_id)
def _use_implicit_l3_policy(self, context): def _use_implicit_l3_policy(self, context):
@ -243,13 +246,14 @@ class ImplicitPolicyDriver(api.PolicyDriver, local_api.LocalAPI):
filter) filter)
l3p = l3ps and l3ps[0] l3p = l3ps and l3ps[0]
if not l3p: if not l3p:
LOG.warning(_("Caught DefaultL3PolicyAlreadyExists, " LOG.warning(_LW(
"Caught DefaultL3PolicyAlreadyExists, "
"but default L3 policy not concurrently " "but default L3 policy not concurrently "
"created for tenant %s"), tenant_id) "created for tenant %s"), tenant_id)
ctxt.reraise = True ctxt.reraise = True
except exc.OverlappingIPPoolsInSameTenantNotAllowed: except exc.OverlappingIPPoolsInSameTenantNotAllowed:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.info(_("Caught " LOG.info(_LI("Caught "
"OverlappingIPPoolsinSameTenantNotAllowed " "OverlappingIPPoolsinSameTenantNotAllowed "
"during creation of default L3 policy for " "during creation of default L3 policy for "
"tenant %s"), tenant_id) "tenant %s"), tenant_id)

View File

@ -13,6 +13,7 @@
import requests import requests
from requests import auth from requests import auth
from neutron._i18n import _LI
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
@ -52,13 +53,13 @@ class OdlManager(object):
def __init__(self): def __init__(self):
LOG.info(_("Configured ODL username: %s"), LOG.info(_LI("Configured ODL username: %s"),
cfg.CONF.odl_driver.odl_username) cfg.CONF.odl_driver.odl_username)
LOG.info(_("Configured ODL password: %s"), LOG.info(_LI("Configured ODL password: %s"),
cfg.CONF.odl_driver.odl_password) cfg.CONF.odl_driver.odl_password)
LOG.info(_("Configured ODL host: %s"), LOG.info(_LI("Configured ODL host: %s"),
cfg.CONF.odl_driver.odl_host) cfg.CONF.odl_driver.odl_host)
LOG.info(_("Configured ODL port: %s"), LOG.info(_LI("Configured ODL port: %s"),
cfg.CONF.odl_driver.odl_port) cfg.CONF.odl_driver.odl_port)
self._username = cfg.CONF.odl_driver.odl_username self._username = cfg.CONF.odl_driver.odl_username

View File

@ -13,16 +13,18 @@
import netaddr import netaddr
import operator import operator
from neutron._i18n import _LE
from neutron._i18n import _LW
from neutron.api.v2 import attributes from neutron.api.v2 import attributes
from neutron.common import constants as const from neutron.common import constants as const
from neutron.common import exceptions as n_exc from neutron.common import exceptions as n_exc
from neutron.common import log
from neutron import context as n_context from neutron import context as n_context
from neutron.db import model_base from neutron.db import model_base
from neutron.db import models_v2 from neutron.db import models_v2
from neutron.extensions import l3 as ext_l3 from neutron.extensions import l3 as ext_l3
from neutron.extensions import securitygroup as ext_sg from neutron.extensions import securitygroup as ext_sg
from oslo_config import cfg from oslo_config import cfg
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
import sqlalchemy as sa import sqlalchemy as sa
@ -116,7 +118,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
policy resources to various other neutron resources. policy resources to various other neutron resources.
""" """
@log.log @log.log_method_call
def initialize(self): def initialize(self):
self._cached_agent_notifier = None self._cached_agent_notifier = None
@ -197,7 +199,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
router_id=router_id, router_id=router_id,
tenant_id=context.current['tenant_id']) tenant_id=context.current['tenant_id'])
@log.log @log.log_method_call
def create_policy_target_precommit(self, context): def create_policy_target_precommit(self, context):
self._validate_cluster_id(context) self._validate_cluster_id(context)
if not context.current['policy_target_group_id']: if not context.current['policy_target_group_id']:
@ -222,7 +224,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
if pts: if pts:
exc.OnlyOneGroupDefaultGatewayAllowed(group_id=group_id) exc.OnlyOneGroupDefaultGatewayAllowed(group_id=group_id)
@log.log @log.log_method_call
def create_policy_target_postcommit(self, context): def create_policy_target_postcommit(self, context):
if not context.current['port_id']: if not context.current['port_id']:
self._use_implicit_port(context) self._use_implicit_port(context)
@ -281,7 +283,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
context, l2_policy_id) context, l2_policy_id)
fip_ids = [] fip_ids = []
if not external_segments: if not external_segments:
LOG.error(_("Network Service Policy to allocate Floating IP " LOG.error(_LE("Network Service Policy to allocate Floating IP "
"could not be applied because l3policy does " "could not be applied because l3policy does "
"not have an attached external segment")) "not have an attached external segment"))
return fip_ids return fip_ids
@ -325,7 +327,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
no_subnet_pools = [] no_subnet_pools = []
break break
except n_exc.IpAddressGenerationFailure as ex: except n_exc.IpAddressGenerationFailure as ex:
LOG.warning(_("Floating allocation failed: %s"), LOG.warning(_LW("Floating allocation failed: %s"),
ex.message) ex.message)
for nat_pool in no_subnet_pools: for nat_pool in no_subnet_pools:
# Use old allocation method # Use old allocation method
@ -334,32 +336,32 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
context._plugin_context, tenant_id, ext_net_id, fixed_port) context._plugin_context, tenant_id, ext_net_id, fixed_port)
break break
except n_exc.IpAddressGenerationFailure as ex: except n_exc.IpAddressGenerationFailure as ex:
LOG.warning(_("Floating allocation failed: %s"), LOG.warning(_LW("Floating allocation failed: %s"),
ex.message) ex.message)
return fip_id return fip_id
@log.log @log.log_method_call
def update_policy_target_precommit(self, context): def update_policy_target_precommit(self, context):
self._validate_cluster_id(context) self._validate_cluster_id(context)
if (context.current['policy_target_group_id'] != if (context.current['policy_target_group_id'] !=
context.original['policy_target_group_id']): context.original['policy_target_group_id']):
raise exc.PolicyTargetGroupUpdateOfPolicyTargetNotSupported() raise exc.PolicyTargetGroupUpdateOfPolicyTargetNotSupported()
@log.log @log.log_method_call
def update_policy_target_postcommit(self, context): def update_policy_target_postcommit(self, context):
if context.current['cluster_id'] != context.original['cluster_id']: if context.current['cluster_id'] != context.original['cluster_id']:
self._update_cluster_membership( self._update_cluster_membership(
context, new_cluster_id=context.current['cluster_id'], context, new_cluster_id=context.current['cluster_id'],
old_cluster_id=context.original['cluster_id']) old_cluster_id=context.original['cluster_id'])
@log.log @log.log_method_call
def delete_policy_target_precommit(self, context): def delete_policy_target_precommit(self, context):
self._validate_pt_in_use_by_cluster(context) self._validate_pt_in_use_by_cluster(context)
context.fips = self._get_pt_floating_ip_mapping( context.fips = self._get_pt_floating_ip_mapping(
context._plugin_context.session, context._plugin_context.session,
context.current['id']) context.current['id'])
@log.log @log.log_method_call
def delete_policy_target_postcommit(self, context): def delete_policy_target_postcommit(self, context):
sg_list = self._generate_list_of_sg_from_ptg( sg_list = self._generate_list_of_sg_from_ptg(
context, context.current['policy_target_group_id']) context, context.current['policy_target_group_id'])
@ -373,14 +375,14 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._unset_proxy_gateway_routes(context, context.current) self._unset_proxy_gateway_routes(context, context.current)
self._cleanup_port(context._plugin_context, port_id) self._cleanup_port(context._plugin_context, port_id)
@log.log @log.log_method_call
def create_policy_target_group_precommit(self, context): def create_policy_target_group_precommit(self, context):
self._reject_cross_tenant_ptg_l2p(context) self._reject_cross_tenant_ptg_l2p(context)
self._validate_ptg_subnets(context) self._validate_ptg_subnets(context)
self._validate_nat_pool_for_nsp(context) self._validate_nat_pool_for_nsp(context)
self._validate_proxy_ptg(context) self._validate_proxy_ptg(context)
@log.log @log.log_method_call
def create_policy_target_group_postcommit(self, context): def create_policy_target_group_postcommit(self, context):
# REVISIT(ivar) this validates the PTG L2P after the IPD creates it # REVISIT(ivar) this validates the PTG L2P after the IPD creates it
# (which happens in the postcommit phase) # (which happens in the postcommit phase)
@ -454,7 +456,8 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
filters={'name': [ filters={'name': [
gpip.default_external_segment_name]})) gpip.default_external_segment_name]}))
if not external_segments: if not external_segments:
LOG.error(_("Network Service Policy to allocate Floating " LOG.error(_LE(
"Network Service Policy to allocate Floating "
"IP could not be associated because l3policy " "IP could not be associated because l3policy "
"does not have an attached external segment")) "does not have an attached external segment"))
raise exc.NSPRequiresES() raise exc.NSPRequiresES()
@ -478,7 +481,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
free_ip = self._get_last_free_ip(context._plugin_context, free_ip = self._get_last_free_ip(context._plugin_context,
context.current['subnets']) context.current['subnets'])
if not free_ip: if not free_ip:
LOG.error(_("Reserving IP Addresses failed for Network " LOG.error(_LE("Reserving IP Addresses failed for Network "
"Service Policy. No more IP Addresses on " "Service Policy. No more IP Addresses on "
"subnet")) "subnet"))
return return
@ -550,7 +553,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._delete_pt_floating_ip_mapping( self._delete_pt_floating_ip_mapping(
context._plugin_context.session, pt) context._plugin_context.session, pt)
@log.log @log.log_method_call
def update_policy_target_group_precommit(self, context): def update_policy_target_group_precommit(self, context):
if set(context.original['subnets']) - set(context.current['subnets']): if set(context.original['subnets']) - set(context.current['subnets']):
raise exc.PolicyTargetGroupSubnetRemovalNotSupported() raise exc.PolicyTargetGroupSubnetRemovalNotSupported()
@ -561,7 +564,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
context.original['network_service_policy_id']): context.original['network_service_policy_id']):
self._validate_nat_pool_for_nsp(context) self._validate_nat_pool_for_nsp(context)
@log.log @log.log_method_call
def update_policy_target_group_postcommit(self, context): def update_policy_target_group_postcommit(self, context):
# Three conditions where SG association needs to be changed # Three conditions where SG association needs to be changed
# (a) list of policy_targets change # (a) list of policy_targets change
@ -639,14 +642,14 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
if new_nsp: if new_nsp:
self._handle_network_service_policy(context) self._handle_network_service_policy(context)
@log.log @log.log_method_call
def delete_policy_target_group_precommit(self, context): def delete_policy_target_group_precommit(self, context):
context.nsp_cleanup_ipaddress = self._get_ptg_policy_ipaddress_mapping( context.nsp_cleanup_ipaddress = self._get_ptg_policy_ipaddress_mapping(
context._plugin_context.session, context.current['id']) context._plugin_context.session, context.current['id'])
context.nsp_cleanup_fips = self._get_ptg_policy_fip_mapping( context.nsp_cleanup_fips = self._get_ptg_policy_fip_mapping(
context._plugin_context.session, context.current['id']) context._plugin_context.session, context.current['id'])
@log.log @log.log_method_call
def delete_policy_target_group_postcommit(self, context): def delete_policy_target_group_postcommit(self, context):
self._cleanup_network_service_policy(context, self._cleanup_network_service_policy(context,
context.current, context.current,
@ -678,7 +681,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._stitch_ptg_to_l3p(context, proxied, l3p, proxied['subnets']) self._stitch_ptg_to_l3p(context, proxied, l3p, proxied['subnets'])
@log.log @log.log_method_call
def create_l2_policy_precommit(self, context): def create_l2_policy_precommit(self, context):
self._reject_cross_tenant_l2p_l3p(context) self._reject_cross_tenant_l2p_l3p(context)
self._reject_non_shared_net_on_shared_l2p(context) self._reject_non_shared_net_on_shared_l2p(context)
@ -686,12 +689,12 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
if not context.current['inject_default_route']: if not context.current['inject_default_route']:
raise exc.UnsettingInjectDefaultRouteOfL2PolicyNotSupported() raise exc.UnsettingInjectDefaultRouteOfL2PolicyNotSupported()
@log.log @log.log_method_call
def create_l2_policy_postcommit(self, context): def create_l2_policy_postcommit(self, context):
if not context.current['network_id']: if not context.current['network_id']:
self._use_implicit_network(context) self._use_implicit_network(context)
@log.log @log.log_method_call
def update_l2_policy_precommit(self, context): def update_l2_policy_precommit(self, context):
if (context.current['inject_default_route'] != if (context.current['inject_default_route'] !=
context.original['inject_default_route']): context.original['inject_default_route']):
@ -702,20 +705,20 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._reject_cross_tenant_l2p_l3p(context) self._reject_cross_tenant_l2p_l3p(context)
self._reject_non_shared_net_on_shared_l2p(context) self._reject_non_shared_net_on_shared_l2p(context)
@log.log @log.log_method_call
def update_l2_policy_postcommit(self, context): def update_l2_policy_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_l2_policy_precommit(self, context): def delete_l2_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_l2_policy_postcommit(self, context): def delete_l2_policy_postcommit(self, context):
network_id = context.current['network_id'] network_id = context.current['network_id']
self._cleanup_network(context._plugin_context, network_id) self._cleanup_network(context._plugin_context, network_id)
@log.log @log.log_method_call
def create_l3_policy_precommit(self, context): def create_l3_policy_precommit(self, context):
curr = context.current curr = context.current
if len(curr['routers']) > 1: if len(curr['routers']) > 1:
@ -745,7 +748,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
raise exc.MultipleESPerL3PolicyNotSupported() raise exc.MultipleESPerL3PolicyNotSupported()
self._reject_invalid_router_access(context) self._reject_invalid_router_access(context)
@log.log @log.log_method_call
def create_l3_policy_postcommit(self, context): def create_l3_policy_postcommit(self, context):
if not context.current['routers']: if not context.current['routers']:
self._use_implicit_router(context) self._use_implicit_router(context)
@ -756,7 +759,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._set_l3p_external_routes(context) self._set_l3p_external_routes(context)
self._process_new_l3p_ip_pool(context, context.current['ip_pool']) self._process_new_l3p_ip_pool(context, context.current['ip_pool'])
@log.log @log.log_method_call
def update_l3_policy_precommit(self, context): def update_l3_policy_precommit(self, context):
if context.current['routers'] != context.original['routers']: if context.current['routers'] != context.original['routers']:
raise exc.L3PolicyRoutersUpdateNotSupported() raise exc.L3PolicyRoutersUpdateNotSupported()
@ -767,7 +770,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._reject_invalid_router_access(context) self._reject_invalid_router_access(context)
self._validate_in_use_by_nsp(context) self._validate_in_use_by_nsp(context)
@log.log @log.log_method_call
def update_l3_policy_postcommit(self, context): def update_l3_policy_postcommit(self, context):
new, old = context.current, context.original new, old = context.current, context.original
if new['external_segments'] != old['external_segments']: if new['external_segments'] != old['external_segments']:
@ -786,29 +789,29 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
for x in added)) for x in added))
self._set_l3p_external_routes(context, removed=removed) self._set_l3p_external_routes(context, removed=removed)
@log.log @log.log_method_call
def delete_l3_policy_precommit(self, context): def delete_l3_policy_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_l3_policy_postcommit(self, context): def delete_l3_policy_postcommit(self, context):
for router_id in context.current['routers']: for router_id in context.current['routers']:
self._cleanup_router(context._plugin_context, router_id) self._cleanup_router(context._plugin_context, router_id)
self._process_remove_l3p_ip_pool(context, context.current['ip_pool']) self._process_remove_l3p_ip_pool(context, context.current['ip_pool'])
@log.log @log.log_method_call
def create_policy_classifier_precommit(self, context): def create_policy_classifier_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_classifier_postcommit(self, context): def create_policy_classifier_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_classifier_precommit(self, context): def update_policy_classifier_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_classifier_postcommit(self, context): def update_policy_classifier_postcommit(self, context):
policy_rules = (context._plugin.get_policy_classifier( policy_rules = (context._plugin.get_policy_classifier(
context._plugin_context, context._plugin_context,
@ -825,51 +828,51 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._update_policy_rule_sg_rules(context, pr_sets, self._update_policy_rule_sg_rules(context, pr_sets,
policy_rule, context.original, context.current) policy_rule, context.original, context.current)
@log.log @log.log_method_call
def delete_policy_classifier_precommit(self, context): def delete_policy_classifier_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_classifier_postcommit(self, context): def delete_policy_classifier_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_action_precommit(self, context): def create_policy_action_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_action_postcommit(self, context): def create_policy_action_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_action_precommit(self, context): def update_policy_action_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_action_postcommit(self, context): def update_policy_action_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_action_precommit(self, context): def delete_policy_action_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_policy_action_postcommit(self, context): def delete_policy_action_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_rule_precommit(self, context): def create_policy_rule_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_policy_rule_postcommit(self, context): def create_policy_rule_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_rule_precommit(self, context): def update_policy_rule_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_rule_postcommit(self, context): def update_policy_rule_postcommit(self, context):
old_classifier_id = context.original['policy_classifier_id'] old_classifier_id = context.original['policy_classifier_id']
new_classifier_id = context.current['policy_classifier_id'] new_classifier_id = context.current['policy_classifier_id']
@ -887,7 +890,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._apply_policy_rule_set_rules(context, prs, self._apply_policy_rule_set_rules(context, prs,
[context.current]) [context.current])
@log.log @log.log_method_call
def delete_policy_rule_precommit(self, context): def delete_policy_rule_precommit(self, context):
# REVISIT(ivar): This will be removed once navigability issue is # REVISIT(ivar): This will be removed once navigability issue is
# solved (bug/1384397) # solved (bug/1384397)
@ -895,18 +898,18 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
context._plugin._get_policy_rule_policy_rule_sets( context._plugin._get_policy_rule_policy_rule_sets(
context._plugin_context, context.current['id'])) context._plugin_context, context.current['id']))
@log.log @log.log_method_call
def delete_policy_rule_postcommit(self, context): def delete_policy_rule_postcommit(self, context):
for prs in context._plugin.get_policy_rule_sets( for prs in context._plugin.get_policy_rule_sets(
context._plugin_context, context._plugin_context,
filters={'id': context.current['policy_rule_sets']}): filters={'id': context.current['policy_rule_sets']}):
self._remove_policy_rule_set_rules(context, prs, [context.current]) self._remove_policy_rule_set_rules(context, prs, [context.current])
@log.log @log.log_method_call
def create_policy_rule_set_precommit(self, context): def create_policy_rule_set_precommit(self, context):
self._reject_shared(context.current, 'policy_rule_set') self._reject_shared(context.current, 'policy_rule_set')
@log.log @log.log_method_call
def create_policy_rule_set_postcommit(self, context): def create_policy_rule_set_postcommit(self, context):
# creating SGs # creating SGs
policy_rule_set_id = context.current['id'] policy_rule_set_id = context.current['id']
@ -925,11 +928,11 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._recompute_policy_rule_sets( self._recompute_policy_rule_sets(
context, context.current['child_policy_rule_sets']) context, context.current['child_policy_rule_sets'])
@log.log @log.log_method_call
def update_policy_rule_set_precommit(self, context): def update_policy_rule_set_precommit(self, context):
self._reject_shared(context.current, 'policy_rule_set') self._reject_shared(context.current, 'policy_rule_set')
@log.log @log.log_method_call
def update_policy_rule_set_postcommit(self, context): def update_policy_rule_set_postcommit(self, context):
# Update policy_rule_set rules # Update policy_rule_set rules
old_rules = set(context.original['policy_rules']) old_rules = set(context.original['policy_rules'])
@ -949,14 +952,14 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
set(context.current['child_policy_rule_sets'])) set(context.current['child_policy_rule_sets']))
self._recompute_policy_rule_sets(context, to_recompute) self._recompute_policy_rule_sets(context, to_recompute)
@log.log @log.log_method_call
def delete_policy_rule_set_precommit(self, context): def delete_policy_rule_set_precommit(self, context):
mapping = self._get_policy_rule_set_sg_mapping( mapping = self._get_policy_rule_set_sg_mapping(
context._plugin_context.session, context.current['id']) context._plugin_context.session, context.current['id'])
context._rmd_sg_list_temp = [mapping['provided_sg_id'], context._rmd_sg_list_temp = [mapping['provided_sg_id'],
mapping['consumed_sg_id']] mapping['consumed_sg_id']]
@log.log @log.log_method_call
def delete_policy_rule_set_postcommit(self, context): def delete_policy_rule_set_postcommit(self, context):
# Disassociate SGs # Disassociate SGs
sg_list = context._rmd_sg_list_temp sg_list = context._rmd_sg_list_temp
@ -971,7 +974,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
for sg in sg_list: for sg in sg_list:
self._delete_sg(context._plugin_context, sg) self._delete_sg(context._plugin_context, sg)
@log.log @log.log_method_call
def create_network_service_policy_precommit(self, context): def create_network_service_policy_precommit(self, context):
self._validate_nsp_parameters(context) self._validate_nsp_parameters(context)
@ -1333,7 +1336,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
context.set_port_id(port_id) context.set_port_id(port_id)
return return
except n_exc.IpAddressGenerationFailure as ex: except n_exc.IpAddressGenerationFailure as ex:
LOG.warning(_("No more address available in subnet %s"), LOG.warning(_LW("No more address available in subnet %s"),
subnet['id']) subnet['id'])
last = ex last = ex
raise last raise last
@ -1343,7 +1346,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
try: try:
self._delete_port(plugin_context, port_id) self._delete_port(plugin_context, port_id)
except n_exc.PortNotFound: except n_exc.PortNotFound:
LOG.warning(_("Port %s is missing") % port_id) LOG.warning(_LW("Port %s is missing") % port_id)
def _plug_router_to_external_segment(self, context, es_dict): def _plug_router_to_external_segment(self, context, es_dict):
es_list = context._plugin.get_external_segments( es_list = context._plugin.get_external_segments(
@ -1537,7 +1540,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
self._add_router_interface(plugin_context, router_id, self._add_router_interface(plugin_context, router_id,
interface_info) interface_info)
except n_exc.BadRequest: except n_exc.BadRequest:
LOG.exception(_("Adding subnet to router failed")) LOG.exception(_LE("Adding subnet to router failed"))
raise exc.GroupPolicyInternalError() raise exc.GroupPolicyInternalError()
def _generate_subnets_from_cidrs(self, context, l2p, l3p, cidrs, def _generate_subnets_from_cidrs(self, context, l2p, l3p, cidrs,
@ -1578,7 +1581,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
context._plugin_context, subnet_id, router_id) context._plugin_context, subnet_id, router_id)
except n_exc.InvalidInput: except n_exc.InvalidInput:
# This exception is not expected. # This exception is not expected.
LOG.exception(_("adding subnet to router failed")) LOG.exception(_LE("adding subnet to router failed"))
for subnet_id in subnet_ids: for subnet_id in subnet_ids:
self._delete_subnet(context._plugin_context, subnet_id) self._delete_subnet(context._plugin_context, subnet_id)
raise exc.GroupPolicyInternalError() raise exc.GroupPolicyInternalError()
@ -1627,7 +1630,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
except n_exc.InvalidInput: except n_exc.InvalidInput:
# This exception is not expected. # This exception is not expected.
# TODO(ivar): find a better way to rollback # TODO(ivar): find a better way to rollback
LOG.exception(_("adding subnet to router failed")) LOG.exception(_LE("adding subnet to router failed"))
for subnet_id in subnet_ids: for subnet_id in subnet_ids:
self._delete_subnet(context._plugin_context, subnet_id) self._delete_subnet(context._plugin_context, subnet_id)
raise exc.GroupPolicyInternalError() raise exc.GroupPolicyInternalError()
@ -1916,7 +1919,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
pt = context._plugin.get_policy_target(context._plugin_context, pt = context._plugin.get_policy_target(context._plugin_context,
pt_id) pt_id)
except gp_ext.PolicyTargetNotFound: except gp_ext.PolicyTargetNotFound:
LOG.warning(_("PT %s doesn't exist anymore"), pt_id) LOG.warning(_LW("PT %s doesn't exist anymore"), pt_id)
return return
try: try:
port_id = pt['port_id'] port_id = pt['port_id']
@ -1926,14 +1929,14 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
port[ext_sg.SECURITYGROUPS] = new_sg_list port[ext_sg.SECURITYGROUPS] = new_sg_list
self._update_port(context._plugin_context, port_id, port) self._update_port(context._plugin_context, port_id, port)
except n_exc.PortNotFound: except n_exc.PortNotFound:
LOG.warning(_("Port %s is missing") % port_id) LOG.warning(_LW("Port %s is missing") % port_id)
def _disassoc_sgs_from_pt(self, context, pt_id, sg_list): def _disassoc_sgs_from_pt(self, context, pt_id, sg_list):
try: try:
pt = context._plugin.get_policy_target(context._plugin_context, pt = context._plugin.get_policy_target(context._plugin_context,
pt_id) pt_id)
except gp_ext.PolicyTargetNotFound: except gp_ext.PolicyTargetNotFound:
LOG.warning(_("PT %s doesn't exist anymore"), pt_id) LOG.warning(_LW("PT %s doesn't exist anymore"), pt_id)
return return
port_id = pt['port_id'] port_id = pt['port_id']
self._disassoc_sgs_from_port(context._plugin_context, port_id, sg_list) self._disassoc_sgs_from_port(context._plugin_context, port_id, sg_list)
@ -1946,7 +1949,7 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
port[ext_sg.SECURITYGROUPS] = new_sg_list port[ext_sg.SECURITYGROUPS] = new_sg_list
self._update_port(plugin_context, port_id, port) self._update_port(plugin_context, port_id, port)
except n_exc.PortNotFound: except n_exc.PortNotFound:
LOG.warning(_("Port %s is missing") % port_id) LOG.warning(_LW("Port %s is missing") % port_id)
def _generate_list_of_sg_from_ptg(self, context, ptg_id): def _generate_list_of_sg_from_ptg(self, context, ptg_id):
ptg = context._plugin.get_policy_target_group( ptg = context._plugin.get_policy_target_group(
@ -2540,6 +2543,11 @@ class ResourceMappingDriver(api.PolicyDriver, local_api.LocalAPI,
def _update_cluster_membership(self, context, new_cluster_id=None, def _update_cluster_membership(self, context, new_cluster_id=None,
old_cluster_id=None): old_cluster_id=None):
# REVISIT: The following private attribute definition should not
# be used since the Neutron plugin contract only requires definition
# of the "supported_extension_aliases" property. This currently works
# since the ML2 plugin also defines the private property
# "_supported_extensions_aliases".
if ("allowed-address-pairs" in if ("allowed-address-pairs" in
self._core_plugin._supported_extension_aliases): self._core_plugin._supported_extension_aliases):
curr_port = self._get_port( curr_port = self._get_port(

View File

@ -11,6 +11,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from neutron._i18n import _LE
from neutron._i18n import _LI
from neutron.common import exceptions as n_exc from neutron.common import exceptions as n_exc
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log from oslo_log import log
@ -30,14 +32,14 @@ class ExtensionManager(stevedore.named.NamedExtensionManager):
# the order in which the drivers are called. # the order in which the drivers are called.
self.ordered_ext_drivers = [] self.ordered_ext_drivers = []
LOG.info(_("Configured extension driver names: %s"), LOG.info(_LI("Configured extension driver names: %s"),
cfg.CONF.group_policy.extension_drivers) cfg.CONF.group_policy.extension_drivers)
super(ExtensionManager, self).__init__( super(ExtensionManager, self).__init__(
'gbpservice.neutron.group_policy.extension_drivers', 'gbpservice.neutron.group_policy.extension_drivers',
cfg.CONF.group_policy.extension_drivers, cfg.CONF.group_policy.extension_drivers,
invoke_on_load=True, invoke_on_load=True,
name_order=True) name_order=True)
LOG.info(_("Loaded extension driver names: %s"), self.names()) LOG.info(_LI("Loaded extension driver names: %s"), self.names())
self._register_drivers() self._register_drivers()
def _register_drivers(self): def _register_drivers(self):
@ -48,13 +50,13 @@ class ExtensionManager(stevedore.named.NamedExtensionManager):
""" """
for ext in self: for ext in self:
self.ordered_ext_drivers.append(ext) self.ordered_ext_drivers.append(ext)
LOG.info(_("Registered extension drivers: %s"), LOG.info(_LI("Registered extension drivers: %s"),
[driver.name for driver in self.ordered_ext_drivers]) [driver.name for driver in self.ordered_ext_drivers])
def initialize(self): def initialize(self):
# Initialize each driver in the list. # Initialize each driver in the list.
for driver in self.ordered_ext_drivers: for driver in self.ordered_ext_drivers:
LOG.info(_("Initializing extension driver '%s'"), driver.name) LOG.info(_LI("Initializing extension driver '%s'"), driver.name)
driver.obj.initialize() driver.obj.initialize()
def extension_aliases(self): def extension_aliases(self):
@ -62,7 +64,7 @@ class ExtensionManager(stevedore.named.NamedExtensionManager):
for driver in self.ordered_ext_drivers: for driver in self.ordered_ext_drivers:
alias = driver.obj.extension_alias alias = driver.obj.extension_alias
exts.append(alias) exts.append(alias)
LOG.info(_("Got %(alias)s extension from driver '%(drv)s'"), LOG.info(_LI("Got %(alias)s extension from driver '%(drv)s'"),
{'alias': alias, 'drv': driver.name}) {'alias': alias, 'drv': driver.name})
return exts return exts
@ -76,7 +78,7 @@ class ExtensionManager(stevedore.named.NamedExtensionManager):
raise raise
except Exception: except Exception:
LOG.exception( LOG.exception(
_("Extension driver '%(name)s' failed in %(method)s"), _LE("Extension driver '%(name)s' failed in %(method)s"),
{'name': driver.name, 'method': method_name} {'name': driver.name, 'method': method_name}
) )

View File

@ -12,12 +12,14 @@
import netaddr import netaddr
from neutron._i18n import _LE
from neutron._i18n import _LW
from neutron.api.v2 import attributes as nattr from neutron.api.v2 import attributes as nattr
from neutron.common import log
from neutron import context as n_ctx from neutron import context as n_ctx
from neutron.extensions import portbindings from neutron.extensions import portbindings
from neutron import manager as n_manager from neutron import manager as n_manager
from neutron.plugins.common import constants as pconst from neutron.plugins.common import constants as pconst
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import excutils from oslo_utils import excutils
@ -65,7 +67,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
plugins = n_manager.NeutronManager.get_service_plugins() plugins = n_manager.NeutronManager.get_service_plugins()
servicechain_plugin = plugins.get(pconst.SERVICECHAIN) servicechain_plugin = plugins.get(pconst.SERVICECHAIN)
if not servicechain_plugin: if not servicechain_plugin:
LOG.error(_("No Servicechain service plugin found.")) LOG.error(_LE("No Servicechain service plugin found."))
raise gp_exc.GroupPolicyDeploymentError() raise gp_exc.GroupPolicyDeploymentError()
return servicechain_plugin return servicechain_plugin
@ -328,7 +330,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
else: else:
return result return result
@log.log @log.log_method_call
def create_policy_target(self, context, policy_target): def create_policy_target(self, context, policy_target):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -348,7 +350,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_("create_policy_target_postcommit " LOG.exception(_LE("create_policy_target_postcommit "
"failed, deleting policy_target %s"), "failed, deleting policy_target %s"),
result['id']) result['id'])
self.delete_policy_target(context, result['id']) self.delete_policy_target(context, result['id'])
@ -357,7 +359,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
result.pop('port_attributes', None) result.pop('port_attributes', None)
return result return result
@log.log @log.log_method_call
def update_policy_target(self, context, policy_target_id, policy_target): def update_policy_target(self, context, policy_target_id, policy_target):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -381,7 +383,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_policy_target return updated_policy_target
@log.log @log.log_method_call
def delete_policy_target(self, context, policy_target_id): def delete_policy_target(self, context, policy_target_id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -397,7 +399,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_policy_target_postcommit( self.policy_driver_manager.delete_policy_target_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_policy_target_postcommit failed " LOG.exception(_LE("delete_policy_target_postcommit failed "
"for policy_target %s"), "for policy_target %s"),
policy_target_id) policy_target_id)
@ -425,7 +427,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in filtered_results] return [self._fields(result, fields) for result in filtered_results]
@log.log @log.log_method_call
def create_policy_target_group(self, context, policy_target_group): def create_policy_target_group(self, context, policy_target_group):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -446,14 +448,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_("create_policy_target_group_postcommit " LOG.exception(_LE("create_policy_target_group_postcommit "
"failed, deleting policy_target_group %s"), "failed, deleting policy_target_group %s"),
result['id']) result['id'])
self.delete_policy_target_group(context, result['id']) self.delete_policy_target_group(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_policy_target_group(self, context, policy_target_group_id, def update_policy_target_group(self, context, policy_target_group_id,
policy_target_group): policy_target_group):
session = context.session session = context.session
@ -492,7 +494,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
return updated_policy_target_group return updated_policy_target_group
@log.log @log.log_method_call
def delete_policy_target_group(self, context, policy_target_group_id): def delete_policy_target_group(self, context, policy_target_group_id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -523,7 +525,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.delete_policy_target_group( self.delete_policy_target_group(
context, policy_target_group['proxy_group_id']) context, policy_target_group['proxy_group_id'])
except gpex.PolicyTargetGroupNotFound: except gpex.PolicyTargetGroupNotFound:
LOG.warning(_('PTG %s already deleted'), LOG.warning(_LW('PTG %s already deleted'),
policy_target_group['proxy_group_id']) policy_target_group['proxy_group_id'])
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -541,7 +543,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_policy_target_group_postcommit( self.policy_driver_manager.delete_policy_target_group_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_policy_target_group_postcommit failed " LOG.exception(_LE("delete_policy_target_group_postcommit failed "
"for policy_target_group %s"), "for policy_target_group %s"),
policy_target_group_id) policy_target_group_id)
@ -571,7 +573,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_l2_policy(self, context, l2_policy): def create_l2_policy(self, context, l2_policy):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -589,13 +591,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_("create_l2_policy_postcommit " LOG.exception(_LE("create_l2_policy_postcommit "
"failed, deleting l2_policy %s"), result['id']) "failed, deleting l2_policy %s"),
result['id'])
self.delete_l2_policy(context, result['id']) self.delete_l2_policy(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_l2_policy(self, context, l2_policy_id, l2_policy): def update_l2_policy(self, context, l2_policy_id, l2_policy):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -617,7 +620,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_l2_policy return updated_l2_policy
@log.log @log.log_method_call
def delete_l2_policy(self, context, l2_policy_id): def delete_l2_policy(self, context, l2_policy_id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -633,9 +636,8 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_l2_policy_postcommit( self.policy_driver_manager.delete_l2_policy_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_l2_policy_postcommit failed " LOG.exception(_LE("delete_l2_policy_postcommit failed "
"for l2_policy %s"), "for l2_policy %s"), l2_policy_id)
l2_policy_id)
def get_l2_policy(self, context, l2_policy_id, fields=None): def get_l2_policy(self, context, l2_policy_id, fields=None):
session = context.session session = context.session
@ -661,7 +663,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_network_service_policy(self, context, network_service_policy): def create_network_service_policy(self, context, network_service_policy):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -683,14 +685,15 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_("create_network_service_policy_postcommit " LOG.exception(_LE(
"create_network_service_policy_postcommit "
"failed, deleting network_service_policy %s"), "failed, deleting network_service_policy %s"),
result['id']) result['id'])
self.delete_network_service_policy(context, result['id']) self.delete_network_service_policy(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_network_service_policy(self, context, network_service_policy_id, def update_network_service_policy(self, context, network_service_policy_id,
network_service_policy): network_service_policy):
session = context.session session = context.session
@ -718,7 +721,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_network_service_policy return updated_network_service_policy
@log.log @log.log_method_call
def delete_network_service_policy( def delete_network_service_policy(
self, context, network_service_policy_id): self, context, network_service_policy_id):
session = context.session session = context.session
@ -736,9 +739,9 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
pdm = self.policy_driver_manager pdm = self.policy_driver_manager
pdm.delete_network_service_policy_postcommit(policy_context) pdm.delete_network_service_policy_postcommit(policy_context)
except Exception: except Exception:
LOG.exception(_("delete_network_service_policy_postcommit failed " LOG.exception(_LE(
"for network_service_policy %s"), "delete_network_service_policy_postcommit failed "
network_service_policy_id) "for network_service_policy %s"), network_service_policy_id)
def get_network_service_policy(self, context, network_service_policy_id, def get_network_service_policy(self, context, network_service_policy_id,
fields=None): fields=None):
@ -767,7 +770,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_l3_policy(self, context, l3_policy): def create_l3_policy(self, context, l3_policy):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -787,13 +790,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_("create_l3_policy_postcommit " LOG.exception(_LE("create_l3_policy_postcommit "
"failed, deleting l3_policy %s"), result['id']) "failed, deleting l3_policy %s"),
result['id'])
self.delete_l3_policy(context, result['id']) self.delete_l3_policy(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_l3_policy(self, context, l3_policy_id, l3_policy): def update_l3_policy(self, context, l3_policy_id, l3_policy):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -817,7 +821,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_l3_policy return updated_l3_policy
@log.log @log.log_method_call
def delete_l3_policy(self, context, l3_policy_id, check_unused=False): def delete_l3_policy(self, context, l3_policy_id, check_unused=False):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -837,9 +841,8 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_l3_policy_postcommit( self.policy_driver_manager.delete_l3_policy_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_l3_policy_postcommit failed " LOG.exception(_LE("delete_l3_policy_postcommit failed "
"for l3_policy %s"), "for l3_policy %s"), l3_policy_id)
l3_policy_id)
return True return True
def get_l3_policy(self, context, l3_policy_id, fields=None): def get_l3_policy(self, context, l3_policy_id, fields=None):
@ -866,7 +869,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_policy_classifier(self, context, policy_classifier): def create_policy_classifier(self, context, policy_classifier):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -887,14 +890,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_( LOG.exception(_LE(
"policy_driver_manager.create_policy_classifier_postcommit" "policy_driver_manager.create_policy_classifier_postcommit"
" failed, deleting policy_classifier %s"), result['id']) " failed, deleting policy_classifier %s"), result['id'])
self.delete_policy_classifier(context, result['id']) self.delete_policy_classifier(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_policy_classifier(self, context, id, policy_classifier): def update_policy_classifier(self, context, id, policy_classifier):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -918,7 +921,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_policy_classifier return updated_policy_classifier
@log.log @log.log_method_call
def delete_policy_classifier(self, context, id): def delete_policy_classifier(self, context, id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -934,9 +937,8 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_policy_classifier_postcommit( self.policy_driver_manager.delete_policy_classifier_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_policy_classifier_postcommit failed " LOG.exception(_LE("delete_policy_classifier_postcommit failed "
"for policy_classifier %s"), "for policy_classifier %s"), id)
id)
def get_policy_classifier(self, context, policy_classifier_id, def get_policy_classifier(self, context, policy_classifier_id,
fields=None): fields=None):
@ -964,7 +966,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_policy_action(self, context, policy_action): def create_policy_action(self, context, policy_action):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -985,14 +987,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_( LOG.exception(_LE(
"policy_driver_manager.create_policy_action_postcommit " "policy_driver_manager.create_policy_action_postcommit "
"failed, deleting policy_action %s"), result['id']) "failed, deleting policy_action %s"), result['id'])
self.delete_policy_action(context, result['id']) self.delete_policy_action(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_policy_action(self, context, id, policy_action): def update_policy_action(self, context, id, policy_action):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1017,7 +1019,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_policy_action return updated_policy_action
@log.log @log.log_method_call
def delete_policy_action(self, context, id): def delete_policy_action(self, context, id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1032,9 +1034,8 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_policy_action_postcommit( self.policy_driver_manager.delete_policy_action_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_policy_action_postcommit failed " LOG.exception(_LE("delete_policy_action_postcommit failed "
"for policy_action %s"), "for policy_action %s"), id)
id)
def get_policy_action(self, context, policy_action_id, fields=None): def get_policy_action(self, context, policy_action_id, fields=None):
session = context.session session = context.session
@ -1060,7 +1061,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_policy_rule(self, context, policy_rule): def create_policy_rule(self, context, policy_rule):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1080,14 +1081,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_( LOG.exception(_LE(
"policy_driver_manager.create_policy_rule_postcommit" "policy_driver_manager.create_policy_rule_postcommit"
" failed, deleting policy_rule %s"), result['id']) " failed, deleting policy_rule %s"), result['id'])
self.delete_policy_rule(context, result['id']) self.delete_policy_rule(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_policy_rule(self, context, id, policy_rule): def update_policy_rule(self, context, id, policy_rule):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1110,7 +1111,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_policy_rule return updated_policy_rule
@log.log @log.log_method_call
def delete_policy_rule(self, context, id): def delete_policy_rule(self, context, id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1126,9 +1127,8 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_policy_rule_postcommit( self.policy_driver_manager.delete_policy_rule_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_policy_rule_postcommit failed " LOG.exception(_LE("delete_policy_rule_postcommit failed "
"for policy_rule %s"), "for policy_rule %s"), id)
id)
def get_policy_rule(self, context, policy_rule_id, fields=None): def get_policy_rule(self, context, policy_rule_id, fields=None):
session = context.session session = context.session
@ -1154,7 +1154,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_policy_rule_set(self, context, policy_rule_set): def create_policy_rule_set(self, context, policy_rule_set):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1175,14 +1175,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_( LOG.exception(_LE(
"policy_driver_manager.create_policy_rule_set_postcommit " "policy_driver_manager.create_policy_rule_set_postcommit "
"failed, deleting policy_rule_set %s"), result['id']) "failed, deleting policy_rule_set %s"), result['id'])
self.delete_policy_rule_set(context, result['id']) self.delete_policy_rule_set(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_policy_rule_set(self, context, id, policy_rule_set): def update_policy_rule_set(self, context, id, policy_rule_set):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1206,7 +1206,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_policy_rule_set return updated_policy_rule_set
@log.log @log.log_method_call
def delete_policy_rule_set(self, context, id): def delete_policy_rule_set(self, context, id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1221,9 +1221,8 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_policy_rule_set_postcommit( self.policy_driver_manager.delete_policy_rule_set_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_policy_rule_set_postcommit failed " LOG.exception(_LE("delete_policy_rule_set_postcommit failed "
"for policy_rule_set %s"), "for policy_rule_set %s"), id)
id)
def get_policy_rule_set(self, context, policy_rule_set_id, fields=None): def get_policy_rule_set(self, context, policy_rule_set_id, fields=None):
session = context.session session = context.session
@ -1249,7 +1248,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_external_segment(self, context, external_segment): def create_external_segment(self, context, external_segment):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1273,14 +1272,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
create_external_segment_postcommit(policy_context)) create_external_segment_postcommit(policy_context))
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_("create_external_segment_postcommit " LOG.exception(_LE("create_external_segment_postcommit "
"failed, deleting external_segment " "failed, deleting external_segment "
"%s"), result['id']) "%s"), result['id'])
self.delete_external_segment(context, result['id']) self.delete_external_segment(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_external_segment(self, context, external_segment_id, def update_external_segment(self, context, external_segment_id,
external_segment): external_segment):
session = context.session session = context.session
@ -1310,7 +1309,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_external_segment return updated_external_segment
@log.log @log.log_method_call
def delete_external_segment(self, context, external_segment_id): def delete_external_segment(self, context, external_segment_id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1328,7 +1327,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
(self.policy_driver_manager. (self.policy_driver_manager.
delete_external_segment_postcommit(policy_context)) delete_external_segment_postcommit(policy_context))
except Exception: except Exception:
LOG.exception(_("delete_external_segment_postcommit failed " LOG.exception(_LE("delete_external_segment_postcommit failed "
"for external_segment %s"), "for external_segment %s"),
external_segment_id) external_segment_id)
return True return True
@ -1358,7 +1357,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_external_policy(self, context, external_policy): def create_external_policy(self, context, external_policy):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1379,14 +1378,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
create_external_policy_postcommit(policy_context)) create_external_policy_postcommit(policy_context))
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_("create_external_policy_postcommit " LOG.exception(_LE("create_external_policy_postcommit "
"failed, deleting external_policy " "failed, deleting external_policy "
"%s"), result['id']) "%s"), result['id'])
self.delete_external_policy(context, result['id']) self.delete_external_policy(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_external_policy(self, context, external_policy_id, def update_external_policy(self, context, external_policy_id,
external_policy): external_policy):
session = context.session session = context.session
@ -1413,7 +1412,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
policy_context) policy_context)
return updated_external_policy return updated_external_policy
@log.log @log.log_method_call
def delete_external_policy(self, context, external_policy_id, def delete_external_policy(self, context, external_policy_id,
check_unused=False): check_unused=False):
session = context.session session = context.session
@ -1430,9 +1429,8 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_external_policy_postcommit( self.policy_driver_manager.delete_external_policy_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_external_policy_postcommit failed " LOG.exception(_LE("delete_external_policy_postcommit failed "
"for external_policy %s"), "for external_policy %s"), external_policy_id)
external_policy_id)
def get_external_policy(self, context, external_policy_id, fields=None): def get_external_policy(self, context, external_policy_id, fields=None):
session = context.session session = context.session
@ -1459,7 +1457,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
filtered_results.append(filtered) filtered_results.append(filtered)
return [self._fields(result, fields) for result in results] return [self._fields(result, fields) for result in results]
@log.log @log.log_method_call
def create_nat_pool(self, context, nat_pool): def create_nat_pool(self, context, nat_pool):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1477,13 +1475,14 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
create_nat_pool_postcommit(policy_context)) create_nat_pool_postcommit(policy_context))
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.exception(_("create_nat_pool_postcommit failed, deleting " LOG.exception(_LE(
"create_nat_pool_postcommit failed, deleting "
"nat_pool %s"), result['id']) "nat_pool %s"), result['id'])
self.delete_nat_pool(context, result['id']) self.delete_nat_pool(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_nat_pool(self, context, nat_pool_id, nat_pool): def update_nat_pool(self, context, nat_pool_id, nat_pool):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1504,7 +1503,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.update_nat_pool_postcommit(policy_context) self.policy_driver_manager.update_nat_pool_postcommit(policy_context)
return updated_nat_pool return updated_nat_pool
@log.log @log.log_method_call
def delete_nat_pool(self, context, nat_pool_id, check_unused=False): def delete_nat_pool(self, context, nat_pool_id, check_unused=False):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -1519,7 +1518,7 @@ class GroupPolicyPlugin(group_policy_mapping_db.GroupPolicyMappingDbPlugin):
self.policy_driver_manager.delete_nat_pool_postcommit( self.policy_driver_manager.delete_nat_pool_postcommit(
policy_context) policy_context)
except Exception: except Exception:
LOG.exception(_("delete_nat_pool_postcommit failed " LOG.exception(_LE("delete_nat_pool_postcommit failed "
"for nat_pool %s"), "for nat_pool %s"),
nat_pool_id) nat_pool_id)

View File

@ -10,6 +10,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron._i18n import _LE
from neutron._i18n import _LI
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log from oslo_log import log
import stevedore import stevedore
@ -62,14 +64,14 @@ class PolicyDriverManager(stevedore.named.NamedExtensionManager):
self.ordered_policy_drivers = [] self.ordered_policy_drivers = []
self.reverse_ordered_policy_drivers = [] self.reverse_ordered_policy_drivers = []
LOG.info(_("Configured policy driver names: %s"), LOG.info(_LI("Configured policy driver names: %s"),
cfg.CONF.group_policy.policy_drivers) cfg.CONF.group_policy.policy_drivers)
super(PolicyDriverManager, super(PolicyDriverManager,
self).__init__('gbpservice.neutron.group_policy.policy_drivers', self).__init__('gbpservice.neutron.group_policy.policy_drivers',
cfg.CONF.group_policy.policy_drivers, cfg.CONF.group_policy.policy_drivers,
invoke_on_load=True, invoke_on_load=True,
name_order=True) name_order=True)
LOG.info(_("Loaded policy driver names: %s"), self.names()) LOG.info(_LI("Loaded policy driver names: %s"), self.names())
self._register_policy_drivers() self._register_policy_drivers()
def _register_policy_drivers(self): def _register_policy_drivers(self):
@ -83,7 +85,7 @@ class PolicyDriverManager(stevedore.named.NamedExtensionManager):
self.ordered_policy_drivers.append(ext) self.ordered_policy_drivers.append(ext)
self.reverse_ordered_policy_drivers = self.ordered_policy_drivers[::-1] self.reverse_ordered_policy_drivers = self.ordered_policy_drivers[::-1]
LOG.info(_("Registered policy drivers: %s"), LOG.info(_LI("Registered policy drivers: %s"),
[driver.name for driver in self.ordered_policy_drivers]) [driver.name for driver in self.ordered_policy_drivers])
def initialize(self): def initialize(self):
@ -93,7 +95,7 @@ class PolicyDriverManager(stevedore.named.NamedExtensionManager):
# set it to True such that the drivers can override it. # set it to True such that the drivers can override it.
self.native_bulk_support = False self.native_bulk_support = False
for driver in self.ordered_policy_drivers: for driver in self.ordered_policy_drivers:
LOG.info(_("Initializing policy driver '%s'"), driver.name) LOG.info(_LI("Initializing policy driver '%s'"), driver.name)
driver.obj.initialize() driver.obj.initialize()
self.native_bulk_support &= getattr(driver.obj, self.native_bulk_support &= getattr(driver.obj,
'native_bulk_support', True) 'native_bulk_support', True)
@ -122,7 +124,7 @@ class PolicyDriverManager(stevedore.named.NamedExtensionManager):
except Exception: except Exception:
# This is an internal failure. # This is an internal failure.
LOG.exception( LOG.exception(
_("Policy driver '%(name)s' failed in %(method)s"), _LE("Policy driver '%(name)s' failed in %(method)s"),
{'name': driver.name, 'method': method_name} {'name': driver.name, 'method': method_name}
) )
error = True error = True

View File

@ -10,6 +10,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron._i18n import _LE
from neutron._i18n import _LI
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log from oslo_log import log
import stevedore import stevedore
@ -37,14 +39,14 @@ class DriverManager(stevedore.named.NamedExtensionManager):
# the order in which the drivers are called. # the order in which the drivers are called.
self.ordered_drivers = [] self.ordered_drivers = []
LOG.info(_("Configured servicechain driver names: %s"), LOG.info(_LI("Configured servicechain driver names: %s"),
cfg.CONF.servicechain.servicechain_drivers) cfg.CONF.servicechain.servicechain_drivers)
super(DriverManager, super(DriverManager,
self).__init__( self).__init__(
'gbpservice.neutron.servicechain.servicechain_drivers', 'gbpservice.neutron.servicechain.servicechain_drivers',
cfg.CONF.servicechain.servicechain_drivers, cfg.CONF.servicechain.servicechain_drivers,
invoke_on_load=True, name_order=True) invoke_on_load=True, name_order=True)
LOG.info(_("Loaded servicechain driver names: %s"), self.names()) LOG.info(_LI("Loaded servicechain driver names: %s"), self.names())
self._register_drivers() self._register_drivers()
def _register_drivers(self): def _register_drivers(self):
@ -56,14 +58,14 @@ class DriverManager(stevedore.named.NamedExtensionManager):
for ext in self: for ext in self:
self.drivers[ext.name] = ext self.drivers[ext.name] = ext
self.ordered_drivers.append(ext) self.ordered_drivers.append(ext)
LOG.info(_("Registered servicechain drivers: %s"), LOG.info(_LI("Registered servicechain drivers: %s"),
[driver.name for driver in self.ordered_drivers]) [driver.name for driver in self.ordered_drivers])
def initialize(self): def initialize(self):
# ServiceChain bulk operations requires each driver to support them # ServiceChain bulk operations requires each driver to support them
self.native_bulk_support = True self.native_bulk_support = True
for driver in self.ordered_drivers: for driver in self.ordered_drivers:
LOG.info(_("Initializing servicechain driver '%s'"), driver.name) LOG.info(_LI("Initializing servicechain driver '%s'"), driver.name)
driver.obj.initialize() driver.obj.initialize()
self.native_bulk_support &= getattr(driver.obj, self.native_bulk_support &= getattr(driver.obj,
'native_bulk_support', True) 'native_bulk_support', True)
@ -88,7 +90,7 @@ class DriverManager(stevedore.named.NamedExtensionManager):
except Exception: except Exception:
# This is an internal failure. # This is an internal failure.
LOG.exception( LOG.exception(
_("ServiceChain driver '%(name)s' failed in %(method)s"), _LE("ServiceChain driver '%(name)s' failed in %(method)s"),
{'name': driver.name, 'method': method_name} {'name': driver.name, 'method': method_name}
) )
error = True error = True

View File

@ -10,107 +10,107 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.common import log from oslo_log import helpers as log
class NoopDriver(object): class NoopDriver(object):
@log.log @log.log_method_call
def initialize(self): def initialize(self):
pass pass
@log.log @log.log_method_call
def create_servicechain_node_precommit(self, context): def create_servicechain_node_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_node_postcommit(self, context): def create_servicechain_node_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_node_precommit(self, context): def update_servicechain_node_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_node_postcommit(self, context): def update_servicechain_node_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_node_precommit(self, context): def delete_servicechain_node_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_node_postcommit(self, context): def delete_servicechain_node_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_spec_precommit(self, context): def create_servicechain_spec_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_spec_postcommit(self, context): def create_servicechain_spec_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_spec_precommit(self, context): def update_servicechain_spec_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_spec_postcommit(self, context): def update_servicechain_spec_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_spec_precommit(self, context): def delete_servicechain_spec_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_spec_postcommit(self, context): def delete_servicechain_spec_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_instance_precommit(self, context): def create_servicechain_instance_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_instance_postcommit(self, context): def create_servicechain_instance_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_instance_precommit(self, context): def update_servicechain_instance_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_instance_postcommit(self, context): def update_servicechain_instance_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_instance_precommit(self, context): def delete_servicechain_instance_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_instance_postcommit(self, context): def delete_servicechain_instance_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_service_profile_precommit(self, context): def create_service_profile_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_service_profile_postcommit(self, context): def create_service_profile_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_service_profile_precommit(self, context): def update_service_profile_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_service_profile_postcommit(self, context): def update_service_profile_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_service_profile_precommit(self, context): def delete_service_profile_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_service_profile_postcommit(self, context): def delete_service_profile_postcommit(self, context):
pass pass

View File

@ -16,11 +16,13 @@ import time
from heatclient import client as heat_client from heatclient import client as heat_client
from heatclient import exc as heat_exc from heatclient import exc as heat_exc
from keystoneclient.v2_0 import client as keyclient from keystoneclient.v2_0 import client as keyclient
from neutron.common import log from neutron._i18n import _LE
from neutron._i18n import _LW
from neutron.db import model_base from neutron.db import model_base
from neutron import manager from neutron import manager
from neutron.plugins.common import constants as pconst from neutron.plugins.common import constants as pconst
from oslo_config import cfg from oslo_config import cfg
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
import sqlalchemy as sa import sqlalchemy as sa
@ -29,6 +31,7 @@ from gbpservice.neutron.services.servicechain.common import exceptions as exc
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
cfg.CONF.import_group('keystone_authtoken', 'keystonemiddleware.auth_token')
service_chain_opts = [ service_chain_opts = [
cfg.IntOpt('stack_delete_retries', cfg.IntOpt('stack_delete_retries',
@ -69,24 +72,24 @@ class ServiceChainInstanceStack(model_base.BASEV2):
class SimpleChainDriver(object): class SimpleChainDriver(object):
@log.log @log.log_method_call
def initialize(self): def initialize(self):
pass pass
@log.log @log.log_method_call
def create_servicechain_node_precommit(self, context): def create_servicechain_node_precommit(self, context):
if context.current['service_profile_id'] is None: if context.current['service_profile_id'] is None:
if context.current['service_type'] not in sc_supported_type: if context.current['service_type'] not in sc_supported_type:
raise exc.InvalidServiceTypeForReferenceDriver() raise exc.InvalidServiceTypeForReferenceDriver()
elif context.current['service_type']: elif context.current['service_type']:
LOG.warning(_('Both service_profile_id and service_type are' LOG.warning(_LW('Both service_profile_id and service_type are'
'specified, service_type will be ignored.')) 'specified, service_type will be ignored.'))
@log.log @log.log_method_call
def create_servicechain_node_postcommit(self, context): def create_servicechain_node_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_node_precommit(self, context): def update_servicechain_node_precommit(self, context):
if (context.original['config'] != context.current['config']): if (context.original['config'] != context.current['config']):
filters = {'servicechain_spec': context.original[ filters = {'servicechain_spec': context.original[
@ -96,31 +99,31 @@ class SimpleChainDriver(object):
if sc_instances: if sc_instances:
raise exc.NodeUpdateNotSupported() raise exc.NodeUpdateNotSupported()
@log.log @log.log_method_call
def update_servicechain_node_postcommit(self, context): def update_servicechain_node_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_node_precommit(self, context): def delete_servicechain_node_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_node_postcommit(self, context): def delete_servicechain_node_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_spec_precommit(self, context): def create_servicechain_spec_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_spec_postcommit(self, context): def create_servicechain_spec_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_spec_precommit(self, context): def update_servicechain_spec_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_spec_postcommit(self, context): def update_servicechain_spec_postcommit(self, context):
if context.original['nodes'] != context.current['nodes']: if context.original['nodes'] != context.current['nodes']:
filters = {'servicechain_spec': [context.original['id']]} filters = {'servicechain_spec': [context.original['id']]}
@ -131,19 +134,19 @@ class SimpleChainDriver(object):
sc_instance, sc_instance,
context._sc_spec) context._sc_spec)
@log.log @log.log_method_call
def delete_servicechain_spec_precommit(self, context): def delete_servicechain_spec_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_spec_postcommit(self, context): def delete_servicechain_spec_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_instance_precommit(self, context): def create_servicechain_instance_precommit(self, context):
pass pass
@log.log @log.log_method_call
def create_servicechain_instance_postcommit(self, context): def create_servicechain_instance_postcommit(self, context):
sc_instance = context.current sc_instance = context.current
sc_spec_ids = sc_instance.get('servicechain_specs') sc_spec_ids = sc_instance.get('servicechain_specs')
@ -154,11 +157,11 @@ class SimpleChainDriver(object):
self._create_servicechain_instance_stacks(context, sc_node_ids, self._create_servicechain_instance_stacks(context, sc_node_ids,
sc_instance, sc_spec) sc_instance, sc_spec)
@log.log @log.log_method_call
def update_servicechain_instance_precommit(self, context): def update_servicechain_instance_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_servicechain_instance_postcommit(self, context): def update_servicechain_instance_postcommit(self, context):
original_spec_ids = context.original.get('servicechain_specs') original_spec_ids = context.original.get('servicechain_specs')
new_spec_ids = context.current.get('servicechain_specs') new_spec_ids = context.current.get('servicechain_specs')
@ -169,37 +172,37 @@ class SimpleChainDriver(object):
self._update_servicechain_instance(context, context.current, self._update_servicechain_instance(context, context.current,
newspec) newspec)
@log.log @log.log_method_call
def delete_servicechain_instance_precommit(self, context): def delete_servicechain_instance_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_servicechain_instance_postcommit(self, context): def delete_servicechain_instance_postcommit(self, context):
self._delete_servicechain_instance_stacks(context._plugin_context, self._delete_servicechain_instance_stacks(context._plugin_context,
context.current['id']) context.current['id'])
@log.log @log.log_method_call
def create_service_profile_precommit(self, context): def create_service_profile_precommit(self, context):
if context.current['service_type'] not in sc_supported_type: if context.current['service_type'] not in sc_supported_type:
raise exc.InvalidServiceTypeForReferenceDriver() raise exc.InvalidServiceTypeForReferenceDriver()
@log.log @log.log_method_call
def create_service_profile_postcommit(self, context): def create_service_profile_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def update_service_profile_precommit(self, context): def update_service_profile_precommit(self, context):
pass pass
@log.log @log.log_method_call
def update_service_profile_postcommit(self, context): def update_service_profile_postcommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_service_profile_precommit(self, context): def delete_service_profile_precommit(self, context):
pass pass
@log.log @log.log_method_call
def delete_service_profile_postcommit(self, context): def delete_service_profile_postcommit(self, context):
pass pass
@ -242,7 +245,7 @@ class SimpleChainDriver(object):
stack_template = sc_node.get('config') stack_template = sc_node.get('config')
# TODO(magesh):Raise an exception ?? # TODO(magesh):Raise an exception ??
if not stack_template: if not stack_template:
LOG.error(_("Service Config is not defined for the service" LOG.error(_LE("Service Config is not defined for the service"
" chain Node")) " chain Node"))
return return
stack_template = jsonutils.loads(stack_template) stack_template = jsonutils.loads(stack_template)
@ -335,7 +338,8 @@ class SimpleChainDriver(object):
elif stack.stack_status == 'DELETE_FAILED': elif stack.stack_status == 'DELETE_FAILED':
heatclient.delete(stack_id) heatclient.delete(stack_id)
except Exception: except Exception:
LOG.exception(_("Service Chain Instance cleanup may not have " LOG.exception(_LE(
"Service Chain Instance cleanup may not have "
"happened because Heat API request failed " "happened because Heat API request failed "
"while waiting for the stack %(stack)s to be " "while waiting for the stack %(stack)s to be "
"deleted"), {'stack': stack_id}) "deleted"), {'stack': stack_id})
@ -344,7 +348,8 @@ class SimpleChainDriver(object):
time.sleep(STACK_DELETE_RETRY_WAIT) time.sleep(STACK_DELETE_RETRY_WAIT)
stack_delete_retries = stack_delete_retries - 1 stack_delete_retries = stack_delete_retries - 1
if stack_delete_retries == 0: if stack_delete_retries == 0:
LOG.warning(_("Resource cleanup for service chain instance" LOG.warning(_LW(
"Resource cleanup for service chain instance"
" is not completed within %(wait)s seconds" " is not completed within %(wait)s seconds"
" as deletion of Stack %(stack)s is not" " as deletion of Stack %(stack)s is not"
" completed"), " completed"),
@ -409,12 +414,12 @@ class SimpleChainDriver(object):
plugins = manager.NeutronManager.get_service_plugins() plugins = manager.NeutronManager.get_service_plugins()
grouppolicy_plugin = plugins.get(pconst.GROUP_POLICY) grouppolicy_plugin = plugins.get(pconst.GROUP_POLICY)
if not grouppolicy_plugin: if not grouppolicy_plugin:
LOG.error(_("No Grouppolicy service plugin found.")) LOG.error(_LE("No Grouppolicy service plugin found."))
raise exc.ServiceChainDeploymentError() raise exc.ServiceChainDeploymentError()
return grouppolicy_plugin return grouppolicy_plugin
class HeatClient: class HeatClient(object):
def __init__(self, context, password=None): def __init__(self, context, password=None):
api_version = "1" api_version = "1"
@ -447,7 +452,8 @@ class HeatClient:
try: try:
self.stacks.delete(stack_id) self.stacks.delete(stack_id)
except heat_exc.HTTPNotFound: except heat_exc.HTTPNotFound:
LOG.warning(_("Stack %(stack)s created by service chain driver is " LOG.warning(_LW(
"Stack %(stack)s created by service chain driver is "
"not found at cleanup"), {'stack': stack_id}) "not found at cleanup"), {'stack': stack_id})
def get(self, stack_id): def get(self, stack_id):

View File

@ -10,8 +10,9 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.common import log from neutron._i18n import _LE
from neutron.plugins.common import constants as pconst from neutron.plugins.common import constants as pconst
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import excutils from oslo_utils import excutils
@ -41,7 +42,7 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
super(ServiceChainPlugin, self).__init__() super(ServiceChainPlugin, self).__init__()
self.driver_manager.initialize() self.driver_manager.initialize()
@log.log @log.log_method_call
def create_servicechain_node(self, context, servicechain_node): def create_servicechain_node(self, context, servicechain_node):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -58,14 +59,14 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
sc_context) sc_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.error(_("driver_manager.create_servicechain_postcommit " LOG.error(_LE("driver_manager.create_servicechain_postcommit "
"failed, deleting servicechain_node %s"), "failed, deleting servicechain_node %s"),
result['id']) result['id'])
self.delete_servicechain_node(context, result['id']) self.delete_servicechain_node(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_servicechain_node(self, context, servicechain_node_id, def update_servicechain_node(self, context, servicechain_node_id,
servicechain_node): servicechain_node):
session = context.session session = context.session
@ -89,7 +90,7 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
return updated_sc_node return updated_sc_node
@log.log @log.log_method_call
def delete_servicechain_node(self, context, servicechain_node_id): def delete_servicechain_node(self, context, servicechain_node_id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -106,11 +107,11 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
self.driver_manager.delete_servicechain_node_postcommit( self.driver_manager.delete_servicechain_node_postcommit(
sc_context) sc_context)
except Exception: except Exception:
LOG.exception(_("delete_servicechain_node_postcommit failed " LOG.exception(_LE("delete_servicechain_node_postcommit failed "
"for servicechain_node %s"), "for servicechain_node %s"),
servicechain_node_id) servicechain_node_id)
@log.log @log.log_method_call
def create_servicechain_spec(self, context, servicechain_spec): def create_servicechain_spec(self, context, servicechain_spec):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -126,14 +127,14 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
self.driver_manager.create_servicechain_spec_postcommit(sc_context) self.driver_manager.create_servicechain_spec_postcommit(sc_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.error(_("driver_manager.create_servicechain_postcommit " LOG.error(_LE("driver_manager.create_servicechain_postcommit "
"failed, deleting servicechain_spec %s"), "failed, deleting servicechain_spec %s"),
result['id']) result['id'])
self.delete_servicechain_spec(context, result['id']) self.delete_servicechain_spec(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_servicechain_spec(self, context, servicechain_spec_id, def update_servicechain_spec(self, context, servicechain_spec_id,
servicechain_spec): servicechain_spec):
session = context.session session = context.session
@ -156,7 +157,7 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
return updated_sc_spec return updated_sc_spec
@log.log @log.log_method_call
def delete_servicechain_spec(self, context, servicechain_spec_id): def delete_servicechain_spec(self, context, servicechain_spec_id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -172,11 +173,11 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
try: try:
self.driver_manager.delete_servicechain_spec_postcommit(sc_context) self.driver_manager.delete_servicechain_spec_postcommit(sc_context)
except Exception: except Exception:
LOG.exception(_("delete_servicechain_spec_postcommit failed " LOG.exception(_LE("delete_servicechain_spec_postcommit failed "
"for servicechain_spec %s"), "for servicechain_spec %s"),
servicechain_spec_id) servicechain_spec_id)
@log.log @log.log_method_call
def create_servicechain_instance(self, context, servicechain_instance): def create_servicechain_instance(self, context, servicechain_instance):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -193,7 +194,7 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
sc_context) sc_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.error(_( LOG.error(_LE(
"driver_manager.create_servicechain_instance_postcommit " "driver_manager.create_servicechain_instance_postcommit "
"failed, deleting servicechain_instance %s"), "failed, deleting servicechain_instance %s"),
result['id']) result['id'])
@ -201,7 +202,7 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
return result return result
@log.log @log.log_method_call
def update_servicechain_instance(self, context, def update_servicechain_instance(self, context,
servicechain_instance_id, servicechain_instance_id,
servicechain_instance): servicechain_instance):
@ -223,7 +224,7 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
sc_context) sc_context)
return updated_sc_instance return updated_sc_instance
@log.log @log.log_method_call
def delete_servicechain_instance(self, context, servicechain_instance_id): def delete_servicechain_instance(self, context, servicechain_instance_id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -241,11 +242,11 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
self.driver_manager.delete_servicechain_instance_postcommit( self.driver_manager.delete_servicechain_instance_postcommit(
sc_context) sc_context)
except Exception: except Exception:
LOG.exception(_("delete_servicechain_instance_postcommit failed " LOG.exception(_LE("delete_servicechain_instance_postcommit failed "
"for servicechain_instance %s"), "for servicechain_instance %s"),
servicechain_instance_id) servicechain_instance_id)
@log.log @log.log_method_call
def create_service_profile(self, context, service_profile): def create_service_profile(self, context, service_profile):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -263,15 +264,14 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
sc_context) sc_context)
except Exception: except Exception:
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.error(_( LOG.error(_LE(
"driver_manager.create_service_profile_postcommit " "driver_manager.create_service_profile_postcommit "
"failed, deleting service_profile %s"), "failed, deleting service_profile %s"), result['id'])
result['id'])
self.delete_service_profile(context, result['id']) self.delete_service_profile(context, result['id'])
return result return result
@log.log @log.log_method_call
def update_service_profile(self, context, service_profile_id, def update_service_profile(self, context, service_profile_id,
service_profile): service_profile):
session = context.session session = context.session
@ -293,7 +293,7 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
sc_context) sc_context)
return updated_profile return updated_profile
@log.log @log.log_method_call
def delete_service_profile(self, context, service_profile_id): def delete_service_profile(self, context, service_profile_id):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -310,6 +310,6 @@ class ServiceChainPlugin(servicechain_db.ServiceChainDbPlugin,
self.driver_manager.delete_service_profile_postcommit( self.driver_manager.delete_service_profile_postcommit(
sc_context) sc_context)
except Exception: except Exception:
LOG.exception(_("delete_service_profile_postcommit failed " LOG.exception(_LE("delete_service_profile_postcommit failed "
"for service_profile %s"), "for service_profile %s"),
service_profile_id) service_profile_id)

View File

@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron._i18n import _LI
from neutron.common import exceptions as n_exc from neutron.common import exceptions as n_exc
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
@ -32,12 +33,13 @@ class NodeDriverManager(stevedore.named.NamedExtensionManager):
# Ordered list of node drivers. # Ordered list of node drivers.
self.ordered_drivers = [] self.ordered_drivers = []
names = cfg.CONF.node_composition_plugin.node_drivers names = cfg.CONF.node_composition_plugin.node_drivers
LOG.info(_("Configured service chain node driver names: %s"), names) LOG.info(_LI("Configured service chain node driver names: %s"), names)
super(NodeDriverManager, super(NodeDriverManager,
self).__init__( self).__init__(
'gbpservice.neutron.servicechain.ncp_drivers', names, 'gbpservice.neutron.servicechain.ncp_drivers', names,
invoke_on_load=True, name_order=True) invoke_on_load=True, name_order=True)
LOG.info(_("Loaded service chain node driver names: %s"), self.names()) LOG.info(_LI(
"Loaded service chain node driver names: %s"), self.names())
self._register_drivers() self._register_drivers()
def _register_drivers(self): def _register_drivers(self):
@ -45,14 +47,14 @@ class NodeDriverManager(stevedore.named.NamedExtensionManager):
for ext in self: for ext in self:
self.drivers[ext.name] = ext self.drivers[ext.name] = ext
self.ordered_drivers.append(ext) self.ordered_drivers.append(ext)
LOG.info(_("Registered service chain node drivers: %s"), LOG.info(_LI("Registered service chain node drivers: %s"),
[driver.name for driver in self.ordered_drivers]) [driver.name for driver in self.ordered_drivers])
def initialize(self): def initialize(self):
"""Initialize all the service chain node drivers.""" """Initialize all the service chain node drivers."""
self.native_bulk_support = True self.native_bulk_support = True
for driver in self.ordered_drivers: for driver in self.ordered_drivers:
LOG.info(_("Initializing service chain node drivers '%s'"), LOG.info(_LI("Initializing service chain node drivers '%s'"),
driver.name) driver.name)
driver.obj.initialize(driver.name) driver.obj.initialize(driver.name)
self.native_bulk_support &= getattr(driver.obj, self.native_bulk_support &= getattr(driver.obj,

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.common import log from oslo_log import helpers as log
from gbpservice.neutron.services.servicechain.plugins.ncp import driver_base from gbpservice.neutron.services.servicechain.plugins.ncp import driver_base
@ -19,52 +19,52 @@ class NoopNodeDriver(driver_base.NodeDriverBase):
initialized = False initialized = False
@log.log @log.log_method_call
def initialize(self, name): def initialize(self, name):
self.initialized = True self.initialized = True
self._name = name self._name = name
@log.log @log.log_method_call
def get_plumbing_info(self, context): def get_plumbing_info(self, context):
pass pass
@log.log @log.log_method_call
def validate_create(self, context): def validate_create(self, context):
pass pass
@log.log @log.log_method_call
def validate_update(self, context): def validate_update(self, context):
pass pass
@log.log @log.log_method_call
def create(self, context): def create(self, context):
pass pass
@log.log @log.log_method_call
def delete(self, context): def delete(self, context):
pass pass
@log.log @log.log_method_call
def update(self, context): def update(self, context):
pass pass
@log.log @log.log_method_call
def update_policy_target_added(self, context, policy_target): def update_policy_target_added(self, context, policy_target):
pass pass
@log.log @log.log_method_call
def update_policy_target_removed(self, context, policy_target): def update_policy_target_removed(self, context, policy_target):
pass pass
@log.log @log.log_method_call
def update_node_consumer_ptg_added(self, context, policy_target_group): def update_node_consumer_ptg_added(self, context, policy_target_group):
pass pass
@log.log @log.log_method_call
def update_node_consumer_ptg_removed(self, context, policy_target_group): def update_node_consumer_ptg_removed(self, context, policy_target_group):
pass pass
@log.log @log.log_method_call
def notify_chain_parameters_updated(self, context): def notify_chain_parameters_updated(self, context):
pass pass

View File

@ -12,10 +12,11 @@
import time import time
from neutron.common import log from neutron._i18n import _LE
from neutron.db import model_base from neutron.db import model_base
from neutron.plugins.common import constants as pconst from neutron.plugins.common import constants as pconst
from oslo_config import cfg from oslo_config import cfg
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
import sqlalchemy as sa import sqlalchemy as sa
@ -116,16 +117,16 @@ class HeatNodeDriver(driver_base.NodeDriverBase):
'OS::Neutron::Firewall', 'OS::Neutron::Firewall',
'OS::Neutron::FirewallPolicy']} 'OS::Neutron::FirewallPolicy']}
@log.log @log.log_method_call
def initialize(self, name): def initialize(self, name):
self.initialized = True self.initialized = True
self._name = name self._name = name
@log.log @log.log_method_call
def get_plumbing_info(self, context): def get_plumbing_info(self, context):
pass pass
@log.log @log.log_method_call
def validate_create(self, context): def validate_create(self, context):
if context.current_profile is None: if context.current_profile is None:
raise ServiceProfileRequired() raise ServiceProfileRequired()
@ -138,7 +139,7 @@ class HeatNodeDriver(driver_base.NodeDriverBase):
self._validate_service_config(context.current_node['config'], self._validate_service_config(context.current_node['config'],
service_type) service_type)
@log.log @log.log_method_call
def validate_update(self, context): def validate_update(self, context):
if not context.original_node: # PT create/delete notifications if not context.original_node: # PT create/delete notifications
return return
@ -179,7 +180,7 @@ class HeatNodeDriver(driver_base.NodeDriverBase):
raise HeatResourceMissing(resource=resource_name, raise HeatResourceMissing(resource=resource_name,
servicetype=service_type) servicetype=service_type)
@log.log @log.log_method_call
def create(self, context): def create(self, context):
heatclient = self._get_heat_client(context.plugin_context) heatclient = self._get_heat_client(context.plugin_context)
@ -197,7 +198,7 @@ class HeatNodeDriver(driver_base.NodeDriverBase):
context.plugin_session, context.current_node['id'], context.plugin_session, context.current_node['id'],
context.instance['id'], stack['stack']['id']) context.instance['id'], stack['stack']['id'])
@log.log @log.log_method_call
def delete(self, context): def delete(self, context):
stack_ids = self._get_node_instance_stacks(context.plugin_session, stack_ids = self._get_node_instance_stacks(context.plugin_session,
context.current_node['id'], context.current_node['id'],
@ -213,7 +214,7 @@ class HeatNodeDriver(driver_base.NodeDriverBase):
context.current_node['id'], context.current_node['id'],
context.instance['id']) context.instance['id'])
@log.log @log.log_method_call
def update(self, context): def update(self, context):
heatclient = self._get_heat_client(context.plugin_context) heatclient = self._get_heat_client(context.plugin_context)
@ -227,25 +228,25 @@ class HeatNodeDriver(driver_base.NodeDriverBase):
heatclient, stack.stack_id, 'update') heatclient, stack.stack_id, 'update')
heatclient.update(stack.stack_id, stack_template, stack_params) heatclient.update(stack.stack_id, stack_template, stack_params)
@log.log @log.log_method_call
def update_policy_target_added(self, context, policy_target): def update_policy_target_added(self, context, policy_target):
if context.current_profile['service_type'] == pconst.LOADBALANCER: if context.current_profile['service_type'] == pconst.LOADBALANCER:
self.update(context) self.update(context)
@log.log @log.log_method_call
def update_policy_target_removed(self, context, policy_target): def update_policy_target_removed(self, context, policy_target):
if context.current_profile['service_type'] == pconst.LOADBALANCER: if context.current_profile['service_type'] == pconst.LOADBALANCER:
self.update(context) self.update(context)
@log.log @log.log_method_call
def update_node_consumer_ptg_added(self, context, policy_target_group): def update_node_consumer_ptg_added(self, context, policy_target_group):
pass pass
@log.log @log.log_method_call
def update_node_consumer_ptg_removed(self, context, policy_target_group): def update_node_consumer_ptg_removed(self, context, policy_target_group):
pass pass
@log.log @log.log_method_call
def notify_chain_parameters_updated(self, context): def notify_chain_parameters_updated(self, context):
self.update(context) self.update(context)
@ -326,14 +327,14 @@ class HeatNodeDriver(driver_base.NodeDriverBase):
'DELETE_IN_PROGRESS']: 'DELETE_IN_PROGRESS']:
return return
except Exception: except Exception:
LOG.exception(_("Retrieving the stack %(stack)s failed."), LOG.exception(_LE("Retrieving the stack %(stack)s failed."),
{'stack': stack_id}) {'stack': stack_id})
return return
else: else:
time.sleep(STACK_ACTION_RETRY_WAIT) time.sleep(STACK_ACTION_RETRY_WAIT)
time_waited = time_waited + STACK_ACTION_RETRY_WAIT time_waited = time_waited + STACK_ACTION_RETRY_WAIT
if time_waited >= STACK_ACTION_WAIT_TIME: if time_waited >= STACK_ACTION_WAIT_TIME:
LOG.error(_("Stack %(action)s not completed within " LOG.error(_LE("Stack %(action)s not completed within "
"%(wait)s seconds"), "%(wait)s seconds"),
{'action': action, {'action': action,
'wait': STACK_ACTION_WAIT_TIME, 'wait': STACK_ACTION_WAIT_TIME,

View File

@ -12,13 +12,14 @@
from heatclient import client as heat_client from heatclient import client as heat_client
from heatclient import exc as heat_exc from heatclient import exc as heat_exc
from neutron._i18n import _LW
from oslo_log import log as logging from oslo_log import log as logging
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
class HeatClient: class HeatClient(object):
def __init__(self, context, heat_uri, password=None, def __init__(self, context, heat_uri, password=None,
auth_token=None): auth_token=None):
@ -55,7 +56,8 @@ class HeatClient:
try: try:
self.stacks.delete(stack_id) self.stacks.delete(stack_id)
except heat_exc.HTTPNotFound: except heat_exc.HTTPNotFound:
LOG.warning(_("Stack %(stack)s created by service chain driver is " LOG.warning(_LW(
"Stack %(stack)s created by service chain driver is "
"not found at cleanup"), {'stack': stack_id}) "not found at cleanup"), {'stack': stack_id})
def get(self, stack_id): def get(self, stack_id):

View File

@ -12,6 +12,7 @@
from keystoneclient import exceptions as k_exceptions from keystoneclient import exceptions as k_exceptions
from keystoneclient.v2_0 import client as keyclient from keystoneclient.v2_0 import client as keyclient
from neutron._i18n import _LE
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import excutils from oslo_utils import excutils
@ -76,10 +77,10 @@ class AdminOwnedResourcesApicTSCP(tscp.TrafficStitchingPlumber):
return tenant.id return tenant.id
except k_exceptions.NotFound: except k_exceptions.NotFound:
with excutils.save_and_reraise_exception(reraise=True): with excutils.save_and_reraise_exception(reraise=True):
LOG.error(_('No tenant with name %s exists.'), tenant) LOG.error(_LE('No tenant with name %s exists.'), tenant)
except k_exceptions.NoUniqueMatch: except k_exceptions.NoUniqueMatch:
with excutils.save_and_reraise_exception(reraise=True): with excutils.save_and_reraise_exception(reraise=True):
LOG.error(_('Multiple tenants matches found for %s'), tenant) LOG.error(_LE('Multiple tenants matches found for %s'), tenant)
def _get_resource_owner_context(self, context): def _get_resource_owner_context(self, context):
resource_owner_context = context.elevated() resource_owner_context = context.elevated()

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.common import log from oslo_log import helpers as log
from gbpservice.neutron.services.servicechain.plugins.ncp import plumber_base from gbpservice.neutron.services.servicechain.plugins.ncp import plumber_base
@ -19,14 +19,14 @@ class NoopPlumber(plumber_base.NodePlumberBase):
initialized = False initialized = False
@log.log @log.log_method_call
def initialize(self): def initialize(self):
self.initialized = True self.initialized = True
@log.log @log.log_method_call
def plug_services(self, context, deployment): def plug_services(self, context, deployment):
self._sort_deployment(deployment) self._sort_deployment(deployment)
@log.log @log.log_method_call
def unplug_services(self, context, deployment): def unplug_services(self, context, deployment):
self._sort_deployment(deployment) self._sort_deployment(deployment)

View File

@ -10,6 +10,9 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron._i18n import _LE
from neutron._i18n import _LI
from neutron._i18n import _LW
from neutron.api.v2 import attributes as attr from neutron.api.v2 import attributes as attr
from neutron import manager from neutron import manager
from oslo_config import cfg from oslo_config import cfg
@ -44,7 +47,7 @@ class TrafficStitchingPlumber(plumber_base.NodePlumberBase):
# Verify that proxy_group extension is loaded # Verify that proxy_group extension is loaded
if pg_ext.PROXY_GROUP not in cfg.CONF.group_policy.extension_drivers: if pg_ext.PROXY_GROUP not in cfg.CONF.group_policy.extension_drivers:
LOG.error(_("proxy_group GBP driver extension is mandatory for " LOG.error(_LE("proxy_group GBP driver extension is mandatory for "
"traffic stitching plumber.")) "traffic stitching plumber."))
raise exc.GroupPolicyDeploymentError() raise exc.GroupPolicyDeploymentError()
@ -81,7 +84,7 @@ class TrafficStitchingPlumber(plumber_base.NodePlumberBase):
management, 'management') management, 'management')
# Create proper PTs based on the service type # Create proper PTs based on the service type
jump_ptg = None jump_ptg = None
LOG.info(_("Plumbing service of type '%s'"), LOG.info(_LI("Plumbing service of type '%s'"),
info['plumbing_type']) info['plumbing_type'])
if info['plumbing_type'] == common.PLUMBING_TYPE_ENDPOINT: if info['plumbing_type'] == common.PLUMBING_TYPE_ENDPOINT:
# No stitching needed, only provider side PT is created. # No stitching needed, only provider side PT is created.
@ -119,7 +122,7 @@ class TrafficStitchingPlumber(plumber_base.NodePlumberBase):
context, part_context, info['consumer'], context, part_context, info['consumer'],
jump_ptg, 'consumer') jump_ptg, 'consumer')
else: else:
LOG.warning(_("Unsupported plumbing type %s"), LOG.warning(_LW("Unsupported plumbing type %s"),
info['plumbing_type']) info['plumbing_type'])
# Replace current "provider" with jump ptg if needed # Replace current "provider" with jump ptg if needed
provider = jump_ptg or provider provider = jump_ptg or provider

View File

@ -10,9 +10,11 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron.common import log from neutron._i18n import _LE
from neutron._i18n import _LI
from neutron.plugins.common import constants as pconst from neutron.plugins.common import constants as pconst
from oslo_config import cfg from oslo_config import cfg
from oslo_log import helpers as log
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import excutils from oslo_utils import excutils
@ -49,9 +51,9 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
self.plumber = utils.load_plugin( self.plumber = utils.load_plugin(
PLUMBER_NAMESPACE, plumber_klass) PLUMBER_NAMESPACE, plumber_klass)
self.plumber.initialize() self.plumber.initialize()
LOG.info(_("Initialized node plumber '%s'"), plumber_klass) LOG.info(_LI("Initialized node plumber '%s'"), plumber_klass)
@log.log @log.log_method_call
def create_servicechain_instance(self, context, servicechain_instance): def create_servicechain_instance(self, context, servicechain_instance):
"""Instance created. """Instance created.
@ -75,14 +77,14 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
except Exception: except Exception:
# Some node could not be deployed # Some node could not be deployed
with excutils.save_and_reraise_exception(): with excutils.save_and_reraise_exception():
LOG.error(_("Node deployment failed, " LOG.error(_LE("Node deployment failed, "
"deleting servicechain_instance %s"), "deleting servicechain_instance %s"),
instance['id']) instance['id'])
self.delete_servicechain_instance(context, instance['id']) self.delete_servicechain_instance(context, instance['id'])
return instance return instance
@log.log @log.log_method_call
def update_servicechain_instance(self, context, servicechain_instance_id, def update_servicechain_instance(self, context, servicechain_instance_id,
servicechain_instance): servicechain_instance):
"""Instance updated. """Instance updated.
@ -122,7 +124,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
self._update_servicechain_nodes(context, updaters) self._update_servicechain_nodes(context, updaters)
return updated_instance return updated_instance
@log.log @log.log_method_call
def delete_servicechain_instance(self, context, servicechain_instance_id): def delete_servicechain_instance(self, context, servicechain_instance_id):
"""Instance deleted. """Instance deleted.
@ -141,7 +143,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
super(NodeCompositionPlugin, self).delete_servicechain_instance( super(NodeCompositionPlugin, self).delete_servicechain_instance(
context, servicechain_instance_id) context, servicechain_instance_id)
@log.log @log.log_method_call
def create_servicechain_node(self, context, servicechain_node): def create_servicechain_node(self, context, servicechain_node):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -151,7 +153,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
self._validate_shared_create(context, result, 'servicechain_node') self._validate_shared_create(context, result, 'servicechain_node')
return result return result
@log.log @log.log_method_call
def update_servicechain_node(self, context, servicechain_node_id, def update_servicechain_node(self, context, servicechain_node_id,
servicechain_node): servicechain_node):
"""Node Update. """Node Update.
@ -191,12 +193,12 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
try: try:
update['driver'].update(update['context']) update['driver'].update(update['context'])
except exc.NodeDriverError as ex: except exc.NodeDriverError as ex:
LOG.error(_("Node Update failed, %s"), LOG.error(_LE("Node Update failed, %s"),
ex.message) ex.message)
return updated_sc_node return updated_sc_node
@log.log @log.log_method_call
def create_servicechain_spec(self, context, servicechain_spec): def create_servicechain_spec(self, context, servicechain_spec):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -206,7 +208,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
self._validate_shared_create(context, result, 'servicechain_spec') self._validate_shared_create(context, result, 'servicechain_spec')
return result return result
@log.log @log.log_method_call
def update_servicechain_spec(self, context, servicechain_spec_id, def update_servicechain_spec(self, context, servicechain_spec_id,
servicechain_spec): servicechain_spec):
session = context.session session = context.session
@ -227,7 +229,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
return updated_sc_spec return updated_sc_spec
@log.log @log.log_method_call
def create_service_profile(self, context, service_profile): def create_service_profile(self, context, service_profile):
session = context.session session = context.session
with session.begin(subtransactions=True): with session.begin(subtransactions=True):
@ -237,7 +239,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
self._validate_shared_create(context, result, 'service_profile') self._validate_shared_create(context, result, 'service_profile')
return result return result
@log.log @log.log_method_call
def update_service_profile(self, context, service_profile_id, def update_service_profile(self, context, service_profile_id,
service_profile): service_profile):
session = context.session session = context.session
@ -301,7 +303,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
'update_policy_target_' + action)( 'update_policy_target_' + action)(
update['context'], policy_target) update['context'], policy_target)
except exc.NodeDriverError as ex: except exc.NodeDriverError as ex:
LOG.error(_("Node Update on policy target modification " LOG.error(_LE("Node Update on policy target modification "
"failed, %s"), ex.message) "failed, %s"), ex.message)
def _update_chains_consumer_modified(self, context, policy_target_group, def _update_chains_consumer_modified(self, context, policy_target_group,
@ -315,7 +317,8 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
'update_node_consumer_ptg_' + action)( 'update_node_consumer_ptg_' + action)(
update['context'], policy_target_group) update['context'], policy_target_group)
except exc.NodeDriverError as ex: except exc.NodeDriverError as ex:
LOG.error(_("Node Update on policy target group modification " LOG.error(_LE(
"Node Update on policy target group modification "
"failed, %s"), ex.message) "failed, %s"), ex.message)
def notify_chain_parameters_updated(self, context, def notify_chain_parameters_updated(self, context,
@ -335,7 +338,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
getattr(update['driver'], getattr(update['driver'],
'notify_chain_parameters_updated')(update['context']) 'notify_chain_parameters_updated')(update['context'])
except exc.NodeDriverError as ex: except exc.NodeDriverError as ex:
LOG.error(_("Node Update on GBP parameter update " LOG.error(_LE("Node Update on GBP parameter update "
"failed, %s"), ex.message) "failed, %s"), ex.message)
def _get_instance_nodes(self, context, instance): def _get_instance_nodes(self, context, instance):
@ -394,7 +397,7 @@ class NodeCompositionPlugin(servicechain_db.ServiceChainDbPlugin,
try: try:
driver.delete(destroy['context']) driver.delete(destroy['context'])
except exc.NodeDriverError: except exc.NodeDriverError:
LOG.error(_("Node destroy failed, for node %s "), LOG.error(_LE("Node destroy failed, for node %s "),
driver['context'].current_node['id']) driver['context'].current_node['id'])
except Exception as e: except Exception as e:
LOG.exception(e) LOG.exception(e)

View File

@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from neutron._i18n import _LE
from neutron.api.v2 import attributes as nattr from neutron.api.v2 import attributes as nattr
from neutron import manager as n_manager from neutron import manager as n_manager
from neutron.plugins.common import constants as pconst from neutron.plugins.common import constants as pconst
@ -50,7 +51,7 @@ class SharingMixin(object):
plugins = n_manager.NeutronManager.get_service_plugins() plugins = n_manager.NeutronManager.get_service_plugins()
gbp_plugin = plugins.get(pconst.GROUP_POLICY) gbp_plugin = plugins.get(pconst.GROUP_POLICY)
if not gbp_plugin: if not gbp_plugin:
LOG.error(_("No group policy service plugin found.")) LOG.error(_LE("No group policy service plugin found."))
raise gp_exc.GroupPolicyDeploymentError() raise gp_exc.GroupPolicyDeploymentError()
return gbp_plugin return gbp_plugin

View File

@ -48,6 +48,18 @@ AGENT_CONF = {'alive': True, 'binary': 'somebinary',
'topic': 'sometopic', 'agent_type': AGENT_TYPE, 'topic': 'sometopic', 'agent_type': AGENT_TYPE,
'configurations': {'bridge_mappings': {'physnet1': 'br-eth1'}}} 'configurations': {'bridge_mappings': {'physnet1': 'br-eth1'}}}
# There are some Neutron extensions which are designated as "required" for
# supporting the extensions which are needed to run the GBP UTs.
# For example, when using the router plugin, it supports the
# "router_availability' extension which requires the
# "availability_zone" extension, and which in turn requires the "agent"
# extension. For us to be able to use that router plugin as is, we add
# those required extensions to the list of "supported_extension_aliases"
# for our test plugins. This keeps the extensions framework happy and we
# it shouldn't cause a problem since we dont actually exercise those
# extensions. The following list contains all such extensions.
UNSUPPORTED_REQUIRED_EXTS = ['availability_zone', 'agent']
class ApiManagerMixin(object): class ApiManagerMixin(object):
@ -261,7 +273,7 @@ class GroupPolicyDBTestBase(ApiManagerMixin):
class GroupPolicyDBTestPlugin(gpdb.GroupPolicyDbPlugin): class GroupPolicyDBTestPlugin(gpdb.GroupPolicyDbPlugin):
supported_extension_aliases = ['group-policy'] supported_extension_aliases = ['group-policy'] + UNSUPPORTED_REQUIRED_EXTS
path_prefix = "/grouppolicy" path_prefix = "/grouppolicy"
@ -271,7 +283,7 @@ DB_GP_PLUGIN_KLASS = (GroupPolicyDBTestPlugin.__module__ + '.' +
class ServiceChainDBTestPlugin(svcchain_db.ServiceChainDbPlugin): class ServiceChainDBTestPlugin(svcchain_db.ServiceChainDbPlugin):
supported_extension_aliases = ['servicechain'] supported_extension_aliases = ['servicechain'] + UNSUPPORTED_REQUIRED_EXTS
path_prefix = "/servicechain" path_prefix = "/servicechain"
@ -380,7 +392,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('policy_targets', pt_id) req = self.new_delete_request('policy_targets', pt_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.PolicyTargetNotFound, self.assertRaises(gpolicy.PolicyTargetNotFound,
self.plugin.get_policy_target, ctx, pt_id) self.plugin.get_policy_target, ctx, pt_id)
@ -519,7 +531,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('policy_target_groups', ptg_id) req = self.new_delete_request('policy_target_groups', ptg_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.PolicyTargetGroupNotFound, self.assertRaises(gpolicy.PolicyTargetGroupNotFound,
self.plugin.get_policy_target_group, ctx, ptg_id) self.plugin.get_policy_target_group, ctx, ptg_id)
@ -567,7 +579,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('l2_policies', l2p_id) req = self.new_delete_request('l2_policies', l2p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.L2PolicyNotFound, self.plugin.get_l2_policy, self.assertRaises(gpolicy.L2PolicyNotFound, self.plugin.get_l2_policy,
ctx, l2p_id) ctx, l2p_id)
@ -704,7 +716,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('l3_policies', l3p_id) req = self.new_delete_request('l3_policies', l3p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.L3PolicyNotFound, self.plugin.get_l3_policy, self.assertRaises(gpolicy.L3PolicyNotFound, self.plugin.get_l3_policy,
ctx, l3p_id) ctx, l3p_id)
@ -914,7 +926,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('policy_classifiers', pc_id) req = self.new_delete_request('policy_classifiers', pc_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.PolicyClassifierNotFound, self.assertRaises(gpolicy.PolicyClassifierNotFound,
self.plugin.get_policy_classifier, ctx, pc_id) self.plugin.get_policy_classifier, ctx, pc_id)
@ -985,7 +997,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('policy_actions', pa_id) req = self.new_delete_request('policy_actions', pa_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.PolicyActionNotFound, self.assertRaises(gpolicy.PolicyActionNotFound,
self.plugin.get_policy_action, ctx, pa_id) self.plugin.get_policy_action, ctx, pa_id)
@ -1094,7 +1106,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('policy_rules', pr_id) req = self.new_delete_request('policy_rules', pr_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.PolicyRuleNotFound, self.assertRaises(gpolicy.PolicyRuleNotFound,
self.plugin.get_policy_rule, ctx, pr_id) self.plugin.get_policy_rule, ctx, pr_id)
@ -1225,7 +1237,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('policy_rule_sets', prs_id) req = self.new_delete_request('policy_rule_sets', prs_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.PolicyRuleSetNotFound, self.assertRaises(gpolicy.PolicyRuleSetNotFound,
self.plugin.get_policy_rule_set, ctx, prs_id) self.plugin.get_policy_rule_set, ctx, prs_id)
@ -1292,14 +1304,14 @@ class TestGroupResources(GroupPolicyDbTestCase):
data = {'policy_rule_set': {'child_policy_rule_sets': [nephew['id']]}} data = {'policy_rule_set': {'child_policy_rule_sets': [nephew['id']]}}
req = self.new_update_request('policy_rule_sets', data, child['id']) req = self.new_update_request('policy_rule_sets', data, child['id'])
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPBadRequest.code) self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)
def test_prs_parent_no_loop(self): def test_prs_parent_no_loop(self):
prs = self.create_policy_rule_set()['policy_rule_set'] prs = self.create_policy_rule_set()['policy_rule_set']
data = {'policy_rule_set': {'child_policy_rule_sets': [prs['id']]}} data = {'policy_rule_set': {'child_policy_rule_sets': [prs['id']]}}
req = self.new_update_request('policy_rule_sets', data, prs['id']) req = self.new_update_request('policy_rule_sets', data, prs['id'])
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPBadRequest.code) self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)
def _test_create_and_show(self, type, attrs, expected=None): def _test_create_and_show(self, type, attrs, expected=None):
plural = cm.get_resource_plural(type) plural = cm.get_resource_plural(type)
@ -1430,7 +1442,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('external_policies', ep_id) req = self.new_delete_request('external_policies', ep_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.ExternalPolicyNotFound, self.assertRaises(gpolicy.ExternalPolicyNotFound,
self.plugin.get_external_policy, ctx, ep_id) self.plugin.get_external_policy, ctx, ep_id)
@ -1441,7 +1453,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('external_segments', ep_id) req = self.new_delete_request('external_segments', ep_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.ExternalSegmentNotFound, self.assertRaises(gpolicy.ExternalSegmentNotFound,
self.plugin.get_external_segment, ctx, ep_id) self.plugin.get_external_segment, ctx, ep_id)
@ -1452,7 +1464,7 @@ class TestGroupResources(GroupPolicyDbTestCase):
req = self.new_delete_request('nat_pools', ep_id) req = self.new_delete_request('nat_pools', ep_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.NATPoolNotFound, self.assertRaises(gpolicy.NATPoolNotFound,
self.plugin.get_nat_pool, ctx, ep_id) self.plugin.get_nat_pool, ctx, ep_id)

View File

@ -27,7 +27,8 @@ from gbpservice.neutron.tests.unit.db.grouppolicy import (
class GroupPolicyMappingDBTestPlugin(gpmdb.GroupPolicyMappingDbPlugin): class GroupPolicyMappingDBTestPlugin(gpmdb.GroupPolicyMappingDbPlugin):
supported_extension_aliases = ['group-policy', 'group-policy-mapping'] supported_extension_aliases = ['group-policy', 'group-policy-mapping'] + (
tgpdb.UNSUPPORTED_REQUIRED_EXTS)
path_prefix = "/grouppolicy" path_prefix = "/grouppolicy"
@ -77,7 +78,7 @@ class TestMappedGroupResourceAttrs(GroupPolicyMappingDbTestCase):
self.assertEqual(port_id, res['policy_target']['port_id']) self.assertEqual(port_id, res['policy_target']['port_id'])
req = self.new_delete_request('policy_targets', pt_id) req = self.new_delete_request('policy_targets', pt_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
def test_create_delete_policy_target_group_with_subnets(self): def test_create_delete_policy_target_group_with_subnets(self):
with self.subnet(cidr='10.10.1.0/24') as subnet1: with self.subnet(cidr='10.10.1.0/24') as subnet1:
@ -95,7 +96,7 @@ class TestMappedGroupResourceAttrs(GroupPolicyMappingDbTestCase):
sorted(res['policy_target_group']['subnets'])) sorted(res['policy_target_group']['subnets']))
req = self.new_delete_request('policy_target_groups', ptg_id) req = self.new_delete_request('policy_target_groups', ptg_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
def test_update_policy_target_group_subnets(self): def test_update_policy_target_group_subnets(self):
with self.subnet(cidr='10.10.1.0/24') as subnet1: with self.subnet(cidr='10.10.1.0/24') as subnet1:
@ -131,8 +132,8 @@ class TestMappedGroupResourceAttrs(GroupPolicyMappingDbTestCase):
req = self.new_delete_request('policy_target_groups', req = self.new_delete_request('policy_target_groups',
ptg_id) ptg_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual( self.assertEqual(webob.exc.HTTPNoContent.code,
res.status_int, webob.exc.HTTPNoContent.code) res.status_int)
def test_create_delete_l2_policy_with_network(self): def test_create_delete_l2_policy_with_network(self):
with self.network() as network: with self.network() as network:
@ -145,7 +146,7 @@ class TestMappedGroupResourceAttrs(GroupPolicyMappingDbTestCase):
self.assertEqual(network_id, res['l2_policy']['network_id']) self.assertEqual(network_id, res['l2_policy']['network_id'])
req = self.new_delete_request('l2_policies', l2p_id) req = self.new_delete_request('l2_policies', l2p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
def test_create_delete_l3_policy_with_routers(self): def test_create_delete_l3_policy_with_routers(self):
with self.router() as router1: with self.router() as router1:
@ -163,7 +164,7 @@ class TestMappedGroupResourceAttrs(GroupPolicyMappingDbTestCase):
sorted(res['l3_policy']['routers'])) sorted(res['l3_policy']['routers']))
req = self.new_delete_request('l3_policies', l3p_id) req = self.new_delete_request('l3_policies', l3p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
def test_update_l3_policy_routers(self): def test_update_l3_policy_routers(self):
with self.router() as router1: with self.router() as router1:
@ -194,8 +195,8 @@ class TestMappedGroupResourceAttrs(GroupPolicyMappingDbTestCase):
# the resource(s) that are created. # the resource(s) that are created.
req = self.new_delete_request('l3_policies', l3p_id) req = self.new_delete_request('l3_policies', l3p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, self.assertEqual(webob.exc.HTTPNoContent.code,
webob.exc.HTTPNoContent.code) res.status_int)
def test_create_delete_es_with_subnet(self): def test_create_delete_es_with_subnet(self):
with self.subnet(cidr='10.10.1.0/24') as subnet: with self.subnet(cidr='10.10.1.0/24') as subnet:
@ -210,7 +211,7 @@ class TestMappedGroupResourceAttrs(GroupPolicyMappingDbTestCase):
self.assertEqual(subnet_id, res['external_segment']['subnet_id']) self.assertEqual(subnet_id, res['external_segment']['subnet_id'])
req = self.new_delete_request('external_segments', es_id) req = self.new_delete_request('external_segments', es_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
def test_list_policy_targets(self): def test_list_policy_targets(self):
with self.port() as port1: with self.port() as port1:

View File

@ -69,7 +69,8 @@ class ServiceChainDBTestBase(test_group_policy_db.GroupPolicyDBTestBase):
class ServiceChainDBTestPlugin(svcchain_db.ServiceChainDbPlugin): class ServiceChainDBTestPlugin(svcchain_db.ServiceChainDbPlugin):
supported_extension_aliases = ['servicechain'] supported_extension_aliases = ['servicechain'] + (
test_group_policy_db.UNSUPPORTED_REQUIRED_EXTS)
path_prefix = "/servicechain" path_prefix = "/servicechain"
DB_GP_PLUGIN_KLASS = (ServiceChainDBTestPlugin.__module__ + '.' + DB_GP_PLUGIN_KLASS = (ServiceChainDBTestPlugin.__module__ + '.' +
@ -200,7 +201,7 @@ class TestServiceChainResources(ServiceChainDbTestCase):
req = self.new_delete_request('servicechain_specs', scs_id) req = self.new_delete_request('servicechain_specs', scs_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
# After deleting the Service Chain Spec, node delete should succeed # After deleting the Service Chain Spec, node delete should succeed
req = self.new_delete_request('servicechain_nodes', scn_id) req = self.new_delete_request('servicechain_nodes', scn_id)
@ -335,7 +336,7 @@ class TestServiceChainResources(ServiceChainDbTestCase):
req = self.new_delete_request('servicechain_instances', sci_id) req = self.new_delete_request('servicechain_instances', sci_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(service_chain.ServiceChainInstanceNotFound, self.assertRaises(service_chain.ServiceChainInstanceNotFound,
self.plugin.get_servicechain_instance, self.plugin.get_servicechain_instance,
ctx, sci_id) ctx, sci_id)
@ -343,7 +344,7 @@ class TestServiceChainResources(ServiceChainDbTestCase):
# Deleting the spec should succeed after the instance is deleted # Deleting the spec should succeed after the instance is deleted
req = self.new_delete_request('servicechain_specs', scs_id) req = self.new_delete_request('servicechain_specs', scs_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(service_chain.ServiceChainSpecNotFound, self.assertRaises(service_chain.ServiceChainSpecNotFound,
self.plugin.get_servicechain_spec, ctx, scs_id) self.plugin.get_servicechain_spec, ctx, scs_id)
@ -530,12 +531,12 @@ class TestServiceChainResources(ServiceChainDbTestCase):
req = self.new_delete_request('servicechain_nodes', scn_id) req = self.new_delete_request('servicechain_nodes', scn_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
# After deleting the Service Chain Spec, node delete should succeed # After deleting the Service Chain Spec, node delete should succeed
req = self.new_delete_request('service_profiles', sp_id) req = self.new_delete_request('service_profiles', sp_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(service_chain.ServiceProfileNotFound, self.assertRaises(service_chain.ServiceProfileNotFound,
self.plugin.get_service_profile, self.plugin.get_service_profile,
ctx, sp_id) ctx, sp_id)

View File

@ -227,7 +227,7 @@ class TestPolicyTarget(ApicMappingTestCase):
policy_target_group_id=ptg['id'], port_id=port['port']['id']) policy_target_group_id=ptg['id'], port_id=port['port']['id'])
res = self.new_delete_request('ports', port['port']['id'], res = self.new_delete_request('ports', port['port']['id'],
self.fmt).get_response(self.api) self.fmt).get_response(self.api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.delete_policy_target(pt['policy_target']['id'], self.delete_policy_target(pt['policy_target']['id'],
expected_res_status=404) expected_res_status=404)
@ -1487,7 +1487,7 @@ class TestL3Policy(ApicMappingTestCase):
expected_res_status=200)['l3_policy'] expected_res_status=200)['l3_policy']
req = self.new_delete_request('l3_policies', l3p['id'], self.fmt) req = self.new_delete_request('l3_policies', l3p['id'], self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
mgr = self.driver.apic_manager mgr = self.driver.apic_manager
owner = self.common_tenant if shared_es else es1['tenant_id'] owner = self.common_tenant if shared_es else es1['tenant_id']
@ -1525,7 +1525,7 @@ class TestL3Policy(ApicMappingTestCase):
expected_res_status=200)['l3_policy'] expected_res_status=200)['l3_policy']
req = self.new_delete_request('l3_policies', l3p['id'], self.fmt) req = self.new_delete_request('l3_policies', l3p['id'], self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
expected_delete_calls = [] expected_delete_calls = []
if not self.pre_l3out: if not self.pre_l3out:
@ -1761,7 +1761,7 @@ class TestL3Policy(ApicMappingTestCase):
res = self.new_delete_request('policy_target_groups', ptg['id'], res = self.new_delete_request('policy_target_groups', ptg['id'],
self.fmt).get_response(self.ext_api) self.fmt).get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
def test_multi_es_with_ptg_1(self): def test_multi_es_with_ptg_1(self):
self._test_multi_es_with_ptg(False) self._test_multi_es_with_ptg(False)

View File

@ -166,10 +166,10 @@ class TestL3Policy(GroupPolicyPluginTestCase):
def test_shared_l3_policy_create(self): def test_shared_l3_policy_create(self):
# Verify default is False # Verify default is False
l3p = self.create_l3_policy() l3p = self.create_l3_policy()
self.assertEqual(False, l3p['l3_policy']['shared']) self.assertFalse(l3p['l3_policy']['shared'])
# Verify shared True created without errors # Verify shared True created without errors
l3p = self.create_l3_policy(shared=True) l3p = self.create_l3_policy(shared=True)
self.assertEqual(True, l3p['l3_policy']['shared']) self.assertTrue(l3p['l3_policy']['shared'])
def test_shared_l3p_create_with_es(self): def test_shared_l3p_create_with_es(self):
def combination(l3p, es): def combination(l3p, es):
@ -311,10 +311,10 @@ class TestL2Policy(GroupPolicyPluginTestCase):
l3p = self.create_l3_policy(shared=True)['l3_policy'] l3p = self.create_l3_policy(shared=True)['l3_policy']
# Verify Default False # Verify Default False
l2p = self.create_l2_policy(l3_policy_id=l3p['id']) l2p = self.create_l2_policy(l3_policy_id=l3p['id'])
self.assertEqual(False, l2p['l2_policy']['shared']) self.assertFalse(l2p['l2_policy']['shared'])
# Verify shared True created without errors # Verify shared True created without errors
l2p = self.create_l2_policy(l3_policy_id=l3p['id'], shared=True) l2p = self.create_l2_policy(l3_policy_id=l3p['id'], shared=True)
self.assertEqual(True, l2p['l2_policy']['shared']) self.assertTrue(l2p['l2_policy']['shared'])
def test_shared_l2_policy_update(self): def test_shared_l2_policy_update(self):
l2p = self._create_l2_policy_on_shared() l2p = self._create_l2_policy_on_shared()
@ -364,11 +364,11 @@ class TestPolicyRuleSet(GroupPolicyPluginTestCase):
# Verify shared policy_rule_set created with shared rules # Verify shared policy_rule_set created with shared rules
prs = self._create_policy_rule_set_on_shared( prs = self._create_policy_rule_set_on_shared(
shared=True, expected_res_status=201) shared=True, expected_res_status=201)
self.assertEqual(True, prs['shared']) self.assertTrue(prs['shared'])
# Verify non shared policy_rule_set created with shared rules # Verify non shared policy_rule_set created with shared rules
prs = self._create_policy_rule_set_on_shared(expected_res_status=201) prs = self._create_policy_rule_set_on_shared(expected_res_status=201)
self.assertEqual(False, prs['shared']) self.assertFalse(prs['shared'])
def test_shared_policy_rule_set_update(self): def test_shared_policy_rule_set_update(self):
prs = self._create_policy_rule_set_on_shared() prs = self._create_policy_rule_set_on_shared()
@ -417,11 +417,11 @@ class TestPolicyRule(GroupPolicyPluginTestCase):
# Verify shared rule created with shared actions and classifier # Verify shared rule created with shared actions and classifier
pr = self._create_rule_on_shared(shared=True, pr = self._create_rule_on_shared(shared=True,
expected_res_status=201) expected_res_status=201)
self.assertEqual(True, pr['shared']) self.assertTrue(pr['shared'])
# Verify non shared rule create with shared actions and classifier # Verify non shared rule create with shared actions and classifier
pr = self._create_rule_on_shared(expected_res_status=201) pr = self._create_rule_on_shared(expected_res_status=201)
self.assertEqual(False, pr['shared']) self.assertFalse(pr['shared'])
def test_shared_rule_update(self): def test_shared_rule_update(self):
pr = self._create_rule_on_shared() pr = self._create_rule_on_shared()
@ -508,7 +508,7 @@ class TestPolicyTargetGroup(GroupPolicyPluginTestCase):
req = self.new_delete_request('policy_target_groups', ptg['id'], req = self.new_delete_request('policy_target_groups', ptg['id'],
self.fmt) self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
self.assertRaises(gpolicy.PolicyTargetGroupNotFound, self.assertRaises(gpolicy.PolicyTargetGroupNotFound,
self.plugin.get_policy_target_group, ctx, ptg['id']) self.plugin.get_policy_target_group, ctx, ptg['id'])
@ -542,33 +542,33 @@ class TestPolicyTargetGroup(GroupPolicyPluginTestCase):
# policy_rule_sets # policy_rule_sets
ptg = self.create_policy_target_group( ptg = self.create_policy_target_group(
l2_policy_id=l2p['id'], expected_res_status=201) l2_policy_id=l2p['id'], expected_res_status=201)
self.assertEqual(False, ptg['policy_target_group']['shared']) self.assertFalse(ptg['policy_target_group']['shared'])
ptg = self.create_policy_target_group( ptg = self.create_policy_target_group(
l2_policy_id=l2p['id'], l2_policy_id=l2p['id'],
provided_policy_rule_sets={prs['id']: '', ctns['id']: ''}, provided_policy_rule_sets={prs['id']: '', ctns['id']: ''},
consumed_policy_rule_sets={prs['id']: '', ctns['id']: ''}, consumed_policy_rule_sets={prs['id']: '', ctns['id']: ''},
expected_res_status=201) expected_res_status=201)
self.assertEqual(False, ptg['policy_target_group']['shared']) self.assertFalse(ptg['policy_target_group']['shared'])
ptg = self.create_policy_target_group( ptg = self.create_policy_target_group(
l2_policy_id=l2p['id'], network_service_policy_id=nsp['id'], l2_policy_id=l2p['id'], network_service_policy_id=nsp['id'],
expected_res_status=201) expected_res_status=201)
self.assertEqual(False, ptg['policy_target_group']['shared']) self.assertFalse(ptg['policy_target_group']['shared'])
ptg = self.create_policy_target_group( ptg = self.create_policy_target_group(
l2_policy_id=l2p['id'], network_service_policy_id=nspns['id'], l2_policy_id=l2p['id'], network_service_policy_id=nspns['id'],
expected_res_status=201) expected_res_status=201)
self.assertEqual(False, ptg['policy_target_group']['shared']) self.assertFalse(ptg['policy_target_group']['shared'])
# Verify shared True created without errors by providing/consuming # Verify shared True created without errors by providing/consuming
# shared policy_rule_sets # shared policy_rule_sets
ptg = self.create_policy_target_group( ptg = self.create_policy_target_group(
l2_policy_id=l2p['id'], shared=True, l2_policy_id=l2p['id'], shared=True,
expected_res_status=201) expected_res_status=201)
self.assertEqual(True, ptg['policy_target_group']['shared']) self.assertTrue(ptg['policy_target_group']['shared'])
ptg = self.create_policy_target_group( ptg = self.create_policy_target_group(
l2_policy_id=l2p['id'], provided_policy_rule_sets={prs['id']: ''}, l2_policy_id=l2p['id'], provided_policy_rule_sets={prs['id']: ''},
consumed_policy_rule_sets={prs['id']: ''}, shared=True, consumed_policy_rule_sets={prs['id']: ''}, shared=True,
expected_res_status=201) expected_res_status=201)
self.assertEqual(True, ptg['policy_target_group']['shared']) self.assertTrue(ptg['policy_target_group']['shared'])
# Verify not shared created without error on not shared l2p # Verify not shared created without error on not shared l2p
self.create_policy_target_group(l2_policy_id=l2pns['id'], self.create_policy_target_group(l2_policy_id=l2pns['id'],
@ -671,10 +671,10 @@ class TestExternalSegment(GroupPolicyPluginTestCase):
def test_shared_es_create(self): def test_shared_es_create(self):
# Verify default is False # Verify default is False
es = self.create_external_segment() es = self.create_external_segment()
self.assertEqual(False, es['external_segment']['shared']) self.assertFalse(es['external_segment']['shared'])
# Verify shared True created without errors # Verify shared True created without errors
es = self.create_external_segment(shared=True) es = self.create_external_segment(shared=True)
self.assertEqual(True, es['external_segment']['shared']) self.assertTrue(es['external_segment']['shared'])
def test_shared_es_update(self): def test_shared_es_update(self):
es = self.create_external_segment()['external_segment'] es = self.create_external_segment()['external_segment']
@ -727,26 +727,26 @@ class TestExternalPolicy(GroupPolicyPluginTestCase):
# policy_rule_sets # policy_rule_sets
ep = self.create_external_policy( ep = self.create_external_policy(
external_segments=[es['id']], expected_res_status=201) external_segments=[es['id']], expected_res_status=201)
self.assertEqual(False, ep['external_policy']['shared']) self.assertFalse(ep['external_policy']['shared'])
ep = self.create_external_policy( ep = self.create_external_policy(
external_segments=[es['id']], external_segments=[es['id']],
provided_policy_rule_sets={prs['id']: '', prsns['id']: ''}, provided_policy_rule_sets={prs['id']: '', prsns['id']: ''},
consumed_policy_rule_sets={prs['id']: '', prsns['id']: ''}, consumed_policy_rule_sets={prs['id']: '', prsns['id']: ''},
expected_res_status=201) expected_res_status=201)
self.assertEqual(False, ep['external_policy']['shared']) self.assertFalse(ep['external_policy']['shared'])
# Verify shared True created without errors by providing/consuming # Verify shared True created without errors by providing/consuming
# shared policy_rule_sets # shared policy_rule_sets
ep = self.create_external_policy( ep = self.create_external_policy(
external_segments=[es['id']], shared=True, external_segments=[es['id']], shared=True,
expected_res_status=201) expected_res_status=201)
self.assertEqual(True, ep['external_policy']['shared']) self.assertTrue(ep['external_policy']['shared'])
ep = self.create_external_policy( ep = self.create_external_policy(
external_segments=[es['id']], external_segments=[es['id']],
provided_policy_rule_sets={prs['id']: ''}, provided_policy_rule_sets={prs['id']: ''},
consumed_policy_rule_sets={prs['id']: ''}, shared=True, consumed_policy_rule_sets={prs['id']: ''}, shared=True,
expected_res_status=201) expected_res_status=201)
self.assertEqual(True, ep['external_policy']['shared']) self.assertTrue(ep['external_policy']['shared'])
# Verify not shared created without error on not shared es # Verify not shared created without error on not shared es
self.create_external_policy( self.create_external_policy(

View File

@ -64,19 +64,19 @@ class TestImplicitL2Policy(ImplicitPolicyTestCase):
# policy. # policy.
req = self.new_delete_request('policy_target_groups', ptg1_id) req = self.new_delete_request('policy_target_groups', ptg1_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l2_policies', l2p1_id, fmt=self.fmt) req = self.new_show_request('l2_policies', l2p1_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
# Verify deleting 2nd policy_target group does cleanup its L2 # Verify deleting 2nd policy_target group does cleanup its L2
# policy. # policy.
req = self.new_delete_request('policy_target_groups', ptg2_id) req = self.new_delete_request('policy_target_groups', ptg2_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l2_policies', l2p2_id, fmt=self.fmt) req = self.new_show_request('l2_policies', l2p2_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
def test_implicit_shared_lifecycle_negative(self): def test_implicit_shared_lifecycle_negative(self):
# Create PTG non shared # Create PTG non shared
@ -103,10 +103,10 @@ class TestImplicitL2Policy(ImplicitPolicyTestCase):
# Verify deleting policy_target group does not cleanup L2 policy. # Verify deleting policy_target group does not cleanup L2 policy.
req = self.new_delete_request('policy_target_groups', ptg_id) req = self.new_delete_request('policy_target_groups', ptg_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l2_policies', l2p_id, fmt=self.fmt) req = self.new_show_request('l2_policies', l2p_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_delete_from_implicit(self): def test_delete_from_implicit(self):
# Create policy_target group with explicit L2 policy. # Create policy_target group with explicit L2 policy.
@ -122,7 +122,7 @@ class TestImplicitL2Policy(ImplicitPolicyTestCase):
# Verify old L2 policy was not cleaned up. # Verify old L2 policy was not cleaned up.
req = self.new_show_request('l2_policies', l2p1_id, fmt=self.fmt) req = self.new_show_request('l2_policies', l2p1_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
class TestImplicitL3Policy(ImplicitPolicyTestCase): class TestImplicitL3Policy(ImplicitPolicyTestCase):
@ -151,18 +151,18 @@ class TestImplicitL3Policy(ImplicitPolicyTestCase):
# Verify deleting 1st L2 policy does not cleanup L3 policy. # Verify deleting 1st L2 policy does not cleanup L3 policy.
req = self.new_delete_request('l2_policies', l2p1_id) req = self.new_delete_request('l2_policies', l2p1_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l3_policies', l3p_id, fmt=self.fmt) req = self.new_show_request('l3_policies', l3p_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
# Verify deleting last L2 policy does cleanup L3 policy. # Verify deleting last L2 policy does cleanup L3 policy.
req = self.new_delete_request('l2_policies', l2p2_id) req = self.new_delete_request('l2_policies', l2p2_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l3_policies', l3p_id, fmt=self.fmt) req = self.new_show_request('l3_policies', l3p_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
def test_impicit_lifecycle(self): def test_impicit_lifecycle(self):
self._test_implicit_lifecycle() self._test_implicit_lifecycle()
@ -181,10 +181,10 @@ class TestImplicitL3Policy(ImplicitPolicyTestCase):
# Verify deleting L2 policy does not cleanup L3 policy. # Verify deleting L2 policy does not cleanup L3 policy.
req = self.new_delete_request('l2_policies', l2p_id) req = self.new_delete_request('l2_policies', l2p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l3_policies', l3p_id, fmt=self.fmt) req = self.new_show_request('l3_policies', l3p_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_unowned_default_lifecycle(self): def test_unowned_default_lifecycle(self):
# Create L2 policy with unowned default L3 policy. # Create L2 policy with unowned default L3 policy.
@ -197,10 +197,10 @@ class TestImplicitL3Policy(ImplicitPolicyTestCase):
# Verify deleting L2 policy does not cleanup L3 policy. # Verify deleting L2 policy does not cleanup L3 policy.
req = self.new_delete_request('l2_policies', l2p_id) req = self.new_delete_request('l2_policies', l2p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l3_policies', l3p_id, fmt=self.fmt) req = self.new_show_request('l3_policies', l3p_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_single_default_policy(self): def test_single_default_policy(self):
# Verify only one default L3 policy can be created per tenant. # Verify only one default L3 policy can be created per tenant.
@ -230,15 +230,15 @@ class TestImplicitL3Policy(ImplicitPolicyTestCase):
# Verify old L3 policy was cleaned up # Verify old L3 policy was cleaned up
req = self.new_show_request('l3_policies', l3p1_id, fmt=self.fmt) req = self.new_show_request('l3_policies', l3p1_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
# Verify deleting L2 policy does not cleanup new L3 policy. # Verify deleting L2 policy does not cleanup new L3 policy.
req = self.new_delete_request('l2_policies', l2p_id) req = self.new_delete_request('l2_policies', l2p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l3_policies', l3p2_id, fmt=self.fmt) req = self.new_show_request('l3_policies', l3p2_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_update_to_implicit(self): def test_update_to_implicit(self):
# Create L2 policy with explicit L3 policy. # Create L2 policy with explicit L3 policy.
@ -262,15 +262,15 @@ class TestImplicitL3Policy(ImplicitPolicyTestCase):
# Verify old L3 policy was not cleaned up. # Verify old L3 policy was not cleaned up.
req = self.new_show_request('l3_policies', l3p1_id, fmt=self.fmt) req = self.new_show_request('l3_policies', l3p1_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
# Verify deleting L2 policy does cleanup new L3 policy. # Verify deleting L2 policy does cleanup new L3 policy.
req = self.new_delete_request('l2_policies', l2p_id) req = self.new_delete_request('l2_policies', l2p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('l3_policies', l3p2_id, fmt=self.fmt) req = self.new_show_request('l3_policies', l3p2_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
class TestImplicitExternalSegment(ImplicitPolicyTestCase): class TestImplicitExternalSegment(ImplicitPolicyTestCase):

View File

@ -44,6 +44,7 @@ from gbpservice.neutron.services.grouppolicy.drivers import nsp_manager
from gbpservice.neutron.services.grouppolicy.drivers import resource_mapping from gbpservice.neutron.services.grouppolicy.drivers import resource_mapping
from gbpservice.neutron.services.servicechain.plugins.msc import ( from gbpservice.neutron.services.servicechain.plugins.msc import (
config as sc_cfg) config as sc_cfg)
from gbpservice.neutron.tests.unit.db.grouppolicy import test_group_policy_db
from gbpservice.neutron.tests.unit.services.grouppolicy import ( from gbpservice.neutron.tests.unit.services.grouppolicy import (
test_grouppolicy_plugin as test_plugin) test_grouppolicy_plugin as test_plugin)
@ -59,7 +60,18 @@ class NoL3NatSGTestPlugin(
test_l3.TestNoL3NatPlugin, test_l3.TestNoL3NatPlugin,
test_securitygroup.SecurityGroupTestPlugin): test_securitygroup.SecurityGroupTestPlugin):
_supported_extension_aliases = ["external-net", "security-group"] supported_extension_aliases = ["external-net", "security-group"] + (
test_group_policy_db.UNSUPPORTED_REQUIRED_EXTS)
# Note that the following private attribute definition should not
# be required, however the following line of code in the resource
# mapping driver requires it:
# https://git.io/v2O8G
# hence we add it to this test plugin. In general, this is not a
# good thing since the Neutron plugin contract only requires definition
# of the "supported_extension_aliases" property. This currently works
# since the ML2 plugin also defines the private property
# "_supported_extensions_aliases".
_supported_extension_aliases = supported_extension_aliases
CORE_PLUGIN = ('gbpservice.neutron.tests.unit.services.grouppolicy.' CORE_PLUGIN = ('gbpservice.neutron.tests.unit.services.grouppolicy.'
@ -566,10 +578,10 @@ class TestPolicyTarget(ResourceMappingTestCase, TestClusterIdMixin):
# Verify deleting policy_target cleans up port. # Verify deleting policy_target cleans up port.
req = self.new_delete_request('policy_targets', pt_id) req = self.new_delete_request('policy_targets', pt_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('ports', port_id, fmt=self.fmt) req = self.new_show_request('ports', port_id, fmt=self.fmt)
res = req.get_response(self.api) res = req.get_response(self.api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
def test_explicit_port_lifecycle(self): def test_explicit_port_lifecycle(self):
# Create policy_target group. # Create policy_target group.
@ -590,10 +602,10 @@ class TestPolicyTarget(ResourceMappingTestCase, TestClusterIdMixin):
# Verify deleting policy_target does not cleanup port. # Verify deleting policy_target does not cleanup port.
req = self.new_delete_request('policy_targets', pt_id) req = self.new_delete_request('policy_targets', pt_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('ports', port_id, fmt=self.fmt) req = self.new_show_request('ports', port_id, fmt=self.fmt)
res = req.get_response(self.api) res = req.get_response(self.api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_explicit_port_deleted(self): def test_explicit_port_deleted(self):
# Create policy_target group. # Create policy_target group.
@ -612,11 +624,11 @@ class TestPolicyTarget(ResourceMappingTestCase, TestClusterIdMixin):
req = self.new_delete_request('ports', port_id) req = self.new_delete_request('ports', port_id)
res = req.get_response(self.api) res = req.get_response(self.api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
# Verify deleting policy_target does not cleanup port. # Verify deleting policy_target does not cleanup port.
req = self.new_delete_request('policy_targets', pt_id) req = self.new_delete_request('policy_targets', pt_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
def test_missing_ptg_rejected(self): def test_missing_ptg_rejected(self):
data = self.create_policy_target( data = self.create_policy_target(
@ -923,10 +935,10 @@ class TestPolicyTargetGroup(ResourceMappingTestCase):
# Verify deleting policy_target group cleans up subnet. # Verify deleting policy_target group cleans up subnet.
req = self.new_delete_request('policy_target_groups', ptg_id) req = self.new_delete_request('policy_target_groups', ptg_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('subnets', subnet_id, fmt=self.fmt) req = self.new_show_request('subnets', subnet_id, fmt=self.fmt)
res = req.get_response(self.api) res = req.get_response(self.api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
# TODO(rkukura): Verify implicit subnet was removed as router # TODO(rkukura): Verify implicit subnet was removed as router
# interface. # interface.
@ -966,10 +978,10 @@ class TestPolicyTargetGroup(ResourceMappingTestCase):
# Verify deleting policy_target group does not cleanup subnet. # Verify deleting policy_target group does not cleanup subnet.
req = self.new_delete_request('policy_target_groups', ptg_id) req = self.new_delete_request('policy_target_groups', ptg_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('subnets', subnet_id, fmt=self.fmt) req = self.new_show_request('subnets', subnet_id, fmt=self.fmt)
res = req.get_response(self.api) res = req.get_response(self.api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
# TODO(rkukura): Verify explicit subnet was removed as # TODO(rkukura): Verify explicit subnet was removed as
# router interface. # router interface.
@ -1002,7 +1014,7 @@ class TestPolicyTargetGroup(ResourceMappingTestCase):
req = self.new_update_request('policy_target_groups', data, req = self.new_update_request('policy_target_groups', data,
ptg_id) ptg_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_add_subnet_negative(self): def test_add_subnet_negative(self):
# Create L2P # Create L2P
@ -1114,7 +1126,7 @@ class TestPolicyTargetGroup(ResourceMappingTestCase):
{'provided_policy_rule_sets': {policy_rule_set_id: None}}} {'provided_policy_rule_sets': {policy_rule_set_id: None}}}
req = self.new_update_request('policy_target_groups', data, ptg_id) req = self.new_update_request('policy_target_groups', data, ptg_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_default_security_group_egress_rules(self): def test_default_security_group_egress_rules(self):
# Create PTG and retrieve self subnet # Create PTG and retrieve self subnet
@ -1348,10 +1360,10 @@ class TestL2Policy(ResourceMappingTestCase):
# Verify deleting L2 policy cleans up network. # Verify deleting L2 policy cleans up network.
req = self.new_delete_request('l2_policies', l2p_id) req = self.new_delete_request('l2_policies', l2p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('networks', network_id, fmt=self.fmt) req = self.new_show_request('networks', network_id, fmt=self.fmt)
res = req.get_response(self.api) res = req.get_response(self.api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
def _test_explicit_network_lifecycle(self, shared=False): def _test_explicit_network_lifecycle(self, shared=False):
# Create L2 policy with explicit network. # Create L2 policy with explicit network.
@ -1365,10 +1377,10 @@ class TestL2Policy(ResourceMappingTestCase):
# Verify deleting L2 policy does not cleanup network. # Verify deleting L2 policy does not cleanup network.
req = self.new_delete_request('l2_policies', l2p_id) req = self.new_delete_request('l2_policies', l2p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('networks', network_id, fmt=self.fmt) req = self.new_show_request('networks', network_id, fmt=self.fmt)
res = req.get_response(self.api) res = req.get_response(self.api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_implicit_network_lifecycle(self): def test_implicit_network_lifecycle(self):
self._test_implicit_network_lifecycle() self._test_implicit_network_lifecycle()
@ -1467,10 +1479,10 @@ class TestL3Policy(ResourceMappingTestCase):
# Verify deleting L3 policy cleans up router. # Verify deleting L3 policy cleans up router.
req = self.new_delete_request('l3_policies', l3p_id) req = self.new_delete_request('l3_policies', l3p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('routers', router_id, fmt=self.fmt) req = self.new_show_request('routers', router_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNotFound.code) self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
def test_explicit_router_lifecycle(self): def test_explicit_router_lifecycle(self):
# Create L3 policy with explicit router. # Create L3 policy with explicit router.
@ -1487,10 +1499,10 @@ class TestL3Policy(ResourceMappingTestCase):
# Verify deleting L3 policy does not cleanup router. # Verify deleting L3 policy does not cleanup router.
req = self.new_delete_request('l3_policies', l3p_id) req = self.new_delete_request('l3_policies', l3p_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
req = self.new_show_request('routers', router_id, fmt=self.fmt) req = self.new_show_request('routers', router_id, fmt=self.fmt)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
def test_multiple_routers_rejected(self): def test_multiple_routers_rejected(self):
# Verify update l3 policy with explicit router rejected. # Verify update l3 policy with explicit router rejected.
@ -1890,7 +1902,7 @@ class TestPolicyRuleSet(ResourceMappingTestCase):
{'provided_policy_rule_sets': {policy_rule_set2_id: None}}} {'provided_policy_rule_sets': {policy_rule_set2_id: None}}}
req = self.new_update_request('policy_target_groups', data, ptg2_id) req = self.new_update_request('policy_target_groups', data, ptg2_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
# set ptg1 to provide policy_rule_set1 and consume policy_rule_set2 # set ptg1 to provide policy_rule_set1 and consume policy_rule_set2
# policy_rule_set2 now maps to SG which has ptg2's subnet as CIDR on # policy_rule_set2 now maps to SG which has ptg2's subnet as CIDR on
# rules # rules
@ -1898,7 +1910,7 @@ class TestPolicyRuleSet(ResourceMappingTestCase):
{'consumed_policy_rule_sets': {policy_rule_set2_id: None}}} {'consumed_policy_rule_sets': {policy_rule_set2_id: None}}}
req = self.new_update_request('policy_target_groups', data, ptg1_id) req = self.new_update_request('policy_target_groups', data, ptg1_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
port_id = pt1['policy_target']['port_id'] port_id = pt1['policy_target']['port_id']
res = self.new_show_request('ports', port_id) res = self.new_show_request('ports', port_id)
port = self.deserialize(self.fmt, res.get_response(self.api)) port = self.deserialize(self.fmt, res.get_response(self.api))
@ -1952,7 +1964,7 @@ class TestPolicyRuleSet(ResourceMappingTestCase):
{'policy_classifier_id': classifier2_id}} {'policy_classifier_id': classifier2_id}}
req = self.new_update_request('policy_rules', data, policy_rule_id) req = self.new_update_request('policy_rules', data, policy_rule_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
port_id = pt['policy_target']['port_id'] port_id = pt['policy_target']['port_id']
res = self.new_show_request('ports', port_id) res = self.new_show_request('ports', port_id)
port = self.deserialize(self.fmt, res.get_response(self.api)) port = self.deserialize(self.fmt, res.get_response(self.api))
@ -2000,7 +2012,7 @@ class TestPolicyRuleSet(ResourceMappingTestCase):
req = self.new_update_request('policy_classifiers', data, req = self.new_update_request('policy_classifiers', data,
classifier_id) classifier_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
port_id = pt['policy_target']['port_id'] port_id = pt['policy_target']['port_id']
res = self.new_show_request('ports', port_id) res = self.new_show_request('ports', port_id)
port = self.deserialize(self.fmt, res.get_response(self.api)) port = self.deserialize(self.fmt, res.get_response(self.api))
@ -2041,7 +2053,7 @@ class TestPolicyRuleSet(ResourceMappingTestCase):
req = self.new_update_request('policy_classifiers', data, req = self.new_update_request('policy_classifiers', data,
classifier_id) classifier_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPOk.code) self.assertEqual(webob.exc.HTTPOk.code, res.status_int)
self._verify_prs_rules(policy_rule_set_id) self._verify_prs_rules(policy_rule_set_id)
@ -2568,7 +2580,7 @@ class TestServiceChain(ResourceMappingTestCase):
self._verify_prs_rules(prs2['id']) self._verify_prs_rules(prs2['id'])
sc_instances_new = self._list(SERVICECHAIN_INSTANCES) sc_instances_new = self._list(SERVICECHAIN_INSTANCES)
self.assertEqual(sc_instances, sc_instances_new) self.assertEqual(sc_instances, sc_instances_new)
self.assertEqual(sc_instance_update.call_args_list, []) self.assertEqual([], sc_instance_update.call_args_list)
# update with a new redirect ruleset and verify that the instance is # update with a new redirect ruleset and verify that the instance is
# updated with the new classifier # updated with the new classifier
@ -2605,7 +2617,7 @@ class TestServiceChain(ResourceMappingTestCase):
self._verify_prs_rules(prs2['id']) self._verify_prs_rules(prs2['id'])
sc_instances_new = self._list(SERVICECHAIN_INSTANCES) sc_instances_new = self._list(SERVICECHAIN_INSTANCES)
self.assertEqual([], sc_instances_new['servicechain_instances']) self.assertEqual([], sc_instances_new['servicechain_instances'])
self.assertEqual(sc_instance_update.call_args_list, []) self.assertEqual([], sc_instance_update.call_args_list)
# Verify that PTG update removing prs cleansup the chain instances # Verify that PTG update removing prs cleansup the chain instances
self._verify_ptg_prs_unset_cleansup_chain(provider_ptg, [prs1['id']]) self._verify_ptg_prs_unset_cleansup_chain(provider_ptg, [prs1['id']])
@ -2656,7 +2668,7 @@ class TestServiceChain(ResourceMappingTestCase):
expected_provider_ptg_ids = set([provider_ptg, provider_ptg_new]) expected_provider_ptg_ids = set([provider_ptg, provider_ptg_new])
self.assertEqual(expected_provider_ptg_ids, self.assertEqual(expected_provider_ptg_ids,
sc_instances_provider_ptg_ids) sc_instances_provider_ptg_ids)
self.assertEqual(sc_instance_update.call_args_list, []) self.assertEqual([], sc_instance_update.call_args_list)
def test_action_spec_value_update(self): def test_action_spec_value_update(self):
scs1_id = self._create_servicechain_spec() scs1_id = self._create_servicechain_spec()
@ -3070,7 +3082,7 @@ class TestServiceChain(ResourceMappingTestCase):
req = self.new_delete_request( req = self.new_delete_request(
'policy_target_groups', provider_ptg1_id) 'policy_target_groups', provider_ptg1_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
sc_instances = self._list(SERVICECHAIN_INSTANCES) sc_instances = self._list(SERVICECHAIN_INSTANCES)
self.assertEqual(1, len(sc_instances['servicechain_instances'])) self.assertEqual(1, len(sc_instances['servicechain_instances']))
@ -3234,13 +3246,13 @@ class TestServiceChain(ResourceMappingTestCase):
req = self.new_delete_request( req = self.new_delete_request(
'policy_target_groups', consumer_ptg1_id) 'policy_target_groups', consumer_ptg1_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
sc_instances = self._list(SERVICECHAIN_INSTANCES) sc_instances = self._list(SERVICECHAIN_INSTANCES)
self.assertEqual(2, len(sc_instances['servicechain_instances'])) self.assertEqual(2, len(sc_instances['servicechain_instances']))
req = self.new_delete_request('policy_target_groups', provider_ptg1_id) req = self.new_delete_request('policy_target_groups', provider_ptg1_id)
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
sc_instances = self._list(SERVICECHAIN_INSTANCES) sc_instances = self._list(SERVICECHAIN_INSTANCES)
self.assertEqual(1, len(sc_instances['servicechain_instances'])) self.assertEqual(1, len(sc_instances['servicechain_instances']))
sc_instance = sc_instances['servicechain_instances'][0] sc_instance = sc_instances['servicechain_instances'][0]
@ -4002,7 +4014,7 @@ class TestNetworkServicePolicy(ResourceMappingTestCase):
expected_res_status=webob.exc.HTTPCreated.code) expected_res_status=webob.exc.HTTPCreated.code)
req = self.new_delete_request('nat_pools', nat_pool['id']) req = self.new_delete_request('nat_pools', nat_pool['id'])
res = req.get_response(self.ext_api) res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code) self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
def test_update_nsp_nat_pool_after_pt_create(self): def test_update_nsp_nat_pool_after_pt_create(self):
routes = [{'destination': '0.0.0.0/0', 'nexthop': None}] routes = [{'destination': '0.0.0.0/0', 'nexthop': None}]

View File

@ -30,17 +30,28 @@ from gbpservice.neutron.services.servicechain.plugins.ncp import (
context as ncp_context) context as ncp_context)
from gbpservice.neutron.services.servicechain.plugins.ncp import ( from gbpservice.neutron.services.servicechain.plugins.ncp import (
exceptions as exc) exceptions as exc)
from gbpservice.neutron.services.servicechain.plugins.ncp import (
plugin as ncp_plugin)
import gbpservice.neutron.services.servicechain.plugins.ncp.config # noqa import gbpservice.neutron.services.servicechain.plugins.ncp.config # noqa
from gbpservice.neutron.services.servicechain.plugins.ncp.node_drivers import ( from gbpservice.neutron.services.servicechain.plugins.ncp.node_drivers import (
dummy_driver as dummy_driver) dummy_driver as dummy_driver)
from gbpservice.neutron.tests.unit.db.grouppolicy import test_group_policy_db
from gbpservice.neutron.tests.unit.services.grouppolicy import (
test_resource_mapping as test_gp_driver)
from gbpservice.neutron.tests.unit.services.servicechain import ( from gbpservice.neutron.tests.unit.services.servicechain import (
test_servicechain_plugin as test_base) test_servicechain_plugin as test_base)
SC_PLUGIN_KLASS = (
"gbpservice.neutron.services.servicechain.plugins.ncp.plugin." class ServiceChainNCPTestPlugin(ncp_plugin.NodeCompositionPlugin):
"NodeCompositionPlugin")
CORE_PLUGIN = ('gbpservice.neutron.tests.unit.services.grouppolicy.' supported_extension_aliases = ['servicechain'] + (
'test_resource_mapping.NoL3NatSGTestPlugin') test_group_policy_db.UNSUPPORTED_REQUIRED_EXTS)
path_prefix = "/servicechain"
SC_PLUGIN_KLASS = (ServiceChainNCPTestPlugin.__module__ + '.' +
ServiceChainNCPTestPlugin.__name__)
CORE_PLUGIN = test_gp_driver.CORE_PLUGIN
GP_PLUGIN_KLASS = ( GP_PLUGIN_KLASS = (
"gbpservice.neutron.services.grouppolicy.plugin.GroupPolicyPlugin" "gbpservice.neutron.services.grouppolicy.plugin.GroupPolicyPlugin"
) )

View File

@ -189,7 +189,11 @@ class TestImplicitServiceChains(ResourceMappingStitchingPlumberGBPTestCase,
for target in targets: for target in targets:
pt = self.show_policy_target( pt = self.show_policy_target(
target.policy_target_id)['policy_target'] target.policy_target_id)['policy_target']
# Being service targets, port filter and hybrid plug will be false
port = self._bind_port_to_host(pt['port_id'], 'host')['port'] port = self._bind_port_to_host(pt['port_id'], 'host')['port']
self.assertTrue(port['binding:vif_details']['port_filter']) self.assertTrue(port['binding:vif_details']['port_filter'])
self.assertTrue(port['binding:vif_details']['ovs_hybrid_plug']) # REVISIT: On account of the following commit:
# https://git.io/v2czD
# the hybrid plugging is disabled. Assuming that we are just
# checking for the default value here, this should be fine. Else we
# need to revisit.
self.assertFalse(port['binding:vif_details']['ovs_hybrid_plug'])

View File

@ -18,26 +18,36 @@ from neutron import context as n_ctx
from oslo_config import cfg from oslo_config import cfg
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
from gbpservice.neutron.services.servicechain.plugins.msc import (
plugin as msc_plugin)
from gbpservice.neutron.services.servicechain.plugins.msc import context from gbpservice.neutron.services.servicechain.plugins.msc import context
from gbpservice.neutron.tests.unit.db.grouppolicy import ( from gbpservice.neutron.tests.unit.db.grouppolicy import (
test_servicechain_db as test_servicechain_db) test_servicechain_db as test_servicechain_db)
from gbpservice.neutron.tests.unit.db.grouppolicy import test_group_policy_db
cfg.CONF.import_opt( cfg.CONF.import_opt(
'servicechain_drivers', 'servicechain_drivers',
'gbpservice.neutron.services.servicechain.plugins.msc.config', 'gbpservice.neutron.services.servicechain.plugins.msc.config',
group='servicechain') group='servicechain')
SC_PLUGIN_KLASS = (
"gbpservice.neutron.services.servicechain.plugins.msc.plugin."
"ServiceChainPlugin") class ServiceChainMSCTestPlugin(msc_plugin.ServiceChainPlugin):
supported_extension_aliases = ['servicechain'] + (
test_group_policy_db.UNSUPPORTED_REQUIRED_EXTS)
path_prefix = "/servicechain"
SC_PLUGIN_KLASS = (ServiceChainMSCTestPlugin.__module__ + '.' +
ServiceChainMSCTestPlugin.__name__)
class ServiceChainPluginTestCase(test_servicechain_db.ServiceChainDbTestCase): class ServiceChainPluginTestCase(test_servicechain_db.ServiceChainDbTestCase):
def setUp(self, core_plugin=None, sc_plugin=None, gp_plugin=None): def setUp(self, core_plugin=None, sc_plugin=None, gp_plugin=None):
if not sc_plugin:
sc_plugin = SC_PLUGIN_KLASS
super(ServiceChainPluginTestCase, self).setUp(core_plugin=core_plugin, super(ServiceChainPluginTestCase, self).setUp(core_plugin=core_plugin,
sc_plugin=sc_plugin, sc_plugin=sc_plugin or
SC_PLUGIN_KLASS,
gp_plugin=gp_plugin) gp_plugin=gp_plugin)

View File

@ -472,7 +472,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.get_policy_actions.assert_called_once_with(mock.ANY, instance.get_policy_actions.assert_called_once_with(mock.ANY,
fields=mock.ANY, fields=mock.ANY,
filters=mock.ANY) filters=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
def test_get_policy_action(self): def test_get_policy_action(self):
policy_action_id = _uuid() policy_action_id = _uuid()
@ -488,7 +488,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.get_policy_action.assert_called_once_with(mock.ANY, instance.get_policy_action.assert_called_once_with(mock.ANY,
policy_action_id, policy_action_id,
fields=mock.ANY) fields=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_action', res) self.assertIn('policy_action', res)
self.assertEqual(expected_value, res['policy_action']) self.assertEqual(expected_value, res['policy_action'])
@ -510,7 +510,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.update_policy_action.assert_called_once_with( instance.update_policy_action.assert_called_once_with(
mock.ANY, policy_action_id, policy_action=update_data) mock.ANY, policy_action_id, policy_action=update_data)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_action', res) self.assertIn('policy_action', res)
self.assertEqual(expected_value, res['policy_action']) self.assertEqual(expected_value, res['policy_action'])
@ -566,7 +566,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.get_policy_classifiers.assert_called_once_with( instance.get_policy_classifiers.assert_called_once_with(
mock.ANY, fields=mock.ANY, filters=mock.ANY) mock.ANY, fields=mock.ANY, filters=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
def test_get_policy_classifier(self): def test_get_policy_classifier(self):
policy_classifier_id = _uuid() policy_classifier_id = _uuid()
@ -581,7 +581,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.get_policy_classifier.assert_called_once_with( instance.get_policy_classifier.assert_called_once_with(
mock.ANY, policy_classifier_id, fields=mock.ANY) mock.ANY, policy_classifier_id, fields=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_classifier', res) self.assertIn('policy_classifier', res)
self.assertEqual(expected_value, res['policy_classifier']) self.assertEqual(expected_value, res['policy_classifier'])
@ -603,7 +603,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.update_policy_classifier.assert_called_once_with( instance.update_policy_classifier.assert_called_once_with(
mock.ANY, policy_classifier_id, policy_classifier=update_data) mock.ANY, policy_classifier_id, policy_classifier=update_data)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_classifier', res) self.assertIn('policy_classifier', res)
self.assertEqual(expected_value, res['policy_classifier']) self.assertEqual(expected_value, res['policy_classifier'])
@ -661,7 +661,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.get_policy_rules.assert_called_once_with(mock.ANY, instance.get_policy_rules.assert_called_once_with(mock.ANY,
fields=mock.ANY, fields=mock.ANY,
filters=mock.ANY) filters=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
def test_get_policy_rule(self): def test_get_policy_rule(self):
policy_rule_id = _uuid() policy_rule_id = _uuid()
@ -676,7 +676,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.get_policy_rule.assert_called_once_with( instance.get_policy_rule.assert_called_once_with(
mock.ANY, policy_rule_id, fields=mock.ANY) mock.ANY, policy_rule_id, fields=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_rule', res) self.assertIn('policy_rule', res)
self.assertEqual(expected_value, res['policy_rule']) self.assertEqual(expected_value, res['policy_rule'])
@ -698,7 +698,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.update_policy_rule.assert_called_once_with( instance.update_policy_rule.assert_called_once_with(
mock.ANY, policy_rule_id, policy_rule=update_data) mock.ANY, policy_rule_id, policy_rule=update_data)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_rule', res) self.assertIn('policy_rule', res)
self.assertEqual(expected_value, res['policy_rule']) self.assertEqual(expected_value, res['policy_rule'])
@ -717,7 +717,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
content_type='application/%s' % self.fmt) content_type='application/%s' % self.fmt)
self.instance.create_policy_rule_set.assert_called_once_with( self.instance.create_policy_rule_set.assert_called_once_with(
mock.ANY, policy_rule_set=default_data) mock.ANY, policy_rule_set=default_data)
self.assertEqual(res.status_int, exc.HTTPCreated.code) self.assertEqual(exc.HTTPCreated.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_rule_set', res) self.assertIn('policy_rule_set', res)
self.assertEqual(expected_value, res['policy_rule_set']) self.assertEqual(expected_value, res['policy_rule_set'])
@ -754,7 +754,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.get_policy_rule_sets.assert_called_once_with( instance.get_policy_rule_sets.assert_called_once_with(
mock.ANY, fields=mock.ANY, filters=mock.ANY) mock.ANY, fields=mock.ANY, filters=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
def test_get_policy_rule_set(self): def test_get_policy_rule_set(self):
policy_rule_set_id = _uuid() policy_rule_set_id = _uuid()
@ -769,7 +769,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.get_policy_rule_set.assert_called_once_with( instance.get_policy_rule_set.assert_called_once_with(
mock.ANY, policy_rule_set_id, fields=mock.ANY) mock.ANY, policy_rule_set_id, fields=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_rule_set', res) self.assertIn('policy_rule_set', res)
self.assertEqual(expected_value, res['policy_rule_set']) self.assertEqual(expected_value, res['policy_rule_set'])
@ -791,7 +791,7 @@ class GroupPolicyExtensionTestCase(test_extensions_base.ExtensionTestCase):
instance.update_policy_rule_set.assert_called_once_with( instance.update_policy_rule_set.assert_called_once_with(
mock.ANY, policy_rule_set_id, policy_rule_set=update_data) mock.ANY, policy_rule_set_id, policy_rule_set=update_data)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('policy_rule_set', res) self.assertIn('policy_rule_set', res)
self.assertEqual(expected_value, res['policy_rule_set']) self.assertEqual(expected_value, res['policy_rule_set'])
@ -1053,12 +1053,12 @@ class TestGroupPolicyAttributeConverters(base.BaseTestCase):
gp.convert_action_to_case_insensitive('ALLOW'), 'allow') gp.convert_action_to_case_insensitive('ALLOW'), 'allow')
self.assertEqual(gp.convert_action_to_case_insensitive('In'), 'in') self.assertEqual(gp.convert_action_to_case_insensitive('In'), 'in')
self.assertEqual(gp.convert_action_to_case_insensitive('bi'), 'bi') self.assertEqual(gp.convert_action_to_case_insensitive('bi'), 'bi')
self.assertEqual(gp.convert_action_to_case_insensitive(''), '') self.assertEqual('', gp.convert_action_to_case_insensitive(''))
def test_convert_port_to_string(self): def test_convert_port_to_string(self):
self.assertEqual(gp.convert_port_to_string(100), '100') self.assertEqual(gp.convert_port_to_string(100), '100')
self.assertEqual(gp.convert_port_to_string('200'), '200') self.assertEqual(gp.convert_port_to_string('200'), '200')
self.assertEqual(gp.convert_port_to_string(''), '') self.assertEqual('', gp.convert_port_to_string(''))
def test_convert_protocol_check_valid_protocols(self): def test_convert_protocol_check_valid_protocols(self):
self.assertEqual(gp.convert_protocol('tcp'), n_consts.PROTO_NAME_TCP) self.assertEqual(gp.convert_protocol('tcp'), n_consts.PROTO_NAME_TCP)

View File

@ -59,7 +59,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.create_servicechain_node.assert_called_once_with( self.instance.create_servicechain_node.assert_called_once_with(
mock.ANY, servicechain_node=default_data) mock.ANY, servicechain_node=default_data)
self.assertEqual(res.status_int, exc.HTTPCreated.code) self.assertEqual(exc.HTTPCreated.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_node', res) self.assertIn('servicechain_node', res)
self.assertEqual(expected_value, res['servicechain_node']) self.assertEqual(expected_value, res['servicechain_node'])
@ -101,7 +101,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.get_servicechain_nodes.assert_called_once_with( self.instance.get_servicechain_nodes.assert_called_once_with(
mock.ANY, fields=mock.ANY, filters=mock.ANY) mock.ANY, fields=mock.ANY, filters=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_nodes', res) self.assertIn('servicechain_nodes', res)
self.assertEqual(expected_value, res['servicechain_nodes']) self.assertEqual(expected_value, res['servicechain_nodes'])
@ -118,7 +118,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.get_servicechain_node.assert_called_once_with( self.instance.get_servicechain_node.assert_called_once_with(
mock.ANY, servicechain_node_id, fields=mock.ANY) mock.ANY, servicechain_node_id, fields=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_node', res) self.assertIn('servicechain_node', res)
self.assertEqual(expected_value, res['servicechain_node']) self.assertEqual(expected_value, res['servicechain_node'])
@ -138,7 +138,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.update_servicechain_node.assert_called_once_with( self.instance.update_servicechain_node.assert_called_once_with(
mock.ANY, servicechain_node_id, servicechain_node=update_data) mock.ANY, servicechain_node_id, servicechain_node=update_data)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_node', res) self.assertIn('servicechain_node', res)
self.assertEqual(expected_value, res['servicechain_node']) self.assertEqual(expected_value, res['servicechain_node'])
@ -158,7 +158,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.create_servicechain_spec.assert_called_once_with( self.instance.create_servicechain_spec.assert_called_once_with(
mock.ANY, servicechain_spec=default_data) mock.ANY, servicechain_spec=default_data)
self.assertEqual(res.status_int, exc.HTTPCreated.code) self.assertEqual(exc.HTTPCreated.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_spec', res) self.assertIn('servicechain_spec', res)
self.assertEqual(expected_value, res['servicechain_spec']) self.assertEqual(expected_value, res['servicechain_spec'])
@ -197,7 +197,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.get_servicechain_specs.assert_called_once_with( self.instance.get_servicechain_specs.assert_called_once_with(
mock.ANY, fields=mock.ANY, filters=mock.ANY) mock.ANY, fields=mock.ANY, filters=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_specs', res) self.assertIn('servicechain_specs', res)
self.assertEqual(expected_value, res['servicechain_specs']) self.assertEqual(expected_value, res['servicechain_specs'])
@ -213,7 +213,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.get_servicechain_spec.assert_called_once_with( self.instance.get_servicechain_spec.assert_called_once_with(
mock.ANY, servicechain_spec_id, fields=mock.ANY) mock.ANY, servicechain_spec_id, fields=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_spec', res) self.assertIn('servicechain_spec', res)
self.assertEqual(expected_value, res['servicechain_spec']) self.assertEqual(expected_value, res['servicechain_spec'])
@ -233,7 +233,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.update_servicechain_spec.assert_called_once_with( self.instance.update_servicechain_spec.assert_called_once_with(
mock.ANY, servicechain_spec_id, servicechain_spec=update_data) mock.ANY, servicechain_spec_id, servicechain_spec=update_data)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_spec', res) self.assertIn('servicechain_spec', res)
self.assertEqual(expected_value, res['servicechain_spec']) self.assertEqual(expected_value, res['servicechain_spec'])
@ -254,7 +254,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.create_servicechain_instance.assert_called_once_with( self.instance.create_servicechain_instance.assert_called_once_with(
mock.ANY, servicechain_instance=default_data) mock.ANY, servicechain_instance=default_data)
self.assertEqual(res.status_int, exc.HTTPCreated.code) self.assertEqual(exc.HTTPCreated.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_instance', res) self.assertIn('servicechain_instance', res)
self.assertEqual(expected_value, res['servicechain_instance']) self.assertEqual(expected_value, res['servicechain_instance'])
@ -299,7 +299,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.get_servicechain_instances.assert_called_once_with( self.instance.get_servicechain_instances.assert_called_once_with(
mock.ANY, fields=mock.ANY, filters=mock.ANY) mock.ANY, fields=mock.ANY, filters=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_instances', res) self.assertIn('servicechain_instances', res)
self.assertEqual(expected_value, res['servicechain_instances']) self.assertEqual(expected_value, res['servicechain_instances'])
@ -315,7 +315,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.get_servicechain_instance.assert_called_once_with( self.instance.get_servicechain_instance.assert_called_once_with(
mock.ANY, servicechain_instance_id, fields=mock.ANY) mock.ANY, servicechain_instance_id, fields=mock.ANY)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_instance', res) self.assertIn('servicechain_instance', res)
self.assertEqual(expected_value, res['servicechain_instance']) self.assertEqual(expected_value, res['servicechain_instance'])
@ -336,7 +336,7 @@ class ServiceChainExtensionTestCase(test_extensions_base.ExtensionTestCase):
self.instance.update_servicechain_instance.assert_called_once_with( self.instance.update_servicechain_instance.assert_called_once_with(
mock.ANY, servicechain_instance_id, mock.ANY, servicechain_instance_id,
servicechain_instance=update_data) servicechain_instance=update_data)
self.assertEqual(res.status_int, exc.HTTPOk.code) self.assertEqual(exc.HTTPOk.code, res.status_int)
res = self.deserialize(res) res = self.deserialize(res)
self.assertIn('servicechain_instance', res) self.assertIn('servicechain_instance', res)
self.assertEqual(expected_value, res['servicechain_instance']) self.assertEqual(expected_value, res['servicechain_instance'])

View File

@ -38,19 +38,23 @@ function init_gbpservice {
# install_gbpservice() - Collect source and prepare # install_gbpservice() - Collect source and prepare
function install_gbpservice { function install_gbpservice {
mv $GBPSERVICE_DIR/test-requirements.txt $GBPSERVICE_DIR/_test-requirements.txt
pip_install -e $GBPSERVICE_DIR pip_install -e $GBPSERVICE_DIR
#pip_install -e $GBP_DIR #pip_install -e $GBP_DIR
#sed -i '/gbptestneutron/d' $GBPSERVICE_DIR/test-requirements.txt #sed -i '/gbptestneutron/d' $GBPSERVICE_DIR/test-requirements.txt
#setup_develop $GBPSERVICE_DIR #setup_develop $GBPSERVICE_DIR
\cp -rf $GBPSERVICE_DIR/etc/policy.json $Q_POLICY_FILE \cp -rf $GBPSERVICE_DIR/etc/policy.json $Q_POLICY_FILE
sed -i 's/"context_is_admin": "role:admin"/"context_is_admin": "role:admin or user_name:neutron"/g' $Q_POLICY_FILE sed -i 's/"context_is_admin": "role:admin"/"context_is_admin": "role:admin or user_name:neutron"/g' $Q_POLICY_FILE
mv $GBPSERVICE_DIR/_test-requirements.txt $GBPSERVICE_DIR/test-requirements.txt
} }
# install_gbpclient() - Collect source and prepare # install_gbpclient() - Collect source and prepare
function install_gbpclient { function install_gbpclient {
git_clone $GBPCLIENT_REPO $GBPCLIENT_DIR $GBPCLIENT_BRANCH git_clone $GBPCLIENT_REPO $GBPCLIENT_DIR $GBPCLIENT_BRANCH
mv $GBPCLIENT_DIR/test-requirements.txt $GBPCLIENT_DIR/_test-requirements.txt
setup_develop $GBPCLIENT_DIR setup_develop $GBPCLIENT_DIR
sudo install -D -m 0644 -o $STACK_USER {$GBPCLIENT_DIR/tools/,/etc/bash_completion.d/}gbp.bash_completion sudo install -D -m 0644 -o $STACK_USER {$GBPCLIENT_DIR/tools/,/etc/bash_completion.d/}gbp.bash_completion
mv $GBPCLIENT_DIR/_test-requirements.txt $GBPCLIENT_DIR/test-requirements.txt
} }
# Restore xtrace # Restore xtrace

View File

@ -15,14 +15,14 @@ Q_SERVICE_PLUGIN_CLASSES=neutron.services.l3_router.l3_router_plugin.L3RouterPlu
GIT_BASE=${GIT_BASE:-git://git.openstack.org} GIT_BASE=${GIT_BASE:-git://git.openstack.org}
GBPSERVICE_REPO=${GIT_BASE}/openstack/group-based-policy.git GBPSERVICE_REPO=${GIT_BASE}/openstack/group-based-policy.git
GBPSERVICE_BRANCH=stable/liberty #GBPSERVICE_BRANCH=stable/liberty
#GBPSERVICE_REPO=https://review.openstack.org/openstack/group-based-policy #GBPSERVICE_REPO=https://review.openstack.org/openstack/group-based-policy
#GBPSERVICE_BRANCH=refs/changes/54/240954/47 #GBPSERVICE_BRANCH=refs/changes/54/240954/47
GBPCLIENT_REPO=${GIT_BASE}/openstack/python-group-based-policy-client.git #GBPCLIENT_REPO=${GIT_BASE}/openstack/python-group-based-policy-client.git
GBPCLIENT_BRANCH=stable/liberty #GBPCLIENT_BRANCH=stable/liberty
#GBPCLIENT_REPO=https://review.openstack.org/openstack/python-group-based-policy-client GBPCLIENT_REPO=https://review.openstack.org/openstack/python-group-based-policy-client
#GBPCLIENT_BRANCH=refs/changes/73/261773/1 GBPCLIENT_BRANCH=refs/changes/85/281585/2
GBPUI_REPO=${GIT_BASE}/openstack/group-based-policy-ui.git GBPUI_REPO=${GIT_BASE}/openstack/group-based-policy-ui.git
GBPUI_BRANCH=stable/liberty GBPUI_BRANCH=stable/liberty
@ -37,10 +37,10 @@ GBPHEAT_BRANCH=stable/liberty
# Enable neutron for group-policy-poc # Enable neutron for group-policy-poc
# ----------------------------------- # -----------------------------------
disable_service n-net disable_service n-net
disable_service h-eng #disable_service h-eng
disable_service h-api #disable_service h-api
disable_service h-api-cfn #disable_service h-api-cfn
disable_service h-api-cw #disable_service h-api-cw
enable_service q-svc enable_service q-svc
enable_service q-agt enable_service q-agt
enable_service q-dhcp enable_service q-dhcp
@ -69,9 +69,9 @@ RECLONE=True
[neutron] [neutron]
allow_duplicate_networks = True allow_duplicate_networks = True
[[post-config|/etc/heat/heat.conf]] #[[post-config|/etc/heat/heat.conf]]
[DEFAULT] #[DEFAULT]
plugin_dirs=/opt/stack/gbpautomation/gbpautomation/heat #plugin_dirs=/opt/stack/gbpautomation/gbpautomation/heat
[[post-config|/etc/neutron/neutron.conf]] [[post-config|/etc/neutron/neutron.conf]]
[group_policy] [group_policy]

View File

@ -10,7 +10,7 @@ XTRACE=$(set +o | grep xtrace)
function prepare_gbp_devstack { function prepare_gbp_devstack {
cd $TOP_DIR cd $TOP_DIR
sudo git checkout stable/liberty sudo git checkout master
sudo cp $CONTRIB_DIR/devstack/local.conf $TOP_DIR/local.conf sudo cp $CONTRIB_DIR/devstack/local.conf $TOP_DIR/local.conf
sudo cp $CONTRIB_DIR/devstack/exercises/*.sh $TOP_DIR/exercises/ sudo cp $CONTRIB_DIR/devstack/exercises/*.sh $TOP_DIR/exercises/
sudo cp $CONTRIB_DIR/devstack/lib/* $TOP_DIR/lib/ sudo cp $CONTRIB_DIR/devstack/lib/* $TOP_DIR/lib/

View File

@ -17,6 +17,14 @@
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT # THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools import setuptools
# In python < 2.7.4, a lazy loading of package `pbr` will break
# setuptools if some other modules registered functions in `atexit`.
# solution from: http://bugs.python.org/issue15881#msg170215
try:
import multiprocessing # noqa
except ImportError:
pass
setuptools.setup( setuptools.setup(
setup_requires=['pbr'], setup_requires=['pbr>=1.8'],
pbr=True) pbr=True)

View File

@ -3,32 +3,31 @@
# process, which may cause wedges in the gate later. # process, which may cause wedges in the gate later.
setuptools>=19.2 setuptools>=19.2
-e git+https://git.openstack.org/openstack/neutron.git@stable/liberty#egg=neutron -e git+https://git.openstack.org/openstack/neutron.git@master#egg=neutron
-e git+https://github.com/noironetworks/apic-ml2-driver.git@master#egg=apic_ml2 -e git+https://github.com/noironetworks/apic-ml2-driver.git@master#egg=apic_ml2
-e git+https://git.openstack.org/openstack/python-heatclient@stable/liberty#egg=heatclient -e git+https://git.openstack.org/openstack/python-heatclient@master#egg=heatclient
-e git+https://git.openstack.org/openstack/python-keystoneclient@stable/liberty#egg=keystoneclient -e git+https://git.openstack.org/openstack/python-keystoneclient@master#egg=keystoneclient
hacking>=0.9.2,<0.10 hacking<0.11,>=0.10.0
cliff>=1.14.0 # Apache-2.0 cliff>=1.15.0 # Apache-2.0
coverage>=3.6 coverage>=3.6 # Apache-2.0
fixtures>=1.3.1 fixtures>=1.3.1 # Apache-2.0/BSD
httplib2>=0.7.5 httplib2>=0.7.5
mock>=1.2 mock>=1.2 # BSD
python-subunit>=0.0.18 python-subunit>=0.0.18 # Apache-2.0/BSD
requests-mock>=0.6.0 # Apache-2.0 requests-mock>=0.7.0 # Apache-2.0
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD
ordereddict ordereddict
testrepository>=0.0.18 testrepository>=0.0.18 # Apache-2.0/BSD
testtools>=1.4.0 testtools>=1.4.0 # MIT
testresources>=0.2.4 testresources>=0.2.4 # Apache-2.0/BSD
testscenarios>=0.4 testscenarios>=0.4 # Apache-2.0/BSD
WebTest>=2.0 WebTest>=2.0 # MIT
oslotest>=1.10.0 # Apache-2.0 oslotest>=1.10.0 # Apache-2.0
os-testr>=0.1.0 os-testr>=0.4.1 # Apache-2.0
tempest-lib>=0.8.0 tempest-lib>=0.13.0 # Apache-2.0
ddt>=0.7.0 ddt>=1.0.1 # MIT
pylint==1.4.4 # GNU GPL v2 pylint==1.4.5 # GNU GPL v2
reno>=0.1.1 # Apache2 reno>=0.1.1 # Apache2
-e git+https://github.com/noironetworks/python-opflex-agent.git@sumit/mitaka-sync#egg=python-opflexagent-agent
-e git+https://github.com/noironetworks/python-opflex-agent.git@master#egg=python-opflexagent-agent