[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.jclouds.provider:hpcloud-compute:bundle:1.6.0-SNAPSHOT
[WARNING] 'parent.relativePath' of POM org.jclouds:jclouds-project:1.6.0-SNAPSHOT (/private/tmp/jclouds/project/pom.xml) points at org.jclouds:jclouds-multi instead of org.sonatype.oss:oss-parent, please verify your project structure @ org.jclouds:jclouds-project:1.6.0-SNAPSHOT, /private/tmp/jclouds/project/pom.xml, line 24, column 13
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jclouds HP Cloud Compute provider 1.6.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ hpcloud-compute ---
[INFO] Deleting /private/tmp/jclouds/providers/hpcloud-compute/target
[INFO] 
[INFO] --- maven-enforcer-plugin:1.1.1:enforce (enforce-maven) @ hpcloud-compute ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.1.1:enforce (enforce-banned-dependencies) @ hpcloud-compute ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.1.1:enforce (enforce-java) @ hpcloud-compute ---
[INFO] 
[INFO] --- maven-remote-resources-plugin:1.4:process (process-remote-resources) @ hpcloud-compute ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ hpcloud-compute ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /private/tmp/jclouds/providers/hpcloud-compute/src/main/clojure
[INFO] Copying 1 resource
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ hpcloud-compute ---
[INFO] Compiling 3 source files to /private/tmp/jclouds/providers/hpcloud-compute/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ hpcloud-compute ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /private/tmp/jclouds/providers/hpcloud-compute/src/test/clojure
[INFO] Copying 1 resource
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ hpcloud-compute ---
[INFO] Compiling 12 source files to /private/tmp/jclouds/providers/hpcloud-compute/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ hpcloud-compute ---
[INFO] Surefire report directory: /private/tmp/jclouds/providers/hpcloud-compute/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@1cc7b00c
Starting test testCanGetConfiguredZones(org.jclouds.hpcloud.compute.HPCloudComputeProviderMetadataExpectTest)
[pool-1-thread-1] Test testCanGetConfiguredZones(org.jclouds.hpcloud.compute.HPCloudComputeProviderMetadataExpectTest) succeeded: 1165ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test testAllContains(org.jclouds.hpcloud.compute.HPCloudComputeProviderTest)
Starting test testOfApiContains(org.jclouds.hpcloud.compute.HPCloudComputeProviderTest)
Starting test testWithId(org.jclouds.hpcloud.compute.HPCloudComputeProviderTest)
Starting test testTransformableToContains(org.jclouds.hpcloud.compute.HPCloudComputeProviderTest)
[pool-2-thread-1] Test testAllContains(org.jclouds.hpcloud.compute.HPCloudComputeProviderTest) succeeded: 2ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
[pool-2-thread-2] Test testOfApiContains(org.jclouds.hpcloud.compute.HPCloudComputeProviderTest) succeeded: 2ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
[pool-2-thread-4] Test testWithId(org.jclouds.hpcloud.compute.HPCloudComputeProviderTest) succeeded: 2ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
[pool-2-thread-3] Test testTransformableToContains(org.jclouds.hpcloud.compute.HPCloudComputeProviderTest) succeeded: 3ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.731 sec

Results :

Tests run: 5, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-bundle-plugin:2.3.7:bundle (default-bundle) @ hpcloud-compute ---
[INFO] 
[INFO] --- maven-jar-plugin:2.4:test-jar (default) @ hpcloud-compute ---
[INFO] Building jar: /private/tmp/jclouds/providers/hpcloud-compute/target/hpcloud-compute-1.6.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (integration) @ hpcloud-compute ---
[INFO] Surefire report directory: /private/tmp/jclouds/providers/hpcloud-compute/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@270e3293
15:06:55,982 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
15:06:55,982 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
15:06:55,982 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/Users/adrianc/.m2/repository/org/jclouds/jclouds-compute/1.6.0-SNAPSHOT/jclouds-compute-1.6.0-SNAPSHOT-tests.jar!/logback.xml]
15:06:55,982 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs multiple times on the classpath.
15:06:55,983 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [jar:file:/Users/adrianc/.m2/repository/org/jclouds/api/openstack-keystone/1.6.0-SNAPSHOT/openstack-keystone-1.6.0-SNAPSHOT-tests.jar!/logback.xml]
15:06:55,983 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [jar:file:/Users/adrianc/.m2/repository/org/jclouds/jclouds-compute/1.6.0-SNAPSHOT/jclouds-compute-1.6.0-SNAPSHOT-tests.jar!/logback.xml]
15:06:55,994 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@7acdba53 - URL [jar:file:/Users/adrianc/.m2/repository/org/jclouds/jclouds-compute/1.6.0-SNAPSHOT/jclouds-compute-1.6.0-SNAPSHOT-tests.jar!/logback.xml] is not of type file
15:06:56,033 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
15:06:56,041 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender]
15:06:56,044 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
15:06:56,056 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
15:06:56,088 |-INFO in ch.qos.logback.core.FileAppender[FILE] - File property is set to [target/test-data/jclouds.log]
15:06:56,089 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender]
15:06:56,089 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [WIREFILE]
15:06:56,089 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
15:06:56,089 |-INFO in ch.qos.logback.core.FileAppender[WIREFILE] - File property is set to [target/test-data/jclouds-wire.log]
15:06:56,090 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender]
15:06:56,090 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [COMPUTEFILE]
15:06:56,090 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
15:06:56,090 |-INFO in ch.qos.logback.core.FileAppender[COMPUTEFILE] - File property is set to [target/test-data/jclouds-compute.log]
15:06:56,090 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender]
15:06:56,090 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [SSHFILE]
15:06:56,091 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
15:06:56,091 |-INFO in ch.qos.logback.core.FileAppender[SSHFILE] - File property is set to [target/test-data/jclouds-ssh.log]
15:06:56,091 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to WARN
15:06:56,092 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.jclouds level set to DEBUG
15:06:56,092 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[org.jclouds]
15:06:56,092 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - jclouds.wire level set to DEBUG
15:06:56,092 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [WIREFILE] to Logger[jclouds.wire]
15:06:56,093 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - jclouds.headers level set to DEBUG
15:06:56,093 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [WIREFILE] to Logger[jclouds.headers]
15:06:56,093 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - jclouds.compute level set to DEBUG
15:06:56,093 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [COMPUTEFILE] to Logger[jclouds.compute]
15:06:56,093 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - jclouds.ssh level set to DEBUG
15:06:56,093 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [SSHFILE] to Logger[jclouds.ssh]
15:06:56,093 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
15:06:56,094 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@5883de21 - Registering current configuration as safe fallback point

Starting test setServiceDefaults(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test setServiceDefaults(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test testCompareSizes(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testCompareSizes(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 12660ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testCorrectExceptionRunningNodesNotFound(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testCorrectExceptionRunningNodesNotFound(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 1845ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test testGetAssignableLocations(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testGetAssignableLocations(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testImageById(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testImageById(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 571ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testImagesCache(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testImagesCache(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testListImages(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testListImages(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testListSizes(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testListSizes(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
Starting test testOptionToNotBlock(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testOptionToNotBlock(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
Starting test testCreateAndRunAService(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testCreateAndRunAService(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 154615ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test testCorrectAuthException(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testCorrectAuthException(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) failed.
Test suite progress: tests succeeded: 10, failed: 1, skipped: 0.
Starting test testAScriptExecutionAfterBootWithBasicTemplate(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testAScriptExecutionAfterBootWithBasicTemplate(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 163145ms
Test suite progress: tests succeeded: 11, failed: 1, skipped: 0.
Starting test testConcurrentUseOfComputeServiceToCreateNodes(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testConcurrentUseOfComputeServiceToCreateNodes(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 58388ms
Test suite progress: tests succeeded: 12, failed: 1, skipped: 0.
Starting test testTemplateMatch(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testTemplateMatch(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 10ms
Test suite progress: tests succeeded: 13, failed: 1, skipped: 0.
Starting test testCreateTwoNodesWithRunScript(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testCreateTwoNodesWithRunScript(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 111339ms
Test suite progress: tests succeeded: 14, failed: 1, skipped: 0.
Starting test testCreateAnotherNodeWithANewContextToEnsureSharedMemIsntRequired(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testCreateAnotherNodeWithANewContextToEnsureSharedMemIsntRequired(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 108115ms
Test suite progress: tests succeeded: 15, failed: 1, skipped: 0.
Starting test testCredentialsCache(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testCredentialsCache(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) succeeded: 118ms
Test suite progress: tests succeeded: 16, failed: 1, skipped: 0.
Starting test testGet(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)
[TestNG] Test testGet(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) failed.
Test suite progress: tests succeeded: 16, failed: 2, skipped: 0.
[TestNG] Test testReboot(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) skipped.
Test suite progress: tests succeeded: 16, failed: 2, skipped: 1.
[TestNG] Test testSuspendResume(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) skipped.
Test suite progress: tests succeeded: 16, failed: 2, skipped: 2.
[TestNG] Test testGetNodesWithDetails(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) skipped.
Test suite progress: tests succeeded: 16, failed: 2, skipped: 3.
[TestNG] Test testListNodes(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) skipped.
Test suite progress: tests succeeded: 16, failed: 2, skipped: 4.
[TestNG] Test testListNodesByIds(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) skipped.
Test suite progress: tests succeeded: 16, failed: 2, skipped: 5.
[TestNG] Test testDestroyNodes(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest) skipped.
Test suite progress: tests succeeded: 16, failed: 2, skipped: 6.
Starting test testCompareSizes(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
smallest {id=az-2.region-a.geo-1/100, providerId=100, name=standard.xsmall, location={scope=ZONE, id=az-2.region-a.geo-1, description=az-2.region-a.geo-1, parent=hpcloud-compute}, processors=[{cores=1.0, speed=1.0}], ram=1024, volumes=[{type=LOCAL, size=30.0, bootDevice=true, durable=true}], supportsImage=ALWAYS_TRUE}
fastest {id=az-1.region-a.geo-1/105, providerId=105, name=standard.2xlarge, location={scope=ZONE, id=az-1.region-a.geo-1, description=az-1.region-a.geo-1, parent=hpcloud-compute}, processors=[{cores=8.0, speed=1.0}], ram=32768, volumes=[{type=LOCAL, size=960.0, bootDevice=true, durable=true}], supportsImage=ALWAYS_TRUE}
biggest {id=az-1.region-a.geo-1/105, providerId=105, name=standard.2xlarge, location={scope=ZONE, id=az-1.region-a.geo-1, description=az-1.region-a.geo-1, parent=hpcloud-compute}, processors=[{cores=8.0, speed=1.0}], ram=32768, volumes=[{type=LOCAL, size=960.0, bootDevice=true, durable=true}], supportsImage=ALWAYS_TRUE}
[TestNG] Test testCompareSizes(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 5932ms
Test suite progress: tests succeeded: 17, failed: 2, skipped: 6.
Starting test testDefaultTemplateBuilder(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testDefaultTemplateBuilder(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 6ms
Test suite progress: tests succeeded: 18, failed: 2, skipped: 6.
Starting test testFromTemplate(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testFromTemplate(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 11ms
Test suite progress: tests succeeded: 19, failed: 2, skipped: 6.
Starting test testGetAssignableLocations(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testGetAssignableLocations(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 20, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 3ms
Test suite progress: tests succeeded: 21, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 22, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 4ms
Test suite progress: tests succeeded: 23, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 2ms
Test suite progress: tests succeeded: 24, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 25, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 3ms
Test suite progress: tests succeeded: 26, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 2ms
Test suite progress: tests succeeded: 27, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 28, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 29, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 3ms
Test suite progress: tests succeeded: 30, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 3ms
Test suite progress: tests succeeded: 31, failed: 2, skipped: 6.
Starting test testTemplateBuilderCanUseImageId(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCanUseImageId(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 7071ms
Test suite progress: tests succeeded: 32, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 33, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 34, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 35, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 36, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 37, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 38, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 39, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 40, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 41, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 42, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 43, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 44, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 45, failed: 2, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) failed.
Test suite progress: tests succeeded: 45, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 46, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 47, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 48, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 49, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 50, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 51, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 52, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 53, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 54, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 55, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 56, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 57, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 58, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 59, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 60, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 61, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 62, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 63, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 64, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 65, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 66, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 67, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 68, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 69, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 70, failed: 3, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) failed.
Test suite progress: tests succeeded: 70, failed: 4, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 71, failed: 4, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) failed.
Test suite progress: tests succeeded: 71, failed: 5, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 72, failed: 5, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 73, failed: 5, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) failed.
Test suite progress: tests succeeded: 73, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 74, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 75, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 76, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 77, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 78, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 79, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 80, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 81, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 82, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 83, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 84, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 85, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 86, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 87, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 88, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 89, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 90, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 91, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 92, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 93, failed: 6, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) failed.
Test suite progress: tests succeeded: 93, failed: 7, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 94, failed: 7, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 95, failed: 7, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 96, failed: 7, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 97, failed: 7, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 98, failed: 7, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 99, failed: 7, skipped: 6.
Starting test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 100, failed: 7, skipped: 6.
Starting test testTemplateBuilderWithImageIdSpecified(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderWithImageIdSpecified(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 12524ms
Test suite progress: tests succeeded: 101, failed: 7, skipped: 6.
Starting test testTemplateBuilderWithLoginUserSpecified(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilderWithLoginUserSpecified(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) succeeded: 13458ms
Test suite progress: tests succeeded: 102, failed: 7, skipped: 6.
Starting test testTemplateBuilder(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)
[TestNG] Test testTemplateBuilder(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest) failed.
Test suite progress: tests succeeded: 102, failed: 8, skipped: 6.
Starting test testListFlavors(org.jclouds.hpcloud.compute.features.HPCloudComputeFlavorApiLiveTest)
[TestNG] Test testListFlavors(org.jclouds.hpcloud.compute.features.HPCloudComputeFlavorApiLiveTest) succeeded: 974ms
Test suite progress: tests succeeded: 103, failed: 8, skipped: 6.
Starting test testListFlavorsInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeFlavorApiLiveTest)
[TestNG] Test testListFlavorsInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeFlavorApiLiveTest) succeeded: 1046ms
Test suite progress: tests succeeded: 104, failed: 8, skipped: 6.
Starting test testGetFlavorById(org.jclouds.hpcloud.compute.features.HPCloudComputeFlavorApiLiveTest)
[TestNG] Test testGetFlavorById(org.jclouds.hpcloud.compute.features.HPCloudComputeFlavorApiLiveTest) succeeded: 6769ms
Test suite progress: tests succeeded: 105, failed: 8, skipped: 6.
Starting test testAddAndRemoveFloatingIp(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest)
blocking on status ACTIVE
Server{id=1242205, name=adrianc, links=[Link{relation=SELF, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/servers/1242205}, Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/servers/1242205}], uuid=5ddc39c5-1583-49e6-b398-eb6685e0806d, tenantId=37936628937291, userId=54297837463082, updated=Sun Apr 28 15:18:28 PDT 2013, created=Sun Apr 28 15:18:28 PDT 2013, hostId=null, accessIPv4=null, accessIPv6=null, status=BUILD, image=Resource{id=1232, name=null, links=[Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/images/1232}]}, flavor=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/flavors/100}]}, keyName=null, configDrive=null, addresses={}, metadata={}, extendedStatus=Optional.absent(), extendedAttributes=Optional.absent(), diskConfig=Optional.absent()}
blocking on status ACTIVE
Server{id=1242205, name=adrianc, links=[Link{relation=SELF, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/servers/1242205}, Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/servers/1242205}], uuid=5ddc39c5-1583-49e6-b398-eb6685e0806d, tenantId=37936628937291, userId=54297837463082, updated=Sun Apr 28 15:18:32 PDT 2013, created=Sun Apr 28 15:18:28 PDT 2013, hostId=438b97045d90404cde9d1428d3b774645cef84a877c69bf9ca22c5fc, accessIPv4=null, accessIPv6=null, status=BUILD, image=Resource{id=1232, name=null, links=[Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/images/1232}]}, flavor=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/flavors/100}]}, keyName=null, configDrive=null, addresses={private=[Address{addr=10.5.169.193, version=4}, Address{addr=15.185.109.19, version=4}]}, metadata={}, extendedStatus=Optional.absent(), extendedAttributes=Optional.absent(), diskConfig=Optional.absent()}
blocking on status ACTIVE
Server{id=1242205, name=adrianc, links=[Link{relation=SELF, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/servers/1242205}, Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/servers/1242205}], uuid=5ddc39c5-1583-49e6-b398-eb6685e0806d, tenantId=37936628937291, userId=54297837463082, updated=Sun Apr 28 15:18:36 PDT 2013, created=Sun Apr 28 15:18:28 PDT 2013, hostId=438b97045d90404cde9d1428d3b774645cef84a877c69bf9ca22c5fc, accessIPv4=null, accessIPv6=null, status=BUILD, image=Resource{id=1232, name=null, links=[Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/images/1232}]}, flavor=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/flavors/100}]}, keyName=null, configDrive=null, addresses={private=[Address{addr=10.5.169.193, version=4}, Address{addr=15.185.109.19, version=4}]}, metadata={}, extendedStatus=Optional.absent(), extendedAttributes=Optional.absent(), diskConfig=Optional.absent()}
[TestNG] Test testAddAndRemoveFloatingIp(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest) failed.
Test suite progress: tests succeeded: 105, failed: 9, skipped: 6.
Starting test testAllocateAndDecreateFloatingIPs(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest)
[TestNG] Test testAllocateAndDecreateFloatingIPs(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest) failed.
Test suite progress: tests succeeded: 105, failed: 10, skipped: 6.
Starting test testListFloatingIPs(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest)
[TestNG] Test testListFloatingIPs(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest) succeeded: 6190ms
Test suite progress: tests succeeded: 106, failed: 10, skipped: 6.
Starting test testListImages(org.jclouds.hpcloud.compute.features.HPCloudComputeImageApiLiveTest)
[TestNG] Test testListImages(org.jclouds.hpcloud.compute.features.HPCloudComputeImageApiLiveTest) succeeded: 4631ms
Test suite progress: tests succeeded: 107, failed: 10, skipped: 6.
Starting test testListImagesInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeImageApiLiveTest)
[TestNG] Test testListImagesInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeImageApiLiveTest) succeeded: 4922ms
Test suite progress: tests succeeded: 108, failed: 10, skipped: 6.
Starting test testGetImageById(org.jclouds.hpcloud.compute.features.HPCloudComputeImageApiLiveTest)
[TestNG] Test testGetImageById(org.jclouds.hpcloud.compute.features.HPCloudComputeImageApiLiveTest) succeeded: 105577ms
Test suite progress: tests succeeded: 109, failed: 10, skipped: 6.
Starting test testCreateAndDeleteKeyPair(org.jclouds.hpcloud.compute.features.HPCloudComputeKeyPairApiLiveTest)
[TestNG] Test testCreateAndDeleteKeyPair(org.jclouds.hpcloud.compute.features.HPCloudComputeKeyPairApiLiveTest) succeeded: 6654ms
Test suite progress: tests succeeded: 110, failed: 10, skipped: 6.
Starting test testCreateAndDeleteKeyPairWithPublicKey(org.jclouds.hpcloud.compute.features.HPCloudComputeKeyPairApiLiveTest)
[TestNG] Test testCreateAndDeleteKeyPairWithPublicKey(org.jclouds.hpcloud.compute.features.HPCloudComputeKeyPairApiLiveTest) succeeded: 2622ms
Test suite progress: tests succeeded: 111, failed: 10, skipped: 6.
Starting test testListKeyPairs(org.jclouds.hpcloud.compute.features.HPCloudComputeKeyPairApiLiveTest)
[TestNG] Test testListKeyPairs(org.jclouds.hpcloud.compute.features.HPCloudComputeKeyPairApiLiveTest) succeeded: 1070ms
Test suite progress: tests succeeded: 112, failed: 10, skipped: 6.
Starting test createAndDeleteSecurityGroupRule(org.jclouds.hpcloud.compute.features.HPCloudComputeSecurityGroupApiLiveTest)
[TestNG] Test createAndDeleteSecurityGroupRule(org.jclouds.hpcloud.compute.features.HPCloudComputeSecurityGroupApiLiveTest) succeeded: 19001ms
Test suite progress: tests succeeded: 113, failed: 10, skipped: 6.
Starting test createGetAndDeleteSecurityGroup(org.jclouds.hpcloud.compute.features.HPCloudComputeSecurityGroupApiLiveTest)
[TestNG] Test createGetAndDeleteSecurityGroup(org.jclouds.hpcloud.compute.features.HPCloudComputeSecurityGroupApiLiveTest) succeeded: 8653ms
Test suite progress: tests succeeded: 114, failed: 10, skipped: 6.
Starting test list(org.jclouds.hpcloud.compute.features.HPCloudComputeSecurityGroupApiLiveTest)
[TestNG] Test list(org.jclouds.hpcloud.compute.features.HPCloudComputeSecurityGroupApiLiveTest) succeeded: 1422ms
Test suite progress: tests succeeded: 115, failed: 10, skipped: 6.
Starting test testListServers(org.jclouds.hpcloud.compute.features.HPCloudComputeServerApiLiveTest)
[TestNG] Test testListServers(org.jclouds.hpcloud.compute.features.HPCloudComputeServerApiLiveTest) succeeded: 1329ms
Test suite progress: tests succeeded: 116, failed: 10, skipped: 6.
Starting test testListServersInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeServerApiLiveTest)
[TestNG] Test testListServersInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeServerApiLiveTest) succeeded: 1096ms
Test suite progress: tests succeeded: 117, failed: 10, skipped: 6.
Starting test testGetServerById(org.jclouds.hpcloud.compute.features.HPCloudComputeServerApiLiveTest)
[TestNG] Test testGetServerById(org.jclouds.hpcloud.compute.features.HPCloudComputeServerApiLiveTest) succeeded: 2511ms
Test suite progress: tests succeeded: 118, failed: 10, skipped: 6.
Starting test testCreateVolume(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest)
[TestNG] Test testCreateVolume(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest) succeeded: 983ms
Test suite progress: tests succeeded: 119, failed: 10, skipped: 6.
Starting test testAttachments(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest)
blocking on status ACTIVE
Server{id=973069, name=adrianc, links=[Link{relation=SELF, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/servers/973069}, Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/servers/973069}], uuid=07e7551f-69ed-4f9e-8b78-d586d8c21e65, tenantId=37936628937291, userId=54297837463082, updated=Sun Apr 28 15:21:49 PDT 2013, created=Sun Apr 28 15:21:49 PDT 2013, hostId=null, accessIPv4=null, accessIPv6=null, status=BUILD, image=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/images/100}]}, flavor=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/flavors/100}]}, keyName=null, configDrive=null, addresses={}, metadata={}, extendedStatus=Optional.absent(), extendedAttributes=Optional.absent(), diskConfig=Optional.absent()}
blocking on status ACTIVE
Server{id=973069, name=adrianc, links=[Link{relation=SELF, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/servers/973069}, Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/servers/973069}], uuid=07e7551f-69ed-4f9e-8b78-d586d8c21e65, tenantId=37936628937291, userId=54297837463082, updated=Sun Apr 28 15:21:52 PDT 2013, created=Sun Apr 28 15:21:49 PDT 2013, hostId=e2a69b92c7a66059ef1da79d9da1a910751e01a846b74af80406a163, accessIPv4=null, accessIPv6=null, status=BUILD, image=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/images/100}]}, flavor=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/flavors/100}]}, keyName=null, configDrive=null, addresses={private=[Address{addr=10.3.59.34, version=4}, Address{addr=15.185.227.255, version=4}]}, metadata={}, extendedStatus=Optional.absent(), extendedAttributes=Optional.absent(), diskConfig=Optional.absent()}
blocking on status ACTIVE
Server{id=973069, name=adrianc, links=[Link{relation=SELF, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/servers/973069}, Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/servers/973069}], uuid=07e7551f-69ed-4f9e-8b78-d586d8c21e65, tenantId=37936628937291, userId=54297837463082, updated=Sun Apr 28 15:21:56 PDT 2013, created=Sun Apr 28 15:21:49 PDT 2013, hostId=e2a69b92c7a66059ef1da79d9da1a910751e01a846b74af80406a163, accessIPv4=null, accessIPv6=null, status=BUILD, image=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/images/100}]}, flavor=Resource{id=100, name=null, links=[Link{relation=BOOKMARK, href=https://az-3.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/flavors/100}]}, keyName=null, configDrive=null, addresses={private=[Address{addr=10.3.59.34, version=4}, Address{addr=15.185.227.255, version=4}]}, metadata={}, extendedStatus=Optional.absent(), extendedAttributes=Optional.absent(), diskConfig=Optional.absent()}
[TestNG] Test testAttachments(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest) failed.
Test suite progress: tests succeeded: 119, failed: 11, skipped: 6.
Starting test testCreateSnapshot(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest)
[TestNG] Test testCreateSnapshot(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest) failed.
Test suite progress: tests succeeded: 119, failed: 12, skipped: 6.
Starting test testListVolumes(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest)
[TestNG] Test testListVolumes(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest) succeeded: 955ms
Test suite progress: tests succeeded: 120, failed: 12, skipped: 6.
Starting test testListVolumesInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest)
[TestNG] Test testListVolumesInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest) succeeded: 952ms
Test suite progress: tests succeeded: 121, failed: 12, skipped: 6.
[TestNG] Test testListSnapshots(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest) skipped.
Test suite progress: tests succeeded: 121, failed: 12, skipped: 7.
[TestNG] Test testListSnapshotsInDetail(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest) skipped.
Test suite progress: tests succeeded: 121, failed: 12, skipped: 8.
Tests run: 142, Failures: 13, Errors: 0, Skipped: 8, Time elapsed: 952.6 sec <<< FAILURE!
testCorrectAuthException(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)  Time elapsed: 0.151 sec  <<< FAILURE!
org.testng.TestException: 
Expected exception org.jclouds.rest.AuthorizationException but got com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: current configuration is set to [jclouds.keystone.requires-tenant]. Unless you set [jclouds.keystone.tenant-name] or [jclouds.keystone.tenant-id], you must prefix your identity with 'tenantName:'
	at org.testng.internal.Invoker.handleInvocationResults(Invoker.java:1497)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:754)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: current configuration is set to [jclouds.keystone.requires-tenant]. Unless you set [jclouds.keystone.tenant-name] or [jclouds.keystone.tenant-id], you must prefix your identity with 'tenantName:'
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2263)
	at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
	at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4880)
	at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:236)
	at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:233)
	at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:97)
	at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:56)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:77)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:61)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
	at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:123)
	at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:48)
	at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:36)
	at com.google.common.base.Suppliers$SupplierComposition.get(Suppliers.java:67)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:77)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:61)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
	at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:123)
	at org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter.listNodes(NovaComputeServiceAdapter.java:199)
	at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listDetailsOnNodesMatching(AdaptingComputeServiceStrategies.java:126)
	at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listNodes(AdaptingComputeServiceStrategies.java:116)
	at org.jclouds.compute.internal.BaseComputeService.listNodes(BaseComputeService.java:339)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at com.sun.proxy.$Proxy63.listNodes(Unknown Source)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest.testCorrectAuthException(BaseComputeServiceLiveTest.java:180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	... 15 more
Caused by: java.lang.IllegalArgumentException: current configuration is set to [jclouds.keystone.requires-tenant]. Unless you set [jclouds.keystone.tenant-name] or [jclouds.keystone.tenant-id], you must prefix your identity with 'tenantName:'
	at org.jclouds.openstack.keystone.v2_0.functions.internal.BaseAuthenticator.apply(BaseAuthenticator.java:85)
	at org.jclouds.openstack.keystone.v2_0.functions.internal.BaseAuthenticator.apply(BaseAuthenticator.java:38)
	at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:148)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
	... 63 more
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: current configuration is set to [jclouds.keystone.requires-tenant]. Unless you set [jclouds.keystone.tenant-name] or [jclouds.keystone.tenant-id], you must prefix your identity with 'tenantName:'
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2263)
	at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
	at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4880)
	at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:236)
	at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:233)
	at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:97)
	at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:56)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:77)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:61)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
	at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:123)
	at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:48)
	at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:36)
	at com.google.common.base.Suppliers$SupplierComposition.get(Suppliers.java:67)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:77)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:61)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
	at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
	at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:123)
	at org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter.listNodes(NovaComputeServiceAdapter.java:199)
	at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listDetailsOnNodesMatching(AdaptingComputeServiceStrategies.java:126)
	at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listNodes(AdaptingComputeServiceStrategies.java:116)
	at org.jclouds.compute.internal.BaseComputeService.listNodes(BaseComputeService.java:339)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at com.sun.proxy.$Proxy63.listNodes(Unknown Source)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest.testCorrectAuthException(BaseComputeServiceLiveTest.java:180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	... 15 more
Caused by: java.lang.IllegalArgumentException: current configuration is set to [jclouds.keystone.requires-tenant]. Unless you set [jclouds.keystone.tenant-name] or [jclouds.keystone.tenant-id], you must prefix your identity with 'tenantName:'
	at org.jclouds.openstack.keystone.v2_0.functions.internal.BaseAuthenticator.apply(BaseAuthenticator.java:85)
	at org.jclouds.openstack.keystone.v2_0.functions.internal.BaseAuthenticator.apply(BaseAuthenticator.java:38)
	at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:148)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
	... 63 more

testGet(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest)  Time elapsed: 8.502 sec  <<< FAILURE!
java.lang.AssertionError: [[15.185.160.22, 15.185.164.148]] didn't match: [1] expected [1] but found [2]
	at org.testng.Assert.fail(Assert.java:94)
	at org.testng.Assert.failNotEquals(Assert.java:494)
	at org.testng.Assert.assertEquals(Assert.java:123)
	at org.testng.Assert.assertEquals(Assert.java:370)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest.testGet(BaseComputeServiceLiveTest.java:516)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)  Time elapsed: 0.002 sec  <<< FAILURE!
org.testng.TestException: 
Method BaseTemplateBuilderLiveTest.testTemplateBuilderCannotFind(org.jclouds.compute.domain.OsFamilyVersion64Bit)[pri:0, instance:org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest@1c5d9084] should have thrown an exception of class java.util.NoSuchElementException
	at org.testng.internal.Invoker.handleInvocationResults(Invoker.java:1512)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:754)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)  Time elapsed: 0.002 sec  <<< FAILURE!
org.testng.TestException: 
Method BaseTemplateBuilderLiveTest.testTemplateBuilderCannotFind(org.jclouds.compute.domain.OsFamilyVersion64Bit)[pri:0, instance:org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest@1c5d9084] should have thrown an exception of class java.util.NoSuchElementException
	at org.testng.internal.Invoker.handleInvocationResults(Invoker.java:1512)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:754)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)  Time elapsed: 0.001 sec  <<< FAILURE!
org.testng.TestException: 
Method BaseTemplateBuilderLiveTest.testTemplateBuilderCannotFind(org.jclouds.compute.domain.OsFamilyVersion64Bit)[pri:0, instance:org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest@1c5d9084] should have thrown an exception of class java.util.NoSuchElementException
	at org.testng.internal.Invoker.handleInvocationResults(Invoker.java:1512)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:754)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)  Time elapsed: 0.001 sec  <<< FAILURE!
org.testng.TestException: 
Method BaseTemplateBuilderLiveTest.testTemplateBuilderCannotFind(org.jclouds.compute.domain.OsFamilyVersion64Bit)[pri:0, instance:org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest@1c5d9084] should have thrown an exception of class java.util.NoSuchElementException
	at org.testng.internal.Invoker.handleInvocationResults(Invoker.java:1512)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:754)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)  Time elapsed: 0.001 sec  <<< FAILURE!
org.testng.TestException: 
Method BaseTemplateBuilderLiveTest.testTemplateBuilderCannotFind(org.jclouds.compute.domain.OsFamilyVersion64Bit)[pri:0, instance:org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest@1c5d9084] should have thrown an exception of class java.util.NoSuchElementException
	at org.testng.internal.Invoker.handleInvocationResults(Invoker.java:1512)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:754)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testTemplateBuilder(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest)  Time elapsed: 0.003 sec  <<< FAILURE!
java.lang.AssertionError: expected [Ubuntu Precise 12.04 LTS Server 64-bit 20120424] but found [Ubuntu Server 12.04.2 LTS (amd64 20130318) - Partner Image]
	at org.testng.Assert.fail(Assert.java:94)
	at org.testng.Assert.failNotEquals(Assert.java:494)
	at org.testng.Assert.assertEquals(Assert.java:123)
	at org.testng.Assert.assertEquals(Assert.java:176)
	at org.testng.Assert.assertEquals(Assert.java:186)
	at org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest.testTemplateBuilder(HPCloudComputeTemplateBuilderLiveTest.java:76)

testAddAndRemoveFloatingIp(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest)  Time elapsed: 21.738 sec  <<< FAILURE!
org.jclouds.rest.InsufficientResourcesException: {"badRequest": {"message": "AddressLimitExceeded: Address quota exceeded. You cannot allocate any more addresses", "code": 400}}
	at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:90)
	at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:69)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:182)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:152)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.invoke(InvokeSyncToAsyncHttpMethod.java:133)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:99)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:60)
	at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:119)
	at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:70)
	at com.sun.proxy.$Proxy81.create(Unknown Source)
	at org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApiLiveTest.testAddAndRemoveFloatingIp(FloatingIPApiLiveTest.java:110)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)
Caused by: org.jclouds.http.HttpResponseException: command: POST https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/os-floating-ips HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{"badRequest": {"message": "AddressLimitExceeded: Address quota exceeded. You cannot allocate any more addresses", "code": 400}}]
	at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:83)
	... 31 more
Caused by: org.jclouds.http.HttpResponseException: command: POST https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/os-floating-ips HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{"badRequest": {"message": "AddressLimitExceeded: Address quota exceeded. You cannot allocate any more addresses", "code": 400}}]
	at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:83)
	... 31 more

testAllocateAndDecreateFloatingIPs(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest)  Time elapsed: 0.36 sec  <<< FAILURE!
org.jclouds.rest.InsufficientResourcesException: {"badRequest": {"message": "AddressLimitExceeded: Address quota exceeded. You cannot allocate any more addresses", "code": 400}}
	at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:90)
	at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:69)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:182)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:152)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.invoke(InvokeSyncToAsyncHttpMethod.java:133)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:99)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:60)
	at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:119)
	at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:70)
	at com.sun.proxy.$Proxy81.create(Unknown Source)
	at org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApiLiveTest.testAllocateAndDecreateFloatingIPs(FloatingIPApiLiveTest.java:77)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)
Caused by: org.jclouds.http.HttpResponseException: command: POST https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/os-floating-ips HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{"badRequest": {"message": "AddressLimitExceeded: Address quota exceeded. You cannot allocate any more addresses", "code": 400}}]
	at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:83)
	... 31 more
Caused by: org.jclouds.http.HttpResponseException: command: POST https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/os-floating-ips HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{"badRequest": {"message": "AddressLimitExceeded: Address quota exceeded. You cannot allocate any more addresses", "code": 400}}]
	at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:83)
	... 31 more

testAttachments(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest)  Time elapsed: 25.376 sec  <<< FAILURE!
java.lang.AssertionError: expected [in-use] but found [unrecognized]
	at org.testng.Assert.fail(Assert.java:94)
	at org.testng.Assert.failNotEquals(Assert.java:494)
	at org.testng.Assert.assertEquals(Assert.java:123)
	at org.testng.Assert.assertEquals(Assert.java:165)
	at org.jclouds.openstack.nova.v2_0.extensions.VolumeApiLiveTest.testAttachments(VolumeApiLiveTest.java:243)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

testCreateSnapshot(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest)  Time elapsed: 30.923 sec  <<< FAILURE!
java.lang.AssertionError: expected [true] but found [false]
	at org.testng.Assert.fail(Assert.java:94)
	at org.testng.Assert.failNotEquals(Assert.java:494)
	at org.testng.Assert.assertTrue(Assert.java:42)
	at org.testng.Assert.assertTrue(Assert.java:52)
	at org.jclouds.openstack.nova.v2_0.extensions.VolumeApiLiveTest.testCreateSnapshot(VolumeApiLiveTest.java:162)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

tearDown(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest)  Time elapsed: 4.584 sec  <<< FAILURE!
org.jclouds.http.HttpResponseException: command: DELETE https://az-3.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/os-snapshots/4187 HTTP/1.1 failed with response: HTTP/1.1 500 Internal Server Error; content: [{"cloudServersFault": {"message": "Server Error, please try again later.", "code": 500}}]
	at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:83)
	at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:71)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:182)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:152)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.invoke(InvokeSyncToAsyncHttpMethod.java:133)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:99)
	at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:60)
	at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:119)
	at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:70)
	at com.sun.proxy.$Proxy92.deleteSnapshot(Unknown Source)
	at org.jclouds.openstack.nova.v2_0.extensions.VolumeApiLiveTest.tearDown(VolumeApiLiveTest.java:71)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
	at org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:225)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:114)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)


Results :

Failed tests:   testCorrectAuthException(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest): (..)
  testGet(org.jclouds.hpcloud.compute.compute.HPCloudComputeComputeServiceLiveTest): [[15.185.160.22, 15.185.164.148]] didn't match: [1] expected [1] but found [2]
  testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest): (..)
  testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest): (..)
  testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest): (..)
  testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest): (..)
  testTemplateBuilderCannotFind(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest): (..)
  testTemplateBuilder(org.jclouds.hpcloud.compute.compute.HPCloudComputeTemplateBuilderLiveTest): expected [Ubuntu Precise 12.04 LTS Server 64-bit 20120424] but found [Ubuntu Server 12.04.2 LTS (amd64 20130318) - Partner Image]
  testAddAndRemoveFloatingIp(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest): {"badRequest": {"message": "AddressLimitExceeded: Address quota exceeded. You cannot allocate any more addresses", "code": 400}}
  testAllocateAndDecreateFloatingIPs(org.jclouds.hpcloud.compute.features.HPCloudComputeFloatingIPApiLiveTest): {"badRequest": {"message": "AddressLimitExceeded: Address quota exceeded. You cannot allocate any more addresses", "code": 400}}
  testAttachments(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest): expected [in-use] but found [unrecognized]
  testCreateSnapshot(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest): expected [true] but found [false]
  tearDown(org.jclouds.hpcloud.compute.features.HPCloudComputeVolumeApiLiveTest): command: DELETE https://az-3.region-a.geo-1.compute.hpcloudsvc.com/v1.1/37936628937291/os-snapshots/4187 HTTP/1.1 failed with response: HTTP/1.1 500 Internal Server Error; content: [{"cloudServersFault": {"message": "Server Error, please try again later.", "code": 500}}]

Tests run: 142, Failures: 13, Errors: 0, Skipped: 8

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15:59.676s
[INFO] Finished at: Sun Apr 28 15:22:47 PDT 2013
[INFO] Final Memory: 19M/125M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (integration) on project hpcloud-compute: There are test failures.
[ERROR] 
[ERROR] Please refer to /private/tmp/jclouds/providers/hpcloud-compute/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
