Skip to content

Commit 3183c69

Browse files
committed
sg
1 parent 263b9bc commit 3183c69

File tree

20 files changed

+461
-242
lines changed

20 files changed

+461
-242
lines changed

openstack-api/src/main/java/org/openstack/api/compute/ext/SecurityGroupRulesResource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import org.openstack.api.common.Resource;
88
import org.openstack.model.compute.SecurityGroupRule;
9-
import org.openstack.model.compute.nova.NovaCreateSecurityGroupRuleRequest;
9+
import org.openstack.model.compute.SecurityGroupRuleForCreate;
1010
import org.openstack.model.compute.nova.securitygroup.NovaSecurityGroupRule;
1111

1212
public class SecurityGroupRulesResource extends Resource {
@@ -15,7 +15,7 @@ public SecurityGroupRulesResource(Target target) {
1515
super(target);
1616
}
1717

18-
public SecurityGroupRule post(NovaCreateSecurityGroupRuleRequest rule) {
18+
public SecurityGroupRule post(SecurityGroupRuleForCreate rule) {
1919
// OSAPI bug: Can't specify an SSH key in XML?
2020
return target.request(MediaType.APPLICATION_JSON).post(Entity.entity(rule, MediaType.APPLICATION_JSON), NovaSecurityGroupRule.class);
2121
}

openstack-api/src/main/java/org/openstack/api/compute/ext/SecurityGroupsResource.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import org.openstack.api.common.Resource;
88
import org.openstack.model.compute.SecurityGroup;
9+
import org.openstack.model.compute.SecurityGroupForCreate;
910
import org.openstack.model.compute.SecurityGroupList;
1011
import org.openstack.model.compute.nova.securitygroup.NovaSecurityGroup;
1112
import org.openstack.model.compute.nova.securitygroup.NovaSecurityGroupList;
@@ -20,7 +21,7 @@ public SecurityGroupList get() {
2021
return target.request(MediaType.APPLICATION_JSON).get(NovaSecurityGroupList.class);
2122
}
2223

23-
public SecurityGroup post(SecurityGroup securityGroup) {
24+
public SecurityGroup post(SecurityGroupForCreate securityGroup) {
2425
return target.request(MediaType.APPLICATION_JSON).post(Entity.entity(securityGroup, MediaType.APPLICATION_JSON), NovaSecurityGroup.class);
2526

2627
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.openstack.model.compute;
2+
3+
public interface SecurityGroupForCreate {
4+
5+
String getName();
6+
7+
void setName(String name);
8+
9+
String getDescription();
10+
11+
void setDescription(String description);
12+
13+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.openstack.model.compute;
2+
3+
public interface SecurityGroupRuleForCreate {
4+
5+
Integer getParentGroupId();
6+
7+
void setParentGroupId(Integer parentGroupId);
8+
9+
Integer getFromPort();
10+
11+
void setFromPort(Integer fromPort);
12+
13+
Integer getToPort();
14+
15+
void setToPort(Integer toPort);
16+
17+
String getIpProtocol();
18+
19+
void setIpProtocol(String ipProtocol);
20+
21+
String getCidr();
22+
23+
void setCidr(String cidr);
24+
25+
Integer getGroupId();
26+
27+
void setGroupId(Integer groupId);
28+
29+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package org.openstack.model.compute.nova.securitygroup;
2+
3+
import java.io.Serializable;
4+
5+
import javax.xml.bind.annotation.XmlAccessType;
6+
import javax.xml.bind.annotation.XmlAccessorType;
7+
import javax.xml.bind.annotation.XmlAttribute;
8+
import javax.xml.bind.annotation.XmlRootElement;
9+
10+
import org.openstack.model.common.JsonRootElement;
11+
import org.openstack.model.compute.SecurityGroupForCreate;
12+
13+
@XmlRootElement(name = "security_group")
14+
@XmlAccessorType(XmlAccessType.NONE)
15+
@JsonRootElement("security_group")
16+
public class NovaSecurityGroupForCreate implements Serializable, SecurityGroupForCreate {
17+
18+
@XmlAttribute
19+
protected String name;
20+
21+
@XmlAttribute
22+
protected String description;
23+
24+
/* (non-Javadoc)
25+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupForCreate#getName()
26+
*/
27+
@Override
28+
public String getName() {
29+
return name;
30+
}
31+
32+
/* (non-Javadoc)
33+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupForCreate#setName(java.lang.String)
34+
*/
35+
@Override
36+
public void setName(String name) {
37+
this.name = name;
38+
}
39+
40+
/* (non-Javadoc)
41+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupForCreate#getDescription()
42+
*/
43+
@Override
44+
public String getDescription() {
45+
return description;
46+
}
47+
48+
/* (non-Javadoc)
49+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupForCreate#setDescription(java.lang.String)
50+
*/
51+
@Override
52+
public void setDescription(String description) {
53+
this.description = description;
54+
}
55+
56+
@Override
57+
public String toString() {
58+
return "NovaSecurityGroupForCreate [name=" + name + ", description=" + description + "]";
59+
}
60+
61+
}

openstack-api/src/main/java/org/openstack/model/compute/nova/NovaCreateSecurityGroupRuleRequest.java renamed to openstack-api/src/main/java/org/openstack/model/compute/nova/securitygroup/NovaSecurityGroupRuleForCreate.java

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.openstack.model.compute.nova;
1+
package org.openstack.model.compute.nova.securitygroup;
22

33
import java.io.Serializable;
44

@@ -8,13 +8,14 @@
88
import javax.xml.bind.annotation.XmlRootElement;
99

1010
import org.openstack.model.common.JsonRootElement;
11+
import org.openstack.model.compute.SecurityGroupRuleForCreate;
1112

1213
import com.google.gson.annotations.SerializedName;
1314

1415
@XmlRootElement(name = "security_group_rule")
1516
@XmlAccessorType(XmlAccessType.NONE)
1617
@JsonRootElement("security_group_rule")
17-
public class NovaCreateSecurityGroupRuleRequest implements Serializable {
18+
public class NovaSecurityGroupRuleForCreate implements Serializable, SecurityGroupRuleForCreate {
1819

1920
@XmlElement(name="parent_group_id", required=true)
2021
@SerializedName("parent_group_id")
@@ -39,50 +40,98 @@ public class NovaCreateSecurityGroupRuleRequest implements Serializable {
3940
@SerializedName("group_id")
4041
private Integer groupId;
4142

43+
/* (non-Javadoc)
44+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#getParentGroupId()
45+
*/
46+
@Override
4247
public Integer getParentGroupId() {
4348
return parentGroupId;
4449
}
4550

51+
/* (non-Javadoc)
52+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#setParentGroupId(java.lang.Integer)
53+
*/
54+
@Override
4655
public void setParentGroupId(Integer parentGroupId) {
4756
this.parentGroupId = parentGroupId;
4857
}
4958

59+
/* (non-Javadoc)
60+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#getFromPort()
61+
*/
62+
@Override
5063
public Integer getFromPort() {
5164
return fromPort;
5265
}
5366

67+
/* (non-Javadoc)
68+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#setFromPort(java.lang.Integer)
69+
*/
70+
@Override
5471
public void setFromPort(Integer fromPort) {
5572
this.fromPort = fromPort;
5673
}
5774

75+
/* (non-Javadoc)
76+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#getToPort()
77+
*/
78+
@Override
5879
public Integer getToPort() {
5980
return toPort;
6081
}
6182

83+
/* (non-Javadoc)
84+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#setToPort(java.lang.Integer)
85+
*/
86+
@Override
6287
public void setToPort(Integer toPort) {
6388
this.toPort = toPort;
6489
}
6590

91+
/* (non-Javadoc)
92+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#getIpProtocol()
93+
*/
94+
@Override
6695
public String getIpProtocol() {
6796
return ipProtocol;
6897
}
6998

99+
/* (non-Javadoc)
100+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#setIpProtocol(java.lang.String)
101+
*/
102+
@Override
70103
public void setIpProtocol(String ipProtocol) {
71104
this.ipProtocol = ipProtocol;
72105
}
73106

107+
/* (non-Javadoc)
108+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#getCidr()
109+
*/
110+
@Override
74111
public String getCidr() {
75112
return cidr;
76113
}
77114

115+
/* (non-Javadoc)
116+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#setCidr(java.lang.String)
117+
*/
118+
@Override
78119
public void setCidr(String cidr) {
79120
this.cidr = cidr;
80121
}
81122

123+
/* (non-Javadoc)
124+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#getGroupId()
125+
*/
126+
@Override
82127
public Integer getGroupId() {
83128
return groupId;
84129
}
85130

131+
/* (non-Javadoc)
132+
* @see org.openstack.model.compute.nova.securitygroup.SecurityGroupRuleForCreate#setGroupId(java.lang.Integer)
133+
*/
134+
@Override
86135
public void setGroupId(Integer groupId) {
87136
this.groupId = groupId;
88137
}

openstack-api/src/test/java/org/openstack/client/compute/ITSecurityGroups.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package org.openstack.client.compute;
22

3-
import javax.ws.rs.client.Entity;
43
import javax.ws.rs.client.InvocationException;
54

65
import org.openstack.model.compute.SecurityGroup;
7-
import org.openstack.model.compute.SecurityGroupList;
6+
import org.openstack.model.compute.SecurityGroupForCreate;
87
import org.openstack.model.compute.SecurityGroupRule;
9-
import org.openstack.model.compute.nova.NovaCreateSecurityGroupRuleRequest;
8+
import org.openstack.model.compute.SecurityGroupRuleForCreate;
9+
import org.openstack.model.compute.nova.securitygroup.NovaSecurityGroupForCreate;
10+
import org.openstack.model.compute.nova.securitygroup.NovaSecurityGroupRuleForCreate;
1011
import org.openstack.model.compute.nova.securitygroup.NovaSecurityGroup;
11-
import org.openstack.model.compute.nova.securitygroup.NovaSecurityGroupRule;
1212
import org.openstack.model.exceptions.OpenstackException;
13-
import org.openstack.model.exceptions.OpenstackNotFoundException;
1413
import org.testng.Assert;
1514
import org.testng.annotations.Test;
1615

@@ -36,7 +35,7 @@ public void testCreateAndDelete() throws OpenstackException {
3635
String groupName = random.randomAlphanumericString(1, 128).trim();
3736
String description = random.randomAlphanumericString(1, 255).trim();
3837

39-
NovaSecurityGroup createRequest = new NovaSecurityGroup();
38+
SecurityGroupForCreate createRequest = new NovaSecurityGroupForCreate();
4039
createRequest.setName(groupName);
4140
createRequest.setDescription(description);
4241

@@ -53,7 +52,7 @@ public void testCreateAndDelete() throws OpenstackException {
5352

5453
// Create a rule
5554
{
56-
NovaCreateSecurityGroupRuleRequest newRule = new NovaCreateSecurityGroupRuleRequest();
55+
NovaSecurityGroupRuleForCreate newRule = new NovaSecurityGroupRuleForCreate();
5756
newRule.setCidr("1.2.3.4/32");
5857
newRule.setFromPort(1234);
5958
newRule.setToPort(5678);
@@ -106,7 +105,7 @@ private void assertSecurityGroupEquals(SecurityGroup actual, SecurityGroup expec
106105
Assert.assertEquals(actual.getDescription(), expected.getDescription());
107106
}
108107

109-
private void assertSecurityGroupRuleEquals(NovaCreateSecurityGroupRuleRequest newRule, SecurityGroupRule rule) {
108+
private void assertSecurityGroupRuleEquals(SecurityGroupRuleForCreate newRule, SecurityGroupRule rule) {
110109
Assert.assertEquals(rule.getFromPort(), newRule.getFromPort());
111110
Assert.assertEquals(rule.getToPort(), newRule.getToPort());
112111
Assert.assertEquals(rule.getIpProtocol(), newRule.getIpProtocol());

openstack-console/src/main/java/org/openstack/console/commands/CreateSecurityGroupRule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import org.kohsuke.args4j.Argument;
66
import org.openstack.api.compute.TenantResource;
77
import org.openstack.model.compute.SecurityGroupRule;
8-
import org.openstack.model.compute.nova.NovaCreateSecurityGroupRuleRequest;
8+
import org.openstack.model.compute.nova.securitygroup.NovaSecurityGroupRuleForCreate;
99

1010
public class CreateSecurityGroupRule extends OpenstackCliCommandRunnerBase {
1111
@Argument(index = 0)
@@ -30,7 +30,7 @@ public CreateSecurityGroupRule() {
3030
public Object runCommand() throws Exception {
3131
TenantResource compute = getContext().getComputeClient();
3232

33-
NovaCreateSecurityGroupRuleRequest newRule = new NovaCreateSecurityGroupRuleRequest();
33+
NovaSecurityGroupRuleForCreate newRule = new NovaSecurityGroupRuleForCreate();
3434
newRule.setCidr(cidr);
3535
if (fromPort == null)
3636
fromPort = -1;

openstack-ui/src/main/java/org/openstack/ui/client/api/ComputeService.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
import org.openstack.model.compute.ImageList;
1111
import org.openstack.model.compute.KeyPairList;
1212
import org.openstack.model.compute.SecurityGroup;
13+
import org.openstack.model.compute.SecurityGroupForCreate;
1314
import org.openstack.model.compute.SecurityGroupList;
15+
import org.openstack.model.compute.SecurityGroupRule;
16+
import org.openstack.model.compute.SecurityGroupRuleForCreate;
1417
import org.openstack.model.compute.Server;
1518
import org.openstack.model.compute.ServerList;
1619
import org.openstack.model.compute.Snapshot;
@@ -87,10 +90,12 @@ public interface ComputeService extends RemoteService {
8790

8891
SecurityGroupList listSecurityGroups();
8992

90-
SecurityGroup createSecurityGroup(SecurityGroup securityGroup);
93+
SecurityGroup createSecurityGroup(SecurityGroupForCreate securityGroup);
9194

9295
void deleteSecurityGroup(Integer id);
9396

97+
SecurityGroupRule createSecurityGroupRule(SecurityGroupRuleForCreate securityGroupRule);
98+
9499
VolumeList listVolumes();
95100

96101
SnapshotList listSnapshots();

openstack-ui/src/main/java/org/openstack/ui/client/api/ComputeServiceAsync.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
import org.openstack.model.compute.ImageList;
1111
import org.openstack.model.compute.KeyPairList;
1212
import org.openstack.model.compute.SecurityGroup;
13+
import org.openstack.model.compute.SecurityGroupForCreate;
1314
import org.openstack.model.compute.SecurityGroupList;
15+
import org.openstack.model.compute.SecurityGroupRule;
16+
import org.openstack.model.compute.SecurityGroupRuleForCreate;
1417
import org.openstack.model.compute.Server;
1518
import org.openstack.model.compute.ServerList;
1619
import org.openstack.model.compute.Snapshot;
@@ -132,7 +135,10 @@ void createSnapshot(SnapshotForCreate snapshot,
132135
void deleteKeyPair(String name,
133136
AsyncCallback<Void> defaultAsyncCallback);
134137

135-
void createSecurityGroup(SecurityGroup securityGroup,
138+
void createSecurityGroup(SecurityGroupForCreate securityGroup,
136139
AsyncCallback<SecurityGroup> callback);
137140

141+
void createSecurityGroupRule(SecurityGroupRuleForCreate securityGroupRule,
142+
AsyncCallback<SecurityGroupRule> callback);
143+
138144
}

0 commit comments

Comments
 (0)