2 * Copyright (c) 2015 IBM Corporation 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.INeutronVPNIPSECPolicyCRUD;
15 import org.opendaylight.neutron.spi.NeutronVPNIPSECPolicy;
16 import org.opendaylight.neutron.spi.NeutronVPNLifetime;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.ipsecpolicy.attributes.LifetimeBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.ipsecpolicies.attributes.IpsecPolicies;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.ipsecpolicies.attributes.ipsec.policies.Ipsecpolicy;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.ipsecpolicies.attributes.ipsec.policies.IpsecpolicyBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
23 import org.osgi.framework.BundleContext;
24 import org.osgi.framework.ServiceRegistration;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
28 public class NeutronVPNIPSECPolicyInterface extends AbstractNeutronInterface<Ipsecpolicy, IpsecPolicies, NeutronVPNIPSECPolicy> implements INeutronVPNIPSECPolicyCRUD {
29 private static final Logger LOGGER = LoggerFactory.getLogger(NeutronVPNIPSECPolicyInterface.class);
31 NeutronVPNIPSECPolicyInterface(ProviderContext providerContext) {
32 super(providerContext);
35 // IfNBVPNIPSECPolicyCRUD methods
38 protected List<Ipsecpolicy> getDataObjectList(IpsecPolicies policies) {
39 return policies.getIpsecpolicy();
42 protected NeutronVPNIPSECPolicy fromMd(Ipsecpolicy ipsecPolicy) {
43 final NeutronVPNIPSECPolicy answer = new NeutronVPNIPSECPolicy();
44 if (ipsecPolicy.getName() != null) {
45 answer.setName(ipsecPolicy.getName());
47 if (ipsecPolicy.getTenantId() != null) {
48 answer.setTenantID(ipsecPolicy.getTenantId());
50 if (ipsecPolicy.getAuthAlgorithm() != null) {
51 answer.setAuthAlgorithm(ipsecPolicy.getAuthAlgorithm());
53 if (ipsecPolicy.getEncryptionAlgorithm() != null) {
54 answer.setEncryptionAlgorithm(ipsecPolicy.getEncryptionAlgorithm());
56 if (ipsecPolicy.getTransformProtocol() != null) {
57 answer.setTransformProtocol(ipsecPolicy.getTransformProtocol());
59 if (ipsecPolicy.getEncapsulationMode() != null) {
60 answer.setEncapsulationMode(ipsecPolicy.getEncapsulationMode());
62 if (ipsecPolicy.getPfs() != null) {
63 answer.setPerfectForwardSecrecy(ipsecPolicy.getPfs());
65 if (ipsecPolicy.getLifetime() !=null) {
66 final NeutronVPNLifetime vpnLifetime = new NeutronVPNLifetime();
67 vpnLifetime.setUnits(ipsecPolicy.getLifetime().getUnits());
68 vpnLifetime.setValue(ipsecPolicy.getLifetime().getValue());
69 answer.setLifetime(vpnLifetime);
71 if (ipsecPolicy.getUuid() != null) {
72 answer.setID(ipsecPolicy.getUuid().getValue());
78 protected Ipsecpolicy toMd(NeutronVPNIPSECPolicy ipsecPolicy) {
79 final IpsecpolicyBuilder ipsecPolicyBuilder = new IpsecpolicyBuilder();
80 if (ipsecPolicy.getName() != null) {
81 ipsecPolicyBuilder.setName(ipsecPolicy.getName());
83 if (ipsecPolicy.getTenantID() != null) {
84 ipsecPolicyBuilder.setTenantId(toUuid(ipsecPolicy.getTenantID()));
86 if (ipsecPolicy.getAuthAlgorithm() != null) {
87 ipsecPolicyBuilder.setAuthAlgorithm(ipsecPolicy.getAuthAlgorithm());
89 if (ipsecPolicy.getEncryptionAlgorithm() != null) {
90 ipsecPolicyBuilder.setEncryptionAlgorithm(ipsecPolicy.getEncryptionAlgorithm());
92 if (ipsecPolicy.getTransformProtocol() != null) {
93 ipsecPolicyBuilder.setTransformProtocol(ipsecPolicy.getTransformProtocol());
95 if (ipsecPolicy.getEncapsulationMode() != null) {
96 ipsecPolicyBuilder.setEncapsulationMode(ipsecPolicy.getEncapsulationMode());
98 if (ipsecPolicy.getPerfectForwardSecrecy() != null) {
99 ipsecPolicyBuilder.setPfs(ipsecPolicy.getPerfectForwardSecrecy());
101 if (ipsecPolicy.getLifetime() !=null) {
102 final NeutronVPNLifetime vpnLifetime = ipsecPolicy.getLifetime();
103 final LifetimeBuilder lifetimeBuilder = new LifetimeBuilder();
104 lifetimeBuilder.setUnits(vpnLifetime.getUnits());
105 lifetimeBuilder.setValue(vpnLifetime.getValue());
106 ipsecPolicyBuilder.setLifetime(lifetimeBuilder.build());
108 if (ipsecPolicy.getID() != null) {
109 ipsecPolicyBuilder.setUuid(toUuid(ipsecPolicy.getID()));
111 LOGGER.warn("Attempting to write neutron vpnIPSECPolicy without UUID");
113 return ipsecPolicyBuilder.build();
118 protected InstanceIdentifier<Ipsecpolicy> createInstanceIdentifier(Ipsecpolicy ipsecPolicy) {
119 return InstanceIdentifier.create(Neutron.class)
120 .child(IpsecPolicies.class)
121 .child(Ipsecpolicy.class, ipsecPolicy.getKey());
125 protected InstanceIdentifier<IpsecPolicies> createInstanceIdentifier() {
126 return InstanceIdentifier.create(Neutron.class)
127 .child(IpsecPolicies.class);
131 protected Ipsecpolicy toMd(String uuid) {
132 final IpsecpolicyBuilder ipsecPolicyBuilder = new IpsecpolicyBuilder();
133 ipsecPolicyBuilder.setUuid(toUuid(uuid));
134 return ipsecPolicyBuilder.build();
137 public static void registerNewInterface(BundleContext context,
138 ProviderContext providerContext,
139 List<ServiceRegistration<?>> registrations) {
140 final NeutronVPNIPSECPolicyInterface neutronVPNIPSECPolicyInterface = new NeutronVPNIPSECPolicyInterface(providerContext);
141 final ServiceRegistration<INeutronVPNIPSECPolicyCRUD> neutronVPNIPSECPolicyInterfaceRegistration = context.registerService(INeutronVPNIPSECPolicyCRUD.class, neutronVPNIPSECPolicyInterface, null);
142 if(neutronVPNIPSECPolicyInterfaceRegistration != null) {
143 registrations.add(neutronVPNIPSECPolicyInterfaceRegistration);