Merge "Logger on neutron model"
[neutron.git] / transcriber / src / main / java / org / opendaylight / neutron / transcriber / NeutronSFCPortPairInterface.java
1 /*
2  * Copyright (c) 2016 Brocade Communications Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.neutron.transcriber;
9
10 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
11 import org.opendaylight.neutron.spi.INeutronSFCPortPairCRUD;
12 import org.opendaylight.neutron.spi.NeutronSFCPortPair;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.port.pair.attributes.ServiceFunctionParameters;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.port.pair.attributes.ServiceFunctionParametersBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.port.pair.attributes.ServiceFunctionParametersKey;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.sfc.attributes.PortPairs;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.sfc.attributes.port.pairs.PortPair;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.sfc.rev160511.sfc.attributes.port.pairs.PortPairBuilder;
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24
25 import java.util.ArrayList;
26 import java.util.HashMap;
27 import java.util.List;
28
29 /**
30  * Created by Anil Vishnoi (avishnoi@Brocade.com)
31  */
32 public class NeutronSFCPortPairInterface
33         extends AbstractNeutronInterface<PortPair, PortPairs, NeutronSFCPortPair>
34         implements INeutronSFCPortPairCRUD {
35
36     private static final Logger LOGGER = LoggerFactory.getLogger(NeutronSFCPortPairInterface.class);
37
38     NeutronSFCPortPairInterface(DataBroker db) {
39         super(db);
40     }
41
42     @Override
43     protected InstanceIdentifier<PortPair> createInstanceIdentifier(PortPair portPair) {
44         return InstanceIdentifier.create(Neutron.class).child(PortPairs.class)
45                 .child(PortPair.class, portPair.getKey());
46     }
47
48     @Override
49     protected InstanceIdentifier<PortPairs> createInstanceIdentifier() {
50         return InstanceIdentifier.create(Neutron.class).child(PortPairs.class);
51     }
52
53     @Override
54     protected PortPair toMd(NeutronSFCPortPair neutronPortPair) {
55
56         LOGGER.trace("toMd: REST SFC Port Pair data : {}", neutronPortPair);
57
58         PortPairBuilder result = new PortPairBuilder();
59         result.setUuid(new Uuid(neutronPortPair.getID()));
60         result.setName(neutronPortPair.getName());
61         result.setTenantId(toUuid(neutronPortPair.getTenantID()));
62         if (neutronPortPair.getIngressPortUUID() != null ) {
63             result.setIngress(new Uuid(neutronPortPair.getIngressPortUUID()));
64         }
65         if (neutronPortPair.getEgressPortUUID() != null) {
66             result.setEgress(new Uuid(neutronPortPair.getEgressPortUUID()));
67         }
68         if (neutronPortPair.getServiceFunctionParameters()!= null) {
69             List<ServiceFunctionParameters> serviceFunctionParams = new ArrayList<>();
70             for(String paramKey : neutronPortPair.getServiceFunctionParameters().keySet()) {
71                 ServiceFunctionParametersBuilder param = new ServiceFunctionParametersBuilder();
72                 param.setKey(new ServiceFunctionParametersKey(paramKey));
73                 param.setServiceFunctionParameter(paramKey);
74                 param.setServiceFunctionParameterValue(neutronPortPair.getServiceFunctionParameters().get(paramKey));
75                 serviceFunctionParams.add(param.build());
76             }
77             result.setServiceFunctionParameters(serviceFunctionParams);
78         }
79         LOGGER.trace("toMd: Yang SFC Port Pair data : {}", result);
80         return result.build();
81     }
82
83     @Override
84     protected PortPair toMd(String uuid) {
85         final PortPairBuilder portPairBuilder = new PortPairBuilder();
86         portPairBuilder.setUuid(toUuid(uuid));
87         return portPairBuilder.build();
88     }
89
90     @Override
91     protected NeutronSFCPortPair fromMd(PortPair mdPortPair) {
92         LOGGER.trace("fromMd: Yang SFC Port Pair data : {}", mdPortPair);
93         NeutronSFCPortPair result = new NeutronSFCPortPair();
94         result.setID(mdPortPair.getUuid().getValue());
95         result.setName(mdPortPair.getName());
96         result.setTenantID(mdPortPair.getTenantId());
97         if (mdPortPair.getIngress() !=null) {
98             result.setIngressPortUUID(mdPortPair.getIngress().getValue());
99         }
100         if (mdPortPair.getEgress() != null) {
101             result.setEgressPortUUID(mdPortPair.getEgress().getValue());
102         }
103         if (mdPortPair.getServiceFunctionParameters()!= null) {
104             HashMap<String, String> serviceFunctionParam = new HashMap<>();
105             for(ServiceFunctionParameters param : mdPortPair.getServiceFunctionParameters()) {
106                 serviceFunctionParam.put(param.getServiceFunctionParameter(),param.getServiceFunctionParameterValue());
107             }
108             result.setServiceFunctionParameters(serviceFunctionParam);
109         }
110         LOGGER.trace("fromMd: REST SFC Port Pair data : {}", result);
111         return result;
112     }
113
114     @Override
115     protected List<PortPair> getDataObjectList(PortPairs dataObjects) {
116         return dataObjects.getPortPair();
117     }
118
119 }