add blueprint wiring for neutron/transcriber
[neutron.git] / transcriber / src / main / java / org / opendaylight / neutron / transcriber / NeutronSecurityGroupInterface.java
1 /*
2  * Copyright (c) 2014, 2015 Red Hat, 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
9 package org.opendaylight.neutron.transcriber;
10
11 import java.util.List;
12
13 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
14 import org.opendaylight.neutron.spi.INeutronSecurityGroupCRUD;
15 import org.opendaylight.neutron.spi.NeutronSecurityGroup;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.groups.attributes.SecurityGroups;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.groups.attributes.security.groups.SecurityGroup;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.groups.attributes.security.groups.SecurityGroupBuilder;
20 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
21 import org.slf4j.Logger;
22 import org.slf4j.LoggerFactory;
23
24
25 public class NeutronSecurityGroupInterface extends AbstractNeutronInterface<SecurityGroup, SecurityGroups, NeutronSecurityGroup> implements INeutronSecurityGroupCRUD {
26     private static final Logger LOGGER = LoggerFactory.getLogger(NeutronSecurityGroupInterface.class);
27
28
29     NeutronSecurityGroupInterface(DataBroker db) {
30         super(db);
31     }
32
33     @Override
34     protected List<SecurityGroup> getDataObjectList(SecurityGroups groups) {
35         return groups.getSecurityGroup();
36     }
37
38     protected NeutronSecurityGroup fromMd(SecurityGroup group) {
39         final NeutronSecurityGroup answer = new NeutronSecurityGroup();
40         if (group.getName() != null) {
41             answer.setSecurityGroupName(group.getName());
42         }
43         if (group.getTenantId() != null) {
44             answer.setTenantID(group.getTenantId());
45         }
46         if (group.getUuid() != null) {
47             answer.setID(group.getUuid().getValue());
48         }
49         return answer;
50     }
51
52     @Override
53     protected SecurityGroup toMd(NeutronSecurityGroup securityGroup) {
54         final SecurityGroupBuilder securityGroupBuilder = new SecurityGroupBuilder();
55         if (securityGroup.getSecurityGroupName() != null) {
56             securityGroupBuilder.setName(securityGroup.getSecurityGroupName());
57         }
58         if (securityGroup.getTenantID() != null) {
59             securityGroupBuilder.setTenantId(toUuid(securityGroup.getTenantID()));
60         }
61         if (securityGroup.getID() != null) {
62             securityGroupBuilder.setUuid(toUuid(securityGroup.getID()));
63         } else {
64             LOGGER.warn("Attempting to write neutron securityGroup without UUID");
65         }
66
67         return securityGroupBuilder.build();
68     }
69
70     @Override
71     protected InstanceIdentifier<SecurityGroup> createInstanceIdentifier(SecurityGroup securityGroup) {
72         return InstanceIdentifier.create(Neutron.class)
73             .child(SecurityGroups.class).child(SecurityGroup.class,
74                                                securityGroup.getKey());
75     }
76
77     @Override
78     protected InstanceIdentifier<SecurityGroups> createInstanceIdentifier() {
79         return InstanceIdentifier.create(Neutron.class)
80             .child(SecurityGroups.class);
81     }
82
83     @Override
84     protected SecurityGroup toMd(String uuid) {
85         final SecurityGroupBuilder securityGroupBuilder = new SecurityGroupBuilder();
86         securityGroupBuilder.setUuid(toUuid(uuid));
87         return securityGroupBuilder.build();
88     }
89 }