group-based-policy/gbpservice/contrib/nfp/config_orchestrator/modules/config_orch.py

87 lines
2.8 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from gbpservice.contrib.nfp.config_orchestrator.common import (
topics as a_topics)
from gbpservice.contrib.nfp.config_orchestrator.handlers.config import (
firewall as fw)
from gbpservice.contrib.nfp.config_orchestrator.handlers.config import (
loadbalancerv2 as lbv2)
from gbpservice.contrib.nfp.config_orchestrator.handlers.config import vpn
from gbpservice.contrib.nfp.config_orchestrator.handlers.notification import (
handler as notif_handler)
from gbpservice.nfp.core.rpc import RpcAgent
from oslo_config import cfg
def rpc_init(sc, conf):
fwrpcmgr = fw.FwAgent(conf, sc)
fwagent = RpcAgent(
sc,
host=cfg.CONF.host,
topic=a_topics.FW_NFP_CONFIGAGENT_TOPIC,
manager=fwrpcmgr
)
lbv2_report_state = {
'binary': 'NCO',
'host': cfg.CONF.host,
'topic': a_topics.LBV2_NFP_CONFIGAGENT_TOPIC,
'plugin_topic': a_topics.LBV2_NFP_PLUGIN_TOPIC,
'agent_type': 'NFP Loadbalancer V2 agent',
'configurations': {'device_drivers': ['loadbalancerv2']},
'start_flag': True,
'report_interval': 10
}
lbv2rpcmgr = lbv2.Lbv2Agent(conf, sc)
lbv2agent = RpcAgent(
sc,
host=cfg.CONF.host,
topic=a_topics.LBV2_NFP_CONFIGAGENT_TOPIC,
manager=lbv2rpcmgr,
report_state=lbv2_report_state
)
vpn_report_state = {
'binary': 'NCO',
'host': cfg.CONF.host,
'topic': a_topics.VPN_NFP_CONFIGAGENT_TOPIC,
'plugin_topic': a_topics.VPN_NFP_PLUGIN_TOPIC,
'agent_type': 'NFP Vpn agent',
'configurations': {'device_drivers': ['vpn']},
'start_flag': True,
'report_interval': 10
}
vpnrpcmgr = vpn.VpnAgent(conf, sc)
vpnagent = RpcAgent(
sc,
host=cfg.CONF.host,
topic=a_topics.VPN_NFP_CONFIGAGENT_TOPIC,
manager=vpnrpcmgr,
report_state=vpn_report_state
)
rpchandler = notif_handler.RpcHandler(conf, sc)
rpcagent = RpcAgent(
sc,
host=cfg.CONF.host,
topic=a_topics.CONFIG_ORCH_TOPIC,
manager=rpchandler,
)
sc.register_rpc_agents([fwagent, lbv2agent, vpnagent, rpcagent])
def nfp_module_init(sc, conf):
rpc_init(sc, conf)