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