Merge branch 'topic/master/neutron-yang-migration' to branch 'master'
[netvirt.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / translator / NeutronSecurityRule.java
1 /*
2  * Copyright (C) 2014 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.ovsdb.openstack.netvirt.translator;
10
11 import javax.xml.bind.annotation.XmlAccessType;
12 import javax.xml.bind.annotation.XmlAccessorType;
13 import javax.xml.bind.annotation.XmlElement;
14 import javax.xml.bind.annotation.XmlRootElement;
15 import java.io.Serializable;
16 import java.util.Iterator;
17 import java.util.List;
18
19 /**
20  * See OpenStack Network API v2.0 Reference for description of
21  * annotated attributes. The current fields are as follows:
22  * <p>
23  * id                uuid (String) UUID for the security group rule.
24  * security_rule_id  uuid (String) The security group to associate rule.
25  * direction         String Direction the VM traffic  (ingress/egress).
26  * security_group_id The security group to associate rule with.
27  * protocol          String IP Protocol (icmp, tcp, udp, etc).
28  * port_range_min    Integer Port at start of range
29  * port_range_max    Integer Port at end of range
30  * ethertype         String ethertype in L2 packet (IPv4, IPv6, etc)
31  * remote_ip_prefix  String (IP cidr) CIDR for address range.
32  * remote_group_id   uuid-str Source security group to apply to rule.
33  * tenant_id         uuid-str Owner of security rule. Admin only outside tenant.
34  */
35
36 @XmlRootElement
37 @XmlAccessorType(XmlAccessType.NONE)
38
39 public class NeutronSecurityRule implements Serializable, INeutronObject {
40     private static final long serialVersionUID = 1L;
41
42     @XmlElement(name = "id")
43     String securityRuleUUID;
44
45     @XmlElement(name = "direction")
46     String securityRuleDirection;
47
48     @XmlElement(name = "protocol")
49     String securityRuleProtocol;
50
51     @XmlElement(name = "port_range_min")
52     Integer securityRulePortMin;
53
54     @XmlElement(name = "port_range_max")
55     Integer securityRulePortMax;
56
57     @XmlElement(name = "ethertype")
58     String securityRuleEthertype;
59
60     @XmlElement(name = "remote_ip_prefix")
61     String securityRuleRemoteIpPrefix;
62
63     @XmlElement(name = "remote_group_id")
64     String securityRemoteGroupID;
65
66     @XmlElement(name = "security_group_id")
67     String securityRuleGroupID;
68
69     @XmlElement(name = "tenant_id")
70     String securityRuleTenantID;
71
72     public NeutronSecurityRule() {
73     }
74
75     public String getID() {
76         return securityRuleUUID;
77     }
78
79     public void setID(String id) {
80         securityRuleUUID = id;
81     }
82
83     // @deprecated use getID()
84     public String getSecurityRuleUUID() {
85         return securityRuleUUID;
86     }
87
88     // @deprecated use setID()
89     public void setSecurityRuleUUID(String securityRuleUUID) {
90         this.securityRuleUUID = securityRuleUUID;
91     }
92
93     public String getSecurityRuleDirection() {
94         return securityRuleDirection;
95     }
96
97     public void setSecurityRuleDirection(String securityRuleDirection) {
98         this.securityRuleDirection = securityRuleDirection;
99     }
100
101     public String getSecurityRuleProtocol() {
102         return securityRuleProtocol;
103     }
104
105     public void setSecurityRuleProtocol(String securityRuleProtocol) {
106         this.securityRuleProtocol = securityRuleProtocol;
107     }
108
109     public Integer getSecurityRulePortMin() {
110         return securityRulePortMin;
111     }
112
113     public void setSecurityRulePortMin(Integer securityRulePortMin) {
114         this.securityRulePortMin = securityRulePortMin;
115     }
116
117     public Integer getSecurityRulePortMax() {
118         return securityRulePortMax;
119     }
120
121     public void setSecurityRulePortMax(Integer securityRulePortMax) {
122         this.securityRulePortMax = securityRulePortMax;
123     }
124
125     public String getSecurityRuleEthertype() {
126         return securityRuleEthertype;
127     }
128
129     public void setSecurityRuleEthertype(String securityRuleEthertype) {
130         this.securityRuleEthertype = securityRuleEthertype;
131     }
132
133     public String getSecurityRuleRemoteIpPrefix() {
134         return securityRuleRemoteIpPrefix;
135     }
136
137     public void setSecurityRuleRemoteIpPrefix(String securityRuleRemoteIpPrefix) {
138         this.securityRuleRemoteIpPrefix = securityRuleRemoteIpPrefix;
139     }
140
141     public String getSecurityRemoteGroupID() {
142         return securityRemoteGroupID;
143     }
144
145     public void setSecurityRemoteGroupID(String securityRemoteGroupID) {
146         this.securityRemoteGroupID = securityRemoteGroupID;
147     }
148
149     public String getSecurityRuleGroupID() {
150         return securityRuleGroupID;
151     }
152
153     public void setSecurityRuleGroupID(String securityRuleGroupID) {
154         this.securityRuleGroupID = securityRuleGroupID;
155     }
156
157     public String getSecurityRuleTenantID() {
158         return securityRuleTenantID;
159     }
160
161     public void setSecurityRuleTenantID(String securityRuleTenantID) {
162         this.securityRuleTenantID = securityRuleTenantID;
163     }
164
165     public NeutronSecurityRule extractFields(List<String> fields) {
166         NeutronSecurityRule ans = new NeutronSecurityRule();
167         Iterator<String> i = fields.iterator();
168         while (i.hasNext()) {
169             String s = i.next();
170             if (s.equals("id")) {
171                 ans.setID(this.getID());
172             }
173             if (s.equals("direction")) {
174                 ans.setSecurityRuleDirection(this.getSecurityRuleDirection());
175             }
176             if (s.equals("protocol")) {
177                 ans.setSecurityRuleProtocol(this.getSecurityRuleProtocol());
178             }
179             if (s.equals("port_range_min")) {
180                 ans.setSecurityRulePortMin(this.getSecurityRulePortMin());
181             }
182             if (s.equals("port_range_max")) {
183                 ans.setSecurityRulePortMax(this.getSecurityRulePortMax());
184             }
185             if (s.equals("ethertype")) {
186                 ans.setSecurityRuleEthertype(this.getSecurityRuleEthertype());
187             }
188             if (s.equals("remote_ip_prefix")) {
189                 ans.setSecurityRuleRemoteIpPrefix(this.getSecurityRuleRemoteIpPrefix());
190             }
191             if (s.equals("remote_group_id")) {
192                 ans.setSecurityRemoteGroupID(this.getSecurityRemoteGroupID());
193             }
194             if (s.equals("security_group_id")) {
195                 ans.setSecurityRuleGroupID(this.getSecurityRuleGroupID());
196             }
197             if (s.equals("tenant_id")) {
198                 ans.setSecurityRuleTenantID(this.getSecurityRuleTenantID());
199             }
200         }
201         return ans;
202     }
203
204     @Override
205     public String toString() {
206         return "NeutronSecurityRule{" +
207             "securityRuleUUID='" + securityRuleUUID + '\'' +
208             ", securityRuleDirection='" + securityRuleDirection + '\'' +
209             ", securityRuleProtocol='" + securityRuleProtocol + '\'' +
210             ", securityRulePortMin=" + securityRulePortMin +
211             ", securityRulePortMax=" + securityRulePortMax +
212             ", securityRuleEthertype='" + securityRuleEthertype + '\'' +
213             ", securityRuleRemoteIpPrefix='" + securityRuleRemoteIpPrefix + '\'' +
214             ", securityRemoteGroupID=" + securityRemoteGroupID +
215             ", securityRuleGroupID='" + securityRuleGroupID + '\'' +
216             ", securityRuleTenantID='" + securityRuleTenantID + '\'' +
217             '}';
218     }
219
220     public void initDefaults() {
221         //TODO verify no defaults values are nessecary required.
222     }
223 }