yang model revise: neutron-metering.yang
[neutron.git] / transcriber / src / main / java / org / opendaylight / neutron / transcriber / NeutronVPNServiceInterface.java
1 /*
2  * Copyright (c) 2015 Tata Consultancy Services 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
9 package org.opendaylight.neutron.transcriber;
10
11 import java.util.List;
12
13 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
14 import org.opendaylight.neutron.spi.INeutronVPNServiceCRUD;
15 import org.opendaylight.neutron.spi.NeutronVPNService;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.vpnservices.attributes.VpnServices;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.vpnservices.attributes.vpn.services.Vpnservice;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.vpnservices.attributes.vpn.services.VpnserviceBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
20 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
21 import org.osgi.framework.BundleContext;
22 import org.osgi.framework.ServiceRegistration;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 public class NeutronVPNServiceInterface extends AbstractNeutronInterface<Vpnservice, VpnServices, NeutronVPNService> implements INeutronVPNServiceCRUD {
27     private static final Logger LOGGER = LoggerFactory.getLogger(NeutronVPNServiceInterface.class);
28
29     NeutronVPNServiceInterface(ProviderContext providerContext) {
30         super(providerContext);
31     }
32
33     @Override
34     public boolean neutronVPNServiceExists(String uuid) {
35         return exists(uuid);
36     }
37
38     @Override
39     public NeutronVPNService getVPNService(String uuid) {
40         return get(uuid);
41     }
42
43     @Override
44     protected List<Vpnservice> getDataObjectList(VpnServices services) {
45         return services.getVpnservice();
46     }
47
48     @Override
49     public List<NeutronVPNService> getAllVPNService() {
50         return getAll();
51     }
52
53     @Override
54     public boolean addVPNService(NeutronVPNService input) {
55         return add(input);
56     }
57
58     @Override
59     public boolean removeVPNService(String uuid) {
60         return remove(uuid);
61     }
62
63     @Override
64     public boolean updateVPNService(String uuid, NeutronVPNService delta) {
65         return update(uuid, delta);
66     }
67
68     @Override
69     public boolean neutronVPNServiceInUse(String uuid) {
70         return !exists(uuid);
71     }
72
73     protected NeutronVPNService fromMd(Vpnservice vpnService) {
74         final NeutronVPNService answer = new NeutronVPNService();
75         if (vpnService.getName() != null) {
76             answer.setName(vpnService.getName());
77         }
78         if (vpnService.getTenantId() != null) {
79             answer.setTenantID(vpnService.getTenantId());
80         }
81         if (vpnService.getStatus() != null) {
82             answer.setStatus(vpnService.getStatus());
83         }
84         if (vpnService.getDescr() != null) {
85             answer.setDescription(vpnService.getDescr());
86         }
87         if (vpnService.getSubnetId() != null) {
88             answer.setSubnetUUID(vpnService.getSubnetId().getValue());
89         }
90         if (vpnService.getRouterId() != null) {
91             answer.setRouterUUID(vpnService.getRouterId().getValue());
92         }
93         answer.setAdminStateUp(vpnService.isAdminStateUp());
94         if (vpnService.getUuid() != null) {
95             answer.setID(vpnService.getUuid().getValue());
96         }
97         return answer;
98     }
99
100     @Override
101     protected Vpnservice toMd(NeutronVPNService vpnService) {
102         final VpnserviceBuilder vpnServiceBuilder = new VpnserviceBuilder();
103         if (vpnService.getName() != null) {
104             vpnServiceBuilder.setName(vpnService.getName());
105         }
106         if (vpnService.getTenantID() != null) {
107             vpnServiceBuilder.setTenantId(toUuid(vpnService.getTenantID()));
108         }
109         if (vpnService.getStatus() != null) {
110             vpnServiceBuilder.setStatus(vpnService.getStatus());
111         }
112         if (vpnService.getDescription() != null) {
113             vpnServiceBuilder.setDescr(vpnService.getDescription());
114         }
115         if (vpnService.getSubnetUUID() != null) {
116             vpnServiceBuilder.setSubnetId(toUuid(vpnService.getSubnetUUID()));
117         }
118         if (vpnService.getRouterUUID() != null) {
119             vpnServiceBuilder.setRouterId(toUuid(vpnService.getRouterUUID()));
120         }
121         vpnServiceBuilder.setAdminStateUp(vpnService.getAdminStateUp());
122         if (vpnService.getID() != null) {
123             vpnServiceBuilder.setUuid(toUuid(vpnService.getID()));
124         } else {
125             LOGGER.warn("Attempting to write neutron vpnService without UUID");
126         }
127         return vpnServiceBuilder.build();
128     }
129
130     @Override
131     protected InstanceIdentifier<Vpnservice> createInstanceIdentifier(Vpnservice vpnService) {
132         return InstanceIdentifier.create(Neutron.class)
133                  .child(VpnServices.class)
134                  .child(Vpnservice.class, vpnService.getKey());
135     }
136
137     @Override
138     protected InstanceIdentifier<VpnServices> createInstanceIdentifier() {
139         return InstanceIdentifier.create(Neutron.class)
140                  .child(VpnServices.class);
141     }
142
143     @Override
144     protected Vpnservice toMd(String uuid) {
145         final VpnserviceBuilder vpnServiceBuilder = new VpnserviceBuilder();
146         vpnServiceBuilder.setUuid(toUuid(uuid));
147         return vpnServiceBuilder.build();
148     }
149
150     public static void registerNewInterface(BundleContext context,
151                                             ProviderContext providerContext,
152                                             List<ServiceRegistration<?>> registrations) {
153         final NeutronVPNServiceInterface neutronVPNServiceInterface = new NeutronVPNServiceInterface(providerContext);
154         final ServiceRegistration<INeutronVPNServiceCRUD> neutronVPNServiceInterfaceRegistration = context.registerService(INeutronVPNServiceCRUD.class, neutronVPNServiceInterface, null);
155         if(neutronVPNServiceInterfaceRegistration != null) {
156             registrations.add(neutronVPNServiceInterfaceRegistration);
157         }
158     }
159 }