From 2e984294ac28c6f2ede290c38164c5d536ccaf4a Mon Sep 17 00:00:00 2001 From: ChrisC Date: Tue, 31 Jan 2017 13:57:24 +0100 Subject: Initial OpenECOMP MSO OpenStack SDK lib commit Change-Id: Ieaacb2b2c0dcc469669880e73f0cda9fa59a6c5a Signed-off-by: ChrisC --- ceilometer-client/pom.xml | 24 ++++++++ .../woorea/openstack/ceilometer/Ceilometer.java | 34 +++++++++++ .../ceilometer/QueriableCeilometerCommand.java | 58 ++++++++++++++++++ .../ceilometer/v2/api/MetersResource.java | 71 ++++++++++++++++++++++ .../ceilometer/v2/api/ResourcesResource.java | 45 ++++++++++++++ 5 files changed, 232 insertions(+) create mode 100644 ceilometer-client/pom.xml create mode 100644 ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/Ceilometer.java create mode 100644 ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/QueriableCeilometerCommand.java create mode 100644 ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/v2/api/MetersResource.java create mode 100644 ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/v2/api/ResourcesResource.java (limited to 'ceilometer-client') diff --git a/ceilometer-client/pom.xml b/ceilometer-client/pom.xml new file mode 100644 index 0000000..e3deb68 --- /dev/null +++ b/ceilometer-client/pom.xml @@ -0,0 +1,24 @@ + + 4.0.0 + + org.openecomp.mso.libs + openstack-java-sdk + 1.0.0-SNAPSHOT + + org.openecomp.mso.libs.openstack-java-sdk + ceilometer-client + OpenStack Ceilometer Client + OpenStack Ceilometer Client + + + org.openecomp.mso.libs.openstack-java-sdk + openstack-client + 1.0.0-SNAPSHOT + + + org.openecomp.mso.libs.openstack-java-sdk + ceilometer-model + 1.0.0-SNAPSHOT + + + diff --git a/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/Ceilometer.java b/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/Ceilometer.java new file mode 100644 index 0000000..05cda35 --- /dev/null +++ b/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/Ceilometer.java @@ -0,0 +1,34 @@ +package com.woorea.openstack.ceilometer; + + +import com.woorea.openstack.base.client.OpenStackClient; +import com.woorea.openstack.base.client.OpenStackClientConnector; +import com.woorea.openstack.ceilometer.v2.api.MetersResource; +import com.woorea.openstack.ceilometer.v2.api.ResourcesResource; + +public class Ceilometer extends OpenStackClient { + + private final MetersResource METERS; + + private final ResourcesResource RESOURCES; + + public Ceilometer(String endpoint, OpenStackClientConnector connector) { + super(endpoint, connector); + METERS = new MetersResource(this); + RESOURCES = new ResourcesResource(this); + } + + public Ceilometer(String endpoint) { + this(endpoint, null); + + } + + public ResourcesResource resources() { + return RESOURCES; + } + + public MetersResource meters() { + return METERS; + } + +} diff --git a/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/QueriableCeilometerCommand.java b/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/QueriableCeilometerCommand.java new file mode 100644 index 0000000..444c052 --- /dev/null +++ b/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/QueriableCeilometerCommand.java @@ -0,0 +1,58 @@ +package com.woorea.openstack.ceilometer; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import com.woorea.openstack.base.client.OpenStackRequest; + +public abstract class QueriableCeilometerCommand extends OpenStackRequest { + + protected List fields = new ArrayList(); + + protected List ops = new ArrayList(); + + protected List values = new ArrayList(); + + private T filter(String field, String op, Serializable value) { + fields.add(field); + ops.add(op); + values.add(value); + return (T) this; + } + + public T lt(String field, Serializable value) { + return filter(field, "lt", value); + } + + public T le(String field, Serializable value) { + return filter(field, "le", value); + } + + public T eq(String field, Serializable value) { + return filter(field, "eq", value); + } + + public T ne(String field, Serializable value) { + return filter(field, "ne", value); + } + + public T ge(String field, Serializable value) { + return filter(field, "ge", value); + } + + public T gt(String field, Serializable value) { + return filter(field, "gt", value); + } + + /* + public WebTarget query(WebTarget target) { + if(fields.size() > 0) { + target = target.queryParam("q.field", fields.toArray()); + target = target.queryParam("q.op", ops.toArray()); + target = target.queryParam("q.value", values.toArray()); + } + return target; + } + */ +} diff --git a/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/v2/api/MetersResource.java b/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/v2/api/MetersResource.java new file mode 100644 index 0000000..e44dbe6 --- /dev/null +++ b/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/v2/api/MetersResource.java @@ -0,0 +1,71 @@ +package com.woorea.openstack.ceilometer.v2.api; + + +import com.woorea.openstack.base.client.OpenStackClient; +import com.woorea.openstack.base.client.OpenStackRequest; +import com.woorea.openstack.ceilometer.QueriableCeilometerCommand; +import com.woorea.openstack.ceilometer.v2.model.Sample; + +public class MetersResource { + + private final OpenStackClient CLIENT; + + public MetersResource(OpenStackClient client) { + CLIENT = client; + } + + public List list() { + return new List(); + } + + public Show show() { + return new Show(); + } + + public Statistics statistics() { + return new Statistics(); + } + + public class List extends QueriableCeilometerCommand> { + public List() { + //return query(target.path("meters")).request(MediaType.APPLICATION_JSON).get(new GenericType>() {}); + } + } + + public class Show extends QueriableCeilometerCommand> { + + private String name; + + public Show name(String name) { + this.name = name; + return this; + } + + public Show() { +// if(name == null) { +// throw new UnsupportedOperationException("meter id is mandatory"); +// } +// return query(target.path("meters").path(name)).request(MediaType.APPLICATION_JSON).get(new GenericType>() {}); + } + + } + + public class Statistics extends QueriableCeilometerCommand> { + + private String name; + + public Statistics name(String name) { + this.name = name; + return this; + } + + public Statistics() { +// if(name == null) { +// throw new UnsupportedOperationException("meter id is mandatory"); +// } +// return query(target.path("meters").path(name).path("statistics")).request(MediaType.APPLICATION_JSON).get(new GenericType>(){}); + } + + } + +} diff --git a/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/v2/api/ResourcesResource.java b/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/v2/api/ResourcesResource.java new file mode 100644 index 0000000..9001687 --- /dev/null +++ b/ceilometer-client/src/main/java/com/woorea/openstack/ceilometer/v2/api/ResourcesResource.java @@ -0,0 +1,45 @@ +package com.woorea.openstack.ceilometer.v2.api; + +import java.util.List; + +import com.woorea.openstack.base.client.OpenStackClient; +import com.woorea.openstack.base.client.OpenStackRequest; +import com.woorea.openstack.ceilometer.QueriableCeilometerCommand; +import com.woorea.openstack.ceilometer.v2.model.Resource; + +public class ResourcesResource { + + private final OpenStackClient CLIENT; + + public ResourcesResource(OpenStackClient client) { + CLIENT = client; + } + + public class ResourceList extends QueriableCeilometerCommand> { + + public ResourceList() { + OpenStackRequest request = new OpenStackRequest(); + //return query(target.path("resources")).request(MediaType.APPLICATION_JSON).get(new GenericType>() {}); + } + + } + + public class ResourceShow extends OpenStackRequest { + + private String id; + + public ResourceShow id(String id) { + this.id = id; + return this; + } + + public ResourceShow(OpenStackClient client) { +// if(id == null) { +// throw new UnsupportedOperationException("resource id is mandatory"); +// } +// return target.path("resources").path(id).request(MediaType.APPLICATION_JSON).get(Resource.class); + } + + } + +} -- cgit 1.2.3-korg