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