Juan Hernandez has uploaded a new change for review. Change subject: [WIP] Glance test ......................................................................
[WIP] Glance test This has to be combined with disabling the restapi.war application, for example removing its reference from engine.ear/META-INF/application.xml. Change-Id: Ic2cab63bea2ec4dbe53263cc6cc9b21f86eb569a Signed-off-by: Juan Hernandez <[email protected]> --- M backend/manager/dependencies/pom.xml A backend/manager/dependencies/src/main/modules/javax/annotation/api/1.2/module.xml A backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-core-asl/1.9.8/module.xml A backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-jaxrs/1.9.8/module.xml A backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-mapper-asl/1.9.8/module.xml A backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-xc/1.9.8/module.xml A backend/manager/dependencies/src/main/modules/org/glassfish/hk2/main/module.xml A backend/manager/dependencies/src/main/modules/org/glassfish/jersey/main/module.xml A backend/manager/dependencies/src/main/modules/org/openstack/sdk/main/module.xml M backend/manager/modules/bll/pom.xml M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java M ear/src/main/resources/META-INF/MANIFEST.MF M pom.xml 13 files changed, 395 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/13205/1 diff --git a/backend/manager/dependencies/pom.xml b/backend/manager/dependencies/pom.xml index 12fdde3..eada815 100644 --- a/backend/manager/dependencies/pom.xml +++ b/backend/manager/dependencies/pom.xml @@ -15,7 +15,7 @@ <packaging>jar</packaging> <name>oVirt Engine dependencies</name> - + <!-- We need to put here all the dependencies corresponding to the .jar files that will be added to the modules archive: --> @@ -163,6 +163,114 @@ <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>${postgres.jdbc.version}</version> + </dependency> + + <!-- Components of the OpenStack SDK required by the backend: --> + <dependency> + <groupId>org.openstack</groupId> + <artifactId>glance-client</artifactId> + <version>2.0.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.openstack</groupId> + <artifactId>glance-model</artifactId> + <version>2.0.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.openstack</groupId> + <artifactId>openstack-client</artifactId> + <version>2.0.0-SNAPSHOT</version> + </dependency> + + <!-- The version of the OpenStack SDK that we use requires + JAX-RS 2.0 and Jersey 2.0: --> + <dependency> + <groupId>javax.ws.rs</groupId> + <artifactId>javax.ws.rs-api</artifactId> + <version>2.0-rc1</version> + </dependency> + + <dependency> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-common</artifactId> + <version>2.0-m13</version> + </dependency> + + <dependency> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-client</artifactId> + <version>2.0-m13</version> + </dependency> + + <dependency> + <groupId>org.glassfish.jersey.media</groupId> + <artifactId>jersey-media-json-jackson</artifactId> + <version>2.0-m13</version> + </dependency> + + <!-- HK2 is a dependency of Jersey: --> + <dependency> + <groupId>org.glassfish.hk2</groupId> + <artifactId>hk2-api</artifactId> + <version>2.1.64</version> + </dependency> + + <dependency> + <groupId>org.glassfish.hk2</groupId> + <artifactId>hk2-locator</artifactId> + <version>2.1.64</version> + </dependency> + + <dependency> + <groupId>org.glassfish.hk2</groupId> + <artifactId>hk2-utils</artifactId> + <version>2.1.64</version> + </dependency> + + <dependency> + <groupId>org.glassfish.hk2.external</groupId> + <artifactId>cglib</artifactId> + <version>2.1.64</version> + </dependency> + + <dependency> + <groupId>org.glassfish.hk2</groupId> + <artifactId>osgi-resource-locator</artifactId> + <version>1.0.1</version> + </dependency> + + <!-- Jersey needs version 2.0 of the JAX-RS specification: --> + <dependency> + <groupId>org.jboss.spec.javax.annotation</groupId> + <artifactId>jboss-annotations-api_1.2_spec</artifactId> + <version>1.0.0.Alpha1</version> + </dependency> + + <!-- Jersey needs Jackson 1.9.8: --> + <dependency> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-core-asl</artifactId> + <version>1.9.8</version> + </dependency> + + <dependency> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-mapper-asl</artifactId> + <version>1.9.8</version> + </dependency> + + <dependency> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-jaxrs</artifactId> + <version>1.9.8</version> + </dependency> + + <dependency> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-xc</artifactId> + <version>1.9.8</version> </dependency> </dependencies> @@ -321,6 +429,121 @@ <moduleName>org.postgresql</moduleName> </module> + <!-- Components of the OpenStack SDK required by the backend: --> + <module> + <groupId>org.openstack</groupId> + <artifactId>glance-client</artifactId> + <moduleName>org.openstack.sdk</moduleName> + </module> + + <module> + <groupId>org.openstack</groupId> + <artifactId>glance-model</artifactId> + <moduleName>org.openstack.sdk</moduleName> + </module> + + <module> + <groupId>org.openstack</groupId> + <artifactId>openstack-client</artifactId> + <moduleName>org.openstack.sdk</moduleName> + </module> + + <!-- Version 2.0 of the JAX-RS specification is required by Jersey, and + included in the same module (it should probably be in a separate + module, but this fails): --> + <module> + <groupId>javax.ws.rs</groupId> + <artifactId>javax.ws.rs-api</artifactId> + <moduleName>org.glassfish.jersey</moduleName> + </module> + + <!-- Jersey is a requirement of the OpenStack SDK: --> + <module> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-common</artifactId> + <moduleName>org.glassfish.jersey</moduleName> + </module> + + <module> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-client</artifactId> + <moduleName>org.glassfish.jersey</moduleName> + </module> + + <module> + <groupId>org.glassfish.jersey.media</groupId> + <artifactId>jersey-media-json-jackson</artifactId> + <moduleName>org.glassfish.jersey</moduleName> + </module> + + <!-- HK2 is a dependency of Jersey: --> + <module> + <groupId>org.glassfish.hk2</groupId> + <artifactId>hk2-api</artifactId> + <moduleName>org.glassfish.hk2</moduleName> + </module> + + <module> + <groupId>org.glassfish.hk2</groupId> + <artifactId>hk2-locator</artifactId> + <moduleName>org.glassfish.hk2</moduleName> + </module> + + <module> + <groupId>org.glassfish.hk2</groupId> + <artifactId>hk2-utils</artifactId> + <moduleName>org.glassfish.hk2</moduleName> + </module> + + <module> + <groupId>org.glassfish.hk2.external</groupId> + <artifactId>cglib</artifactId> + <moduleName>org.glassfish.hk2</moduleName> + </module> + + <module> + <groupId>org.glassfish.hk2</groupId> + <artifactId>osgi-resource-locator</artifactId> + <moduleName>org.glassfish.hk2</moduleName> + </module> + + <!-- Jersey requires version 1.2 of the specification: --> + <module> + <groupId>org.jboss.spec.javax.annotation</groupId> + <artifactId>jboss-annotations-api_1.2_spec</artifactId> + <moduleName>javax.annotation.api</moduleName> + <moduleSlot>1.2</moduleSlot> + </module> + + <!-- Jakcson 1.9.8 is required by Jersey: --> + <module> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-core-asl</artifactId> + <moduleName>org.codehaus.jackson.jackson-core-asl</moduleName> + <moduleSlot>1.9.8</moduleSlot> + </module> + + <module> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-mapper-asl</artifactId> + <moduleName>org.codehaus.jackson.jackson-mapper-asl</moduleName> + <moduleSlot>1.9.8</moduleSlot> + </module> + + <module> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-jaxrs</artifactId> + <moduleName>org.codehaus.jackson.jackson-jaxrs</moduleName> + <moduleSlot>1.9.8</moduleSlot> + </module> + + <module> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-xc</artifactId> + <moduleName>org.codehaus.jackson.jackson-xc</moduleName> + <moduleSlot>1.9.8</moduleSlot> + </module> + </modules> </configuration> </plugin> diff --git a/backend/manager/dependencies/src/main/modules/javax/annotation/api/1.2/module.xml b/backend/manager/dependencies/src/main/modules/javax/annotation/api/1.2/module.xml new file mode 100644 index 0000000..2ff251b --- /dev/null +++ b/backend/manager/dependencies/src/main/modules/javax/annotation/api/1.2/module.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- This module is needed because Jersey needs the javax.annotation.Priority + annotation which has been added in version 1.2 of the specification: --> + +<module xmlns="urn:jboss:module:1.1" name="javax.annotation.api" slot="1.2"> + <resources> + <resource-root path="jboss-annotations-api_1.2_spec.jar"/> + </resources> +</module> diff --git a/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-core-asl/1.9.8/module.xml b/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-core-asl/1.9.8/module.xml new file mode 100644 index 0000000..698f4ce --- /dev/null +++ b/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-core-asl/1.9.8/module.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- Jersey requires version 1.9.8: --> + +<module xmlns="urn:jboss:module:1.1" name="org.codehaus.jackson.jackson-core-asl" slot="1.9.8"> + <resources> + <resource-root path="jackson-core-asl.jar"/> + </resources> + + <dependencies> + <module name="javax.api"/> + </dependencies> + +</module> \ No newline at end of file diff --git a/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-jaxrs/1.9.8/module.xml b/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-jaxrs/1.9.8/module.xml new file mode 100644 index 0000000..bb0e5f6 --- /dev/null +++ b/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-jaxrs/1.9.8/module.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- Jersey requires version 1.9.8: --> + +<module xmlns="urn:jboss:module:1.1" name="org.codehaus.jackson.jackson-jaxrs" slot="1.9.8"> + <resources> + <resource-root path="jackson-jaxrs.jar"/> + </resources> + + <dependencies> + <module name="org.codehaus.jackson.jackson-core-asl" slot="1.9.8"/> + <module name="org.codehaus.jackson.jackson-mapper-asl" slot="1.9.8"/> + <module name="org.codehaus.jackson.jackson-xc" slot="1.9.8"/> + <module name="javax.api"/> + + <!-- We should create a module for version 1.2 of java.ws.rs.api, but that doesn't + appear to work, so we include that into the Jersey module and require it + instead: --> + <!-- + <module name="javax.ws.rs.api" slot="1.2"/> + --> + <module name="org.glassfish.jersey"/> + </dependencies> + +</module> \ No newline at end of file diff --git a/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-mapper-asl/1.9.8/module.xml b/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-mapper-asl/1.9.8/module.xml new file mode 100644 index 0000000..ddef924 --- /dev/null +++ b/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-mapper-asl/1.9.8/module.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- Jersey requires version 1.9.8: --> + +<module xmlns="urn:jboss:module:1.1" name="org.codehaus.jackson.jackson-mapper-asl" slot="1.9.8"> + <resources> + <resource-root path="jackson-mapper-asl.jar"/> + </resources> + + <dependencies> + <module name="org.codehaus.jackson.jackson-core-asl" slot="1.9.8"/> + <module name="org.joda.time"/> + <module name="javax.api"/> + </dependencies> + +</module> \ No newline at end of file diff --git a/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-xc/1.9.8/module.xml b/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-xc/1.9.8/module.xml new file mode 100644 index 0000000..1ae049f --- /dev/null +++ b/backend/manager/dependencies/src/main/modules/org/codehaus/jackson/jackson-xc/1.9.8/module.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- Jersey requires version 1.9.8: --> + +<module xmlns="urn:jboss:module:1.1" name="org.codehaus.jackson.jackson-xc" slot="1.9.8"> + <resources> + <resource-root path="jackson-xc.jar"/> + </resources> + + <dependencies> + <module name="javax.api"/> + <module name="javax.xml.bind.api"/> + <module name="org.codehaus.jackson.jackson-mapper-asl" slot="1.9.8"/> + <module name="org.codehaus.jackson.jackson-core-asl" slot="1.9.8"/> + </dependencies> + +</module> \ No newline at end of file diff --git a/backend/manager/dependencies/src/main/modules/org/glassfish/hk2/main/module.xml b/backend/manager/dependencies/src/main/modules/org/glassfish/hk2/main/module.xml new file mode 100644 index 0000000..5818354 --- /dev/null +++ b/backend/manager/dependencies/src/main/modules/org/glassfish/hk2/main/module.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<module xmlns="urn:jboss:module:1.1" name="org.glassfish.hk2"> + <resources> + <resource-root path="hk2-api.jar"/> + <resource-root path="hk2-locator.jar"/> + <resource-root path="hk2-utils.jar"/> + <resource-root path="cglib.jar"/> + <resource-root path="osgi-resource-locator.jar"/> + </resources> + + <dependencies> + <module name="javax.annotation.api" slot="1.2"/> + <module name="javax.inject.api"/> + <module name="javax.xml.bind.api"/> + </dependencies> + +</module> \ No newline at end of file diff --git a/backend/manager/dependencies/src/main/modules/org/glassfish/jersey/main/module.xml b/backend/manager/dependencies/src/main/modules/org/glassfish/jersey/main/module.xml new file mode 100644 index 0000000..868146e --- /dev/null +++ b/backend/manager/dependencies/src/main/modules/org/glassfish/jersey/main/module.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<module xmlns="urn:jboss:module:1.1" name="org.glassfish.jersey"> + <resources> + <resource-root path="javax.ws.rs-api.jar"/> + <resource-root path="jersey-client.jar"/> + <resource-root path="jersey-common.jar"/> + <resource-root path="jersey-media-json-jackson.jar"/> + </resources> + + <dependencies> + <module name="com.google.guava"/> + <module name="javax.annotation.api" slot="1.2"/> + <module name="javax.api"/> + <module name="javax.inject.api"/> + <module name="javax.xml.bind.api"/> + <module name="org.codehaus.jackson.jackson-jaxrs" slot="1.9.8"/> + <module name="org.glassfish.hk2"/> + </dependencies> + +</module> diff --git a/backend/manager/dependencies/src/main/modules/org/openstack/sdk/main/module.xml b/backend/manager/dependencies/src/main/modules/org/openstack/sdk/main/module.xml new file mode 100644 index 0000000..315721f --- /dev/null +++ b/backend/manager/dependencies/src/main/modules/org/openstack/sdk/main/module.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<module xmlns="urn:jboss:module:1.1" name="org.openstack.sdk"> + + <resources> + <resource-root path="glance-client.jar"/> + <resource-root path="glance-model.jar"/> + <resource-root path="openstack-client.jar"/> + </resources> + + <dependencies> + <module name="javax.api"/> + <module name="org.glassfish.jersey" services="import"/> + <module name="org.codehaus.jackson.jackson-core-asl" slot="1.9.8"/> + <module name="org.codehaus.jackson.jackson-mapper-asl" slot="1.9.8"/> + </dependencies> + +</module> \ No newline at end of file diff --git a/backend/manager/modules/bll/pom.xml b/backend/manager/modules/bll/pom.xml index f21118d..9ab11b3 100644 --- a/backend/manager/modules/bll/pom.xml +++ b/backend/manager/modules/bll/pom.xml @@ -111,6 +111,11 @@ <version>1.6</version> <scope>test</scope> </dependency> + + <dependency> + <groupId>org.openstack</groupId> + <artifactId>glance-client</artifactId> + </dependency> </dependencies> <build> diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java index 0afd470..d6dbe0b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java @@ -19,6 +19,10 @@ import org.apache.commons.collections.KeyValue; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.exception.ExceptionUtils; +import org.openstack.glance.GlanceClient; +import org.openstack.glance.api.ListImages; +import org.openstack.glance.model.Image; +import org.openstack.glance.model.Images; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.interfaces.BackendInternal; import org.ovirt.engine.core.bll.job.ExecutionContext; @@ -114,6 +118,13 @@ public void create() { checkDBConnectivity(); Initialize(); + + // Test connection to Glance: + GlanceClient glanceClient = new GlanceClient("http://gls.mad.redhat.com:9292/v1/", "ADMIN"); + Images images = glanceClient.execute(new ListImages(false)); + for(Image image : images) { + log.infoFormat("Glance image: {0}", image); + } } private static void checkDBConnectivity() { diff --git a/ear/src/main/resources/META-INF/MANIFEST.MF b/ear/src/main/resources/META-INF/MANIFEST.MF index b045a89..675480b 100644 --- a/ear/src/main/resources/META-INF/MANIFEST.MF +++ b/ear/src/main/resources/META-INF/MANIFEST.MF @@ -15,4 +15,5 @@ org.ovirt.engine.core.dal, org.ovirt.engine.core.dependencies, org.ovirt.engine.core.searchbackend, - org.ovirt.engine.core.utils + org.ovirt.engine.core.utils, + org.openstack.sdk diff --git a/pom.xml b/pom.xml index 9f5f6e1..e69b0fd 100644 --- a/pom.xml +++ b/pom.xml @@ -84,6 +84,7 @@ <jaxb-impl.version>2.2</jaxb-impl.version> <jbosssx-bare.version>2.0.4</jbosssx-bare.version> <log4j.version>1.2.16</log4j.version> + <openstack-client.version>2.0.0-SNAPSHOT</openstack-client.version> </properties> <dependencyManagement> <dependencies> @@ -185,6 +186,11 @@ <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>${postgres.jdbc.version}</version> + </dependency> + <dependency> + <groupId>org.openstack</groupId> + <artifactId>glance-client</artifactId> + <version>${openstack-client.version}</version> </dependency> <dependency> <groupId>commons-lang</groupId> @@ -338,6 +344,14 @@ <enabled>false</enabled> </snapshots> </repository> + <repository> + <id>openstack</id> + <name>OpenStack SDK</name> + <url>https://raw.github.com/woorea/maven/master/snapshots</url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> </repositories> <pluginRepositories> <pluginRepository> -- To view, visit http://gerrit.ovirt.org/13205 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic2cab63bea2ec4dbe53263cc6cc9b21f86eb569a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Juan Hernandez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
