2 * Copyright (c) 2016 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
8 package org.opendaylight.neutron.transcriber;
10 import java.util.ArrayList;
11 import java.util.HashMap;
12 import java.util.List;
13 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
14 import org.opendaylight.neutron.spi.INeutronSFCPortPairCRUD;
15 import org.opendaylight.neutron.spi.NeutronSFCPortPair;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.port.pair.attributes.ServiceFunctionParameters;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.port.pair.attributes.ServiceFunctionParametersBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.port.pair.attributes.ServiceFunctionParametersKey;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.sfc.attributes.PortPairs;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.sfc.attributes.port.pairs.PortPair;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.sfc.attributes.port.pairs.PortPairBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.sfc.attributes.port.pairs.PortPairKey;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
28 * Created by Anil Vishnoi (avishnoi@Brocade.com)
30 public final class NeutronSFCPortPairInterface
31 extends AbstractNeutronInterface<PortPair, PortPairs, PortPairKey, NeutronSFCPortPair>
32 implements INeutronSFCPortPairCRUD {
34 private static final Logger LOGGER = LoggerFactory.getLogger(NeutronSFCPortPairInterface.class);
36 NeutronSFCPortPairInterface(DataBroker db) {
37 super(PortPairBuilder.class, db);
41 protected PortPair toMd(NeutronSFCPortPair neutronPortPair) {
43 LOGGER.trace("toMd: REST SFC Port Pair data : {}", neutronPortPair);
45 PortPairBuilder result = new PortPairBuilder();
46 toMdBaseAttributes(neutronPortPair, result);
47 if (neutronPortPair.getIngressPortUUID() != null) {
48 result.setIngress(new Uuid(neutronPortPair.getIngressPortUUID()));
50 if (neutronPortPair.getEgressPortUUID() != null) {
51 result.setEgress(new Uuid(neutronPortPair.getEgressPortUUID()));
53 if (neutronPortPair.getServiceFunctionParameters() != null) {
54 List<ServiceFunctionParameters> serviceFunctionParams = new ArrayList<>();
55 for (String paramKey : neutronPortPair.getServiceFunctionParameters().keySet()) {
56 ServiceFunctionParametersBuilder param = new ServiceFunctionParametersBuilder();
57 param.setKey(new ServiceFunctionParametersKey(paramKey));
58 param.setServiceFunctionParameter(paramKey);
59 param.setServiceFunctionParameterValue(neutronPortPair.getServiceFunctionParameters().get(paramKey));
60 serviceFunctionParams.add(param.build());
62 result.setServiceFunctionParameters(serviceFunctionParams);
64 LOGGER.trace("toMd: Yang SFC Port Pair data : {}", result);
65 return result.build();
69 protected NeutronSFCPortPair fromMd(PortPair mdPortPair) {
70 LOGGER.trace("fromMd: Yang SFC Port Pair data : {}", mdPortPair);
71 NeutronSFCPortPair result = new NeutronSFCPortPair();
72 fromMdBaseAttributes(mdPortPair, result);
73 if (mdPortPair.getIngress() != null) {
74 result.setIngressPortUUID(mdPortPair.getIngress().getValue());
76 if (mdPortPair.getEgress() != null) {
77 result.setEgressPortUUID(mdPortPair.getEgress().getValue());
79 if (mdPortPair.getServiceFunctionParameters() != null) {
80 HashMap<String, String> serviceFunctionParam = new HashMap<>();
81 for (ServiceFunctionParameters param : mdPortPair.getServiceFunctionParameters()) {
82 serviceFunctionParam.put(param.getServiceFunctionParameter(), param.getServiceFunctionParameterValue());
84 result.setServiceFunctionParameters(serviceFunctionParam);
86 LOGGER.trace("fromMd: REST SFC Port Pair data : {}", result);
91 protected List<PortPair> getDataObjectList(PortPairs dataObjects) {
92 return dataObjects.getPortPair();