From 253ce4ecbe3d4a2f427f164688be2ebb16fef3d4 Mon Sep 17 00:00:00 2001 From: meirlaker Date: Thu, 21 Aug 2014 17:23:50 -0400 Subject: [PATCH 1/2] Fix FlavorsResource.showMetadata() 404 Error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: FlavorsResource.showMetadata() results in a 404 error because it is issuing an API call that does not exist since Flavors do not have metadata. Instead, they have “extra-specs”, key-value pairs that the Nova scheduler uses to launch Servers on Hosts that can supply the capabilities described by the flavor's extra-specs. Solution: Replace showMetaData() with showExtraSpecs(), use the correct “os-extra_specs” extended API path and add a new ExtraSpecs class to deserialize the API response to a Map. --- .../openstack/nova/api/FlavorsResource.java | 12 +++++----- .../openstack/nova/model/ExtraSpecs.java | 22 +++++++++++++++++++ pom.xml | 2 +- 3 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 nova-model/src/main/java/com/woorea/openstack/nova/model/ExtraSpecs.java diff --git a/nova-client/src/main/java/com/woorea/openstack/nova/api/FlavorsResource.java b/nova-client/src/main/java/com/woorea/openstack/nova/api/FlavorsResource.java index c3e2256e0..521eb3a72 100644 --- a/nova-client/src/main/java/com/woorea/openstack/nova/api/FlavorsResource.java +++ b/nova-client/src/main/java/com/woorea/openstack/nova/api/FlavorsResource.java @@ -7,7 +7,7 @@ import com.woorea.openstack.base.client.OpenStackRequest; import com.woorea.openstack.nova.model.Flavor; import com.woorea.openstack.nova.model.Flavors; -import com.woorea.openstack.nova.model.Metadata; +import com.woorea.openstack.nova.model.ExtraSpecs; public class FlavorsResource { @@ -29,8 +29,8 @@ public Show show(String id) { return new Show(id); } - public ShowMetadata showMetadata(String id) { - return new ShowMetadata(id); + public ShowExtraSpecs showExtraSpecs(String id) { + return new ShowExtraSpecs(id); } @@ -65,10 +65,10 @@ public Show(String id) { } - public class ShowMetadata extends OpenStackRequest { + public class ShowExtraSpecs extends OpenStackRequest { - public ShowMetadata(String id) { - super(CLIENT, HttpMethod.GET, new StringBuilder("/flavors/").append(id).append("/metadata").toString(), null, Metadata.class); + public ShowExtraSpecs(String id) { + super(CLIENT, HttpMethod.GET, new StringBuilder("/flavors/").append(id).append("/os-extra_specs").toString(), null, ExtraSpecs.class); } } diff --git a/nova-model/src/main/java/com/woorea/openstack/nova/model/ExtraSpecs.java b/nova-model/src/main/java/com/woorea/openstack/nova/model/ExtraSpecs.java new file mode 100644 index 000000000..168062221 --- /dev/null +++ b/nova-model/src/main/java/com/woorea/openstack/nova/model/ExtraSpecs.java @@ -0,0 +1,22 @@ +package com.woorea.openstack.nova.model; + +import java.util.HashMap; +import java.util.Map; + +import org.codehaus.jackson.annotate.JsonCreator; +import org.codehaus.jackson.map.annotate.JsonRootName; + +@JsonRootName("extra_specs") +public class ExtraSpecs extends HashMap { + + @JsonCreator + public ExtraSpecs(Map extraSpecs) { + super(extraSpecs); + } + + @Override + public String toString() { + return "ExtraSpecs [Map entries=" + super.toString() + "]"; + } + +} diff --git a/pom.xml b/pom.xml index 9e02cbe39..c36b5966e 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ OpenStack Java SDK - false + true From ffe08addbbc7312c0b1bce4943d9bac491940fa2 Mon Sep 17 00:00:00 2001 From: meirlaker Date: Thu, 21 Aug 2014 17:36:40 -0400 Subject: [PATCH 2/2] Revert accidental previous commit of pom file Revert accidental previous commit of pom file where I had set skip.sign=true --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index c36b5966e..154b33852 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ OpenStack Java SDK - true + false @@ -145,4 +145,4 @@ - \ No newline at end of file +