2 * Copyright (C) 2014 Red Hat, Inc.
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
10 package org.opendaylight.controller.networkconfig.neutron;
12 import org.opendaylight.controller.configuration.ConfigurationObject;
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.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
24 * OpenStack Neutron v2.0 Security Group bindings.
25 * See OpenStack Network API v2.0 Reference for description of
26 * annotated attributes. The current fields are as follows:
28 * id uuid-str unique ID for the security group.
29 * name String name of the security group.
30 * description String name of the security group.
31 * tenant_id uuid-str Owner of security rule..
32 * security_group_rules List<NeutronSecurityRule> nested RO in the sec group.
36 @XmlAccessorType(XmlAccessType.NONE)
38 public class NeutronSecurityGroup extends ConfigurationObject implements Serializable {
39 private static final long serialVersionUID = 1L;
41 @XmlElement(name = "id")
42 String securityGroupUUID;
44 @XmlElement(name = "name")
45 String securityGroupName;
47 @XmlElement(name = "description")
48 String securityGroupDescription;
50 @XmlElement(name = "tenant_id")
51 String securityGroupTenantID;
53 @XmlElement(name = "security_group_rules")
54 List<NeutronSecurityRule> neutronSecurityRule;
56 List<NeutronPort> neutronPorts;
58 public NeutronSecurityGroup() {
59 neutronPorts = new ArrayList<NeutronPort> ();
60 List<NeutronSecurityRule> securityRules;
64 public String getSecurityGroupUUID() {
65 return securityGroupUUID;
68 public void setSecurityGroupUUID(String securityGroupUUID) {
69 this.securityGroupUUID = securityGroupUUID;
72 public String getSecurityGroupName() {
73 return securityGroupName;
76 public void setSecurityGroupName(String securityGroupName) {
77 this.securityGroupName = securityGroupName;
80 public String getSecurityGroupDescription() {
81 return securityGroupDescription;
84 public void setSecurityGroupDescription(String securityGroupDescription) {
85 this.securityGroupDescription = securityGroupDescription;
88 public String getSecurityGroupTenantID() {
89 return securityGroupTenantID;
92 public void setSecurityGroupTenantID(String securityGroupTenantID) {
93 this.securityGroupTenantID = securityGroupTenantID;
97 public List<NeutronSecurityRule> getSecurityRules() {
98 return neutronSecurityRule;
101 public void setSecurityRules(NeutronSecurityRule neutronSecurityRule) {
102 this.neutronSecurityRule = (List<NeutronSecurityRule>) neutronSecurityRule;
105 public NeutronSecurityGroup extractFields(List<String> fields) {
106 NeutronSecurityGroup ans = new NeutronSecurityGroup ();
107 Iterator<String> i = fields.iterator ();
108 while (i.hasNext ()) {
109 String s = i.next ();
110 if (s.equals ("id")) {
111 ans.setSecurityGroupUUID (this.getSecurityGroupUUID ());
113 if (s.equals ("name")) {
114 ans.setSecurityGroupName (this.getSecurityGroupName ());
116 if (s.equals ("description")) {
117 ans.setSecurityGroupDescription (this.getSecurityGroupDescription ());
119 if (s.equals ("tenant_id")) {
120 ans.setSecurityGroupTenantID (this.getSecurityGroupTenantID ());
122 if (s.equals ("security_group_rules")) {
123 ans.setSecurityRules ((NeutronSecurityRule) this.getSecurityRules ());
130 public String toString() {
131 return "NeutronSecurityGroup{" +
132 "securityGroupUUID='" + securityGroupUUID + '\'' +
133 ", securityGroupName='" + securityGroupName + '\'' +
134 ", securityGroupDescription='" + securityGroupDescription + '\'' +
135 ", securityGroupTenantID='" + securityGroupTenantID + '\'' +
136 ", securityRules=" + neutronSecurityRule + "]";
139 public void initDefaults() {
140 //TODO verify no defaults values are nessecary required.