-------------------------------------------------------------------------------
Test set: TestSuite
-------------------------------------------------------------------------------
Tests run: 134, Failures: 13, Errors: 0, Skipped: 10, Time elapsed: 1,120.809 sec <<< FAILURE!
testCreateNodeWithGroupEncodedIntoNameThenStoreCredentials(org.jclouds.softlayer.compute.SoftLayerComputeServiceAdapterLiveTest)  Time elapsed: 6.779 sec  <<< FAILURE!
java.lang.IndexOutOfBoundsException: index (0) must be less than size (0)
	at com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:305)
	at com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:284)
	at com.google.common.collect.Iterables.get(Iterables.java:735)
	at org.jclouds.softlayer.compute.strategy.SoftLayerComputeServiceAdapter.createNodeWithGroupEncodedIntoName(SoftLayerComputeServiceAdapter.java:133)
	at org.jclouds.softlayer.compute.SoftLayerComputeServiceAdapterLiveTest.testCreateNodeWithGroupEncodedIntoNameThenStoreCredentials(SoftLayerComputeServiceAdapterLiveTest.java:87)

testDatacentersForCloudLayer(org.jclouds.softlayer.features.ProductPackageClientLiveTest)  Time elapsed: 0.002 sec  <<< FAILURE!
java.lang.AssertionError: [Datacenter{id=3, name=dal01, longName=Dallas 1, locationAddress=Address{id=2, country=US, state=TX, description=Dallas - DAL01 - Infomart}, regions=[[keyname=FIRST_AVAILABLE, description=First Available], [keyname=DALLAS, description=DAL01 - Dallas - Central U.S.]]}, Datacenter{id=18171, name=sea01, longName=Seattle, locationAddress=Address{id=3, country=US, state=WA, description=Seattle - SEA01 - Tukwila}, regions=[[keyname=FIRST_AVAILABLE, description=First Available], [keyname=SEATTLE, description=SEA01 - Seattle - West Coast U.S.]]}, Datacenter{id=37473, name=wdc01, longName=Washington, DC, locationAddress=Address{id=4, country=US, state=VA, description=Washington DC - WDC01 - Chantilly}, regions=[[keyname=WASHINGTON_DC, description=WDC01 - Washington, DC - East Coast U.S.], [keyname=FIRST_AVAILABLE, description=First Available]]}, Datacenter{id=138124, name=dal05, longName=Dallas 5, locationAddress=Address{id=722, country=US, state=TX, description=Dallas - DAL05 - Corporate HQ}, regions=[[keyname=DALLAS05, description=DAL05 - Dallas - Central U.S.]]}, Datacenter{id=168642, name=sjc01, longName=San Jose 1, locationAddress=Address{id=1822, country=US, state=CA, description=San Jose - SJC01}, regions=[[keyname=FIRST_AVAILABLE, description=First Available], [keyname=SANJOSE, description=SJC01 - San Jose - West Coast U.S.]]}, Datacenter{id=224092, name=sng01, longName=Singapore 1, locationAddress=Address{id=2982, country=SG, state=null, description=Singapore - SNG01}, regions=[[keyname=SINGAPORE, description=SNG01 - Singapore - Southeast Asia]]}, Datacenter{id=265592, name=ams01, longName=Amsterdam 1, locationAddress=Address{id=3322, country=NL, state=null, description=Amsterdam - AMS01}, regions=[[keyname=AMSTERDAM, description=AMS01 - Amsterdam - Western Europe]]}]
	at org.jclouds.softlayer.features.ProductPackageClientLiveTest.testDatacentersForCloudLayer(ProductPackageClientLiveTest.java:120)

testCreateAndRunAService(org.jclouds.softlayer.compute.SoftLayerComputeServiceLiveTest)  Time elapsed: 9.34 sec  <<< FAILURE!
java.util.NoSuchElementException: ProductItem has no prices:ProductItem{id=4174, description=Ubuntu Linux 12.04 LTS Precise Pangolin - Minimal Install (64 bit), units=N/A, capacity=0.0, prices=[], categories=[ProductItemCategory{id=12, name=Operating System, categoryCode=os}]}
	at org.jclouds.softlayer.compute.functions.ProductItems$3.apply(ProductItems.java:66)
	at org.jclouds.softlayer.compute.functions.ProductItems$3.apply(ProductItems.java:62)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage$4.apply(ProductItemToImage.java:183)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage$4.apply(ProductItemToImage.java:179)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage.apply(ProductItemToImage.java:89)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata$GetImageForVirtualGuest.getImage(VirtualGuestToNodeMetadata.java:152)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata.apply(VirtualGuestToNodeMetadata.java:89)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata.apply(VirtualGuestToNodeMetadata.java:54)
	at com.google.common.base.Functions$FunctionComposition.apply(Functions.java:210)
	at com.google.common.collect.Iterators$8.transform(Iterators.java:860)
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
	at com.google.common.collect.Iterators$7.computeNext(Iterators.java:701)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
	at com.google.common.collect.Sets.newLinkedHashSet(Sets.java:295)
	at org.jclouds.compute.internal.BaseComputeService.detailsOnAllNodes(BaseComputeService.java:658)
	at org.jclouds.compute.internal.BaseComputeService.nodesMatchingFilterAndNotTerminated(BaseComputeService.java:318)
	at org.jclouds.compute.internal.BaseComputeService.destroyNodesMatching(BaseComputeService.java:258)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest.testCreateAndRunAService(BaseComputeServiceLiveTest.java:662)
	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)

testListVirtualGuests(org.jclouds.softlayer.features.VirtualGuestClientLiveTest)  Time elapsed: 1.439 sec  <<< FAILURE!
java.lang.AssertionError: VirtualGuest{accountId=93750, createDate=Sat Mar 09 18:03:57 PST 2013, dedicatedAccountHostOnly=false, domain=me.org, fullyQualifiedDomainName=node-1020622390.me.org, hostname=node-1020622390, id=1459115, lastVerifiedDate=null, maxCpu=1, maxCpuUnits=CORE, maxMemory=1024, metricPollDate=null, modifyDate=Sat Mar 09 18:06:11 PST 2013, notes=null, privateNetworkOnly=false, startCpus=1, statusId=1001, uuid=9044873a-b20a-39fe-4c43-4a18e4d0cf98, primaryBackendIpAddress=10.37.35.70, primaryIpAddress=173.193.3.238, billingItemId=14007694, operatingSystem=OperatingSystem{id=1886311, passwords=[Password{id=1526484, username=root, password=FP7XMNnJ}]}, datacenter=Datacenter{id=3, name=dal01, longName=Dallas 1, locationAddress=null, regions=[]}, powerState=PowerState{keyName=Running}}
	at org.jclouds.softlayer.features.VirtualGuestClientLiveTest.checkVirtualGuest(VirtualGuestClientLiveTest.java:162)
	at org.jclouds.softlayer.features.VirtualGuestClientLiveTest.testListVirtualGuests(VirtualGuestClientLiveTest.java:72)

testGetProductPackage(org.jclouds.softlayer.features.ProductPackageClientLiveTest)  Time elapsed: 47.805 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.softlayer.features.ProductPackageClientLiveTest.testGetProductPackage(ProductPackageClientLiveTest.java:99)

testBiggestTemplateBuilder(org.jclouds.softlayer.compute.SoftLayerTemplateBuilderLiveTest)  Time elapsed: 0.001 sec  <<< FAILURE!
java.lang.AssertionError: expected [16] but found [32]
	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.testng.Assert.assertEquals(Assert.java:380)
	at org.jclouds.softlayer.compute.SoftLayerTemplateBuilderLiveTest.testBiggestTemplateBuilder(SoftLayerTemplateBuilderLiveTest.java:208)

testBiggestTemplateBuilderWhenBootIsSAN(org.jclouds.softlayer.compute.SoftLayerTemplateBuilderLiveTest)  Time elapsed: 57.905 sec  <<< FAILURE!
java.lang.AssertionError: expected [16] but found [32]
	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.testng.Assert.assertEquals(Assert.java:380)
	at org.jclouds.softlayer.compute.SoftLayerTemplateBuilderLiveTest.testBiggestTemplateBuilderWhenBootIsSAN(SoftLayerTemplateBuilderLiveTest.java:146)

testBiggestTemplateBuilderWhenPrivateNetwork(org.jclouds.softlayer.compute.SoftLayerTemplateBuilderLiveTest)  Time elapsed: 56.923 sec  <<< FAILURE!
java.lang.AssertionError: expected [16] but found [32]
	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.testng.Assert.assertEquals(Assert.java:380)
	at org.jclouds.softlayer.compute.SoftLayerTemplateBuilderLiveTest.testBiggestTemplateBuilderWhenPrivateNetwork(SoftLayerTemplateBuilderLiveTest.java:186)

testGetAssignableLocations(org.jclouds.softlayer.compute.SoftLayerTemplateBuilderLiveTest)  Time elapsed: 58.718 sec  <<< FAILURE!
java.lang.AssertionError: {scope=ZONE, id=265592, description=Amsterdam 1, parent=softlayer, iso3166Codes=[NL]} ||{scope=PROVIDER, id=softlayer, description=https://api.softlayer.com/rest, iso3166Codes=[SG, US-CA, US-TX, US-VA, US-WA]}
	at org.jclouds.compute.internal.BaseTemplateBuilderLiveTest.testGetAssignableLocations(BaseTemplateBuilderLiveTest.java:205)
	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)

testListDatacentersContent(org.jclouds.softlayer.features.DatacenterClientLiveTest)  Time elapsed: 0.491 sec  <<< FAILURE!
java.lang.AssertionError: expected [15] but found [12]
	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.testng.Assert.assertEquals(Assert.java:380)
	at org.jclouds.softlayer.features.DatacenterClientLiveTest.testListDatacentersContent(DatacenterClientLiveTest.java:75)

testGetActivePackages(org.jclouds.softlayer.features.AccountClientLiveTest)  Time elapsed: 44.694 sec  <<< FAILURE!
java.lang.AssertionError: [ProductPackage{id=13, name=Dual Xeon (Dual Core) Woodcrest/Cloverton, description=<div class="PageTopicSubHead">Dual Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=15, name=Single Xeon (Dual Core) Woodcrest/Cloverton, description=<div class="PageTopicSubHead">Single Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=16, name=Single Opteron 2000 Series (Dual Core) - OUTLET, description=<div class="PageTopicSubHead">single processor multi core</div>, items=[], locations=[]}, ProductPackage{id=17, name=Dual Opteron 2000 Series (Dual Core), description=<div class="PageTopicSubHead">Dual Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=18, name=Single Opteron 1000 Series (Dual Core) - OUTLET, description=<div class="PageTopicSubHead">single processor multi core</div>, items=[], locations=[]}, ProductPackage{id=19, name=Quad Opteron 8000 series (Dual/Quad Core), description=<div class="PageTopicSubHead">Quad Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=20, name=Express (Dual Core Single Intel and AMD), description=<div class="PageTopicSubHead">express server - single processor multi core</div>, items=[], locations=[]}, ProductPackage{id=23, name=Single Xeon 3200 Series, description=<div class="PageTopicSubHead">Single Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=25, name=Specialty Server: Redundant Power: Xeon 3000, description=<div class="PageTopicSubHead">Specialty Servers: Redundant Power</div>, items=[], locations=[]}, ProductPackage{id=26, name=Specialty Server: Redundant Power: Xeon 5100, 5300, 5400, description=<div class="PageTopicSubHead">Specialty Servers: Redundant Power</div>, items=[], locations=[]}, ProductPackage{id=27, name=Specialty Server: Mass Storage: Xeon 5100, 5300, description=<div class="PageTopicSubHead">Specialty Servers: Mass Storage</div>, items=[], locations=[]}, ProductPackage{id=29, name=Specialty Server: Private Network: Xeon 3000, Opteron 1000, description=<div class="PageTopicSubHead">Specialty Servers: Private Network</div>, items=[], locations=[]}, ProductPackage{id=30, name=Express (Quad Core Single Intel and AMD), description=<div class="PageTopicSubHead">express server - single processor multi core</div>, items=[], locations=[]}, ProductPackage{id=32, name=Quad Processor, Quad Core Intel, description=<div class="PageTopicSubHead">Quad Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=34, name=Quad Opteron 8000 series (Dual/Quad Core) - OUTLET, description=<div class="PageTopicSubHead">quad processor multi core</div>, items=[], locations=[]}, ProductPackage{id=35, name=Dual Xeon (Dual Core) Woodcrest/Cloverton - OUTLET, description=<div class="PageTopicSubHead">dual processor multi core</div>, items=[], locations=[]}, ProductPackage{id=36, name=Single Pentium/Xeon 3000 Dual Core - OUTLET, description=<div class="PageTopicSubHead">single processor multi core</div>, items=[], locations=[]}, ProductPackage{id=38, name=Quad Opteron 8000 series (Dual/Quad Core) - OUTLET, description=<div class="PageTopicSubHead">quad processor multi core</div>, items=[], locations=[]}, ProductPackage{id=39, name=Dual Xeon (Dual Core) Woodcrest/Cloverton - OUTLET, description=<div class="PageTopicSubHead">dual processor multi core</div>, items=[], locations=[]}, ProductPackage{id=41, name=Single Xeon 5500 Series (Nehalem), description=<div class="PageTopicSubHead">Single Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=42, name=Dual Xeon 5500 Series (Nehalem), description=<div class="PageTopicSubHead">Dual Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=43, name=Specialty Server: Redundant Power: Xeon 5500 (Nehalem) Series, description=<div class="PageTopicSubHead">Specialty Servers: Redundant Power</div>, items=[], locations=[]}, ProductPackage{id=44, name=Specialty Server: Mass Storage: Xeon 5500 (Nehalem) Series, description=<div class="PageTopicSubHead">Specialty Servers: Mass Storage</div>, items=[], locations=[]}, ProductPackage{id=45, name=Single Opteron 100 Series - OUTLET, description=<div class="PageTopicSubHead">single processor multi core</div>, items=[], locations=[]}, ProductPackage{id=46, name=Cloud Server, description=<div class="PageTopicSubHead">Cloud Compute Instances</div>, items=[], locations=[]}, ProductPackage{id=49, name=Specialty Server: 4u Redundant power Xeon 5500 (Nehalem) Series, description=<div class="PageTopicSubHead">Specialty Servers: Redundant Power</div>, items=[], locations=[]}, ProductPackage{id=50, name=Bare Metal Instance, description=<div class="PageTopicSubHead">bare metal instance</div>, items=[], locations=[]}, ProductPackage{id=51, name=Single Xeon 3400 Series (Lynnfield), description=<div class="PageTopicSubHead">Single Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=52, name=Specialty Server: 4u Mass Storage Xeon 5500 (Nehalem) Series, description=<div class="PageTopicSubHead">Specialty Servers: Mass Storage</div>, items=[], locations=[]}, ProductPackage{id=53, name=Specialty Server: Private Network: Single Xeon 3400 Series (Lynnfield), description=<div class="PageTopicSubHead">Specialty Servers: Private Network</div>, items=[], locations=[]}, ProductPackage{id=54, name=Specialty Server: Private Network: Dual Xeon 5500 Series (Nehalem), description=<div class="PageTopicSubHead">Specialty Servers: Private Network</div>, items=[], locations=[]}, ProductPackage{id=55, name=Specialty Server: Private Network & Redundant Power: Xeon 5500 (Nehalem) Series, description=<div class="PageTopicSubHead">Specialty Servers: Private Network</div>, items=[], locations=[]}, ProductPackage{id=56, name=Quad Processor Multi Core Nehalem EX, description=<div class="PageTopicSubHead">Quad Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=57, name=Express (Dual Core Single Intel 3040/3050), description=<div class="PageTopicSubHead">Xpress Servers</div>, items=[], locations=[]}, ProductPackage{id=61, name=Virtual Rack MD3000i SAN - HA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=62, name=PC Dual Xeon 5130 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=63, name=PC Dual Xeon 5130 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=64, name=PR Dual Xeon 5520 - SATA, description=Private Rack, items=[], locations=[]}, ProductPackage{id=65, name=Virtual Rack Xeon 3210 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=66, name=Virtual Rack Dual Xeon 5335 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=67, name=PR Dual Xeon 5520 - SAS, description=Private Rack, items=[], locations=[]}, ProductPackage{id=68, name=PR Dual Xeon 5620 - SATA, description=Private Rack, items=[], locations=[]}, ProductPackage{id=69, name=PR Dual Xeon 5620 - SAS, description=Private Rack, items=[], locations=[]}, ProductPackage{id=70, name=Virtual Rack Dual Xeon 5620 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=71, name=Virtual Rack Dual Xeon 5620 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=72, name=PC Dual Xeon 5620 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=73, name=PC Dual Xeon 5620 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=74, name=Virtual Rack Dual Xeon 5660 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=75, name=Virtual Rack Dual Xeon 5660 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=76, name=PC Dual Xeon 5660 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=77, name=PC Dual Xeon 5660 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=78, name=Virtual Rack Quad Xeon 7550 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=79, name=PC Quad Xeon 7550 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=80, name=PR Xeon 3450 - SATA, description=Private Rack, items=[], locations=[]}, ProductPackage{id=81, name=PR Xeon 3450 - SAS, description=Private Rack, items=[], locations=[]}, ProductPackage{id=82, name=Virtual Rack Pentium G6950 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=83, name=PC Pentium G6950 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=84, name=Virtual Rack MD1000 DAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=85, name=Virtual Rack MD3000 DAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=86, name=Virtual Rack MD3000 DAS - HA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=87, name=PR Dual Xeon 5130 - SATA, description=Private Rack, items=[], locations=[]}, ProductPackage{id=88, name=PR Dual Xeon 5130 - SAS, description=Private Rack, items=[], locations=[]}, ProductPackage{id=89, name=PR Dual Xeon 5335 - SAS, description=Private Rack, items=[], locations=[]}, ProductPackage{id=90, name=PR Xeon 3060 - SATA, description=Private Rack, items=[], locations=[]}, ProductPackage{id=91, name=PR Xeon 3060 - SAS, description=Private Rack, items=[], locations=[]}, ProductPackage{id=92, name=PR Xeon 3210 - SATA, description=Private Rack, items=[], locations=[]}, ProductPackage{id=93, name=PR Xeon 3210 - SAS, description=Private Rack, items=[], locations=[]}, ProductPackage{id=94, name=PC Dual Xeon 5335 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=95, name=PC Dual Xeon 5335 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=96, name=PC Dual Xeon 5405 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=97, name=PC Dual Xeon 5405 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=98, name=PC Dual Xeon 5405 - Monster, description=Other (PC), items=[], locations=[]}, ProductPackage{id=99, name=PC Xeon 3360 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=100, name=PC Xeon 3360 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=101, name=PC Dual Xeon 5450 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=102, name=PC Dual Xeon 5450 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=103, name=PR Xeon 3040 - SATA, description=Private Rack, items=[], locations=[]}, ProductPackage{id=104, name=PC Xeon 3210 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=105, name=PC Xeon 3210 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=106, name=PR Dual Xeon 5335 - SATA, description=Private Rack, items=[], locations=[]}, ProductPackage{id=107, name=Virtual Rack Xeon 3360 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=108, name=Virtual Rack Xeon 3360 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=109, name=Virtual Rack Dual Xeon 5450 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=110, name=Virtual Rack Dual Xeon 5450 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=111, name=Virtual Rack Xeon 3210 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=112, name=Virtual Rack Dual Xeon 5130 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=113, name=Virtual Rack Dual Xeon 5335 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=114, name=Virtual Rack Dual Xeon 5130 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=115, name=Virtual Rack Dual Xeon 5405 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=116, name=Virtual Rack Dual Xeon 5405 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=117, name=Virtual Rack Dual Xeon 5405 - Monster, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=118, name=PC Dual Xeon 5520 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=119, name=PC Dual Xeon 5520 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=120, name=Virtual Rack Dual Xeon 5520 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=121, name=Virtual Rack Dual Xeon 5520 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=122, name=PC Xeon 3450 - SATA, description=Other (PC), items=[], locations=[]}, ProductPackage{id=123, name=PC Xeon 3450 - SAS, description=Other (PC), items=[], locations=[]}, ProductPackage{id=124, name=Virtual Rack Xeon 3450 - SATA, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=125, name=Virtual Rack Xeon 3450 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=126, name=Single Xeon 1200 Series (Sandy Bridge), description=<div class="PageTopicSubHead">Single Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=127, name=Single Xeon 3060 - OUTLET, description=<div class="PageTopicSubHead">single processor multi core</div>, items=[], locations=[]}, ProductPackage{id=130, name=Cloud Server (Simplified), description=Cloud Server (Simplified), items=[], locations=[]}, ProductPackage{id=132, name=Virtual Rack Quad Xeon 7450 - SAS, description=Virtual Rack, items=[], locations=[]}, ProductPackage{id=133, name=Quad Opteron 8000 series (Dual/Quad Core) - OUTLET, description=<div class="PageTopicSubHead">quad processor multi core</div>, items=[], locations=[]}, ProductPackage{id=134, name=Single Xeon 3200 Series - OUTLET, description=<div class="PageTopicSubHead">single processor multi core</div>, items=[], locations=[]}, ProductPackage{id=135, name=RightScale XS CCI, description=RightScale XS CCI, items=[], locations=[]}, ProductPackage{id=136, name=RightScale SM CCI, description=RightScale SM CCI, items=[], locations=[]}, ProductPackage{id=137, name=RightScale MD CCI, description=RightScale MD CCI, items=[], locations=[]}, ProductPackage{id=138, name=RightScale LG CCI, description=RightScale LG CCI, items=[], locations=[]}, ProductPackage{id=139, name=RightScale XL CCI, description=RightScale XL CCI, items=[], locations=[]}, ProductPackage{id=140, name=Specialty Server: Mass Storage: QuantaStor, description=<div class="PageTopicSubHead">Specialty Servers: Mass Storage</div>, items=[], locations=[]}, ProductPackage{id=141, name=Specialty Server: 4u Mass Storage: QuantaStor, description=<div class="PageTopicSubHead">Specialty Servers: Mass Storage</div>, items=[], locations=[]}, ProductPackage{id=142, name=Single Xeon 2000 Series (Sandy Bridge), description=<div class="PageTopicSubHead">Single Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=143, name=Dual Xeon 2000 Series (Sandy Bridge), description=<div class="PageTopicSubHead">Dual Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=144, name=Specialty Server: GPU, description=<div class="PageTopicSubHead">Specialty Servers: GPU</div>, items=[], locations=[]}, ProductPackage{id=145, name=Express (Intel Xeon 3460), description=<div class="PageTopicSubHead">Xpress Servers</div>, items=[], locations=[]}, ProductPackage{id=146, name=Express (Sandy Bridge 1270), description=<div class="PageTopicSubHead">Xpress Servers</div>, items=[], locations=[]}, ProductPackage{id=147, name=Specialty Server: 4u Mass Storage Dual Xeon 2000 (Sandy Bridge) Series, description=<div class="PageTopicSubHead">Specialty Servers: Mass Storage</div>, items=[], locations=[]}, ProductPackage{id=148, name=Specialty Server: 2u Mass Storage Dual Xeon 2000 (Sandy Bridge) Series, description=<div class="PageTopicSubHead">Specialty Servers: Mass Storage</div>, items=[], locations=[]}, ProductPackage{id=151, name=CloudPlatform Management Server, description=<div class="PageTopicSubHead">CloudPlatform Management Server</div>, items=[], locations=[]}, ProductPackage{id=152, name=CloudPlatform Host Server (1U / 2Proc), description=<div class="PageTopicSubHead">CloudPlatform Host Server (1U / 2Proc)</div>, items=[], locations=[]}, ProductPackage{id=153, name=CloudPlatform Host Server (2U / 2Proc), description=<div class="PageTopicSubHead">CloudPlatform Host Server (2U / 2Proc)</div>, items=[], locations=[]}, ProductPackage{id=154, name=CloudPlatform Host Server (2U / 4Proc), description=<div class="PageTopicSubHead">CloudPlatform Host Server (2U / 4Proc)</div>, items=[], locations=[]}, ProductPackage{id=155, name=Small, description=<div class="PageTopicSubHead">MongoDB Servers</div>, items=[], locations=[]}, ProductPackage{id=157, name=Large, description=<div class="PageTopicSubHead">MongoDB Servers</div>, items=[], locations=[]}, ProductPackage{id=158, name=Quad Xeon 4000 Series (Sandy Bridge), description=<div class="PageTopicSubHead">Quad Processor Multi-core Servers</div>, items=[], locations=[]}, ProductPackage{id=160, name=Medium, description=<div class="PageTopicSubHead">MongoDB Servers</div>, items=[], locations=[]}, ProductPackage{id=161, name=RightScale MD (High Mem) CCI, description=RightScale MD (High Mem) CCI, items=[], locations=[]}, ProductPackage{id=162, name=ScaleRight LG (High Mem) Private CCI, description=ScaleRight LG (High Mem) Private CCI, items=[], locations=[]}, ProductPackage{id=163, name=ScaleRight XS Private CCI, description=ScaleRight XS Private CCI, items=[], locations=[]}, ProductPackage{id=164, name=ScaleRight SM Private CCI, description=ScaleRight SM Private CCI, items=[], locations=[]}, ProductPackage{id=165, name=ScaleRight MD Private CCI, description=ScaleRight MD Private CCI, items=[], locations=[]}, ProductPackage{id=166, name=ScaleRight LG Private CCI, description=ScaleRight LG Private CCI, items=[], locations=[]}, ProductPackage{id=168, name=RightScale LG (High Mem) CCI, description=RightScale LG (High Mem) CCI, items=[], locations=[]}, ProductPackage{id=169, name=ScaleRight MD (High Mem) Private CCI, description=ScaleRight MD (High Mem) Private CCI, items=[], locations=[]}, ProductPackage{id=171, name=Small, description=null, items=[], locations=[]}, ProductPackage{id=172, name=Medium, description=null, items=[], locations=[]}]
	at org.jclouds.softlayer.features.AccountClientLiveTest.testGetActivePackages(AccountClientLiveTest.java:45)

testAScriptExecutionAfterBootWithBasicTemplate(org.jclouds.softlayer.compute.SoftLayerComputeServiceLiveTest)  Time elapsed: 66.732 sec  <<< FAILURE!
java.util.NoSuchElementException: ProductItem has no prices:ProductItem{id=4174, description=Ubuntu Linux 12.04 LTS Precise Pangolin - Minimal Install (64 bit), units=N/A, capacity=0.0, prices=[], categories=[ProductItemCategory{id=12, name=Operating System, categoryCode=os}]}
	at org.jclouds.softlayer.compute.functions.ProductItems$3.apply(ProductItems.java:66)
	at org.jclouds.softlayer.compute.functions.ProductItems$3.apply(ProductItems.java:62)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage$4.apply(ProductItemToImage.java:183)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage$4.apply(ProductItemToImage.java:179)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage.apply(ProductItemToImage.java:89)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata$GetImageForVirtualGuest.getImage(VirtualGuestToNodeMetadata.java:152)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata.apply(VirtualGuestToNodeMetadata.java:89)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata.apply(VirtualGuestToNodeMetadata.java:54)
	at com.google.common.base.Functions$FunctionComposition.apply(Functions.java:210)
	at com.google.common.collect.Iterators$8.transform(Iterators.java:860)
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
	at com.google.common.collect.Iterators$7.computeNext(Iterators.java:701)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
	at com.google.common.collect.Sets.newLinkedHashSet(Sets.java:295)
	at org.jclouds.compute.internal.BaseComputeService.detailsOnAllNodes(BaseComputeService.java:658)
	at org.jclouds.compute.internal.BaseComputeService.nodesMatchingFilterAndNotTerminated(BaseComputeService.java:318)
	at org.jclouds.compute.internal.BaseComputeService.destroyNodesMatching(BaseComputeService.java:258)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest.testAScriptExecutionAfterBootWithBasicTemplate(BaseComputeServiceLiveTest.java:272)
	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)

testConcurrentUseOfComputeServiceToCreateNodes(org.jclouds.softlayer.compute.SoftLayerComputeServiceLiveTest)  Time elapsed: 6.349 sec  <<< FAILURE!
java.util.NoSuchElementException: ProductItem has no prices:ProductItem{id=4174, description=Ubuntu Linux 12.04 LTS Precise Pangolin - Minimal Install (64 bit), units=N/A, capacity=0.0, prices=[], categories=[ProductItemCategory{id=12, name=Operating System, categoryCode=os}]}
	at org.jclouds.softlayer.compute.functions.ProductItems$3.apply(ProductItems.java:66)
	at org.jclouds.softlayer.compute.functions.ProductItems$3.apply(ProductItems.java:62)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage$4.apply(ProductItemToImage.java:183)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage$4.apply(ProductItemToImage.java:179)
	at org.jclouds.softlayer.compute.functions.ProductItemToImage.apply(ProductItemToImage.java:89)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata$GetImageForVirtualGuest.getImage(VirtualGuestToNodeMetadata.java:152)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata.apply(VirtualGuestToNodeMetadata.java:89)
	at org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata.apply(VirtualGuestToNodeMetadata.java:54)
	at com.google.common.base.Functions$FunctionComposition.apply(Functions.java:210)
	at com.google.common.collect.Iterators$8.transform(Iterators.java:860)
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
	at com.google.common.collect.Iterators$7.computeNext(Iterators.java:701)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
	at com.google.common.collect.Sets.newLinkedHashSet(Sets.java:295)
	at org.jclouds.compute.internal.BaseComputeService.detailsOnAllNodes(BaseComputeService.java:658)
	at org.jclouds.compute.internal.BaseComputeService.nodesMatchingFilterAndNotTerminated(BaseComputeService.java:318)
	at org.jclouds.compute.internal.BaseComputeService.destroyNodesMatching(BaseComputeService.java:258)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest.testConcurrentUseOfComputeServiceToCreateNodes(BaseComputeServiceLiveTest.java:452)
	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)

