From b930314676d7be9410dbd546fd1d7c285203a1f8 Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Thu, 16 Jan 2014 17:30:33 -0800 Subject: [PATCH 1/9] Adding port field to the 'networks' field on server create --- .../woorea/openstack/nova/model/NetworkForCreate.java | 11 ++++++++++- .../woorea/openstack/nova/model/ServerForCreate.java | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/NetworkForCreate.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/NetworkForCreate.java index f5785393b..0f2860305 100644 --- a/nova-model/src/main/java/com/woorea/openstack/nova/model/NetworkForCreate.java +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/NetworkForCreate.java @@ -9,7 +9,9 @@ public class NetworkForCreate { private String id; @JsonProperty("fixed_ip") private String fixedIp; - + @JsonProperty("port") + private String port; + public String getId() { return id; } @@ -18,6 +20,10 @@ public String getFixedIp() { return fixedIp; } + public String getPort() { + return port; + } + public void setId(String id) { this.id = id; } @@ -26,4 +32,7 @@ public void setFixedIp(String fixedIp) { this.fixedIp = fixedIp; } + public void setPort(String port) { + this.port = port; + } } diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/ServerForCreate.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/ServerForCreate.java index 9f28a8113..376387eb5 100644 --- a/nova-model/src/main/java/com/woorea/openstack/nova/model/ServerForCreate.java +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/ServerForCreate.java @@ -316,10 +316,11 @@ public void setNetworks(List networks) { this.networks = networks; } - public void addNetworks(String id, String fixedIp) { + public void addNetworks(String id, String fixedIp, String port) { NetworkForCreate net = new NetworkForCreate(); net.setId(id); net.setFixedIp(fixedIp); + net.setPort(port); this.networks.add(net); } From 9212134ab22e48d11a4836f25fe14ff5dd82d20a Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Fri, 7 Mar 2014 14:08:13 -0800 Subject: [PATCH 2/9] Enhanced KeystoneTokenProvider to be used with tenantId as well --- .../keystone/utils/KeystoneTokenProvider.java | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/keystone-client/src/main/java/com/woorea/openstack/keystone/utils/KeystoneTokenProvider.java b/keystone-client/src/main/java/com/woorea/openstack/keystone/utils/KeystoneTokenProvider.java index fb5127abe..f2a61ff26 100644 --- a/keystone-client/src/main/java/com/woorea/openstack/keystone/utils/KeystoneTokenProvider.java +++ b/keystone-client/src/main/java/com/woorea/openstack/keystone/utils/KeystoneTokenProvider.java @@ -17,7 +17,8 @@ public class KeystoneTokenProvider { ConcurrentHashMap hashTenantAccess; - public KeystoneTokenProvider(String endpoint, String username, String password) { + public KeystoneTokenProvider(String endpoint, String username, + String password) { this.keystone = new Keystone(endpoint); this.username = username; this.password = password; @@ -27,14 +28,25 @@ public KeystoneTokenProvider(String endpoint, String username, String password) public Access getAccessByTenant(String tenantName) { Access access = hashTenantAccess.get(tenantName); if (access == null) { - access = keystone.tokens().authenticate(new UsernamePassword(username, password)) - .withTenantName(tenantName) - .execute(); + access = keystone.tokens() + .authenticate(new UsernamePassword(username, password)) + .withTenantName(tenantName).execute(); hashTenantAccess.put(tenantName, access); } return access; } + public Access getAccessByTenantId(String tenantId) { + Access access = hashTenantAccess.get(tenantId); + if (access == null) { + access = keystone.tokens() + .authenticate(new UsernamePassword(username, password)) + .withTenantId(tenantId).execute(); + hashTenantAccess.put(tenantId, access); + } + return access; + } + public void expireAccessByTenant(String tenantName) { hashTenantAccess.remove(tenantName); } @@ -47,10 +59,27 @@ public String getToken() { return keystoneTokenProvider.getAccessByTenant(tenantName) .getToken().getId(); } + @Override public void expireToken() { keystoneTokenProvider.expireAccessByTenant(tenantName); } }; } + + public OpenStackTokenProvider getProviderByTenantId(final String tenantId) { + final KeystoneTokenProvider keystoneTokenProvider = this; + return new OpenStackTokenProvider() { + @Override + public String getToken() { + return keystoneTokenProvider.getAccessByTenantId(tenantId) + .getToken().getId(); + } + + @Override + public void expireToken() { + keystoneTokenProvider.expireAccessByTenant(tenantId); + } + }; + } } From 1577a7104d3f77b3a9267598b4a79557d667d5fd Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Fri, 7 Mar 2014 18:19:34 -0800 Subject: [PATCH 3/9] Add the Attach Interfaces(os-interface) extension to ServerResource --- .../openstack/nova/api/ServersResource.java | 39 ++++++++++ .../woorea/openstack/nova/model/FixedIp.java | 42 +++++++++++ .../woorea/openstack/nova/model/FixedIps.java | 36 +++++++++ .../nova/model/InterfaceAttachment.java | 74 +++++++++++++++++++ .../model/InterfaceAttachmentForCreate.java | 29 ++++++++ .../nova/model/InterfaceAttachments.java | 36 +++++++++ 6 files changed, 256 insertions(+) create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIp.java create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIps.java create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachment.java create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachmentForCreate.java create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachments.java diff --git a/nova-client/src/main/java/com/woorea/openstack/nova/api/ServersResource.java b/nova-client/src/main/java/com/woorea/openstack/nova/api/ServersResource.java index 9ba01b68a..5e1e6522e 100644 --- a/nova-client/src/main/java/com/woorea/openstack/nova/api/ServersResource.java +++ b/nova-client/src/main/java/com/woorea/openstack/nova/api/ServersResource.java @@ -5,6 +5,9 @@ import com.woorea.openstack.base.client.HttpMethod; import com.woorea.openstack.base.client.OpenStackClient; import com.woorea.openstack.base.client.OpenStackRequest; +import com.woorea.openstack.nova.model.InterfaceAttachment; +import com.woorea.openstack.nova.model.InterfaceAttachmentForCreate; +import com.woorea.openstack.nova.model.InterfaceAttachments; import com.woorea.openstack.nova.model.Metadata; import com.woorea.openstack.nova.model.Server; import com.woorea.openstack.nova.model.Server.Addresses; @@ -481,5 +484,41 @@ public ShowVolumeAttachment showVolumeAttachment(String serverId, String volumeA return new ShowVolumeAttachment(serverId, volumeAttachmentId); } + public class ListInterfaceAttachments extends OpenStackRequest { + + public ListInterfaceAttachments(String serverId) { + super(CLIENT, HttpMethod.GET, new StringBuilder("/servers/").append(serverId).append("/os-interface"), null, InterfaceAttachments.class); + } + + } + + public class ShowInterfaceAttachment extends OpenStackRequest { + + public ShowInterfaceAttachment(String serverId, String interfaceAttachmentId) { + super(CLIENT, HttpMethod.GET, new StringBuilder("/servers/").append(serverId).append("/os-interface/").append(interfaceAttachmentId), null, InterfaceAttachment.class); + } + + } + + public class CreateInterfaceAttachment extends OpenStackRequest { + + public CreateInterfaceAttachment(String serverId, InterfaceAttachmentForCreate action) { + super(CLIENT, HttpMethod.POST, new StringBuilder("/servers/").append(serverId).append("/os-interface"), Entity.json(action), InterfaceAttachment.class); + } + + } + + public ListInterfaceAttachments listInterfaceAttachments(String serverId) { + return new ListInterfaceAttachments(serverId); + } + + public ShowInterfaceAttachment showInterfaceAttachment(String serverId, String interfaceAttachmentId) { + return new ShowInterfaceAttachment(serverId, interfaceAttachmentId); + } + + public CreateInterfaceAttachment createInterfaceAttachment(String serverId, InterfaceAttachmentForCreate interfaceAttachmentForCreate) { + return new CreateInterfaceAttachment(serverId, interfaceAttachmentForCreate); + } + } diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIp.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIp.java new file mode 100644 index 000000000..de97cfbe7 --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIp.java @@ -0,0 +1,42 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; + +import org.codehaus.jackson.annotate.JsonProperty; +import org.codehaus.jackson.map.annotate.JsonRootName; + +@JsonRootName("fixed_ip") +public class FixedIp implements Serializable { + + @JsonProperty("subnet_id") + private String subnetId; + + @JsonProperty("ip_address") + private String ipAddress; + + /** + * @return the subnetId + */ + public String getSubnetId() { + return subnetId; + } + + /** + * @return the ipAddress + */ + public String getIpAddress() { + return ipAddress; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "FixedIp [subnetId=" + subnetId + ", ipAddress=" + ipAddress + + "]"; + } + +} diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIps.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIps.java new file mode 100644 index 000000000..46f3a9d0d --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIps.java @@ -0,0 +1,36 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; +import java.util.Iterator; +import java.util.List; + +import org.codehaus.jackson.annotate.JsonProperty; + +public class FixedIps implements Iterable, Serializable { + + @JsonProperty("fixed_ips") + private List list; + + /** + * @return the list + */ + public List getList() { + return list; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "FixedIps [list=" + list + "]"; + } + + @Override + public Iterator iterator() { + return list.iterator(); + } + +} diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachment.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachment.java new file mode 100644 index 000000000..89f89d32c --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachment.java @@ -0,0 +1,74 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; +import java.util.List; + +import org.codehaus.jackson.annotate.JsonProperty; +import org.codehaus.jackson.map.annotate.JsonRootName; + +@JsonRootName("interfaceAttachment") +public class InterfaceAttachment implements Serializable { + + @JsonProperty("mac_addr") + private String macAddress; + + @JsonProperty("net_id") + private String networkId; + + @JsonProperty("port_id") + private String portId; + + @JsonProperty("port_state") + private String portState; + + @JsonProperty("fixed_ips") + private List fixedIps; + + /** + * @return the macAddress + */ + public String getMacAddress() { + return macAddress; + } + + /** + * @return the networkId + */ + public String getNetworkId() { + return networkId; + } + + /** + * @return the portId + */ + public String getPortId() { + return portId; + } + + /** + * @return the portState + */ + public String getPortState() { + return portState; + } + + /** + * @return the fixedIps + */ + public List getFixedIps() { + return fixedIps; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "InterfaceAttachment [macAddress=" + macAddress + ", networkId=" + + networkId + ", portId=" + portId + ", portState=" + portState + + ", fixedIps=" + fixedIps + "]"; + } + +} diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachmentForCreate.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachmentForCreate.java new file mode 100644 index 000000000..9fff51d90 --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachmentForCreate.java @@ -0,0 +1,29 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; + +import org.codehaus.jackson.annotate.JsonProperty; +import org.codehaus.jackson.map.annotate.JsonRootName; + +@JsonRootName("interfaceAttachment") +public class InterfaceAttachmentForCreate implements Serializable { + + @JsonProperty("port_id") + private String portId; + + /** + * @return the portId + */ + public String getPortId() { + return portId; + } + + /** + * @param portId + * the portId to set + */ + public void setPortId(String portId) { + this.portId = portId; + } + +} diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachments.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachments.java new file mode 100644 index 000000000..55d810e62 --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachments.java @@ -0,0 +1,36 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; +import java.util.Iterator; +import java.util.List; + +import org.codehaus.jackson.annotate.JsonProperty; + +public class InterfaceAttachments implements Iterable, + Serializable { + + @JsonProperty("interfaceAttachments") + private List list; + + /** + * @return the list + */ + public List getList() { + return list; + } + + @Override + public Iterator iterator() { + return list.iterator(); + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "InterfaceAttachments [list=" + list + "]"; + } +} \ No newline at end of file From 792f7e9bc10798262d70bac7f70ec3a045c74418 Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Mon, 10 Mar 2014 18:10:04 -0700 Subject: [PATCH 4/9] Rebased the changes, while manually merging the files --- .../main/java/com/woorea/openstack/quantum/model/Subnet.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/quantum-model/src/main/java/com/woorea/openstack/quantum/model/Subnet.java b/quantum-model/src/main/java/com/woorea/openstack/quantum/model/Subnet.java index 73015146b..2894e7bef 100644 --- a/quantum-model/src/main/java/com/woorea/openstack/quantum/model/Subnet.java +++ b/quantum-model/src/main/java/com/woorea/openstack/quantum/model/Subnet.java @@ -9,6 +9,8 @@ import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.annotate.JsonValue; import org.codehaus.jackson.map.annotate.JsonRootName; +import org.codehaus.jackson.map.annotate.JsonSerialize; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; @SuppressWarnings("serial") @JsonRootName("subnet") @@ -39,7 +41,8 @@ public class Subnet implements Serializable { private IpVersion ipversion; @JsonProperty("gateway_ip") - private String gw; + @JsonSerialize(include=Inclusion.NON_DEFAULT) + private String gw = ""; private String cidr; From 0fc4829abcf5f13c3050a27b4d47c0f3af3542e5 Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Thu, 16 Jan 2014 17:30:33 -0800 Subject: [PATCH 5/9] Adding port field to the 'networks' field on server create --- .../woorea/openstack/nova/model/NetworkForCreate.java | 11 ++++++++++- .../woorea/openstack/nova/model/ServerForCreate.java | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/NetworkForCreate.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/NetworkForCreate.java index f5785393b..0f2860305 100644 --- a/nova-model/src/main/java/com/woorea/openstack/nova/model/NetworkForCreate.java +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/NetworkForCreate.java @@ -9,7 +9,9 @@ public class NetworkForCreate { private String id; @JsonProperty("fixed_ip") private String fixedIp; - + @JsonProperty("port") + private String port; + public String getId() { return id; } @@ -18,6 +20,10 @@ public String getFixedIp() { return fixedIp; } + public String getPort() { + return port; + } + public void setId(String id) { this.id = id; } @@ -26,4 +32,7 @@ public void setFixedIp(String fixedIp) { this.fixedIp = fixedIp; } + public void setPort(String port) { + this.port = port; + } } diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/ServerForCreate.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/ServerForCreate.java index 9f28a8113..376387eb5 100644 --- a/nova-model/src/main/java/com/woorea/openstack/nova/model/ServerForCreate.java +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/ServerForCreate.java @@ -316,10 +316,11 @@ public void setNetworks(List networks) { this.networks = networks; } - public void addNetworks(String id, String fixedIp) { + public void addNetworks(String id, String fixedIp, String port) { NetworkForCreate net = new NetworkForCreate(); net.setId(id); net.setFixedIp(fixedIp); + net.setPort(port); this.networks.add(net); } From 155e419ce92d204f684fb6a14c5f735101b31ad3 Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Fri, 7 Mar 2014 14:08:13 -0800 Subject: [PATCH 6/9] Enhanced KeystoneTokenProvider to be used with tenantId as well --- .../keystone/utils/KeystoneTokenProvider.java | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/keystone-client/src/main/java/com/woorea/openstack/keystone/utils/KeystoneTokenProvider.java b/keystone-client/src/main/java/com/woorea/openstack/keystone/utils/KeystoneTokenProvider.java index fb5127abe..f2a61ff26 100644 --- a/keystone-client/src/main/java/com/woorea/openstack/keystone/utils/KeystoneTokenProvider.java +++ b/keystone-client/src/main/java/com/woorea/openstack/keystone/utils/KeystoneTokenProvider.java @@ -17,7 +17,8 @@ public class KeystoneTokenProvider { ConcurrentHashMap hashTenantAccess; - public KeystoneTokenProvider(String endpoint, String username, String password) { + public KeystoneTokenProvider(String endpoint, String username, + String password) { this.keystone = new Keystone(endpoint); this.username = username; this.password = password; @@ -27,14 +28,25 @@ public KeystoneTokenProvider(String endpoint, String username, String password) public Access getAccessByTenant(String tenantName) { Access access = hashTenantAccess.get(tenantName); if (access == null) { - access = keystone.tokens().authenticate(new UsernamePassword(username, password)) - .withTenantName(tenantName) - .execute(); + access = keystone.tokens() + .authenticate(new UsernamePassword(username, password)) + .withTenantName(tenantName).execute(); hashTenantAccess.put(tenantName, access); } return access; } + public Access getAccessByTenantId(String tenantId) { + Access access = hashTenantAccess.get(tenantId); + if (access == null) { + access = keystone.tokens() + .authenticate(new UsernamePassword(username, password)) + .withTenantId(tenantId).execute(); + hashTenantAccess.put(tenantId, access); + } + return access; + } + public void expireAccessByTenant(String tenantName) { hashTenantAccess.remove(tenantName); } @@ -47,10 +59,27 @@ public String getToken() { return keystoneTokenProvider.getAccessByTenant(tenantName) .getToken().getId(); } + @Override public void expireToken() { keystoneTokenProvider.expireAccessByTenant(tenantName); } }; } + + public OpenStackTokenProvider getProviderByTenantId(final String tenantId) { + final KeystoneTokenProvider keystoneTokenProvider = this; + return new OpenStackTokenProvider() { + @Override + public String getToken() { + return keystoneTokenProvider.getAccessByTenantId(tenantId) + .getToken().getId(); + } + + @Override + public void expireToken() { + keystoneTokenProvider.expireAccessByTenant(tenantId); + } + }; + } } From ef5f7d4d8ef8c96c267d57205756c54b35d9a9d8 Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Fri, 7 Mar 2014 18:19:34 -0800 Subject: [PATCH 7/9] Add the Attach Interfaces(os-interface) extension to ServerResource --- .../openstack/nova/api/ServersResource.java | 39 ++++++++++ .../woorea/openstack/nova/model/FixedIp.java | 42 +++++++++++ .../woorea/openstack/nova/model/FixedIps.java | 36 +++++++++ .../nova/model/InterfaceAttachment.java | 74 +++++++++++++++++++ .../model/InterfaceAttachmentForCreate.java | 29 ++++++++ .../nova/model/InterfaceAttachments.java | 36 +++++++++ 6 files changed, 256 insertions(+) create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIp.java create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIps.java create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachment.java create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachmentForCreate.java create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachments.java diff --git a/nova-client/src/main/java/com/woorea/openstack/nova/api/ServersResource.java b/nova-client/src/main/java/com/woorea/openstack/nova/api/ServersResource.java index ca48b6fc4..e77ac52f1 100644 --- a/nova-client/src/main/java/com/woorea/openstack/nova/api/ServersResource.java +++ b/nova-client/src/main/java/com/woorea/openstack/nova/api/ServersResource.java @@ -7,6 +7,9 @@ import com.woorea.openstack.base.client.HttpMethod; import com.woorea.openstack.base.client.OpenStackClient; import com.woorea.openstack.base.client.OpenStackRequest; +import com.woorea.openstack.nova.model.InterfaceAttachment; +import com.woorea.openstack.nova.model.InterfaceAttachmentForCreate; +import com.woorea.openstack.nova.model.InterfaceAttachments; import com.woorea.openstack.nova.model.Metadata; import com.woorea.openstack.nova.model.Server; import com.woorea.openstack.nova.model.Server.Addresses; @@ -537,5 +540,41 @@ public ShowVolumeAttachment showVolumeAttachment(String serverId, String volumeA return new ShowVolumeAttachment(serverId, volumeAttachmentId); } + public class ListInterfaceAttachments extends OpenStackRequest { + + public ListInterfaceAttachments(String serverId) { + super(CLIENT, HttpMethod.GET, new StringBuilder("/servers/").append(serverId).append("/os-interface"), null, InterfaceAttachments.class); + } + + } + + public class ShowInterfaceAttachment extends OpenStackRequest { + + public ShowInterfaceAttachment(String serverId, String interfaceAttachmentId) { + super(CLIENT, HttpMethod.GET, new StringBuilder("/servers/").append(serverId).append("/os-interface/").append(interfaceAttachmentId), null, InterfaceAttachment.class); + } + + } + + public class CreateInterfaceAttachment extends OpenStackRequest { + + public CreateInterfaceAttachment(String serverId, InterfaceAttachmentForCreate action) { + super(CLIENT, HttpMethod.POST, new StringBuilder("/servers/").append(serverId).append("/os-interface"), Entity.json(action), InterfaceAttachment.class); + } + + } + + public ListInterfaceAttachments listInterfaceAttachments(String serverId) { + return new ListInterfaceAttachments(serverId); + } + + public ShowInterfaceAttachment showInterfaceAttachment(String serverId, String interfaceAttachmentId) { + return new ShowInterfaceAttachment(serverId, interfaceAttachmentId); + } + + public CreateInterfaceAttachment createInterfaceAttachment(String serverId, InterfaceAttachmentForCreate interfaceAttachmentForCreate) { + return new CreateInterfaceAttachment(serverId, interfaceAttachmentForCreate); + } + } diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIp.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIp.java new file mode 100644 index 000000000..de97cfbe7 --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIp.java @@ -0,0 +1,42 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; + +import org.codehaus.jackson.annotate.JsonProperty; +import org.codehaus.jackson.map.annotate.JsonRootName; + +@JsonRootName("fixed_ip") +public class FixedIp implements Serializable { + + @JsonProperty("subnet_id") + private String subnetId; + + @JsonProperty("ip_address") + private String ipAddress; + + /** + * @return the subnetId + */ + public String getSubnetId() { + return subnetId; + } + + /** + * @return the ipAddress + */ + public String getIpAddress() { + return ipAddress; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "FixedIp [subnetId=" + subnetId + ", ipAddress=" + ipAddress + + "]"; + } + +} diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIps.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIps.java new file mode 100644 index 000000000..46f3a9d0d --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/FixedIps.java @@ -0,0 +1,36 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; +import java.util.Iterator; +import java.util.List; + +import org.codehaus.jackson.annotate.JsonProperty; + +public class FixedIps implements Iterable, Serializable { + + @JsonProperty("fixed_ips") + private List list; + + /** + * @return the list + */ + public List getList() { + return list; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "FixedIps [list=" + list + "]"; + } + + @Override + public Iterator iterator() { + return list.iterator(); + } + +} diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachment.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachment.java new file mode 100644 index 000000000..89f89d32c --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachment.java @@ -0,0 +1,74 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; +import java.util.List; + +import org.codehaus.jackson.annotate.JsonProperty; +import org.codehaus.jackson.map.annotate.JsonRootName; + +@JsonRootName("interfaceAttachment") +public class InterfaceAttachment implements Serializable { + + @JsonProperty("mac_addr") + private String macAddress; + + @JsonProperty("net_id") + private String networkId; + + @JsonProperty("port_id") + private String portId; + + @JsonProperty("port_state") + private String portState; + + @JsonProperty("fixed_ips") + private List fixedIps; + + /** + * @return the macAddress + */ + public String getMacAddress() { + return macAddress; + } + + /** + * @return the networkId + */ + public String getNetworkId() { + return networkId; + } + + /** + * @return the portId + */ + public String getPortId() { + return portId; + } + + /** + * @return the portState + */ + public String getPortState() { + return portState; + } + + /** + * @return the fixedIps + */ + public List getFixedIps() { + return fixedIps; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "InterfaceAttachment [macAddress=" + macAddress + ", networkId=" + + networkId + ", portId=" + portId + ", portState=" + portState + + ", fixedIps=" + fixedIps + "]"; + } + +} diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachmentForCreate.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachmentForCreate.java new file mode 100644 index 000000000..9fff51d90 --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachmentForCreate.java @@ -0,0 +1,29 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; + +import org.codehaus.jackson.annotate.JsonProperty; +import org.codehaus.jackson.map.annotate.JsonRootName; + +@JsonRootName("interfaceAttachment") +public class InterfaceAttachmentForCreate implements Serializable { + + @JsonProperty("port_id") + private String portId; + + /** + * @return the portId + */ + public String getPortId() { + return portId; + } + + /** + * @param portId + * the portId to set + */ + public void setPortId(String portId) { + this.portId = portId; + } + +} diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachments.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachments.java new file mode 100644 index 000000000..55d810e62 --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/InterfaceAttachments.java @@ -0,0 +1,36 @@ +package com.woorea.openstack.nova.model; + +import java.io.Serializable; +import java.util.Iterator; +import java.util.List; + +import org.codehaus.jackson.annotate.JsonProperty; + +public class InterfaceAttachments implements Iterable, + Serializable { + + @JsonProperty("interfaceAttachments") + private List list; + + /** + * @return the list + */ + public List getList() { + return list; + } + + @Override + public Iterator iterator() { + return list.iterator(); + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "InterfaceAttachments [list=" + list + "]"; + } +} \ No newline at end of file From 186f0be316387418cc41026c8d2c7d0e971df91e Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Mon, 10 Mar 2014 18:10:04 -0700 Subject: [PATCH 8/9] Rebased the changes, while manually merging the files --- .../main/java/com/woorea/openstack/quantum/model/Subnet.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/quantum-model/src/main/java/com/woorea/openstack/quantum/model/Subnet.java b/quantum-model/src/main/java/com/woorea/openstack/quantum/model/Subnet.java index 73015146b..2894e7bef 100644 --- a/quantum-model/src/main/java/com/woorea/openstack/quantum/model/Subnet.java +++ b/quantum-model/src/main/java/com/woorea/openstack/quantum/model/Subnet.java @@ -9,6 +9,8 @@ import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.annotate.JsonValue; import org.codehaus.jackson.map.annotate.JsonRootName; +import org.codehaus.jackson.map.annotate.JsonSerialize; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; @SuppressWarnings("serial") @JsonRootName("subnet") @@ -39,7 +41,8 @@ public class Subnet implements Serializable { private IpVersion ipversion; @JsonProperty("gateway_ip") - private String gw; + @JsonSerialize(include=Inclusion.NON_DEFAULT) + private String gw = ""; private String cidr; From ca70b7c5e16f2630a8b2b2f99599074e3205a0d4 Mon Sep 17 00:00:00 2001 From: Sidharth Surana Date: Sun, 16 Nov 2014 11:30:43 -0800 Subject: [PATCH 9/9] update the example project to use the same connector version --- openstack-examples/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openstack-examples/pom.xml b/openstack-examples/pom.xml index 30d401437..a5bd4fb6f 100644 --- a/openstack-examples/pom.xml +++ b/openstack-examples/pom.xml @@ -65,7 +65,7 @@ com.woorea jersey2-connector - 3.1.0-SNAPSHOT + 3.2.2-SNAPSHOT @@ -80,4 +80,4 @@ - \ No newline at end of file +