[ONOS-3793] Implements the Openstack Security Group REST call parser
Change-Id: Ie6665d4ebae26e363853db28fb2a535c55f1e2ec
diff --git a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackPort.java b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackPort.java
index b746b6c..f9a5916 100644
--- a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackPort.java
+++ b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackPort.java
@@ -15,13 +15,12 @@
*/
package org.onosproject.openstackswitching;
-import com.google.common.collect.Lists;
import org.onlab.packet.Ip4Address;
import org.onlab.packet.MacAddress;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -49,13 +48,13 @@
// <subnet id, ip address>
private HashMap<String, Ip4Address> fixedIps;
private String id;
- private List<String> securityGroups;
+ private Collection<String> securityGroups;
private String deviceId;
private OpenstackPort(PortStatus status, String name, boolean adminStateUp,
String networkId, String tenantId, String deviceOwner,
MacAddress macAddress, HashMap fixedIps, String id,
- List<String> securityGroups, String deviceId) {
+ Collection<String> securityGroups, String deviceId) {
this.status = status;
this.name = name;
@@ -158,7 +157,7 @@
*
* @return security group info
*/
- public List<String> securityGroups() {
+ public Collection<String> securityGroups() {
return securityGroups;
}
@@ -187,7 +186,7 @@
OpenstackPort op = new OpenstackPort(this.status, this.name, this.adminStateUp,
this.networkId, this.tenantId, this.deviceOwner, this.macAddress,
(HashMap) this.fixedIps.clone(), this.id,
- Collections.unmodifiableList(this.securityGroups), this.deviceId);
+ Collections.unmodifiableCollection(this.securityGroups), this.deviceId);
return op;
}
@@ -209,12 +208,11 @@
// list of hash map <subnet id, ip address>
private HashMap<String, Ip4Address> fixedIps;
private String id;
- private List<String> securityGroups;
+ private Collection<String> securityGroups;
private String deviceId;
Builder() {
fixedIps = new HashMap<>();
- securityGroups = Lists.newArrayList();
}
/**
@@ -328,12 +326,11 @@
/**
* Sets security group of the port.
*
- * @param securityGroup security group of the port
+ * @param securityGroupList security group list of the port
* @return Builder object
*/
- public Builder securityGroup(String securityGroup) {
- securityGroups.add(securityGroup);
-
+ public Builder securityGroup(Collection<String> securityGroupList) {
+ this.securityGroups = securityGroupList;
return this;
}
diff --git a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSubnet.java b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSubnet.java
index bc536e8..f832768 100644
--- a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSubnet.java
+++ b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSubnet.java
@@ -17,6 +17,8 @@
import org.onlab.packet.Ip4Address;
+import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -34,10 +36,11 @@
private String gatewayIp;
private String cidr;
private String id;
+ private Collection<String> securityGroups;
private OpenstackSubnet(String name, boolean enableHhcp, String networkId,
String tenantId, List<Ip4Address> dnsNameservers, String gatewayIp,
- String cidr, String id) {
+ String cidr, String id, Collection<String> securityGroups) {
this.name = name;
this.enableHhcp = enableHhcp;
this.networkId = checkNotNull(networkId);
@@ -46,6 +49,7 @@
this.gatewayIp = gatewayIp;
this.cidr = checkNotNull(cidr);
this.id = checkNotNull(id);
+ this.securityGroups = securityGroups;
}
/**
@@ -89,6 +93,10 @@
return id;
}
+ public Collection<String> securityGroups() {
+ return Collections.unmodifiableCollection(this.securityGroups);
+ }
+
/**
* OpenstackSubnet Builder class.
*
@@ -102,6 +110,7 @@
private String gatewayIp;
private String cidr;
private String id;
+ private Collection<String> securityGroups;
Builder() {}
@@ -153,9 +162,15 @@
return this;
}
+ public Builder securityGroups(Collection<String> securityGroups) {
+ this.securityGroups = securityGroups;
+
+ return this;
+ }
+
public OpenstackSubnet build() {
return new OpenstackSubnet(name, enableDhcp, networkId, tenantId,
- dnsNameservers, gatewayIp, cidr, id);
+ dnsNameservers, gatewayIp, cidr, id, securityGroups);
}
}
}