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

Reply via email to