2 * Copyright (c) 2015 Tata Consultancy Services 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.neutron.transcriber;
11 import java.util.List;
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;
26 public class NeutronVPNServiceInterface extends AbstractNeutronInterface<Vpnservice, VpnServices, NeutronVPNService> implements INeutronVPNServiceCRUD {
27 private static final Logger LOGGER = LoggerFactory.getLogger(NeutronVPNServiceInterface.class);
29 NeutronVPNServiceInterface(ProviderContext providerContext) {
30 super(providerContext);
34 public boolean neutronVPNServiceExists(String uuid) {
39 public NeutronVPNService getVPNService(String uuid) {
44 protected List<Vpnservice> getDataObjectList(VpnServices services) {
45 return services.getVpnservice();
49 public List<NeutronVPNService> getAllVPNService() {
54 public boolean addVPNService(NeutronVPNService input) {
59 public boolean removeVPNService(String uuid) {
64 public boolean updateVPNService(String uuid, NeutronVPNService delta) {
65 return update(uuid, delta);
69 public boolean neutronVPNServiceInUse(String uuid) {
73 protected NeutronVPNService fromMd(Vpnservice vpnService) {
74 final NeutronVPNService answer = new NeutronVPNService();
75 if (vpnService.getName() != null) {
76 answer.setName(vpnService.getName());
78 if (vpnService.getTenantId() != null) {
79 answer.setTenantID(vpnService.getTenantId());
81 if (vpnService.getStatus() != null) {
82 answer.setStatus(vpnService.getStatus());
84 if (vpnService.getDescr() != null) {
85 answer.setDescription(vpnService.getDescr());
87 if (vpnService.getSubnetId() != null) {
88 answer.setSubnetUUID(vpnService.getSubnetId().getValue());
90 if (vpnService.getRouterId() != null) {
91 answer.setRouterUUID(vpnService.getRouterId().getValue());
93 answer.setAdminStateUp(vpnService.isAdminStateUp());
94 if (vpnService.getUuid() != null) {
95 answer.setID(vpnService.getUuid().getValue());
101 protected Vpnservice toMd(NeutronVPNService vpnService) {
102 final VpnserviceBuilder vpnServiceBuilder = new VpnserviceBuilder();
103 if (vpnService.getName() != null) {
104 vpnServiceBuilder.setName(vpnService.getName());
106 if (vpnService.getTenantID() != null) {
107 vpnServiceBuilder.setTenantId(toUuid(vpnService.getTenantID()));
109 if (vpnService.getStatus() != null) {
110 vpnServiceBuilder.setStatus(vpnService.getStatus());
112 if (vpnService.getDescription() != null) {
113 vpnServiceBuilder.setDescr(vpnService.getDescription());
115 if (vpnService.getSubnetUUID() != null) {
116 vpnServiceBuilder.setSubnetId(toUuid(vpnService.getSubnetUUID()));
118 if (vpnService.getRouterUUID() != null) {
119 vpnServiceBuilder.setRouterId(toUuid(vpnService.getRouterUUID()));
121 vpnServiceBuilder.setAdminStateUp(vpnService.getAdminStateUp());
122 if (vpnService.getID() != null) {
123 vpnServiceBuilder.setUuid(toUuid(vpnService.getID()));
125 LOGGER.warn("Attempting to write neutron vpnService without UUID");
127 return vpnServiceBuilder.build();
131 protected InstanceIdentifier<Vpnservice> createInstanceIdentifier(Vpnservice vpnService) {
132 return InstanceIdentifier.create(Neutron.class)
133 .child(VpnServices.class)
134 .child(Vpnservice.class, vpnService.getKey());
138 protected InstanceIdentifier<VpnServices> createInstanceIdentifier() {
139 return InstanceIdentifier.create(Neutron.class)
140 .child(VpnServices.class);
144 protected Vpnservice toMd(String uuid) {
145 final VpnserviceBuilder vpnServiceBuilder = new VpnserviceBuilder();
146 vpnServiceBuilder.setUuid(toUuid(uuid));
147 return vpnServiceBuilder.build();
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);