2 * Copyright (c) 2016, 2017 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.netvirt.sfc.translator;
11 import javax.inject.Inject;
12 import javax.inject.Singleton;
13 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
14 import org.opendaylight.infrautils.inject.AbstractLifecycle;
15 import org.opendaylight.netvirt.sfc.translator.flowclassifier.NeutronFlowClassifierListener;
16 import org.opendaylight.netvirt.sfc.translator.portchain.NeutronPortChainListener;
17 import org.opendaylight.netvirt.sfc.translator.portchain.NeutronPortPairGroupListener;
18 import org.opendaylight.netvirt.sfc.translator.portchain.NeutronPortPairListener;
19 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.RenderedServicePathService;
20 import org.slf4j.Logger;
21 import org.slf4j.LoggerFactory;
24 public class OpenStackSFCTranslatorProvider extends AbstractLifecycle {
26 private static final Logger LOG = LoggerFactory.getLogger(OpenStackSFCTranslatorProvider.class);
27 private final DataBroker dataBroker;
28 private final RenderedServicePathService rspService;
29 private NeutronFlowClassifierListener neutronFlowClassifierListener;
30 private NeutronPortPairListener neutronPortPairListener;
31 private NeutronPortPairGroupListener neutronPortPairGroupListener;
32 private NeutronPortChainListener neutronPortChainListener;
35 public OpenStackSFCTranslatorProvider(final DataBroker dataBroker, final RenderedServicePathService rspService) {
36 LOG.info("OpenStackSFCTranslatorProvider2 constructor");
37 this.dataBroker = dataBroker;
38 this.rspService = rspService;
42 protected void start() {
43 LOG.info("{} start", getClass().getSimpleName());
44 neutronFlowClassifierListener = new NeutronFlowClassifierListener(dataBroker);
45 neutronPortPairListener = new NeutronPortPairListener(dataBroker);
46 neutronPortPairGroupListener = new NeutronPortPairGroupListener(dataBroker);
47 neutronPortChainListener = new NeutronPortChainListener(dataBroker, rspService);
48 if (this.rspService == null) {
49 LOG.warn("RenderedServicePath Service is not available. Translation layer might not work as expected.");
54 protected void stop() {
55 neutronFlowClassifierListener.close();
56 neutronPortPairListener.close();
57 neutronPortPairGroupListener.close();
58 neutronPortChainListener.close();
59 LOG.info("{} close", getClass().getSimpleName());