Merge branch 'trunk' into compute-clean
diff --git a/demos/secrets.py-dist b/demos/secrets.py-dist
index 57e7500..9cee1e5 100644
--- a/demos/secrets.py-dist
+++ b/demos/secrets.py-dist
@@ -16,10 +16,8 @@
 # Make a copy of this file named 'secrets.py' and add your credentials there.
 # Note you can run unit tests without setting your credentials.
 
-BLUEBOX_PARAMS = ('customer_id', 'api_key')
 BRIGHTBOX_PARAMS = ('client_id', 'client_secret')
 EC2_PARAMS = ('access_id', 'secret')
-ECP_PARAMS = ('user_name', 'password')
 GANDI_PARAMS = ('user',)
 # Service Account Authentication
 GCE_PARAMS = ('email@developer.gserviceaccount.com', 'key')
@@ -33,7 +31,5 @@
 OPSOURCE_PARAMS = ('user', 'password')
 RACKSPACE_PARAMS = ('user', 'key')
 SLICEHOST_PARAMS = ('key',)
-SOFTLAYER_PARAMS = ('user', 'api_key')
 VCLOUD_PARAMS = ('user', 'secret')
-VOXEL_PARAMS = ('key', 'secret')
 VPSNET_PARAMS = ('user', 'key')
diff --git a/docs/compute/_supported_methods_block_storage.rst b/docs/compute/_supported_methods_block_storage.rst
index c78c4c0..6621e47 100644
--- a/docs/compute/_supported_methods_block_storage.rst
+++ b/docs/compute/_supported_methods_block_storage.rst
@@ -8,64 +8,46 @@
 `PCextreme AuroraCompute`_            yes          yes           yes            yes           yes           no             yes            
 `Azure Virtual machines`_             yes          yes           yes            yes           yes           no             yes            
 `Azure Virtual machines`_             yes          yes           yes            yes           yes           yes            yes            
-`Bluebox Blocks`_                     no           no            no             no            no            no             no             
 `Brightbox`_                          no           no            no             no            no            no             no             
-`BSNL`_                               no           no            no             no            no            no             no             
 `Cloudscale`_                         no           no            no             no            no            no             no             
 `CloudSigma (API v2.0)`_              yes          yes           yes            yes           yes           no             no             
 `CloudStack`_                         yes          yes           yes            yes           yes           no             yes            
-`Cloudwatt`_                          yes          yes           yes            yes           yes           yes            yes            
 `DigitalOcean`_                       yes          yes           yes            yes           yes           yes            yes            
 `DimensionData`_                      no           no            no             no            no            no             no             
 `Amazon EC2`_                         yes          yes           yes            yes           yes           yes            yes            
-`Enomaly Elastic Computing Platform`_ no           no            no             no            no            no             no             
-`ElasticHosts`_                       no           no            no             no            no            no             no             
 `EquinixMetal`_                       yes          yes           yes            yes           yes           yes            yes            
 `Eucalyptus`_                         yes          yes           yes            yes           yes           yes            yes            
 `Exoscale`_                           yes          yes           yes            yes           yes           no             yes            
 `Gandi`_                              yes          yes           yes            yes           yes           no             no             
 `Google Compute Engine`_              yes          yes           yes            yes           yes           yes            yes            
 `GiG G8 Node Provider`_               yes          yes           yes            yes           yes           no             no             
-`GoGrid`_                             no           no            no             no            no            no             no             
 `Gridscale`_                          yes          yes           yes            yes           yes           yes            yes            
-`HostVirtual`_                        no           no            no             no            no            no             no             
 `Ikoula`_                             yes          yes           yes            yes           yes           no             yes            
-`Indosat`_                            no           no            no             no            no            no             no             
 `InternetSolutions`_                  no           no            no             no            no            no             no             
-`Joyent`_                             no           no            no             no            no            no             no             
 `Kamatera`_                           no           no            no             no            no            no             no             
-`Kili Public Cloud`_                  yes          yes           yes            yes           yes           yes            yes            
 `KTUCloud`_                           yes          yes           yes            yes           yes           no             yes            
 `kubevirt`_                           yes          yes           yes            yes           yes           no             no             
 `Libvirt`_                            no           no            no             no            no            no             no             
 `Linode`_                             yes          yes           yes            yes           yes           no             no             
 `Maxihost`_                           no           no            no             no            no            no             no             
-`MedOne`_                             no           no            no             no            no            no             no             
-`NephoScale`_                         no           no            no             no            no            no             no             
 `Nimbus`_                             yes          yes           yes            yes           yes           yes            yes            
 `NTTAmerica`_                         no           no            no             no            no            no             no             
 `NTTC-CIS`_                           no           no            no             no            no            no             no             
 `OnApp`_                              no           no            no             no            no            no             no             
-`1and1`_                              no           no            no             no            no            no             no             
 `OpenNebula (v3.8)`_                  yes          yes           yes            yes           yes           no             no             
 `OpenStack`_                          yes          yes           yes            yes           yes           no             no             
 `Outscale API`_                       yes          yes           yes            yes           yes           yes            yes            
 `Outscale INC`_                       yes          yes           yes            yes           yes           yes            yes            
 `Outscale SAS`_                       yes          yes           yes            yes           yes           yes            yes            
 `Ovh`_                                yes          yes           yes            yes           yes           yes            yes            
-`ProfitBricks`_                       yes          yes           yes            yes           yes           no             yes            
 `Rackspace Cloud (Next Gen)`_         yes          yes           yes            yes           yes           yes            yes            
 `Rackspace Cloud (First Gen)`_        yes          yes           yes            yes           yes           no             no             
 `RimuHosting`_                        no           no            no             no            no            no             no             
 `Scaleway`_                           yes          yes           yes            no            no            yes            yes            
-`ServerLove`_                         no           no            no             no            no            no             no             
-`skalicloud`_                         no           no            no             no            no            no             no             
-`SoftLayer`_                          no           no            no             no            no            no             no             
 `vCloud`_                             no           no            no             no            no            no             no             
 `Upcloud`_                            no           no            no             no            no            no             no             
 `VCL`_                                no           no            no             no            no            no             no             
 `vCloud`_                             no           no            no             no            no            no             no             
-`Voxel VoxCLOUD`_                     no           no            no             no            no            no             no             
 `vps.net`_                            no           no            no             no            no            no             no             
 `VMware vSphere`_                     no           no            no             no            no            no             no             
 `Vultr`_                              yes          yes           yes            yes           yes           no             no             
@@ -76,64 +58,46 @@
 .. _`PCextreme AuroraCompute`: https://www.pcextreme.com/aurora/compute
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
-.. _`Bluebox Blocks`: http://bluebox.net
 .. _`Brightbox`: http://www.brightbox.co.uk/
-.. _`BSNL`: http://www.bsnlcloud.com/
 .. _`Cloudscale`: https://www.cloudscale.ch
 .. _`CloudSigma (API v2.0)`: http://www.cloudsigma.com/
 .. _`CloudStack`: http://cloudstack.org/
-.. _`Cloudwatt`: https://www.cloudwatt.com/
 .. _`DigitalOcean`: https://www.digitalocean.com
 .. _`DimensionData`: http://www.dimensiondata.com/
 .. _`Amazon EC2`: http://aws.amazon.com/ec2/
-.. _`Enomaly Elastic Computing Platform`: http://www.enomaly.com/
-.. _`ElasticHosts`: http://www.elastichosts.com/
 .. _`EquinixMetal`: https://metal.equinix.com/
 .. _`Eucalyptus`: http://www.eucalyptus.com/
 .. _`Exoscale`: https://www.exoscale.com/
 .. _`Gandi`: http://www.gandi.net/
 .. _`Google Compute Engine`: https://cloud.google.com/
 .. _`GiG G8 Node Provider`: https://gig.tech
-.. _`GoGrid`: http://www.gogrid.com/
 .. _`Gridscale`: https://gridscale.io
-.. _`HostVirtual`: http://www.hostvirtual.com
 .. _`Ikoula`: http://express.ikoula.co.uk/cloudstack
-.. _`Indosat`: http://www.indosat.com/
 .. _`InternetSolutions`: http://www.is.co.za/
-.. _`Joyent`: http://www.joyentcloud.com
 .. _`Kamatera`: https://www.kamatera.com/
-.. _`Kili Public Cloud`: http://kili.io/
 .. _`KTUCloud`: https://ucloudbiz.olleh.com/
 .. _`kubevirt`: https://www.kubevirt.io
 .. _`Libvirt`: http://libvirt.org/
 .. _`Linode`: http://www.linode.com/
 .. _`Maxihost`: https://www.maxihost.com/
-.. _`MedOne`: http://www.med-1.com/
-.. _`NephoScale`: http://www.nephoscale.com
 .. _`Nimbus`: http://www.nimbusproject.org/
 .. _`NTTAmerica`: http://www.nttamerica.com/
 .. _`NTTC-CIS`: https://www.us.ntt.com/en/services/cloud/enterprise-cloud.html
 .. _`OnApp`: http://onapp.com/
-.. _`1and1`: http://www.1and1.com
 .. _`OpenNebula (v3.8)`: http://opennebula.org/
 .. _`OpenStack`: http://openstack.org/
 .. _`Outscale API`: http://www.outscale.com
 .. _`Outscale INC`: http://www.outscale.com
 .. _`Outscale SAS`: http://www.outscale.com
 .. _`Ovh`: https://www.ovh.com/
-.. _`ProfitBricks`: http://www.profitbricks.com
 .. _`Rackspace Cloud (Next Gen)`: http://www.rackspace.com
 .. _`Rackspace Cloud (First Gen)`: http://www.rackspace.com
 .. _`RimuHosting`: http://rimuhosting.com/
 .. _`Scaleway`: https://www.scaleway.com/
-.. _`ServerLove`: http://www.serverlove.com/
-.. _`skalicloud`: http://www.skalicloud.com/
-.. _`SoftLayer`: http://www.softlayer.com/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
 .. _`Upcloud`: https://www.upcloud.com
 .. _`VCL`: http://incubator.apache.org/vcl/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
-.. _`Voxel VoxCLOUD`: http://www.voxel.net/
 .. _`vps.net`: http://vps.net/
 .. _`VMware vSphere`: http://www.vmware.com/products/vsphere/
 .. _`Vultr`: https://www.vultr.com
diff --git a/docs/compute/_supported_methods_image_management.rst b/docs/compute/_supported_methods_image_management.rst
index 691818d..f40cdf4 100644
--- a/docs/compute/_supported_methods_image_management.rst
+++ b/docs/compute/_supported_methods_image_management.rst
@@ -8,64 +8,46 @@
 `PCextreme AuroraCompute`_            yes         no        no           no           no        
 `Azure Virtual machines`_             yes         no        no           no           no        
 `Azure Virtual machines`_             yes         yes       no           no           no        
-`Bluebox Blocks`_                     yes         no        no           no           no        
 `Brightbox`_                          yes         no        no           no           no        
-`BSNL`_                               yes         no        no           no           no        
 `Cloudscale`_                         yes         no        no           no           no        
 `CloudSigma (API v2.0)`_              yes         no        no           no           no        
 `CloudStack`_                         yes         no        no           no           no        
-`Cloudwatt`_                          yes         yes       yes          yes          no        
 `DigitalOcean`_                       yes         yes       yes          yes          no        
 `DimensionData`_                      yes         no        no           no           no        
 `Amazon EC2`_                         yes         yes       yes          yes          yes       
-`Enomaly Elastic Computing Platform`_ yes         no        no           no           no        
-`ElasticHosts`_                       yes         no        no           no           no        
 `EquinixMetal`_                       yes         no        no           no           no        
 `Eucalyptus`_                         yes         yes       yes          yes          yes       
 `Exoscale`_                           yes         no        no           no           no        
 `Gandi`_                              yes         no        no           no           no        
 `Google Compute Engine`_              yes         no        no           no           no        
 `GiG G8 Node Provider`_               yes         no        no           no           no        
-`GoGrid`_                             yes         no        no           no           no        
 `Gridscale`_                          yes         yes       yes          yes          no        
-`HostVirtual`_                        yes         no        no           no           no        
 `Ikoula`_                             yes         no        no           no           no        
-`Indosat`_                            yes         no        no           no           no        
 `InternetSolutions`_                  yes         no        no           no           no        
-`Joyent`_                             yes         no        no           no           no        
 `Kamatera`_                           yes         no        no           no           no        
-`Kili Public Cloud`_                  yes         yes       yes          yes          no        
 `KTUCloud`_                           yes         no        no           no           no        
 `kubevirt`_                           yes         no        no           no           no        
 `Libvirt`_                            no          no        no           no           no        
 `Linode`_                             yes         no        yes          yes          no        
 `Maxihost`_                           yes         no        no           no           no        
-`MedOne`_                             yes         no        no           no           no        
-`NephoScale`_                         yes         no        no           no           no        
 `Nimbus`_                             yes         yes       yes          yes          yes       
 `NTTAmerica`_                         yes         no        no           no           no        
 `NTTC-CIS`_                           yes         no        no           no           no        
 `OnApp`_                              yes         no        no           no           no        
-`1and1`_                              yes         yes       no           no           no        
 `OpenNebula (v3.8)`_                  yes         no        no           no           no        
 `OpenStack`_                          yes         yes       no           no           no        
 `Outscale API`_                       yes         yes       yes          yes          no        
 `Outscale INC`_                       yes         yes       yes          yes          yes       
 `Outscale SAS`_                       yes         yes       yes          yes          yes       
 `Ovh`_                                yes         yes       no           no           no        
-`ProfitBricks`_                       yes         no        no           no           no        
 `Rackspace Cloud (Next Gen)`_         yes         yes       yes          yes          no        
 `Rackspace Cloud (First Gen)`_        yes         yes       yes          yes          no        
 `RimuHosting`_                        yes         no        no           no           no        
 `Scaleway`_                           yes         yes       yes          yes          no        
-`ServerLove`_                         yes         no        no           no           no        
-`skalicloud`_                         yes         no        no           no           no        
-`SoftLayer`_                          yes         yes       no           no           no        
 `vCloud`_                             yes         no        no           no           no        
 `Upcloud`_                            yes         no        no           no           no        
 `VCL`_                                yes         no        no           no           no        
 `vCloud`_                             yes         no        no           no           no        
-`Voxel VoxCLOUD`_                     yes         no        no           no           no        
 `vps.net`_                            yes         no        no           no           no        
 `VMware vSphere`_                     yes         no        no           no           no        
 `Vultr`_                              yes         no        no           no           no        
@@ -76,64 +58,46 @@
 .. _`PCextreme AuroraCompute`: https://www.pcextreme.com/aurora/compute
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
-.. _`Bluebox Blocks`: http://bluebox.net
 .. _`Brightbox`: http://www.brightbox.co.uk/
-.. _`BSNL`: http://www.bsnlcloud.com/
 .. _`Cloudscale`: https://www.cloudscale.ch
 .. _`CloudSigma (API v2.0)`: http://www.cloudsigma.com/
 .. _`CloudStack`: http://cloudstack.org/
-.. _`Cloudwatt`: https://www.cloudwatt.com/
 .. _`DigitalOcean`: https://www.digitalocean.com
 .. _`DimensionData`: http://www.dimensiondata.com/
 .. _`Amazon EC2`: http://aws.amazon.com/ec2/
-.. _`Enomaly Elastic Computing Platform`: http://www.enomaly.com/
-.. _`ElasticHosts`: http://www.elastichosts.com/
 .. _`EquinixMetal`: https://metal.equinix.com/
 .. _`Eucalyptus`: http://www.eucalyptus.com/
 .. _`Exoscale`: https://www.exoscale.com/
 .. _`Gandi`: http://www.gandi.net/
 .. _`Google Compute Engine`: https://cloud.google.com/
 .. _`GiG G8 Node Provider`: https://gig.tech
-.. _`GoGrid`: http://www.gogrid.com/
 .. _`Gridscale`: https://gridscale.io
-.. _`HostVirtual`: http://www.hostvirtual.com
 .. _`Ikoula`: http://express.ikoula.co.uk/cloudstack
-.. _`Indosat`: http://www.indosat.com/
 .. _`InternetSolutions`: http://www.is.co.za/
-.. _`Joyent`: http://www.joyentcloud.com
 .. _`Kamatera`: https://www.kamatera.com/
-.. _`Kili Public Cloud`: http://kili.io/
 .. _`KTUCloud`: https://ucloudbiz.olleh.com/
 .. _`kubevirt`: https://www.kubevirt.io
 .. _`Libvirt`: http://libvirt.org/
 .. _`Linode`: http://www.linode.com/
 .. _`Maxihost`: https://www.maxihost.com/
-.. _`MedOne`: http://www.med-1.com/
-.. _`NephoScale`: http://www.nephoscale.com
 .. _`Nimbus`: http://www.nimbusproject.org/
 .. _`NTTAmerica`: http://www.nttamerica.com/
 .. _`NTTC-CIS`: https://www.us.ntt.com/en/services/cloud/enterprise-cloud.html
 .. _`OnApp`: http://onapp.com/
-.. _`1and1`: http://www.1and1.com
 .. _`OpenNebula (v3.8)`: http://opennebula.org/
 .. _`OpenStack`: http://openstack.org/
 .. _`Outscale API`: http://www.outscale.com
 .. _`Outscale INC`: http://www.outscale.com
 .. _`Outscale SAS`: http://www.outscale.com
 .. _`Ovh`: https://www.ovh.com/
-.. _`ProfitBricks`: http://www.profitbricks.com
 .. _`Rackspace Cloud (Next Gen)`: http://www.rackspace.com
 .. _`Rackspace Cloud (First Gen)`: http://www.rackspace.com
 .. _`RimuHosting`: http://rimuhosting.com/
 .. _`Scaleway`: https://www.scaleway.com/
-.. _`ServerLove`: http://www.serverlove.com/
-.. _`skalicloud`: http://www.skalicloud.com/
-.. _`SoftLayer`: http://www.softlayer.com/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
 .. _`Upcloud`: https://www.upcloud.com
 .. _`VCL`: http://incubator.apache.org/vcl/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
-.. _`Voxel VoxCLOUD`: http://www.voxel.net/
 .. _`vps.net`: http://vps.net/
 .. _`VMware vSphere`: http://www.vmware.com/products/vsphere/
 .. _`Vultr`: https://www.vultr.com
diff --git a/docs/compute/_supported_methods_key_pair_management.rst b/docs/compute/_supported_methods_key_pair_management.rst
index 3ac6f7f..e663a2e 100644
--- a/docs/compute/_supported_methods_key_pair_management.rst
+++ b/docs/compute/_supported_methods_key_pair_management.rst
@@ -8,64 +8,46 @@
 `PCextreme AuroraCompute`_            yes            yes          yes             yes                           no                          yes            
 `Azure Virtual machines`_             no             no           no              no                            no                          no             
 `Azure Virtual machines`_             no             no           no              no                            no                          no             
-`Bluebox Blocks`_                     no             no           no              no                            no                          no             
 `Brightbox`_                          no             no           no              no                            no                          no             
-`BSNL`_                               no             no           no              no                            no                          no             
 `Cloudscale`_                         no             no           no              no                            no                          no             
 `CloudSigma (API v2.0)`_              yes            yes          yes             yes                           no                          yes            
 `CloudStack`_                         yes            yes          yes             yes                           no                          yes            
-`Cloudwatt`_                          yes            yes          yes             yes                           no                          yes            
 `DigitalOcean`_                       yes            yes          yes             no                            no                          yes            
 `DimensionData`_                      no             no           no              no                            no                          no             
 `Amazon EC2`_                         yes            yes          yes             yes                           no                          yes            
-`Enomaly Elastic Computing Platform`_ no             no           no              no                            no                          no             
-`ElasticHosts`_                       no             no           no              no                            no                          no             
 `EquinixMetal`_                       yes            no           yes             no                            no                          yes            
 `Eucalyptus`_                         yes            yes          yes             yes                           no                          yes            
 `Exoscale`_                           yes            yes          yes             yes                           no                          yes            
 `Gandi`_                              yes            yes          no              yes                           no                          yes            
 `Google Compute Engine`_              no             no           no              no                            no                          no             
 `GiG G8 Node Provider`_               no             no           no              no                            no                          no             
-`GoGrid`_                             no             no           no              no                            no                          no             
 `Gridscale`_                          yes            no           no              yes                           no                          no             
-`HostVirtual`_                        no             no           no              no                            no                          no             
 `Ikoula`_                             yes            yes          yes             yes                           no                          yes            
-`Indosat`_                            no             no           no              no                            no                          no             
 `InternetSolutions`_                  no             no           no              no                            no                          no             
-`Joyent`_                             no             no           no              no                            no                          no             
 `Kamatera`_                           no             no           no              no                            no                          no             
-`Kili Public Cloud`_                  yes            yes          yes             yes                           no                          yes            
 `KTUCloud`_                           yes            yes          yes             yes                           no                          yes            
 `kubevirt`_                           no             no           no              no                            no                          no             
 `Libvirt`_                            no             no           no              no                            no                          no             
 `Linode`_                             no             no           no              no                            no                          no             
 `Maxihost`_                           yes            no           yes             no                            no                          no             
-`MedOne`_                             no             no           no              no                            no                          no             
-`NephoScale`_                         no             no           no              no                            no                          no             
 `Nimbus`_                             yes            yes          yes             yes                           no                          yes            
 `NTTAmerica`_                         no             no           no              no                            no                          no             
 `NTTC-CIS`_                           no             no           no              no                            no                          no             
 `OnApp`_                              yes            yes          no              yes                           no                          yes            
-`1and1`_                              no             no           no              no                            no                          no             
 `OpenNebula (v3.8)`_                  no             no           no              no                            no                          no             
 `OpenStack`_                          no             no           no              no                            no                          no             
 `Outscale API`_                       yes            yes          yes             no                            no                          yes            
 `Outscale INC`_                       yes            yes          yes             yes                           no                          yes            
 `Outscale SAS`_                       yes            yes          yes             yes                           no                          yes            
 `Ovh`_                                yes            yes          no              yes                           no                          yes            
-`ProfitBricks`_                       no             no           no              no                            no                          no             
 `Rackspace Cloud (Next Gen)`_         yes            yes          yes             yes                           no                          yes            
 `Rackspace Cloud (First Gen)`_        no             no           no              no                            no                          no             
 `RimuHosting`_                        no             no           no              no                            no                          no             
 `Scaleway`_                           yes            no           no              yes                           no                          yes            
-`ServerLove`_                         no             no           no              no                            no                          no             
-`skalicloud`_                         no             no           no              no                            no                          no             
-`SoftLayer`_                          yes            yes          yes             yes                           no                          yes            
 `vCloud`_                             no             no           no              no                            no                          no             
 `Upcloud`_                            no             no           no              no                            no                          no             
 `VCL`_                                no             no           no              no                            no                          no             
 `vCloud`_                             no             no           no              no                            no                          no             
-`Voxel VoxCLOUD`_                     no             no           no              no                            no                          no             
 `vps.net`_                            no             no           no              no                            no                          no             
 `VMware vSphere`_                     no             no           no              no                            no                          no             
 `Vultr`_                              yes            yes          no              yes                           no                          yes            
@@ -76,64 +58,46 @@
 .. _`PCextreme AuroraCompute`: https://www.pcextreme.com/aurora/compute
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
-.. _`Bluebox Blocks`: http://bluebox.net
 .. _`Brightbox`: http://www.brightbox.co.uk/
-.. _`BSNL`: http://www.bsnlcloud.com/
 .. _`Cloudscale`: https://www.cloudscale.ch
 .. _`CloudSigma (API v2.0)`: http://www.cloudsigma.com/
 .. _`CloudStack`: http://cloudstack.org/
-.. _`Cloudwatt`: https://www.cloudwatt.com/
 .. _`DigitalOcean`: https://www.digitalocean.com
 .. _`DimensionData`: http://www.dimensiondata.com/
 .. _`Amazon EC2`: http://aws.amazon.com/ec2/
-.. _`Enomaly Elastic Computing Platform`: http://www.enomaly.com/
-.. _`ElasticHosts`: http://www.elastichosts.com/
 .. _`EquinixMetal`: https://metal.equinix.com/
 .. _`Eucalyptus`: http://www.eucalyptus.com/
 .. _`Exoscale`: https://www.exoscale.com/
 .. _`Gandi`: http://www.gandi.net/
 .. _`Google Compute Engine`: https://cloud.google.com/
 .. _`GiG G8 Node Provider`: https://gig.tech
-.. _`GoGrid`: http://www.gogrid.com/
 .. _`Gridscale`: https://gridscale.io
-.. _`HostVirtual`: http://www.hostvirtual.com
 .. _`Ikoula`: http://express.ikoula.co.uk/cloudstack
-.. _`Indosat`: http://www.indosat.com/
 .. _`InternetSolutions`: http://www.is.co.za/
-.. _`Joyent`: http://www.joyentcloud.com
 .. _`Kamatera`: https://www.kamatera.com/
-.. _`Kili Public Cloud`: http://kili.io/
 .. _`KTUCloud`: https://ucloudbiz.olleh.com/
 .. _`kubevirt`: https://www.kubevirt.io
 .. _`Libvirt`: http://libvirt.org/
 .. _`Linode`: http://www.linode.com/
 .. _`Maxihost`: https://www.maxihost.com/
-.. _`MedOne`: http://www.med-1.com/
-.. _`NephoScale`: http://www.nephoscale.com
 .. _`Nimbus`: http://www.nimbusproject.org/
 .. _`NTTAmerica`: http://www.nttamerica.com/
 .. _`NTTC-CIS`: https://www.us.ntt.com/en/services/cloud/enterprise-cloud.html
 .. _`OnApp`: http://onapp.com/
-.. _`1and1`: http://www.1and1.com
 .. _`OpenNebula (v3.8)`: http://opennebula.org/
 .. _`OpenStack`: http://openstack.org/
 .. _`Outscale API`: http://www.outscale.com
 .. _`Outscale INC`: http://www.outscale.com
 .. _`Outscale SAS`: http://www.outscale.com
 .. _`Ovh`: https://www.ovh.com/
-.. _`ProfitBricks`: http://www.profitbricks.com
 .. _`Rackspace Cloud (Next Gen)`: http://www.rackspace.com
 .. _`Rackspace Cloud (First Gen)`: http://www.rackspace.com
 .. _`RimuHosting`: http://rimuhosting.com/
 .. _`Scaleway`: https://www.scaleway.com/
-.. _`ServerLove`: http://www.serverlove.com/
-.. _`skalicloud`: http://www.skalicloud.com/
-.. _`SoftLayer`: http://www.softlayer.com/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
 .. _`Upcloud`: https://www.upcloud.com
 .. _`VCL`: http://incubator.apache.org/vcl/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
-.. _`Voxel VoxCLOUD`: http://www.voxel.net/
 .. _`vps.net`: http://vps.net/
 .. _`VMware vSphere`: http://www.vmware.com/products/vsphere/
 .. _`Vultr`: https://www.vultr.com
diff --git a/docs/compute/_supported_methods_main.rst b/docs/compute/_supported_methods_main.rst
index 2e600a2..3a84bf4 100644
--- a/docs/compute/_supported_methods_main.rst
+++ b/docs/compute/_supported_methods_main.rst
@@ -8,64 +8,46 @@
 `PCextreme AuroraCompute`_            yes        yes         yes         yes          no         no        yes         yes        yes        
 `Azure Virtual machines`_             yes        yes         yes         yes          no         no        yes         yes        yes        
 `Azure Virtual machines`_             yes        yes         yes         yes          yes        yes       yes         yes        yes        
-`Bluebox Blocks`_                     yes        yes         yes         yes          no         no        yes         yes        yes        
 `Brightbox`_                          yes        yes         no          yes          no         no        yes         yes        no         
-`BSNL`_                               yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Cloudscale`_                         yes        yes         yes         yes          yes        yes       yes         yes        no         
 `CloudSigma (API v2.0)`_              yes        yes         yes         yes          yes        yes       yes         yes        no         
 `CloudStack`_                         yes        yes         yes         yes          no         no        yes         yes        yes        
-`Cloudwatt`_                          yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `DigitalOcean`_                       yes        yes         yes         yes          no         no        yes         yes        no         
 `DimensionData`_                      yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Amazon EC2`_                         yes        yes         yes         yes          yes        yes       yes         yes        yes        
-`Enomaly Elastic Computing Platform`_ yes        yes         yes         yes          no         no        yes         yes        no         
-`ElasticHosts`_                       yes        yes         yes         yes          no         no        yes         yes        yes        
 `EquinixMetal`_                       yes        yes         yes         yes          yes        yes       yes         yes        no         
 `Eucalyptus`_                         yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Exoscale`_                           yes        yes         yes         yes          no         no        yes         yes        yes        
 `Gandi`_                              yes        yes         yes         yes          no         no        yes         yes        no         
 `Google Compute Engine`_              yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `GiG G8 Node Provider`_               yes        yes         yes         yes          yes        yes       yes         yes        no         
-`GoGrid`_                             yes        yes         yes         yes          no         no        yes         yes        yes        
 `Gridscale`_                          yes        yes         yes         yes          yes        no        yes         no         yes        
-`HostVirtual`_                        yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Ikoula`_                             yes        yes         yes         yes          no         no        yes         yes        yes        
-`Indosat`_                            yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `InternetSolutions`_                  yes        yes         yes         yes          yes        yes       yes         yes        yes        
-`Joyent`_                             yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Kamatera`_                           yes        yes         yes         yes          yes        yes       yes         yes        yes        
-`Kili Public Cloud`_                  yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `KTUCloud`_                           yes        yes         yes         yes          no         no        yes         yes        yes        
 `kubevirt`_                           yes        yes         yes         yes          yes        yes       yes         yes        no         
 `Libvirt`_                            yes        no          yes         yes          yes        yes       no          no         no         
 `Linode`_                             yes        yes         yes         yes          yes        yes       yes         yes        no         
 `Maxihost`_                           yes        yes         yes         yes          yes        yes       yes         yes        no         
-`MedOne`_                             yes        yes         yes         yes          yes        yes       yes         yes        yes        
-`NephoScale`_                         yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Nimbus`_                             yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `NTTAmerica`_                         yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `NTTC-CIS`_                           yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `OnApp`_                              yes        yes         no          yes          no         no        yes         no         no         
-`1and1`_                              yes        yes         yes         yes          no         no        yes         yes        no         
 `OpenNebula (v3.8)`_                  yes        yes         yes         yes          no         no        yes         yes        no         
 `OpenStack`_                          yes        no          yes         yes          yes        yes       yes         yes        no         
 `Outscale API`_                       yes        yes         yes         yes          yes        yes       yes         no         no         
 `Outscale INC`_                       yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Outscale SAS`_                       yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Ovh`_                                yes        yes         no          yes          no         no        yes         yes        yes        
-`ProfitBricks`_                       yes        yes         yes         yes          yes        yes       yes         yes        no         
 `Rackspace Cloud (Next Gen)`_         yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `Rackspace Cloud (First Gen)`_        yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `RimuHosting`_                        yes        yes         yes         yes          no         no        yes         yes        yes        
 `Scaleway`_                           yes        yes         yes         yes          no         no        yes         yes        no         
-`ServerLove`_                         yes        yes         yes         yes          no         no        yes         yes        yes        
-`skalicloud`_                         yes        yes         yes         yes          no         no        yes         yes        yes        
-`SoftLayer`_                          yes        yes         yes         yes          yes        yes       yes         yes        yes        
 `vCloud`_                             yes        yes         yes         yes          no         no        yes         yes        yes        
 `Upcloud`_                            yes        yes         yes         yes          no         no        yes         yes        yes        
 `VCL`_                                yes        yes         no          yes          no         no        yes         yes        no         
 `vCloud`_                             yes        yes         yes         yes          no         no        yes         yes        yes        
-`Voxel VoxCLOUD`_                     yes        yes         yes         yes          no         no        yes         yes        no         
 `vps.net`_                            yes        yes         yes         yes          no         no        yes         yes        no         
 `VMware vSphere`_                     yes        yes         yes         yes          yes        yes       yes         yes        no         
 `Vultr`_                              yes        yes         yes         yes          yes        yes       yes         yes        no         
@@ -76,64 +58,46 @@
 .. _`PCextreme AuroraCompute`: https://www.pcextreme.com/aurora/compute
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
-.. _`Bluebox Blocks`: http://bluebox.net
 .. _`Brightbox`: http://www.brightbox.co.uk/
-.. _`BSNL`: http://www.bsnlcloud.com/
 .. _`Cloudscale`: https://www.cloudscale.ch
 .. _`CloudSigma (API v2.0)`: http://www.cloudsigma.com/
 .. _`CloudStack`: http://cloudstack.org/
-.. _`Cloudwatt`: https://www.cloudwatt.com/
 .. _`DigitalOcean`: https://www.digitalocean.com
 .. _`DimensionData`: http://www.dimensiondata.com/
 .. _`Amazon EC2`: http://aws.amazon.com/ec2/
-.. _`Enomaly Elastic Computing Platform`: http://www.enomaly.com/
-.. _`ElasticHosts`: http://www.elastichosts.com/
 .. _`EquinixMetal`: https://metal.equinix.com/
 .. _`Eucalyptus`: http://www.eucalyptus.com/
 .. _`Exoscale`: https://www.exoscale.com/
 .. _`Gandi`: http://www.gandi.net/
 .. _`Google Compute Engine`: https://cloud.google.com/
 .. _`GiG G8 Node Provider`: https://gig.tech
-.. _`GoGrid`: http://www.gogrid.com/
 .. _`Gridscale`: https://gridscale.io
-.. _`HostVirtual`: http://www.hostvirtual.com
 .. _`Ikoula`: http://express.ikoula.co.uk/cloudstack
-.. _`Indosat`: http://www.indosat.com/
 .. _`InternetSolutions`: http://www.is.co.za/
-.. _`Joyent`: http://www.joyentcloud.com
 .. _`Kamatera`: https://www.kamatera.com/
-.. _`Kili Public Cloud`: http://kili.io/
 .. _`KTUCloud`: https://ucloudbiz.olleh.com/
 .. _`kubevirt`: https://www.kubevirt.io
 .. _`Libvirt`: http://libvirt.org/
 .. _`Linode`: http://www.linode.com/
 .. _`Maxihost`: https://www.maxihost.com/
-.. _`MedOne`: http://www.med-1.com/
-.. _`NephoScale`: http://www.nephoscale.com
 .. _`Nimbus`: http://www.nimbusproject.org/
 .. _`NTTAmerica`: http://www.nttamerica.com/
 .. _`NTTC-CIS`: https://www.us.ntt.com/en/services/cloud/enterprise-cloud.html
 .. _`OnApp`: http://onapp.com/
-.. _`1and1`: http://www.1and1.com
 .. _`OpenNebula (v3.8)`: http://opennebula.org/
 .. _`OpenStack`: http://openstack.org/
 .. _`Outscale API`: http://www.outscale.com
 .. _`Outscale INC`: http://www.outscale.com
 .. _`Outscale SAS`: http://www.outscale.com
 .. _`Ovh`: https://www.ovh.com/
-.. _`ProfitBricks`: http://www.profitbricks.com
 .. _`Rackspace Cloud (Next Gen)`: http://www.rackspace.com
 .. _`Rackspace Cloud (First Gen)`: http://www.rackspace.com
 .. _`RimuHosting`: http://rimuhosting.com/
 .. _`Scaleway`: https://www.scaleway.com/
-.. _`ServerLove`: http://www.serverlove.com/
-.. _`skalicloud`: http://www.skalicloud.com/
-.. _`SoftLayer`: http://www.softlayer.com/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
 .. _`Upcloud`: https://www.upcloud.com
 .. _`VCL`: http://incubator.apache.org/vcl/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
-.. _`Voxel VoxCLOUD`: http://www.voxel.net/
 .. _`vps.net`: http://vps.net/
 .. _`VMware vSphere`: http://www.vmware.com/products/vsphere/
 .. _`Vultr`: https://www.vultr.com
diff --git a/docs/compute/_supported_providers.rst b/docs/compute/_supported_providers.rst
index 4185533..9c05ce5 100644
--- a/docs/compute/_supported_providers.rst
+++ b/docs/compute/_supported_providers.rst
@@ -8,64 +8,46 @@
 `PCextreme AuroraCompute`_            :doc:`Click </compute/drivers/auroracompute>`     AURORACOMPUTE       single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.auroracompute`     :class:`AuroraComputeNodeDriver`    
 `Azure Virtual machines`_             :doc:`Click </compute/drivers/azure>`             AZURE               single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.azure`             :class:`AzureNodeDriver`            
 `Azure Virtual machines`_             :doc:`Click </compute/drivers/azure_arm>`         AZURE_ARM           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.azure_arm`         :class:`AzureNodeDriver`            
-`Bluebox Blocks`_                                                                       BLUEBOX             single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.bluebox`           :class:`BlueboxNodeDriver`          
 `Brightbox`_                                                                            BRIGHTBOX           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.brightbox`         :class:`BrightboxNodeDriver`        
-`BSNL`_                               :doc:`Click </compute/drivers/bsnl>`              BSNL                single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.bsnl`              :class:`BSNLNodeDriver`             
 `Cloudscale`_                         :doc:`Click </compute/drivers/cloudscale>`        CLOUDSCALE          single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.cloudscale`        :class:`CloudscaleNodeDriver`       
 `CloudSigma (API v2.0)`_              :doc:`Click </compute/drivers/cloudsigma>`        CLOUDSIGMA          single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.cloudsigma`        :class:`CloudSigmaNodeDriver`       
 `CloudStack`_                         :doc:`Click </compute/drivers/cloudstack>`        CLOUDSTACK          single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.cloudstack`        :class:`CloudStackNodeDriver`       
-`Cloudwatt`_                          :doc:`Click </compute/drivers/cloudwatt>`         CLOUDWATT           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.cloudwatt`         :class:`CloudwattNodeDriver`        
 `DigitalOcean`_                       :doc:`Click </compute/drivers/digital_ocean>`     DIGITAL_OCEAN       single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.digitalocean`      :class:`DigitalOceanNodeDriver`     
 `DimensionData`_                      :doc:`Click </compute/drivers/dimensiondata>`     DIMENSIONDATA       single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.dimensiondata`     :class:`DimensionDataNodeDriver`    
 `Amazon EC2`_                         :doc:`Click </compute/drivers/ec2>`               EC2                 af-south-1, ap-east-1, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, cn-north-1, cn-northwest-1, eu-central-1, eu-north-1, eu-south-1, eu-west-1, eu-west-2, eu-west-3, sa-east-1, us-east-1, us-east-2, us-gov-west-1, us-west-1, us-west-2 :mod:`libcloud.compute.drivers.ec2`               :class:`EC2NodeDriver`              
-`Enomaly Elastic Computing Platform`_                                                   ECP                 single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.ecp`               :class:`ECPNodeDriver`              
-`ElasticHosts`_                                                                         ELASTICHOSTS        single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.elastichosts`      :class:`ElasticHostsNodeDriver`     
 `EquinixMetal`_                       :doc:`Click </compute/drivers/equinixmetal>`      EQUINIXMETAL        single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.equinixmetal`      :class:`EquinixMetalNodeDriver`     
 `Eucalyptus`_                                                                           EUCALYPTUS          single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.ec2`               :class:`EucNodeDriver`              
 `Exoscale`_                           :doc:`Click </compute/drivers/exoscale>`          EXOSCALE            single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.exoscale`          :class:`ExoscaleNodeDriver`         
 `Gandi`_                              :doc:`Click </compute/drivers/gandi>`             GANDI               single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.gandi`             :class:`GandiNodeDriver`            
 `Google Compute Engine`_              :doc:`Click </compute/drivers/gce>`               GCE                 single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.gce`               :class:`GCENodeDriver`              
 `GiG G8 Node Provider`_                                                                 GIG_G8              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.gig_g8`            :class:`G8NodeDriver`               
-`GoGrid`_                                                                               GOGRID              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.gogrid`            :class:`GoGridNodeDriver`           
 `Gridscale`_                          :doc:`Click </compute/drivers/gridscale>`         GRIDSCALE           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.gridscale`         :class:`GridscaleNodeDriver`        
-`HostVirtual`_                                                                          HOSTVIRTUAL         single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.hostvirtual`       :class:`HostVirtualNodeDriver`      
 `Ikoula`_                             :doc:`Click </compute/drivers/ikoula>`            IKOULA              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.ikoula`            :class:`IkoulaNodeDriver`           
-`Indosat`_                            :doc:`Click </compute/drivers/indosat>`           INDOSAT             single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.indosat`           :class:`IndosatNodeDriver`          
 `InternetSolutions`_                  :doc:`Click </compute/drivers/internetsolutions>` INTERNETSOLUTIONS   single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.internetsolutions` :class:`InternetSolutionsNodeDriver`
-`Joyent`_                                                                               JOYENT              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.joyent`            :class:`JoyentNodeDriver`           
 `Kamatera`_                           :doc:`Click </compute/drivers/kamatera>`          KAMATERA            single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.kamatera`          :class:`KamateraNodeDriver`         
-`Kili Public Cloud`_                  :doc:`Click </compute/drivers/kili>`              KILI                single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.kili`              :class:`KiliCloudNodeDriver`        
 `KTUCloud`_                                                                             KTUCLOUD            single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.ktucloud`          :class:`KTUCloudNodeDriver`         
 `kubevirt`_                                                                             KUBEVIRT            single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.kubevirt`          :class:`KubeVirtNodeDriver`         
 `Libvirt`_                            :doc:`Click </compute/drivers/libvirt>`           LIBVIRT             single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.libvirt_driver`    :class:`LibvirtNodeDriver`          
 `Linode`_                                                                               LINODE              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.linode`            :class:`LinodeNodeDriver`           
 `Maxihost`_                           :doc:`Click </compute/drivers/maxihost>`          MAXIHOST            single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.maxihost`          :class:`MaxihostNodeDriver`         
-`MedOne`_                             :doc:`Click </compute/drivers/medone>`            MEDONE              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.medone`            :class:`MedOneNodeDriver`           
-`NephoScale`_                                                                           NEPHOSCALE          single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.nephoscale`        :class:`NephoscaleNodeDriver`       
 `Nimbus`_                             :doc:`Click </compute/drivers/nimbus>`            NIMBUS              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.ec2`               :class:`NimbusNodeDriver`           
 `NTTAmerica`_                         :doc:`Click </compute/drivers/ntta>`              NTTA                single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.ntta`              :class:`NTTAmericaNodeDriver`       
 `NTTC-CIS`_                           :doc:`Click </compute/drivers/nttcis>`            NTTCIS              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.nttcis`            :class:`NttCisNodeDriver`           
 `OnApp`_                              :doc:`Click </compute/drivers/onapp>`             ONAPP               single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.onapp`             :class:`OnAppNodeDriver`            
-`1and1`_                              :doc:`Click </compute/drivers/oneandone>`         ONEANDONE           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.oneandone`         :class:`OneAndOneNodeDriver`        
 `OpenNebula (v3.8)`_                                                                    OPENNEBULA          single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.opennebula`        :class:`OpenNebulaNodeDriver`       
 `OpenStack`_                          :doc:`Click </compute/drivers/openstack>`         OPENSTACK           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.openstack`         :class:`OpenStackNodeDriver`        
 `Outscale API`_                       :doc:`Click </compute/drivers/outscale>`          OUTSCALE            single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.outscale`          :class:`OutscaleNodeDriver`         
 `Outscale INC`_                       :doc:`Click </compute/drivers/outscale_inc>`      OUTSCALE_INC        single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.ec2`               :class:`OutscaleINCNodeDriver`      
 `Outscale SAS`_                       :doc:`Click </compute/drivers/outscale_sas>`      OUTSCALE_SAS        single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.ec2`               :class:`OutscaleSASNodeDriver`      
 `Ovh`_                                :doc:`Click </compute/drivers/ovh>`               OVH                 ca, eu                                                                                                                                                                                                                                                                                                   :mod:`libcloud.compute.drivers.ovh`               :class:`OvhNodeDriver`              
-`ProfitBricks`_                                                                         PROFIT_BRICKS       single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.profitbricks`      :class:`ProfitBricksNodeDriver`     
 `Rackspace Cloud (Next Gen)`_         :doc:`Click </compute/drivers/rackspace>`         RACKSPACE           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.rackspace`         :class:`RackspaceNodeDriver`        
 `Rackspace Cloud (First Gen)`_                                                          RACKSPACE_FIRST_GEN single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.rackspace`         :class:`RackspaceFirstGenNodeDriver`
 `RimuHosting`_                                                                          RIMUHOSTING         single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.rimuhosting`       :class:`RimuHostingNodeDriver`      
 `Scaleway`_                           :doc:`Click </compute/drivers/scaleway>`          SCALEWAY            single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.scaleway`          :class:`ScalewayNodeDriver`         
-`ServerLove`_                                                                           SERVERLOVE          single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.serverlove`        :class:`ServerLoveNodeDriver`       
-`skalicloud`_                                                                           SKALICLOUD          single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.skalicloud`        :class:`SkaliCloudNodeDriver`       
-`SoftLayer`_                                                                            SOFTLAYER           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.softlayer`         :class:`SoftLayerNodeDriver`        
 `vCloud`_                                                                               TERREMARK           single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.vcloud`            :class:`TerremarkDriver`            
 `Upcloud`_                            :doc:`Click </compute/drivers/upcloud>`           UPCLOUD             single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.upcloud`           :class:`UpcloudDriver`              
 `VCL`_                                                                                  VCL                 single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.vcl`               :class:`VCLNodeDriver`              
 `vCloud`_                             :doc:`Click </compute/drivers/vcloud>`            VCLOUD              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.vcloud`            :class:`VCloudNodeDriver`           
-`Voxel VoxCLOUD`_                                                                       VOXEL               single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.voxel`             :class:`VoxelNodeDriver`            
 `vps.net`_                                                                              VPSNET              single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.vpsnet`            :class:`VPSNetNodeDriver`           
 `VMware vSphere`_                     :doc:`Click </compute/drivers/vsphere>`           VSPHERE             single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.vsphere`           :class:`VSphereNodeDriver`          
 `Vultr`_                              :doc:`Click </compute/drivers/vultr>`             VULTR               single region driver                                                                                                                                                                                                                                                                                     :mod:`libcloud.compute.drivers.vultr`             :class:`VultrNodeDriver`            
@@ -76,64 +58,46 @@
 .. _`PCextreme AuroraCompute`: https://www.pcextreme.com/aurora/compute
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
 .. _`Azure Virtual machines`: http://azure.microsoft.com/en-us/services/virtual-machines/
-.. _`Bluebox Blocks`: http://bluebox.net
 .. _`Brightbox`: http://www.brightbox.co.uk/
-.. _`BSNL`: http://www.bsnlcloud.com/
 .. _`Cloudscale`: https://www.cloudscale.ch
 .. _`CloudSigma (API v2.0)`: http://www.cloudsigma.com/
 .. _`CloudStack`: http://cloudstack.org/
-.. _`Cloudwatt`: https://www.cloudwatt.com/
 .. _`DigitalOcean`: https://www.digitalocean.com
 .. _`DimensionData`: http://www.dimensiondata.com/
 .. _`Amazon EC2`: http://aws.amazon.com/ec2/
-.. _`Enomaly Elastic Computing Platform`: http://www.enomaly.com/
-.. _`ElasticHosts`: http://www.elastichosts.com/
 .. _`EquinixMetal`: https://metal.equinix.com/
 .. _`Eucalyptus`: http://www.eucalyptus.com/
 .. _`Exoscale`: https://www.exoscale.com/
 .. _`Gandi`: http://www.gandi.net/
 .. _`Google Compute Engine`: https://cloud.google.com/
 .. _`GiG G8 Node Provider`: https://gig.tech
-.. _`GoGrid`: http://www.gogrid.com/
 .. _`Gridscale`: https://gridscale.io
-.. _`HostVirtual`: http://www.hostvirtual.com
 .. _`Ikoula`: http://express.ikoula.co.uk/cloudstack
-.. _`Indosat`: http://www.indosat.com/
 .. _`InternetSolutions`: http://www.is.co.za/
-.. _`Joyent`: http://www.joyentcloud.com
 .. _`Kamatera`: https://www.kamatera.com/
-.. _`Kili Public Cloud`: http://kili.io/
 .. _`KTUCloud`: https://ucloudbiz.olleh.com/
 .. _`kubevirt`: https://www.kubevirt.io
 .. _`Libvirt`: http://libvirt.org/
 .. _`Linode`: http://www.linode.com/
 .. _`Maxihost`: https://www.maxihost.com/
-.. _`MedOne`: http://www.med-1.com/
-.. _`NephoScale`: http://www.nephoscale.com
 .. _`Nimbus`: http://www.nimbusproject.org/
 .. _`NTTAmerica`: http://www.nttamerica.com/
 .. _`NTTC-CIS`: https://www.us.ntt.com/en/services/cloud/enterprise-cloud.html
 .. _`OnApp`: http://onapp.com/
-.. _`1and1`: http://www.1and1.com
 .. _`OpenNebula (v3.8)`: http://opennebula.org/
 .. _`OpenStack`: http://openstack.org/
 .. _`Outscale API`: http://www.outscale.com
 .. _`Outscale INC`: http://www.outscale.com
 .. _`Outscale SAS`: http://www.outscale.com
 .. _`Ovh`: https://www.ovh.com/
-.. _`ProfitBricks`: http://www.profitbricks.com
 .. _`Rackspace Cloud (Next Gen)`: http://www.rackspace.com
 .. _`Rackspace Cloud (First Gen)`: http://www.rackspace.com
 .. _`RimuHosting`: http://rimuhosting.com/
 .. _`Scaleway`: https://www.scaleway.com/
-.. _`ServerLove`: http://www.serverlove.com/
-.. _`skalicloud`: http://www.skalicloud.com/
-.. _`SoftLayer`: http://www.softlayer.com/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
 .. _`Upcloud`: https://www.upcloud.com
 .. _`VCL`: http://incubator.apache.org/vcl/
 .. _`vCloud`: http://www.vmware.com/products/vcloud/
-.. _`Voxel VoxCLOUD`: http://www.voxel.net/
 .. _`vps.net`: http://vps.net/
 .. _`VMware vSphere`: http://www.vmware.com/products/vsphere/
 .. _`Vultr`: https://www.vultr.com
diff --git a/docs/compute/drivers/bsnl.rst b/docs/compute/drivers/bsnl.rst
deleted file mode 100644
index 159b0e0..0000000
--- a/docs/compute/drivers/bsnl.rst
+++ /dev/null
@@ -1,69 +0,0 @@
-BSNL Compute Driver Documentation
-=================================
-
-BSNL and Dimension Data (formerly known as Datacraft) have teamed up to launch
-dedicated Internet data centres across India to help you leverage the power of
-cloud computing. Empowered by BSNL and managed by Dimension Data, these facilities
-have been designed to the highest global IT standards, using cutting-edge
-technologies to offer you unprecedented bandwidth and latency. 
-
-.. figure:: /_static/images/provider_logos/bsnl.png
-    :align: center
-    :width: 300
-    :target: http://www.bsnlcloud.com/
-
-IaaS has its own non-standard `API`_ , `libcloud` provides a Python
-wrapper on top of this `API`_ with common methods with other IaaS solutions and
-Public cloud providers. Therefore, you can use use the BSNL libcloud
-driver to communicate with both the public and private clouds.
-
-Instantiating a driver
-----------------------
-
-When you instantiate a driver you need to pass the following arguments to the
-driver constructor:
-
-* ``user_id`` - Your BSNL Cloud username
-* ``key`` - Your BSNL Cloud password
-* ``region`` - The region key, one of the possible region keys
-
-Possible regions:
-
-* ``bsnl-in`` : BSNL India (IN) - **Default**
-* ``bsnl-na`` : BSNL North America (USA)
-* ``bsnl-eu`` : BSNL Europe
-* ``bsnl-af`` : BSNL Africa
-* ``bsnl-au`` : BSNL Australia
-
-.. literalinclude:: /examples/compute/bsnl/instantiate_driver.py
-   :language: python
-
-The base `libcloud` API allows you to:
-
-* list nodes, images, instance types, locations
-
-Non-standard functionality and extension methods
-------------------------------------------------
-
-The BSNL driver exposes some `libcloud` non-standard
-functionalities through extension methods and arguments.
-
-These functionalities include:
-
-* start and stop a node
-* list networks
-* create firewalls, configure network address translation
-* provision layer 3 networks
-
-For information on how to use these functionalities please see the method
-docstrings below. You can also use an interactive shell for exploration as
-shown in the examples.
-
-API Docs
---------
-
-.. autoclass:: libcloud.compute.drivers.bsnl.BSNLNodeDriver
-    :members:
-    :inherited-members:
-
-.. _`API`: http://www.bsnlcloud.com/pages/index.asp
diff --git a/docs/compute/drivers/cloudwatt.rst b/docs/compute/drivers/cloudwatt.rst
deleted file mode 100644
index 44ec67e..0000000
--- a/docs/compute/drivers/cloudwatt.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-Cloudwatt Compute Driver Documentation
-======================================
-
-`Cloudwatt`_ is a public cloud provider based in Boulogne-Billancourt, France
-with one datacenter at Val-de-Reuil
-
-.. figure:: /_static/images/provider_logos/cloudwatt.png
-    :align: center
-    :width: 300
-    :target: https://www.cloudwatt.com/fr/
-
-Cloudwatt driver is based on the OpenStack driver so for more information about
-that and OpenStack specific documentation, please refer to
-:doc:`OpenStack Compute Driver Documentation <openstack>` page.
-
-Instantiating a driver
-----------------------
-
-When you instantiate a driver you need to pass the following arguments to the
-driver constructor:
-
-* ``username`` - your Cloudwatt registered email
-* ``password`` - your Cloudwatt password
-* ``tenant_id`` - your Cloudwatt tenant ID
-* ``tenant_name`` - your Cloudwatt tenant name
-
-Tenant ID and name are foundable in the RC script available with web interface
-at https://console.cloudwatt.com/overrides/access_and_security_overrides/view_credentials/
-
-Examples
---------
-
-Create instance
-~~~~~~~~~~~~~~~
-
-.. literalinclude:: /examples/compute/cloudwatt/create_node.py
-
-Create volume and attach
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. literalinclude:: /examples/compute/cloudwatt/create_volume.py
-
-API Docs
---------
-
-.. autoclass:: libcloud.compute.drivers.cloudwatt.CloudwattNodeDriver
-    :members:
-    :inherited-members:
-
-.. _`Cloudwatt`: https://www.cloudwatt.com/
diff --git a/docs/compute/drivers/indosat.rst b/docs/compute/drivers/indosat.rst
deleted file mode 100644
index f9d4b4f..0000000
--- a/docs/compute/drivers/indosat.rst
+++ /dev/null
@@ -1,72 +0,0 @@
-Indosat Compute Driver Documentation
-====================================
-
-Indosat Cloud Infrastructure-as-a-Service ( IaaS ) from Indosat is the
-enterprise-class IaaS services are designed and built using the infrastructure
-hardware and software best and leading.
-Cloud Indosat offered through an internet connection or through a closed
-network of rental ( private leased line ).
-Indosat Cloud Platform is built to support the automatic interaction and overall
-arrangements , and supported by the server , storage and network elements
-incorporated in virtualization technology application systems.
-
-.. figure:: /_static/images/provider_logos/indosat.png
-    :align: center
-    :width: 300
-    :target: http://www.indosatsingaporecloud.com/
-
-IaaS has its own non-standard `API`_ , `libcloud` provides a Python
-wrapper on top of this `API`_ with common methods with other IaaS solutions and
-Public cloud providers. Therefore, you can use use the Indosat libcloud
-driver to communicate with both the public and private clouds.
-
-Instantiating a driver
-----------------------
-
-When you instantiate a driver you need to pass the following arguments to the
-driver constructor:
-
-* ``user_id`` - Your Indosat Cloud username
-* ``key`` - Your Indosat Cloud password
-* ``region`` - The region key, one of the possible region keys
-
-Possible regions:
-
-* ``indosat-id`` : Indosat Indonesia (ID) - **Default**
-* ``indosat-na`` : Indosat North America (USA)
-* ``indosat-eu`` : Indosat Europe
-* ``indosat-af`` : Indosat Africa
-* ``indosat-au`` : Indosat Australia
-
-.. literalinclude:: /examples/compute/indosat/instantiate_driver.py
-   :language: python
-
-The base `libcloud` API allows you to:
-
-* list nodes, images, instance types, locations
-
-Non-standard functionality and extension methods
-------------------------------------------------
-
-The Indosat driver exposes some `libcloud` non-standard
-functionalities through extension methods and arguments.
-
-These functionalities include:
-
-* start and stop a node
-* list networks
-* create firewalls, configure network address translation
-* provision layer 3 networks
-
-For information on how to use these functionalities please see the method
-docstrings below. You can also use an interactive shell for exploration as
-shown in the examples.
-
-API Docs
---------
-
-.. autoclass:: libcloud.compute.drivers.indosat.IndosatNodeDriver
-    :members:
-    :inherited-members:
-
-.. _`API`: http://www.indosatsingaporecloud.com/
diff --git a/docs/compute/drivers/kili.rst b/docs/compute/drivers/kili.rst
deleted file mode 100644
index f68cffd..0000000
--- a/docs/compute/drivers/kili.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-Kili Cloud Computer Driver Documentation
-========================================
-
-`Kili Cloud`_ is a public cloud provider based in Africa.
-
-Kili Cloud driver is based on the OpenStack one. For more information
-information and OpenStack specific documentation, please refer to
-:doc:`OpenStack Compute Driver Documentation <openstack>` page.
-
-Examples
---------
-
-1. Instantiating the driver
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Unlike other OpenStack based providers, Kili cloud also requires you to specify
-tenant name when connecting to their cloud. You can do that by passing
-``tenant_name`` argument to the driver constructor as shown in the code example
-below.
-
-This attribute represents a company name you have entered while signing up for
-Kili.
-
-.. literalinclude:: /examples/compute/openstack/kilicloud_native.py
-   :language: python
-
-API Docs
---------
-
-.. autoclass:: libcloud.compute.drivers.kili.KiliCloudNodeDriver
-    :members:
-    :inherited-members:
-
-.. _`Kili Cloud`: http://kili.io/
-.. _`Kili Cloud dashboard`: https://dash.kili.io
diff --git a/docs/compute/drivers/medone.rst b/docs/compute/drivers/medone.rst
deleted file mode 100644
index 6301286..0000000
--- a/docs/compute/drivers/medone.rst
+++ /dev/null
@@ -1,74 +0,0 @@
-Med-1 Public Cloud Compute Driver Documentation
-===============================================
-
-
-Med-1 is Israel’s main Internet exchange point. As such, it offers a broad
-range of hosting, storage, management and data center operation solutions and
-services.
-
-Med-1 have a public cloud service, with highly-secure datacenters in Israel and throughout
-the world based on the Dimension Data Cloud platform.
-
-.. figure:: /_static/images/provider_logos/med-one.png
-    :align: center
-    :width: 300
-    :target: http://www.med-1.com/
-
-CaaS has its own non-standard `API`_ , `libcloud` provides a Python
-wrapper on top of this `API`_ with common methods with other IaaS solutions and
-Public cloud providers. Therefore, you can use use the Med-1 libcloud
-driver to communicate with both the public and private clouds.
-
-Instantiating a driver
-----------------------
-
-When you instantiate a driver you need to pass the following arguments to the
-driver constructor:
-
-* ``user_id`` - Your Med-1 Cloud username
-* ``key`` - Your Med-1 Cloud password
-* ``region`` - The region key, one of the possible region keys
-
-Possible regions:
-
-* ``med1-il`` : Med-1 Israel (IL) - **Default**
-* ``med1-na`` : Med-1 North America (USA)
-* ``med1-eu`` : Med-1 Europe
-* ``med1-af`` : Med-1 Africa
-* ``med1-au`` : Med-1 Australia
-* ``med1-ap`` : Med-1 Asia Pacific
-* ``med1-latam`` : Med-1 Latin America
-* ``med1-canada`` : Med-1 Canada
-
-.. literalinclude:: /examples/compute/medone/instantiate_driver.py
-   :language: python
-
-The base `libcloud` API allows you to:
-
-* list nodes, images, instance types, locations
-
-Non-standard functionality and extension methods
-------------------------------------------------
-
-The Med-1 driver exposes some `libcloud` non-standard
-functionalities through extension methods and arguments.
-
-These functionalities include:
-
-* start and stop a node
-* list networks
-* create firewalls, configure network address translation
-* provision layer 3 networks
-
-For information on how to use these functionalities please see the method
-docstrings below. You can also use an interactive shell for exploration as
-shown in the examples.
-
-API Docs
---------
-
-.. autoclass:: libcloud.compute.drivers.medone.MedOneNodeDriver
-    :members:
-    :inherited-members:
-
-.. _`API`: http://www.med-1.com/%D7%90%D7%95%D7%93%D7%95%D7%AA-medonecloud/
diff --git a/docs/compute/drivers/oneandone.rst b/docs/compute/drivers/oneandone.rst
deleted file mode 100644
index ac332f4..0000000
--- a/docs/compute/drivers/oneandone.rst
+++ /dev/null
@@ -1,294 +0,0 @@
-1&1 Compute Driver Documentation
-================================
-
-`1&1` is one of the world's largest hosting providers. We offer a range of services, including hosting solutions, domains, and websites.
-
-The data centers/availability zones are located in:
-
-- United States of America (US)
-- Germany (DE)
-- United Kingdom or Great Britain and Northern Ireland (GB)
-- Spain (ES)
-
-Instantiating a Driver
-----------------------
-
-To instantiate a driver you will need to pass the API key using the following constructor parameter:
-
-* ``key`` - Your 1&1 API Key
-
-You can obtain your API key in the `1&1 Cloud Panel` under Management ->
-Users where an API key will be generated.
-
-With a newly-generated API token you can instantiate a driver using:
-
-.. literalinclude:: /examples/compute/oneandone/instantiate_driver.py
-   :language: python
-
-
-1&1 Implementation of Libcloud
-------------------------------
-
-The 1&1 driver implements the following ``NodeDriver`` functions:
-
-* ``list_sizes`` - Returns a list of ``NodeSize``
-* ``list_locations`` - Returns a list of ``NodeLocation``
-* ``list_images`` - Returns a list of ``NodeImage``
-* ``get_image`` - Returns a ``NodeImage``
-* ``create_node`` - Creates a ``Node``
-* ``list_nodes`` - Returns a list of ``Node``
-* ``destroy_node`` - Destroys an existing ``Node``
-* ``reboot_node`` - Reboots a ``Node``
-
-1&1 Extension Functions
------------------------
-
-Server Functions
------------------
-* ``ex_rename_server`` - Allows you to change server name and description
-* ``ex_get_server_hardware`` - Returns server's hardware specification
-* ``ex_modify_server_hardware`` - Updates server hardware
-* ``ex_modify_server_hdd`` - Updates a single server HDD
-* ``ex_add_hdd`` - Adds a new HDD to server
-* ``ex_remove_hdd`` - Removes a HDD from server
-* ``ex_list_datacenters`` - Returns a list of available 1&1 data centers
-* ``ex_get_server`` - Gets a server
-* ``ex_shutdown_server`` - Shuts down a server
-* ``ex_get_server_image`` - Gets server image
-* ``ex_reinstall_server_image`` - Installs a new image on the server
-* ``ex_list_server_ips`` -  Gets all server IP objects
-* ``ex_assign_server_ip`` - Assigns a new IP address to the server
-* ``ex_remove_server_ip`` - Removes an IP address from the server
-* ``ex_get_server_firewall_policies`` - Gets a firewall policy attached to the server's IP address
-* ``ex_add_server_firewall_policy`` - Adds a firewall policy to the server's IP address
-
-Monitoring Policy Functions
----------------------------
-* ``ex_list_monitoring_policies`` - Lists all monitoring policies
-* ``ex_create_monitoring_policy`` - Creates a monitoring policy
-* ``ex_delete_monitoring_policy`` - Deletes a monitoring policy
-* ``ex_update_monitoring_policy`` - Updates monitoring policy
-* ``ex_get_monitoring_policy`` - Fetches a monitoring policy
-* ``ex_get_monitoring_policy_ports`` - Fetches monitoring policy ports
-* ``ex_get_monitoring_policy_port`` - Fetches monitoring policy port
-* ``ex_remove_monitoring_policy_port`` - Removes monitoring policy port
-* ``ex_add_monitoring_policy_ports`` - Adds monitoring policy ports
-* ``ex_get_monitoring_policy_processes`` - Fetches monitoring policy processes
-* ``ex_get_monitoring_policy_process`` - Fetches monitoring policy process
-* ``ex_remove_monitoring_policy_process`` - Removes monitoring policy process
-* ``ex_add_monitoring_policy_processes`` - Adds monitoring policy processes
-* ``ex_list_monitoring_policy_servers`` - List all servers that are being monitored by the policy
-* ``ex_add_servers_to_monitoring_policy`` - Adds servers to monitoring policy
-* ``ex_remove_server_from_monitoring_policy`` - Removes a server from monitoring policy
-
-Shared Storage Functions
-------------------------
-* ``ex_list_shared_storages`` - Lists shared storages
-* ``ex_get_shared_storage`` - Gets a shared storage
-* ``ex_create_shared_storage`` - Creates a shared storage
-* ``ex_delete_shared_storage`` - Removes a shared storage
-* ``ex_attach_server_to_shared_storage`` - Attaches a single server to a shared storage
-* ``ex_get_shared_storage_server`` - Gets a shared storage's server
-* ``ex_detach_server_from_shared_storage`` - Detaches a server from shared storage
-
-Public IP Functions
--------------------
-* ``ex_list_public_ips`` - Lists all public IP addresses
-* ``ex_create_public_ip`` - Creates a public IP
-* ``ex_get_public_ip`` - Gets a public IP
-* ``ex_delete_public_ip`` - Deletes a public IP
-* ``ex_update_public_ip`` - Updates a Public IP
-
-Private Network Functions
--------------------------
-* ``ex_list_private_networks`` - Lists all private networks
-* ``ex_create_private_network`` - Creates a private network
-* ``ex_delete_private_network`` - Deletes a private network
-* ``ex_update_private_network`` - Updates a private network
-* ``ex_list_private_network_servers`` - Lists all private network servers
-* ``ex_add_private_network_server`` - Adds servers to private network
-* ``ex_remove_server_from_private_network`` - Removes a server from the private network
-
-Load Balancer Functions
------------------------
-* ``ex_create_load_balancer`` - Creates a load balancer
-* ``ex_update_load_balancer`` - Updates a load balancer
-* ``ex_add_servers_to_load_balancer`` - Adds servers to a load balancers
-* ``ex_remove_server_from_load_balancer`` - Removes a server from a load balancer
-* ``ex_add_load_balancer_rule`` - Adds a rule to a load balancer
-* ``ex_remove_load_balancer_rule`` - Removes a rule from a load balancer
-* ``ex_list_load_balancers`` - Lists all load balancers
-* ``ex_get_load_balancer`` - Gets a load balancer
-* ``ex_list_load_balancer_server_ips`` - Lists load balanced server IP addresses
-* ``ex_get_load_balancer_server_ip`` - Gets a balanced server IP address
-* ``ex_list_load_balancer_rules`` - Lists load balancer rules
-* ``ex_get_load_balancer_rule`` - Gets a load balancer rule
-* ``ex_delete_load_balancer`` - Deletes a load balancer
-
-Firewall Policy Functions
--------------------------
-* ``ex_create_firewall_policy`` - Creates a firewall policy
-* ``ex_list_firewall_policies`` - Lists firewall policies
-* ``ex_get_firewall_policy`` - Gets a firewall policy
-* ``ex_delete_firewall_policy`` - Deletes a firewall policy
-
-Create a Node
--------------
-
-To create a node on 1&1 using Libcloud, follow this example:
-
-.. literalinclude:: /examples/compute/oneandone/create_node.py
-   :language: python
-
-This example will create a 1&1 server using 'S' as a small instance in  the 'ES' (spain) data center.
-
-`create_node` has the following parameters:
-
-Required parameters:
-
-* ``name`` - Desired node name. Must be unique.
-* ``image`` - Image ID retrieved from `list_images`.
-* ``ex_fixed_instance_size_id`` - This is an ID of a flavor.
-
-Optional parameters:
-
-* ``auth`` - Password for the server. If none is provided, 1&1 will generate one for you, and return it in the response.
-* ``location`` - Desired `NodeLocation`
-* ``ex_ip`` - ID of a public IP address which can be created using `ex_create_public_ip`.
-* ``ex_monitoring_policy_id`` - Id of a monitoring policy which can be created using `ex_create_monitoring_policy`.
-* ``ex_firewall_policy_id`` - Id of a firewall policy which can be create using `ex_create_firewall_policy`.
-* ``ex_loadbalancer_id`` - Id of a load balancer which can be create using `ex_create_load_balancer`.
-* ``ex_description`` - Description for the server.
-* ``ex_power_on`` - A boolean indicating whether a server will be `POWERED_ON` or `POWERED_OFF` when provisioned.
-
-
-Create a Firewall Policy
-------------------------
-
-To create a firewall policy, follow this example:
-
-.. literalinclude:: /examples/compute/oneandone/create_firewall_policy.py
-   :language: python
-
-This example will create a firewall policy with a TCP rule allowing access on port 80.
-
-`ex_create_firewall_policy` has the following parameters:
-
-Required parameters:
-
-* ``name`` - Desired name for the firewall policy. Must be unique.
-* ``rules`` - ``list`` of ``dict``:
-  * ``protocol`` - One of the follwing protocols can be set TCP, UDP, TCP/UDP, ICMP, IPSEC.
-  * ``port_from`` - Port range start. Must be between 1 and 65535.
-  * ``port_to`` - Port range end. Must be between 1 and 65535.
-  * ``source`` - Source IP address.
-
-
-Optional parameters:
-
-* ``description`` - Description of the firewall policy.
-
-
-Create a Monitoring Policy
---------------------------
-
-To create a monitoring policy, follow this example:
-
-.. literalinclude:: /examples/compute/oneandone/create_monitoring_policy.py
-   :language: python
-
-`ex_create_monitoring_policy` has the following parameters:
-
-Required parameters:
-
-* ``name`` - Desired name for the monitoring policy. Must be unique.
-* ``thresholds`` - ``dict`` of thresholds to be monitored. See the example
-* ``ports`` - ``list`` of  ``dict`` defining which ports are to be monitored. See the example.
-* ``processes`` - ``list`` of  ``dict`` defining which processes are to be monitored. See the example.
-
-Optional parameters:
-
-* ``description`` - Description of the monitoring policy.
-* ``email`` - Email address where notifications will be sent.
-* ``agent`` - Indicating whether an agent application should be installed on the host.
-
-Create a Shared Storage
------------------------
-
-To create a shared storage, follow this example:
-
-.. literalinclude:: /examples/compute/oneandone/create_shared_storage.py
-   :language: python
-
-Required parameters:
-
-* ``name`` - ``str`` Desired name for the shared storage. Must be unique.
-* ``size`` - ``int`` Size of the shared storage.
-* ``datacenter_id`` - ``str`` 1&1 data center.
-
-Optional parameters:
-
-* ``description`` - Description of the shared storage.
-
-Create a Load Balancer
-----------------------
-
-
-To create a load balancer, follow this example:
-
-  .. literalinclude:: /examples/compute/oneandone/create_load_balancer.py
-   :language: python
-
-Required parameters:
-
-* ``name`` - ``str`` Desired name for the shared storage. Must be unique.
-* ``method`` - ``str``
-* ``rules`` - ``list`` of ``dict``
-
-Optional parameters:
-
-* ``persistence``
-* ``persistence_time``
-* ``health_check_test``
-* ``health_check_interval``
-* ``health_check_path``
-* ``health_check_parser``
-* ``datacenter_id``
-* ``description``
-
-
-Create a Public IP
-------------------
-
-To create a public IP address, follow this example:
-
-  .. literalinclude:: /examples/compute/oneandone/create_public_ip.py
-   :language: python
-
-Required parameters:
-
-* ``type`` - ``str`` IPV4 or IPV6
-
-Optional parameters:
-
-* ``reverse_dns`` - ``str``
-* ``datacenter_id`` - ``str`` 1&1 Datacenter
-
-
-Create a Private Network
-------------------------
-
-To create a private network, follow this example:
-
-  .. literalinclude:: /examples/compute/oneandone/create_private_network.py
-   :language: python
-
-Required parameters:
-
-* ``name`` - ``str`` name of the public network.
-
-Optional parameters:
-
-* ``datacenter_id`` - ``str``
-* ``network_address``
-* ``subnet_mask``
diff --git a/docs/compute/drivers/profitbricks.rst b/docs/compute/drivers/profitbricks.rst
deleted file mode 100644
index 5c6420c..0000000
--- a/docs/compute/drivers/profitbricks.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-ProfitBricks Driver Documentation
-=================================
-
-`ProfitBricks`_ is an innovative and enterprise-grade IaaS provider.
-
-.. figure:: /_static/images/provider_logos/profitbricks.png
-    :align: center
-    :width: 300
-    :target: https://www.profitbricks.com/
-
-The ProfitBricks driver allows you to integrate with the `ProfitBricks Cloud API`_ to manage
-virtual data centers and other resources located in the United States and Germany availability zones.
-
-Instantiating a Driver
-----------------------
-
-Before you start using the ProfitBricks driver you will have to sign up for a ProfitBricks account.
-To instantiate a driver you will need to pass your ProfitBrick credentials, i.e., username and password.
-
-.. literalinclude:: /examples/compute/profitbricks/instantiate_driver.py
-   :language: python
-
-Examples
---------
-
-Create a data center
-~~~~~~~~~~~~~~~~~~~~
-
-.. literalinclude:: /examples/compute/profitbricks/create_datacenter.py
-   :language: python
-
-Create a LAN
-~~~~~~~~~~~~
-
-.. literalinclude:: /examples/compute/profitbricks/create_lan.py
-   :language: python
-
-Create a node
-~~~~~~~~~~~~~
-
-.. literalinclude:: /examples/compute/profitbricks/create_node.py
-   :language: python
-
-Create an SSD volume
-~~~~~~~~~~~~~~~~~~~~
-
-.. literalinclude:: /examples/compute/profitbricks/create_volume.py
-   :language: python
-
-Refer to the `driver documentation`_ for more examples and code snippets.
-
-API Docs
---------
-
-.. autoclass:: libcloud.compute.drivers.profitbricks.ProfitBricksNodeDriver
-    :members:
-    :inherited-members:
-
-.. autoclass:: libcloud.compute.drivers.profitbricks.Datacenter
-    :members:
-
-.. autoclass:: libcloud.compute.drivers.profitbricks.ProfitBricksNetworkInterface
-    :members:
-
-.. autoclass:: libcloud.compute.drivers.profitbricks.ProfitBricksFirewallRule
-    :members:
-
-.. autoclass:: libcloud.compute.drivers.profitbricks.ProfitBricksLan
-    :members:
-
-.. autoclass:: libcloud.compute.drivers.profitbricks.ProfitBricksLoadBalancer
-    :members:
-
-.. autoclass:: libcloud.compute.drivers.profitbricks.ProfitBricksAvailabilityZone
-    :members:
-
-.. autoclass:: libcloud.compute.drivers.profitbricks.ProfitBricksIPBlock
-    :members:
-
-.. _`ProfitBricks`: https://www.profitbricks.com/
-.. _`ProfitBricks Cloud API`: https://devops.profitbricks.com/api/cloud/
-.. _`driver documentation`: https://devops.profitbricks.com/libraries/libcloud/
-
diff --git a/docs/container/_supported_methods.rst b/docs/container/_supported_methods.rst
index 5774b94..e95bcfa 100644
--- a/docs/container/_supported_methods.rst
+++ b/docs/container/_supported_methods.rst
@@ -6,7 +6,6 @@
 `Docker`_                           yes           yes         yes              yes           yes             yes            yes               yes               yes             no             no             no              no           
 `Amazon Elastic Container Service`_ no            yes         yes              yes           yes             yes            yes               yes               yes             no             yes            yes             yes          
 `Google Container Engine`_          no            no          yes              yes           no              no             no                yes               yes             no             no             no              yes          
-`Joyent Triton`_                    yes           yes         yes              yes           yes             yes            yes               yes               yes             no             no             no              no           
 `Kubernetes`_                       no            no          yes              yes           no              no             no                yes               yes             no             no             no              no           
 `LXD`_                              yes           yes         yes              yes           yes             yes            yes               yes               yes             no             no             no              no           
 `Rancher`_                          no            no          yes              yes           yes             yes            no                yes               yes             no             no             no              no           
@@ -15,7 +14,6 @@
 .. _`Docker`: http://docker.io
 .. _`Amazon Elastic Container Service`: https://aws.amazon.com/ecs/details/
 .. _`Google Container Engine`: https://container.googleapis.com
-.. _`Joyent Triton`: http://joyent.com
 .. _`Kubernetes`: http://kubernetes.io
 .. _`LXD`: https://linuxcontainers.org/
 .. _`Rancher`: http://rancher.com
diff --git a/docs/container/_supported_providers.rst b/docs/container/_supported_providers.rst
index baac3bb..9b3e6a2 100644
--- a/docs/container/_supported_providers.rst
+++ b/docs/container/_supported_providers.rst
@@ -6,7 +6,6 @@
 `Docker`_                           :doc:`Click </container/drivers/docker>`     DOCKER            single region driver :mod:`libcloud.container.drivers.docker`     :class:`DockerContainerDriver`    
 `Amazon Elastic Container Service`_ :doc:`Click </container/drivers/ecs>`        ECS               single region driver :mod:`libcloud.container.drivers.ecs`        :class:`ElasticContainerDriver`   
 `Google Container Engine`_          :doc:`Click </container/drivers/gke>`        GKE               single region driver :mod:`libcloud.container.drivers.gke`        :class:`GKEContainerDriver`       
-`Joyent Triton`_                    :doc:`Click </container/drivers/joyent>`     JOYENT            single region driver :mod:`libcloud.container.drivers.joyent`     :class:`JoyentContainerDriver`    
 `Kubernetes`_                       :doc:`Click </container/drivers/kubernetes>` KUBERNETES        single region driver :mod:`libcloud.container.drivers.kubernetes` :class:`KubernetesContainerDriver`
 `LXD`_                                                                           LXD               single region driver :mod:`libcloud.container.drivers.lxd`        :class:`LXDContainerDriver`       
 `Rancher`_                          :doc:`Click </container/drivers/rancher>`    RANCHER           single region driver :mod:`libcloud.container.drivers.rancher`    :class:`RancherContainerDriver`   
@@ -15,7 +14,6 @@
 .. _`Docker`: http://docker.io
 .. _`Amazon Elastic Container Service`: https://aws.amazon.com/ecs/details/
 .. _`Google Container Engine`: https://container.googleapis.com
-.. _`Joyent Triton`: http://joyent.com
 .. _`Kubernetes`: http://kubernetes.io
 .. _`LXD`: https://linuxcontainers.org/
 .. _`Rancher`: http://rancher.com
diff --git a/docs/container/drivers/joyent.rst b/docs/container/drivers/joyent.rst
deleted file mode 100644
index a8b29d3..0000000
--- a/docs/container/drivers/joyent.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-Joyent Triton Container Driver Documentation
-============================================
-
-`Joyent Triton`_ is a Docker hosting service, provided by service provider Joyent.
-Docker-native tools and elastic hosts make deploying on Triton as easy as running Docker on your laptop.
-There is no special software to install or configure.
-Mix Docker containers with container-native Linux to extend the benefits of containerization to legacy applications and stateful services.
-
-.. figure:: /_static/images/provider_logos/triton.png
-    :align: center
-    :width: 300
-    :target: http://joyent.com/
-
-Instantiating the driver
-------------------------
-
-Download the script::
-
-    curl -O https://raw.githubusercontent.com/joyent/sdc-docker/master/tools/sdc-docker-setup.sh
-    
-Now execute the script, substituting the correct values::
-
-    bash sdc-docker-setup.sh <CLOUDAPI_URL> <ACCOUNT_USERNAME> ~/.ssh/<PRIVATE_KEY_FILE>
-
-This should output something similar to the following::
-
-    Setting up Docker client for SDC using:
-        CloudAPI:        https://us-east-1.api.joyent.com
-        Account:         jill
-        Key:             /Users/localuser/.ssh/sdc-docker.id_rsa
-    
-    If you have a pass phrase on your key, the openssl command will
-    prompt you for your pass phrase now and again later.
-    
-    Verifying CloudAPI access.
-    CloudAPI access verified.
-    
-    Generating client certificate from SSH private key.
-    writing RSA key
-    Wrote certificate files to /Users/localuser/.sdc/docker/jill
-    
-    Get Docker host endpoint from cloudapi.
-    Docker service endpoint is: tcp://us-east-1.docker.joyent.com:2376
-    
-    * * *
-    Success. Set your environment as follows:
-    
-        export DOCKER_CERT_PATH=/Users/localuser/.sdc/docker/jill
-        export DOCKER_HOST=tcp://us-east-1.docker.joyent.com:2376
-        export DOCKER_CLIENT_TIMEOUT=300
-        export DOCKER_TLS_VERIFY=1
-        
-.. literalinclude:: /examples/container/joyent/instantiate_driver.py
-   :language: python
-   
-API Docs
---------
-
-.. autoclass:: libcloud.container.drivers.joyent.JoyentContainerDriver
-    :members:
-    :inherited-members:
-
-
-.. _`Joyent Triton`: https://www.joyent.com/blog/understanding-triton-containers
diff --git a/docs/dns/_supported_methods.rst b/docs/dns/_supported_methods.rst
index e7a7195..cd296e8 100644
--- a/docs/dns/_supported_methods.rst
+++ b/docs/dns/_supported_methods.rst
@@ -13,7 +13,6 @@
 `Gandi LiveDNS`_    yes        yes          yes         no          yes           yes           no          yes          
 `GoDaddy DNS`_      yes        yes          no          no          yes           yes           yes         no           
 `Google DNS`_       yes        yes          yes         no          yes           no            yes         yes          
-`Host Virtual DNS`_ yes        yes          yes         yes         yes           yes           yes         yes          
 `Linode DNS`_       yes        yes          yes         yes         yes           yes           yes         yes          
 `Liquidweb DNS`_    yes        yes          yes         no          yes           yes           yes         yes          
 `Luadns`_           yes        yes          yes         no          yes           no            yes         yes          
@@ -25,7 +24,6 @@
 `Rackspace DNS`_    yes        yes          yes         yes         yes           yes           yes         yes          
 `RcodeZero DNS`_    yes        yes          yes         yes         yes           yes           yes         yes          
 `Route53 DNS`_      yes        yes          yes         no          yes           yes           yes         yes          
-`Softlayer DNS`_    yes        yes          yes         no          yes           yes           yes         yes          
 `Vultr DNS`_        yes        yes          yes         no          yes           yes           yes         yes          
 `World Wide DNS`_   yes        yes          yes         yes         yes           yes           yes         yes          
 `Zerigo DNS`_       yes        yes          yes         yes         yes           yes           yes         yes          
@@ -42,7 +40,6 @@
 .. _`Gandi LiveDNS`: http://www.gandi.net/domain
 .. _`GoDaddy DNS`: https://www.godaddy.com/
 .. _`Google DNS`: https://cloud.google.com/
-.. _`Host Virtual DNS`: https://www.hostvirtual.com/
 .. _`Linode DNS`: http://www.linode.com/
 .. _`Liquidweb DNS`: https://www.liquidweb.com
 .. _`Luadns`: https://www.luadns.com
@@ -54,7 +51,6 @@
 .. _`Rackspace DNS`: http://www.rackspace.com/
 .. _`RcodeZero DNS`: https://www.rcodezero.at/
 .. _`Route53 DNS`: http://aws.amazon.com/route53/
-.. _`Softlayer DNS`: https://www.softlayer.com
 .. _`Vultr DNS`: https://www.vultr.com
 .. _`World Wide DNS`: https://www.worldwidedns.net/
 .. _`Zerigo DNS`: http://www.zerigo.com/
diff --git a/docs/dns/_supported_providers.rst b/docs/dns/_supported_providers.rst
index 5f7c910..b05b9d6 100644
--- a/docs/dns/_supported_providers.rst
+++ b/docs/dns/_supported_providers.rst
@@ -13,7 +13,6 @@
 `Gandi LiveDNS`_                                              GANDI_LIVE        single region driver :mod:`libcloud.dns.drivers.gandi_live`   :class:`GandiLiveDNSDriver`   
 `GoDaddy DNS`_      :doc:`Click </dns/drivers/godaddy>`       GODADDY           single region driver :mod:`libcloud.dns.drivers.godaddy`      :class:`GoDaddyDNSDriver`     
 `Google DNS`_       :doc:`Click </dns/drivers/google>`        GOOGLE            single region driver :mod:`libcloud.dns.drivers.google`       :class:`GoogleDNSDriver`      
-`Host Virtual DNS`_ :doc:`Click </dns/drivers/hostvirtual>`   HOSTVIRTUAL       single region driver :mod:`libcloud.dns.drivers.hostvirtual`  :class:`HostVirtualDNSDriver` 
 `Linode DNS`_                                                 LINODE            single region driver :mod:`libcloud.dns.drivers.linode`       :class:`LinodeDNSDriver`      
 `Liquidweb DNS`_    :doc:`Click </dns/drivers/liquidweb>`     LIQUIDWEB         single region driver :mod:`libcloud.dns.drivers.liquidweb`    :class:`LiquidWebDNSDriver`   
 `Luadns`_           :doc:`Click </dns/drivers/luadns>`        LUADNS            single region driver :mod:`libcloud.dns.drivers.luadns`       :class:`LuadnsDNSDriver`      
@@ -25,7 +24,6 @@
 `Rackspace DNS`_                                              RACKSPACE         uk, us               :mod:`libcloud.dns.drivers.rackspace`    :class:`RackspaceDNSDriver`   
 `RcodeZero DNS`_    :doc:`Click </dns/drivers/rcodezero>`     RCODEZERO         single region driver :mod:`libcloud.dns.drivers.rcodezero`    :class:`RcodeZeroDNSDriver`   
 `Route53 DNS`_                                                ROUTE53           single region driver :mod:`libcloud.dns.drivers.route53`      :class:`Route53DNSDriver`     
-`Softlayer DNS`_                                              SOFTLAYER         single region driver :mod:`libcloud.dns.drivers.softlayer`    :class:`SoftLayerDNSDriver`   
 `Vultr DNS`_        :doc:`Click </dns/drivers/vultr>`         VULTR             single region driver :mod:`libcloud.dns.drivers.vultr`        :class:`VultrDNSDriver`       
 `World Wide DNS`_   :doc:`Click </dns/drivers/worldwidedns>`  WORLDWIDEDNS      single region driver :mod:`libcloud.dns.drivers.worldwidedns` :class:`WorldWideDNSDriver`   
 `Zerigo DNS`_                                                 ZERIGO            single region driver :mod:`libcloud.dns.drivers.zerigo`       :class:`ZerigoDNSDriver`      
@@ -42,7 +40,6 @@
 .. _`Gandi LiveDNS`: http://www.gandi.net/domain
 .. _`GoDaddy DNS`: https://www.godaddy.com/
 .. _`Google DNS`: https://cloud.google.com/
-.. _`Host Virtual DNS`: https://www.hostvirtual.com/
 .. _`Linode DNS`: http://www.linode.com/
 .. _`Liquidweb DNS`: https://www.liquidweb.com
 .. _`Luadns`: https://www.luadns.com
@@ -54,7 +51,6 @@
 .. _`Rackspace DNS`: http://www.rackspace.com/
 .. _`RcodeZero DNS`: https://www.rcodezero.at/
 .. _`Route53 DNS`: http://aws.amazon.com/route53/
-.. _`Softlayer DNS`: https://www.softlayer.com
 .. _`Vultr DNS`: https://www.vultr.com
 .. _`World Wide DNS`: https://www.worldwidedns.net/
 .. _`Zerigo DNS`: http://www.zerigo.com/
diff --git a/docs/dns/drivers/hostvirtual.rst b/docs/dns/drivers/hostvirtual.rst
deleted file mode 100644
index fd1337e..0000000
--- a/docs/dns/drivers/hostvirtual.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-HostVirtual DNS Driver Documentation
-====================================
-
-`Host Virtual`_ is a cloud hosting provider that operates dual-stack IPv4
-and IPv6 IaaS clouds in 15 locations worldwide.
-
-Instantiating a driver
-----------------------
-
-When you instantiate a driver, you need to pass a single ``key`` argument to
-the driver constructor. This argument represents your API secret key.
-
-For example:
-
-.. literalinclude:: /examples/dns/hostvirtual/instantiate_driver.py
-   :language: python
-
-.. _`Host Virtual`: https://www.hostvirtual.com/
diff --git a/docs/examples/compute/bsnl/__init__.py b/docs/examples/compute/bsnl/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/docs/examples/compute/bsnl/__init__.py
+++ /dev/null
diff --git a/docs/examples/compute/bsnl/instantiate_driver.py b/docs/examples/compute/bsnl/instantiate_driver.py
deleted file mode 100644
index ba335aa..0000000
--- a/docs/examples/compute/bsnl/instantiate_driver.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from pprint import pprint
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.BSNL)
-driver = cls("my username", "my password", region="bsnl-in")
-
-pprint(driver.list_nodes())
diff --git a/docs/examples/compute/cloudwatt/__init__.py b/docs/examples/compute/cloudwatt/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/docs/examples/compute/cloudwatt/__init__.py
+++ /dev/null
diff --git a/docs/examples/compute/cloudwatt/create_node.py b/docs/examples/compute/cloudwatt/create_node.py
deleted file mode 100644
index 8f5f373..0000000
--- a/docs/examples/compute/cloudwatt/create_node.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-Cloudwatt = get_driver(Provider.CLOUDWATT)
-driver = Cloudwatt("your_email", "your_password", "your_tenant_id", tenant_name="your_tenant_name")
-image = [i for i in driver.list_images() if i.name == "Debian Wheezy"][0]
-size = [s for s in driver.list_sizes() if s.name == "n1.cw.standard-1"][0]
-node = driver.create_node(name="yournode", size=size, image=image)
diff --git a/docs/examples/compute/cloudwatt/create_volume.py b/docs/examples/compute/cloudwatt/create_volume.py
deleted file mode 100644
index 7b3d91a..0000000
--- a/docs/examples/compute/cloudwatt/create_volume.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-Cloudwatt = get_driver(Provider.CLOUDWATT)
-driver = Cloudwatt("your_email", "your_password", "your_tenant_id", tenant_name="your_tenant_name")
-node = driver.list_nodes()[0]
-volume = driver.create_volume(10, "your_volume")
-driver.attach_volume(node, volume)
diff --git a/docs/examples/compute/indosat/__init__.py b/docs/examples/compute/indosat/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/docs/examples/compute/indosat/__init__.py
+++ /dev/null
diff --git a/docs/examples/compute/indosat/instantiate_driver.py b/docs/examples/compute/indosat/instantiate_driver.py
deleted file mode 100644
index ba7dae9..0000000
--- a/docs/examples/compute/indosat/instantiate_driver.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from pprint import pprint
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.INDOSAT)
-driver = cls("my username", "my password", region="indosat-id")
-
-pprint(driver.list_nodes())
diff --git a/docs/examples/compute/medone/__init__.py b/docs/examples/compute/medone/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/docs/examples/compute/medone/__init__.py
+++ /dev/null
diff --git a/docs/examples/compute/medone/instantiate_driver.py b/docs/examples/compute/medone/instantiate_driver.py
deleted file mode 100644
index d6ae1ce..0000000
--- a/docs/examples/compute/medone/instantiate_driver.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from pprint import pprint
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.MEDONE)
-driver = cls("my username", "my password", region="med1-il")
-
-pprint(driver.list_nodes())
diff --git a/docs/examples/compute/oneandone/__init__.py b/docs/examples/compute/oneandone/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/docs/examples/compute/oneandone/__init__.py
+++ /dev/null
diff --git a/docs/examples/compute/oneandone/create_firewall_policy.py b/docs/examples/compute/oneandone/create_firewall_policy.py
deleted file mode 100644
index 3aa0773..0000000
--- a/docs/examples/compute/oneandone/create_firewall_policy.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.ONEANDONE)
-drv = cls(key=os.environ.get("ONEANDONE_TOKEN"))
-
-my_rules = [
-    {"protocol": "TCP", "port_from": 80, "port_to": 80, "source": "0.0.0.0"},
-    {
-        "description": "Testing firewall improvements",
-        "protocol": "TCP",
-        "port": 443,
-        "source": "0.0.0.0",
-    },
-]
-
-print(type(my_rules))
-
-try:
-    fw_policy = drv.ex_create_firewall_policy(
-        name="Firewall Policy", rules=my_rules, description="FW Policy Description"
-    )
-    print(fw_policy)
-except Exception as e:
-    print(e)
diff --git a/docs/examples/compute/oneandone/create_load_balancer.py b/docs/examples/compute/oneandone/create_load_balancer.py
deleted file mode 100644
index 15cbcfe..0000000
--- a/docs/examples/compute/oneandone/create_load_balancer.py
+++ /dev/null
@@ -1,32 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.ONEANDONE)
-drv = cls(key=os.environ.get("ONEANDONE_TOKEN"))
-
-rules = [
-    {"protocol": "TCP", "port_balancer": 80, "port_server": 80, "source": "0.0.0.0"},
-    {
-        "protocol": "TCP",
-        "port_balancer": 9999,
-        "port_server": 8888,
-        "source": "0.0.0.0",
-    },
-]
-
-try:
-    shared_storage = drv.ex_create_load_balancer(
-        name="Test Load Balancer",
-        method="ROUND_ROBIN",
-        rules=rules,
-        persistence=False,
-        persistence_time=1200,
-        health_check_test="TCP",
-        health_check_interval=40,
-    )
-
-    print(shared_storage)
-except Exception as e:
-    print(e)
diff --git a/docs/examples/compute/oneandone/create_monitoring_policy.py b/docs/examples/compute/oneandone/create_monitoring_policy.py
deleted file mode 100644
index 583c726..0000000
--- a/docs/examples/compute/oneandone/create_monitoring_policy.py
+++ /dev/null
@@ -1,54 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.ONEANDONE)
-drv = cls(key=os.environ.get("ONEANDONE_TOKEN"))
-
-ports = [
-    {
-        "protocol": "TCP",
-        "port": 443,
-        "alert_if": "NOT_RESPONDING",
-        "email_notification": True,
-    }
-]
-
-processes = [{"process": "httpdeamon", "alert_if": "NOT_RUNNING", "email_notification": False}]
-thresholds = {
-    "cpu": {
-        "warning": {"value": 90, "alert": False},
-        "critical": {"value": 95, "alert": False},
-    },
-    "ram": {
-        "warning": {"value": 90, "alert": False},
-        "critical": {"value": 95, "alert": False},
-    },
-    "disk": {
-        "warning": {"value": 80, "alert": False},
-        "critical": {"value": 90, "alert": False},
-    },
-    "transfer": {
-        "warning": {"value": 1000, "alert": False},
-        "critical": {"value": 2000, "alert": False},
-    },
-    "internal_ping": {
-        "warning": {"value": 50, "alert": False},
-        "critical": {"value": 100, "alert": True},
-    },
-}
-
-try:
-    monitoring_policy = drv.ex_create_monitoring_policy(
-        name="Monitoring Policy",
-        ports=ports,
-        thresholds=thresholds,
-        processes=processes,
-        description="Monitoring Policy Description",
-        email="test@test.com",
-        agent=True,
-    )
-    print(monitoring_policy)
-except Exception as e:
-    print(e)
diff --git a/docs/examples/compute/oneandone/create_node.py b/docs/examples/compute/oneandone/create_node.py
deleted file mode 100644
index 1639d9e..0000000
--- a/docs/examples/compute/oneandone/create_node.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.ONEANDONE)
-drv = cls(key=os.environ.get("ONEANDONE_TOKEN"))
-
-# First we need to get all avaliable sizes
-sizes = drv.list_sizes()
-
-# Then we select one we want to use to create a node. We pick 'S' as small.
-desired_size = [size for size in sizes if size.name == "S"]
-
-# Let's get all available images
-images = drv.list_images("IMAGE")
-
-# Now we select an image we want to install on to the node.
-# We pick Ubuntu 14.04
-desired_image = [img for img in images if "ubuntu1404-64min" in img.name.lower()]
-
-# This step is optional.
-# Then we get the list of available datacenters (locations)
-locations = drv.list_locations()
-
-# And we pick one in this case Spain (ES)
-desired_location = [loc for loc in locations if loc.name == "ES"]
-
-# Now let's create that node:
-node = drv.create_node(
-    name="Libcloud Test Node2",
-    image=desired_image[0],
-    ex_fixed_instance_size_id=desired_size[0].id,
-    location=desired_location[0],
-)
-
-print(node)
diff --git a/docs/examples/compute/oneandone/create_private_network.py b/docs/examples/compute/oneandone/create_private_network.py
deleted file mode 100644
index 2e6702e..0000000
--- a/docs/examples/compute/oneandone/create_private_network.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.ONEANDONE)
-drv = cls(key=os.environ.get("ONEANDONE_TOKEN"))
-
-try:
-    public_network = drv.ex_create_private_network(name="TestPN")
-    print(public_network)
-except Exception as e:
-    print(e)
diff --git a/docs/examples/compute/oneandone/create_public_ip.py b/docs/examples/compute/oneandone/create_public_ip.py
deleted file mode 100644
index 1fd3ebe..0000000
--- a/docs/examples/compute/oneandone/create_public_ip.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.ONEANDONE)
-drv = cls(key=os.environ.get("ONEANDONE_TOKEN"))
-
-try:
-    public_ip = drv.ex_create_public_ip(type="IPV4")
-    print(public_ip)
-except Exception as e:
-    print(e)
diff --git a/docs/examples/compute/oneandone/create_shared_storage.py b/docs/examples/compute/oneandone/create_shared_storage.py
deleted file mode 100644
index 71f4d9f..0000000
--- a/docs/examples/compute/oneandone/create_shared_storage.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.ONEANDONE)
-drv = cls(key=os.environ.get("ONEANDONE_TOKEN"))
-
-locations = drv.list_locations()
-
-desired_location = [loc for loc in locations if loc.name == "ES"]
-
-try:
-    shared_storage = drv.ex_create_shared_storage(
-        name="Test Shared Storage",
-        size=50,
-        datacenter_id=desired_location[0].id,
-        description=None,
-    )
-    print(shared_storage)
-except Exception as e:
-    print(e)
diff --git a/docs/examples/compute/oneandone/instantiate_driver.py b/docs/examples/compute/oneandone/instantiate_driver.py
deleted file mode 100644
index dd9cfd3..0000000
--- a/docs/examples/compute/oneandone/instantiate_driver.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-# First we need to instantiate desired libcoud driver.
-cls = get_driver(Provider.ONEANDONE)
-
-token = "your_token"
-# Then pass in your security token
-drv = cls(key=token)
diff --git a/docs/examples/compute/openstack/kilicloud_native.py b/docs/examples/compute/openstack/kilicloud_native.py
deleted file mode 100644
index 44e9eda..0000000
--- a/docs/examples/compute/openstack/kilicloud_native.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-USERNAME = "your account username"
-PASSWORD = "your account password"
-TENANT_NAME = "project name"
-
-cls = get_driver(Provider.KILI)
-driver = cls(USERNAME, PASSWORD, tenant_name=TENANT_NAME)
-print(driver.list_nodes())
diff --git a/docs/examples/compute/profitbricks/__init__.py b/docs/examples/compute/profitbricks/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/docs/examples/compute/profitbricks/__init__.py
+++ /dev/null
diff --git a/docs/examples/compute/profitbricks/create_datacenter.py b/docs/examples/compute/profitbricks/create_datacenter.py
deleted file mode 100644
index a35f9e8..0000000
--- a/docs/examples/compute/profitbricks/create_datacenter.py
+++ /dev/null
@@ -1,26 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.PROFIT_BRICKS)
-
-# Get ProfitBricks credentials from environment variables
-pb_username = os.environ.get("PROFITBRICKS_USERNAME")
-pb_password = os.environ.get("PROFITBRICKS_PASSWORD")
-
-driver = cls(pb_username, pb_password)
-
-# list available locations
-locations = driver.list_locations()
-
-my_location = None
-# US Las Vegas location
-for loc in locations:
-    if loc.id == "us/las":
-        my_location = loc
-        break
-
-# Create a data center
-datacenter = driver.ex_create_datacenter("demo-dc", my_location)
-print(datacenter)
diff --git a/docs/examples/compute/profitbricks/create_lan.py b/docs/examples/compute/profitbricks/create_lan.py
deleted file mode 100644
index aaa5a77..0000000
--- a/docs/examples/compute/profitbricks/create_lan.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.PROFIT_BRICKS)
-
-# Get ProfitBricks credentials from environment variables
-pb_username = os.environ.get("PROFITBRICKS_USERNAME")
-pb_password = os.environ.get("PROFITBRICKS_PASSWORD")
-
-driver = cls(pb_username, pb_password)
-
-datacenters = driver.list_datacenters()
-# Looks for existing data centers named 'demo-dc'
-datacenter = [dc for dc in datacenters if dc.name == "demo-dc"][0]
-
-# Create a public LAN
-lan = driver.ex_create_lan(datacenter, is_public=True)
-print(lan)
diff --git a/docs/examples/compute/profitbricks/create_node.py b/docs/examples/compute/profitbricks/create_node.py
deleted file mode 100644
index 1d098f8..0000000
--- a/docs/examples/compute/profitbricks/create_node.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import os
-
-from libcloud.compute.base import NodeAuthSSHKey
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.PROFIT_BRICKS)
-
-# Get ProfitBricks credentials from environment variables
-pb_username = os.environ.get("PROFITBRICKS_USERNAME")
-pb_password = os.environ.get("PROFITBRICKS_PASSWORD")
-
-driver = cls(pb_username, pb_password)
-
-# List available sizes
-sizes = driver.list_sizes()
-
-# Medium-size instance
-my_size = sizes[1]
-
-datacenters = driver.ex_list_datacenters()
-# Looks for existing data centers named 'demo-dc'
-desired_dc = [dc for dc in datacenters if dc.name == "demo-dc"]
-
-# Get available HDD public images
-images = driver.list_images("HDD")
-
-my_image = None
-# Let's choose Ubuntu-16.04 image in us/las region
-for img in images:
-    if "Ubuntu-16.04-LTS-server" in img.name and "us/las" == img.extra["location"]:
-        my_image = img
-        break
-
-node_key = None
-# Read SSH key from file
-# Specify correct path
-with open("/home/user/.ssh/id_rsa.pub") as f:
-    node_key = NodeAuthSSHKey(f.read())
-f.close()
-
-node = driver.create_node(
-    name="demo-node",
-    size=my_size,
-    ex_cpu_family="INTEL_XEON",
-    image=my_image,
-    ex_datacenter=desired_dc[0],
-    ex_ssh_keys=[node_key],
-)
-print(node)
diff --git a/docs/examples/compute/profitbricks/create_volume.py b/docs/examples/compute/profitbricks/create_volume.py
deleted file mode 100644
index 22865d2..0000000
--- a/docs/examples/compute/profitbricks/create_volume.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import os
-
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.PROFIT_BRICKS)
-
-# Get ProfitBricks credentials from environment variables
-pb_username = os.environ.get("PROFITBRICKS_USERNAME")
-pb_password = os.environ.get("PROFITBRICKS_PASSWORD")
-
-driver = cls(pb_username, pb_password)
-
-datacenters = driver.ex_list_datacenters()
-location = driver.ex_describe_location(ex_location_id="us/las")
-datacenter = [dc for dc in datacenters if dc.extra["location"] == location.id]
-
-images = driver.list_images(image_type="HDD")
-image = [img for img in images if img.extra["location"] == location.id][0]
-# Create a new SSD volume. Set `ex_type='HDD'` to create a HDD volume.
-ssd_volume = driver.create_volume(
-    name="Example SSD volume",
-    size=100,
-    image=image,
-    ex_type="SSD",
-    ex_datacenter=datacenter[0],
-    ex_password="PuTSoMeSTRONGPaSsWoRdHeRe2017",
-)
-print(ssd_volume)
diff --git a/docs/examples/compute/profitbricks/instantiate_driver.py b/docs/examples/compute/profitbricks/instantiate_driver.py
deleted file mode 100644
index af81d2d..0000000
--- a/docs/examples/compute/profitbricks/instantiate_driver.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from libcloud.compute.types import Provider
-from libcloud.compute.providers import get_driver
-
-cls = get_driver(Provider.PROFIT_BRICKS)
-driver = cls("username", "password")
diff --git a/docs/examples/dns/hostvirtual/__init__.py b/docs/examples/dns/hostvirtual/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/docs/examples/dns/hostvirtual/__init__.py
+++ /dev/null
diff --git a/docs/examples/dns/hostvirtual/instantiate_driver.py b/docs/examples/dns/hostvirtual/instantiate_driver.py
deleted file mode 100644
index 5307a7f..0000000
--- a/docs/examples/dns/hostvirtual/instantiate_driver.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from libcloud.dns.types import Provider
-from libcloud.dns.providers import get_driver
-
-cls = get_driver(Provider.HOSTVIRTUAL)
-driver = cls(key="my secret key")
diff --git a/docs/examples/loadbalancer/softlayer/__init__.py b/docs/examples/loadbalancer/softlayer/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/docs/examples/loadbalancer/softlayer/__init__.py
+++ /dev/null
diff --git a/docs/examples/loadbalancer/softlayer/add_list_remove_balancer_members.py b/docs/examples/loadbalancer/softlayer/add_list_remove_balancer_members.py
deleted file mode 100644
index 4c99bfa..0000000
--- a/docs/examples/loadbalancer/softlayer/add_list_remove_balancer_members.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from libcloud.loadbalancer.base import DEFAULT_ALGORITHM, Member
-from libcloud.loadbalancer.types import Provider
-from libcloud.loadbalancer.providers import get_driver
-
-USER_NAME = "your user name"
-SECRET_KEY = "your secret key"
-
-cls = get_driver(Provider.SOFTLAYER)
-driver = cls(key=USER_NAME, secret=SECRET_KEY)
-
-balancer = driver.list_balancers()[0]
-
-if balancer.port < 0:
-    # no front-end port defined, configure it with such one
-    driver.ex_configure_load_balancer(
-        balancer, port=80, protocol="http", algorithm=DEFAULT_ALGORITHM
-    )
-
-member1 = balancer.attach_member(Member(None, "192.168.88.1", 8000))
-member2 = balancer.attach_member(Member(None, "192.168.88.2", 8080))
-
-print(balancer.list_members())
-
-balancer.detach_member(member1)
-print(balancer.list_members())
-
-balancer.detach_member(member2)
-print(balancer.list_members())
diff --git a/docs/examples/loadbalancer/softlayer/destroy_balancer.py b/docs/examples/loadbalancer/softlayer/destroy_balancer.py
deleted file mode 100644
index 87372ff..0000000
--- a/docs/examples/loadbalancer/softlayer/destroy_balancer.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from libcloud.loadbalancer.types import Provider
-from libcloud.loadbalancer.providers import get_driver
-
-USER_NAME = "your user name"
-SECRET_KEY = "your secret key"
-
-cls = get_driver(Provider.SOFTLAYER)
-driver = cls(key=USER_NAME, secret=SECRET_KEY)
-
-balancer = driver.list_balancers()[0]
-balancer.destroy()
diff --git a/docs/examples/loadbalancer/softlayer/ex_place_balancer_order.py b/docs/examples/loadbalancer/softlayer/ex_place_balancer_order.py
deleted file mode 100644
index ad48afc..0000000
--- a/docs/examples/loadbalancer/softlayer/ex_place_balancer_order.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from libcloud.compute.base import NodeLocation
-from libcloud.loadbalancer.types import Provider
-from libcloud.loadbalancer.providers import get_driver
-
-USER_NAME = "your user name"
-SECRET_KEY = "your secret key"
-
-cls = get_driver(Provider.SOFTLAYER)
-driver = cls(key=USER_NAME, secret=SECRET_KEY)
-
-# order loadbalancer with a capacity of 50 connections
-CAPACITY = 50
-# create the balancer in Dallas 5 datacenter
-DATACENTER = "dal05"
-
-# select package to create balancer from
-packages = driver.ex_list_balancer_packages()
-lb_package = [p for p in packages if p.capacity == CAPACITY][0]
-
-driver.ex_place_balancer_order(lb_package, NodeLocation(DATACENTER, None, None, None))
-
-print("Successfully submitted oder request, from package %s" % (lb_package))
diff --git a/docs/examples/loadbalancer/softlayer/list_balancers.py b/docs/examples/loadbalancer/softlayer/list_balancers.py
deleted file mode 100644
index 0fee505..0000000
--- a/docs/examples/loadbalancer/softlayer/list_balancers.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from libcloud.loadbalancer.types import Provider
-from libcloud.loadbalancer.providers import get_driver
-
-USER_NAME = "your user name"
-SECRET_KEY = "your secret key"
-
-cls = get_driver(Provider.SOFTLAYER)
-driver = cls(key=USER_NAME, secret=SECRET_KEY)
-
-balancers = driver.list_balancers()
-
-for balancer in balancers:
-    print("{} {}".format(balancer, balancer.extra))
diff --git a/docs/index.rst b/docs/index.rst
index b6b2f8f..f3b0fca 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -23,7 +23,7 @@
   Rackspace CloudServers
 * :doc:`Cloud Object Storage and CDN </storage/index>` - services such as Amazon S3 and
   Rackspace CloudFiles
-* :doc:`Load Balancers as a Service </loadbalancer/index>` - services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers
+* :doc:`Load Balancers as a Service </loadbalancer/index>` - services such as Amazon Elastic Load Balancer
 * :doc:`DNS as a Service </dns/index>` - services such as Amazon Route 53 and Zerigo
 * :doc:`Container Services </container/index>` - container virtualization like Docker and Rkt as well as container based services
 * :doc:`Backup as a Service </backup/index>` - services such as Amazon EBS and OpenStack Freezer
diff --git a/docs/loadbalancer/_supported_methods.rst b/docs/loadbalancer/_supported_methods.rst
index 17c57d0..c08ccd5 100644
--- a/docs/loadbalancer/_supported_methods.rst
+++ b/docs/loadbalancer/_supported_methods.rst
@@ -10,11 +10,9 @@
 `Dimension Data Load Balancer`_        yes             yes            yes          yes           yes           no                 
 `Amazon Elastic Load Balancing`_       yes             yes            yes          no            yes           yes                
 `Google Compute Engine Load Balancer`_ yes             yes            yes          yes           yes           yes                
-`GoGrid LB`_                           yes             yes            yes          yes           yes           no                 
 `Ninefold LB`_                         yes             yes            yes          yes           yes           no                 
 `NTTC-CIS Load Balancer`_              yes             yes            yes          yes           yes           no                 
 `Rackspace LB`_                        yes             yes            yes          yes           yes           no                 
-`Softlayer Load Balancing`_            no              yes            yes          yes           yes           no                 
 ====================================== =============== ============== ============ ============= ============= ===================
 
 .. _`Amazon Application Load Balancing`: http://aws.amazon.com/elasticloadbalancing/
@@ -24,8 +22,6 @@
 .. _`Dimension Data Load Balancer`: https://cloud.dimensiondata.com/
 .. _`Amazon Elastic Load Balancing`: http://aws.amazon.com/elasticloadbalancing/
 .. _`Google Compute Engine Load Balancer`: https://cloud.google.com/
-.. _`GoGrid LB`: http://www.gogrid.com/
 .. _`Ninefold LB`: http://ninefold.com/
 .. _`NTTC-CIS Load Balancer`: https://cloud.nttcis.com/
 .. _`Rackspace LB`: http://www.rackspace.com/
-.. _`Softlayer Load Balancing`: http://www.softlayer.com/
diff --git a/docs/loadbalancer/_supported_providers.rst b/docs/loadbalancer/_supported_providers.rst
index d0f9c56..543d163 100644
--- a/docs/loadbalancer/_supported_providers.rst
+++ b/docs/loadbalancer/_supported_providers.rst
@@ -10,11 +10,9 @@
 `Dimension Data Load Balancer`_        :doc:`Click </loadbalancer/drivers/dimensiondata>` DIMENSIONDATA     single region driver         :mod:`libcloud.loadbalancer.drivers.dimensiondata` :class:`DimensionDataLBDriver`
 `Amazon Elastic Load Balancing`_       :doc:`Click </loadbalancer/drivers/elb>`           ELB               single region driver         :mod:`libcloud.loadbalancer.drivers.elb`           :class:`ElasticLBDriver`      
 `Google Compute Engine Load Balancer`_ :doc:`Click </loadbalancer/drivers/gce>`           GCE               single region driver         :mod:`libcloud.loadbalancer.drivers.gce`           :class:`GCELBDriver`          
-`GoGrid LB`_                                                                              GOGRID            single region driver         :mod:`libcloud.loadbalancer.drivers.gogrid`        :class:`GoGridLBDriver`       
 `Ninefold LB`_                                                                            NINEFOLD          single region driver         :mod:`libcloud.loadbalancer.drivers.ninefold`      :class:`NinefoldLBDriver`     
 `NTTC-CIS Load Balancer`_              :doc:`Click </loadbalancer/drivers/nttcis>`        NTTCIS            single region driver         :mod:`libcloud.loadbalancer.drivers.nttcis`        :class:`NttCisLBDriver`       
 `Rackspace LB`_                                                                           RACKSPACE         dfw, hkg, iad, lon, ord, syd :mod:`libcloud.loadbalancer.drivers.rackspace`     :class:`RackspaceLBDriver`    
-`Softlayer Load Balancing`_                                                               SOFTLAYER         single region driver         :mod:`libcloud.loadbalancer.drivers.softlayer`     :class:`SoftlayerLBDriver`    
 ====================================== ================================================== ================= ============================ ================================================== ==============================
 
 .. _`Amazon Application Load Balancing`: http://aws.amazon.com/elasticloadbalancing/
@@ -24,8 +22,6 @@
 .. _`Dimension Data Load Balancer`: https://cloud.dimensiondata.com/
 .. _`Amazon Elastic Load Balancing`: http://aws.amazon.com/elasticloadbalancing/
 .. _`Google Compute Engine Load Balancer`: https://cloud.google.com/
-.. _`GoGrid LB`: http://www.gogrid.com/
 .. _`Ninefold LB`: http://ninefold.com/
 .. _`NTTC-CIS Load Balancer`: https://cloud.nttcis.com/
 .. _`Rackspace LB`: http://www.rackspace.com/
-.. _`Softlayer Load Balancing`: http://www.softlayer.com/
diff --git a/docs/loadbalancer/index.rst b/docs/loadbalancer/index.rst
index fd68114..febcc0b 100644
--- a/docs/loadbalancer/index.rst
+++ b/docs/loadbalancer/index.rst
@@ -6,8 +6,7 @@
     Load Balancer API is available in Libcloud 0.5.0 and higher.
 
 Load Balancer API allows you to manage Load Balancers as a service and services
-such as Rackspace Cloud Load Balancers, GoGrid Load Balancers and Ninefold Load
-Balancers.
+such as Rackspace Cloud Load Balancers and Ninefold Load Balancers.
 
 Terminology
 -----------
diff --git a/libcloud/common/dimensiondata.py b/libcloud/common/dimensiondata.py
index e1f84f1..ee21de0 100644
--- a/libcloud/common/dimensiondata.py
+++ b/libcloud/common/dimensiondata.py
@@ -179,84 +179,6 @@
         "host": "iaas-api-ca.cisco-ccs.com",
         "vendor": "Cisco",
     },
-    "med1-il": {
-        "name": "Israel (IL)",
-        "host": "api.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-na": {
-        "name": "North America (NA)",
-        "host": "api-na.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-eu": {
-        "name": "Europe (EU)",
-        "host": "api-eu.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-au": {
-        "name": "Australia (AU)",
-        "host": "api-au.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-af": {
-        "name": "Africa (AF)",
-        "host": "api-af.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-ap": {
-        "name": "Asia Pacific (AP)",
-        "host": "api-ap.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-latam": {
-        "name": "South America (LATAM)",
-        "host": "api-sa.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-canada": {
-        "name": "Canada (CA)",
-        "host": "api-ca.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "indosat-id": {
-        "name": "Indonesia (ID)",
-        "host": "iaas-api.indosat.com",
-        "vendor": "Indosat",
-    },
-    "indosat-na": {
-        "name": "North America (NA)",
-        "host": "iaas-usapi.indosat.com",
-        "vendor": "Indosat",
-    },
-    "indosat-eu": {
-        "name": "Europe (EU)",
-        "host": "iaas-euapi.indosat.com",
-        "vendor": "Indosat",
-    },
-    "indosat-au": {
-        "name": "Australia (AU)",
-        "host": "iaas-auapi.indosat.com",
-        "vendor": "Indosat",
-    },
-    "indosat-af": {
-        "name": "Africa (AF)",
-        "host": "iaas-afapi.indosat.com",
-        "vendor": "Indosat",
-    },
-    "bsnl-in": {"name": "India (IN)", "host": "api.bsnlcloud.com", "vendor": "BSNL"},
-    "bsnl-na": {
-        "name": "North America (NA)",
-        "host": "usapi.bsnlcloud.com",
-        "vendor": "BSNL",
-    },
-    "bsnl-eu": {"name": "Europe (EU)", "host": "euapi.bsnlcloud.com", "vendor": "BSNL"},
-    "bsnl-au": {
-        "name": "Australia (AU)",
-        "host": "auapi.bsnlcloud.com",
-        "vendor": "BSNL",
-    },
-    "bsnl-af": {"name": "Africa (AF)", "host": "afapi.bsnlcloud.com", "vendor": "BSNL"},
 }
 
 # Default API end-point for the base connection class.
diff --git a/libcloud/common/gogrid.py b/libcloud/common/gogrid.py
deleted file mode 100644
index 3028f4b..0000000
--- a/libcloud/common/gogrid.py
+++ /dev/null
@@ -1,177 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import time
-import hashlib
-
-from libcloud.utils.py3 import b
-from libcloud.common.base import JsonResponse, ConnectionUserAndKey
-from libcloud.common.types import LibcloudError, InvalidCredsError, MalformedResponseError
-from libcloud.compute.base import NodeLocation
-
-HOST = "api.gogrid.com"
-PORTS_BY_SECURITY = {True: 443, False: 80}
-API_VERSION = "1.8"
-
-__all__ = [
-    "GoGridResponse",
-    "GoGridConnection",
-    "GoGridIpAddress",
-    "BaseGoGridDriver",
-]
-
-
-class GoGridResponse(JsonResponse):
-    def __init__(self, *args, **kwargs):
-        self.driver = BaseGoGridDriver
-        super().__init__(*args, **kwargs)
-
-    def success(self):
-        if self.status == 403:
-            raise InvalidCredsError("Invalid credentials", self.driver)
-        if self.status == 401:
-            raise InvalidCredsError("API Key has insufficient rights", self.driver)
-        if not self.body:
-            return None
-        try:
-            return self.parse_body()["status"] == "success"
-        except ValueError:
-            raise MalformedResponseError("Malformed reply", body=self.body, driver=self.driver)
-
-    def parse_error(self):
-        try:
-            return self.parse_body()["list"][0]["message"]
-        except (ValueError, KeyError):
-            return None
-
-
-class GoGridConnection(ConnectionUserAndKey):
-    """
-    Connection class for the GoGrid driver
-    """
-
-    host = HOST
-    responseCls = GoGridResponse
-
-    def add_default_params(self, params):
-        params["api_key"] = self.user_id
-        params["v"] = API_VERSION
-        params["format"] = "json"
-        params["sig"] = self.get_signature(self.user_id, self.key)
-
-        return params
-
-    def get_signature(self, key, secret):
-        """create sig from md5 of key + secret + time"""
-        m = hashlib.md5(b(key + secret + str(int(time.time()))))
-        return m.hexdigest()
-
-    def request(self, action, params=None, data="", headers=None, method="GET", raw=False):
-        return super().request(action, params, data, headers, method, raw)
-
-
-class GoGridIpAddress:
-    """
-    IP Address
-    """
-
-    def __init__(self, id, ip, public, state, subnet):
-        self.id = id
-        self.ip = ip
-        self.public = public
-        self.state = state
-        self.subnet = subnet
-
-
-class BaseGoGridDriver:
-    """GoGrid has common object model for services they
-    provide, like locations and IP, so keep handling of
-    these things in a single place."""
-
-    name = "GoGrid"
-
-    def _get_ip(self, element):
-        return element.get("ip").get("ip")
-
-    def _to_ip(self, element):
-        ip = GoGridIpAddress(
-            id=element["id"],
-            ip=element["ip"],
-            public=element["public"],
-            subnet=element["subnet"],
-            state=element["state"]["name"],
-        )
-        ip.location = self._to_location(element["datacenter"])
-        return ip
-
-    def _to_ips(self, object):
-        return [self._to_ip(el) for el in object["list"]]
-
-    def _to_location(self, element):
-        # pylint: disable=no-member
-        location = NodeLocation(
-            id=element["id"],
-            name=element["name"],
-            country="US",
-            driver=self.connection.driver,
-        )
-        return location
-
-    def _to_locations(self, object):
-        return [self._to_location(el) for el in object["list"]]
-
-    def ex_list_ips(self, **kwargs):
-        """Return list of IP addresses assigned to
-        the account.
-
-        :keyword    public: set to True to list only
-                    public IPs or False to list only
-                    private IPs. Set to None or not specify
-                    at all not to filter by type
-        :type       public: ``bool``
-
-        :keyword    assigned: set to True to list only addresses
-                    assigned to servers, False to list unassigned
-                    addresses and set to None or don't set at all
-                    not no filter by state
-        :type       assigned: ``bool``
-
-        :keyword    location: filter IP addresses by location
-        :type       location: :class:`NodeLocation`
-
-        :rtype: ``list`` of :class:`GoGridIpAddress`
-        """
-
-        params = {}
-
-        if "public" in kwargs and kwargs["public"] is not None:
-            params["ip.type"] = {True: "Public", False: "Private"}[kwargs["public"]]
-        if "assigned" in kwargs and kwargs["assigned"] is not None:
-            params["ip.state"] = {True: "Assigned", False: "Unassigned"}[kwargs["assigned"]]
-        if "location" in kwargs and kwargs["location"] is not None:
-            params["datacenter"] = kwargs["location"].id
-
-        # pylint: disable=no-member
-        response = self.connection.request("/api/grid/ip/list", params=params)
-        ips = self._to_ips(response.object)
-        return ips
-
-    def _get_first_ip(self, location=None):
-        ips = self.ex_list_ips(public=True, assigned=False, location=location)
-        try:
-            return ips[0].ip
-        except IndexError:
-            # pylint: disable=no-member
-            raise LibcloudError("No public unassigned IPs left", self.driver)
diff --git a/libcloud/common/hostvirtual.py b/libcloud/common/hostvirtual.py
deleted file mode 100644
index 4f58814..0000000
--- a/libcloud/common/hostvirtual.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-try:
-    import simplejson as json
-except ImportError:
-    import json  # type: ignore
-
-from libcloud.utils.py3 import httplib
-from libcloud.common.base import JsonResponse, ConnectionKey
-from libcloud.common.types import LibcloudError
-from libcloud.compute.types import InvalidCredsError
-
-API_HOST = "vapi.vr.org"
-
-
-class HostVirtualException(LibcloudError):
-    def __init__(self, code, message):
-        self.code = code
-        self.message = message
-        self.args = (code, message)
-
-    def __str__(self):
-        return self.__repr__()
-
-    def __repr__(self):
-        return "<HostVirtualException in %d: %s>" % (self.code, self.message)
-
-
-class HostVirtualConnection(ConnectionKey):
-    host = API_HOST
-
-    allow_insecure = False
-
-    def add_default_params(self, params):
-        params["key"] = self.key
-        return params
-
-
-class HostVirtualResponse(JsonResponse):
-    valid_response_codes = [
-        httplib.OK,
-        httplib.ACCEPTED,
-        httplib.CREATED,
-        httplib.NO_CONTENT,
-    ]
-
-    def parse_body(self):
-        if not self.body:
-            return None
-
-        data = json.loads(self.body)
-        return data
-
-    def parse_error(self):
-        data = self.parse_body()
-
-        if self.status == httplib.UNAUTHORIZED:
-            raise InvalidCredsError("%(code)s:%(message)s" % (data["error"]))
-        elif self.status == httplib.PRECONDITION_FAILED:
-            raise HostVirtualException(data["error"]["code"], data["error"]["message"])
-        elif self.status == httplib.NOT_FOUND:
-            raise HostVirtualException(data["error"]["code"], data["error"]["message"])
-
-        return self.body
-
-    def success(self):
-        return self.status in self.valid_response_codes
diff --git a/libcloud/common/nttcis.py b/libcloud/common/nttcis.py
index f9a7f8b..9519b8c 100644
--- a/libcloud/common/nttcis.py
+++ b/libcloud/common/nttcis.py
@@ -187,84 +187,6 @@
         "host": "iaas-api-ca.cisco-ccs.com",
         "vendor": "Cisco",
     },
-    "med1-il": {
-        "name": "Israel (IL)",
-        "host": "api.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-na": {
-        "name": "North America (NA)",
-        "host": "api-na.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-eu": {
-        "name": "Europe (EU)",
-        "host": "api-eu.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-au": {
-        "name": "Australia (AU)",
-        "host": "api-au.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-af": {
-        "name": "Africa (AF)",
-        "host": "api-af.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-ap": {
-        "name": "Asia Pacific (AP)",
-        "host": "api-ap.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-latam": {
-        "name": "South America (LATAM)",
-        "host": "api-sa.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "med1-canada": {
-        "name": "Canada (CA)",
-        "host": "api-ca.cloud.med-1.com",
-        "vendor": "Med-1",
-    },
-    "indosat-id": {
-        "name": "Indonesia (ID)",
-        "host": "iaas-api.indosat.com",
-        "vendor": "Indosat",
-    },
-    "indosat-na": {
-        "name": "North America (NA)",
-        "host": "iaas-usapi.indosat.com",
-        "vendor": "Indosat",
-    },
-    "indosat-eu": {
-        "name": "Europe (EU)",
-        "host": "iaas-euapi.indosat.com",
-        "vendor": "Indosat",
-    },
-    "indosat-au": {
-        "name": "Australia (AU)",
-        "host": "iaas-auapi.indosat.com",
-        "vendor": "Indosat",
-    },
-    "indosat-af": {
-        "name": "Africa (AF)",
-        "host": "iaas-afapi.indosat.com",
-        "vendor": "Indosat",
-    },
-    "bsnl-in": {"name": "India (IN)", "host": "api.bsnlcloud.com", "vendor": "BSNL"},
-    "bsnl-na": {
-        "name": "North America (NA)",
-        "host": "usapi.bsnlcloud.com",
-        "vendor": "BSNL",
-    },
-    "bsnl-eu": {"name": "Europe (EU)", "host": "euapi.bsnlcloud.com", "vendor": "BSNL"},
-    "bsnl-au": {
-        "name": "Australia (AU)",
-        "host": "auapi.bsnlcloud.com",
-        "vendor": "BSNL",
-    },
-    "bsnl-af": {"name": "Africa (AF)", "host": "afapi.bsnlcloud.com", "vendor": "BSNL"},
 }
 
 # Default API end-point for the base connection class.
diff --git a/libcloud/common/softlayer.py b/libcloud/common/softlayer.py
deleted file mode 100644
index 099bf3b..0000000
--- a/libcloud/common/softlayer.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""
-Softlayer connection
-"""
-
-from libcloud.common.base import ConnectionUserAndKey
-from libcloud.common.types import LibcloudError, InvalidCredsError
-from libcloud.common.xmlrpc import XMLRPCResponse, XMLRPCConnection
-
-
-class SoftLayerException(LibcloudError):
-    """
-    Exception class for SoftLayer driver
-    """
-
-    pass
-
-
-class SoftLayerObjectDoesntExist(LibcloudError):
-    """
-    Exception class for SoftLayer driver object doesnt exist
-    """
-
-    pass
-
-
-class SoftLayerResponse(XMLRPCResponse):
-    defaultExceptionCls = SoftLayerException
-    exceptions = {
-        "SoftLayer_Account": InvalidCredsError,
-        "SoftLayer_Exception_ObjectNotFound": SoftLayerObjectDoesntExist,
-    }
-
-
-class SoftLayerConnection(XMLRPCConnection, ConnectionUserAndKey):
-    responseCls = SoftLayerResponse
-    host = "api.softlayer.com"
-    endpoint = "/xmlrpc/v3"
-
-    def request(self, service, method, *args, **kwargs):
-        headers = {}
-        headers.update(self._get_auth_headers())
-        headers.update(self._get_init_params(service, kwargs.get("id")))
-        headers.update(self._get_object_mask(service, kwargs.get("object_mask")))
-        headers.update(self._get_object_mask(service, kwargs.get("object_mask")))
-
-        args = ({"headers": headers},) + args
-        endpoint = "{}/{}".format(self.endpoint, service)
-        return super().request(method, *args, **{"endpoint": endpoint})
-
-    def _get_auth_headers(self):
-        return {"authenticate": {"username": self.user_id, "apiKey": self.key}}
-
-    def _get_init_params(self, service, id):
-        if id is not None:
-            return {"%sInitParameters" % service: {"id": id}}
-        else:
-            return {}
-
-    def _get_object_mask(self, service, mask):
-        if mask is not None:
-            return {"%sObjectMask" % service: {"mask": mask}}
-        else:
-            return {}
diff --git a/libcloud/compute/base.py b/libcloud/compute/base.py
index 7a8b30d..ac22a2d 100644
--- a/libcloud/compute/base.py
+++ b/libcloud/compute/base.py
@@ -128,10 +128,10 @@
         The hash is a function of an SHA1 hash of the node, node image,
         or node size's ID and its driver which means that it should be
         unique between all objects of its type.
-        In some subclasses (e.g. GoGridNode) there is no ID
-        available so the public IP address is used.  This means that,
-        unlike a properly done system UUID, the same UUID may mean a
-        different system install at a different time
+        In some subclasses there is no ID available so the public IP
+        address is used.  This means that, unlike a properly done system
+        UUID, the same UUID may mean a different system install at a
+        different time
 
         >>> from libcloud.compute.drivers.dummy import DummyNodeDriver
         >>> driver = DummyNodeDriver(0)
diff --git a/libcloud/compute/drivers/__init__.py b/libcloud/compute/drivers/__init__.py
index eeda5e5..90dc411 100644
--- a/libcloud/compute/drivers/__init__.py
+++ b/libcloud/compute/drivers/__init__.py
@@ -20,25 +20,17 @@
 __all__ = [
     "abiquo",
     "brightbox",
-    "bluebox",
     "dimensiondata",
     "dummy",
     "ec2",
-    "ecp",
-    "elasticstack",
-    "elastichosts",
     "cloudsigma",
     "gce",
-    "gogrid",
-    "hostvirtual",
     "linode",
     "nttcis",
     "opennebula",
     "rackspace",
     "rimuhosting",
-    "softlayer",
     "vcloud",
-    "voxel",
     "vpsnet",
     "onapp",
 ]
diff --git a/libcloud/compute/drivers/bluebox.py b/libcloud/compute/drivers/bluebox.py
deleted file mode 100644
index 7b14e11..0000000
--- a/libcloud/compute/drivers/bluebox.py
+++ /dev/null
@@ -1,238 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-libcloud driver for the Blue Box Blocks API
-
-This driver implements all libcloud functionality for the Blue Box Blocks API.
-
-Blue Box home page            http://bluebox.net
-Blue Box API documentation    https://boxpanel.bluebox
-.net/public/the_vault/index.php/Blocks_API
-"""
-
-import copy
-import base64
-
-from libcloud.utils.py3 import b, urlencode
-from libcloud.common.base import JsonResponse, ConnectionUserAndKey
-from libcloud.compute.base import (
-    Node,
-    NodeSize,
-    NodeImage,
-    NodeDriver,
-    NodeLocation,
-    NodeAuthSSHKey,
-    NodeAuthPassword,
-)
-from libcloud.compute.types import NodeState, InvalidCredsError
-from libcloud.compute.providers import Provider
-
-# Current end point for Blue Box API.
-BLUEBOX_API_HOST = "boxpanel.bluebox.net"
-
-# The API doesn't currently expose all of the required values for libcloud,
-# so we simply list what's available right now, along with all of the various
-# attributes that are needed by libcloud.
-BLUEBOX_INSTANCE_TYPES = {
-    "1gb": {
-        "id": "94fd37a7-2606-47f7-84d5-9000deda52ae",
-        "name": "Block 1GB Virtual Server",
-        "ram": 1024,
-        "disk": 20,
-        "cpu": 0.5,
-    },
-    "2gb": {
-        "id": "b412f354-5056-4bf0-a42f-6ddd998aa092",
-        "name": "Block 2GB Virtual Server",
-        "ram": 2048,
-        "disk": 25,
-        "cpu": 1,
-    },
-    "4gb": {
-        "id": "0cd183d3-0287-4b1a-8288-b3ea8302ed58",
-        "name": "Block 4GB Virtual Server",
-        "ram": 4096,
-        "disk": 50,
-        "cpu": 2,
-    },
-    "8gb": {
-        "id": "b9b87a5b-2885-4a2e-b434-44a163ca6251",
-        "name": "Block 8GB Virtual Server",
-        "ram": 8192,
-        "disk": 100,
-        "cpu": 4,
-    },
-}
-
-RAM_PER_CPU = 2048
-
-NODE_STATE_MAP = {
-    "queued": NodeState.PENDING,
-    "building": NodeState.PENDING,
-    "running": NodeState.RUNNING,
-    "error": NodeState.TERMINATED,
-    "unknown": NodeState.UNKNOWN,
-}
-
-
-class BlueboxResponse(JsonResponse):
-    def parse_error(self):
-        if int(self.status) == 401:
-            if not self.body:
-                raise InvalidCredsError(str(self.status) + ": " + self.error)
-            else:
-                raise InvalidCredsError(self.body)
-        return self.body
-
-
-class BlueboxNodeSize(NodeSize):
-    def __init__(self, id, name, cpu, ram, disk, price, driver):
-        self.id = id
-        self.name = name
-        self.cpu = cpu
-        self.ram = ram
-        self.disk = disk
-        self.price = price
-        self.driver = driver
-
-    def __repr__(self):
-        return (
-            "<NodeSize: id=%s, name=%s, cpu=%s, ram=%s, disk=%s, " "price=%s, driver=%s ...>"
-        ) % (
-            self.id,
-            self.name,
-            self.cpu,
-            self.ram,
-            self.disk,
-            self.price,
-            self.driver.name,
-        )
-
-
-class BlueboxConnection(ConnectionUserAndKey):
-    """
-    Connection class for the Bluebox driver
-    """
-
-    host = BLUEBOX_API_HOST
-    secure = True
-    responseCls = BlueboxResponse
-
-    allow_insecure = False
-
-    def add_default_headers(self, headers):
-        user_b64 = base64.b64encode(b("{}:{}".format(self.user_id, self.key)))
-        headers["Authorization"] = "Basic %s" % (user_b64)
-        return headers
-
-
-class BlueboxNodeDriver(NodeDriver):
-    """
-    Bluebox Blocks node driver
-    """
-
-    connectionCls = BlueboxConnection
-    type = Provider.BLUEBOX
-    api_name = "bluebox"
-    name = "Bluebox Blocks"
-    website = "http://bluebox.net"
-    features = {"create_node": ["ssh_key", "password"]}
-
-    def list_nodes(self):
-        result = self.connection.request("/api/blocks.json")
-        return [self._to_node(i) for i in result.object]
-
-    def list_sizes(self, location=None):
-        sizes = []
-        for key, values in list(BLUEBOX_INSTANCE_TYPES.items()):
-            attributes = copy.deepcopy(values)
-            attributes.update({"price": self._get_size_price(size_id=key)})
-            sizes.append(BlueboxNodeSize(driver=self.connection.driver, **attributes))
-
-        return sizes
-
-    def list_images(self, location=None):
-        result = self.connection.request("/api/block_templates.json")
-        images = []
-        for image in result.object:
-            images.extend([self._to_image(image)])
-
-        return images
-
-    def create_node(self, name, size, image, auth=None, ex_username=None):
-        headers = {"Content-Type": "application/x-www-form-urlencoded"}
-
-        auth = self._get_and_check_auth(auth)
-
-        data = {"hostname": name, "product": size.id, "template": image.id}
-
-        ssh = None
-        password = None
-
-        if isinstance(auth, NodeAuthSSHKey):
-            ssh = auth.pubkey  # pylint: disable=no-member
-            data.update(ssh_public_key=ssh)
-        elif isinstance(auth, NodeAuthPassword):
-            password = auth.password
-            data.update(password=password)
-
-        if ex_username:
-            data.update(username=ex_username)
-
-        if not ssh and not password:
-            raise Exception("SSH public key or password required.")
-
-        params = urlencode(data)
-        result = self.connection.request(
-            "/api/blocks.json", headers=headers, data=params, method="POST"
-        )
-        node = self._to_node(result.object)
-
-        if getattr(auth, "generated", False):
-            node.extra["password"] = auth.password
-
-        return node
-
-    def destroy_node(self, node):
-        url = "/api/blocks/%s.json" % (node.id)
-        result = self.connection.request(url, method="DELETE")
-
-        return result.status == 200
-
-    def list_locations(self):
-        return [NodeLocation(0, "Blue Box Seattle US", "US", self)]
-
-    def reboot_node(self, node):
-        url = "/api/blocks/%s/reboot.json" % (node.id)
-        result = self.connection.request(url, method="PUT")
-        return result.status == 200
-
-    def _to_node(self, vm):
-        state = NODE_STATE_MAP[vm.get("status", NodeState.UNKNOWN)]
-        n = Node(
-            id=vm["id"],
-            name=vm["hostname"],
-            state=state,
-            public_ips=[ip["address"] for ip in vm["ips"]],
-            private_ips=[],
-            extra={"storage": vm["storage"], "cpu": vm["cpu"]},
-            driver=self.connection.driver,
-        )
-        return n
-
-    def _to_image(self, image):
-        image = NodeImage(id=image["id"], name=image["description"], driver=self.connection.driver)
-        return image
diff --git a/libcloud/compute/drivers/bsnl.py b/libcloud/compute/drivers/bsnl.py
deleted file mode 100644
index e366b01..0000000
--- a/libcloud/compute/drivers/bsnl.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from libcloud.compute.providers import Provider
-from libcloud.common.dimensiondata import API_ENDPOINTS, DimensionDataConnection
-from libcloud.compute.drivers.dimensiondata import DimensionDataNodeDriver
-
-DEFAULT_REGION = "bsnl-in"
-
-
-class BSNLNodeDriver(DimensionDataNodeDriver):
-    """
-    BSNL node driver, based on Dimension Data driver
-    """
-
-    selected_region = None
-    connectionCls = DimensionDataConnection
-    name = "BSNL"
-    website = "http://www.bsnlcloud.com/"
-    type = Provider.BSNL
-    features = {"create_node": ["password"]}
-    api_version = 1.0
-
-    def __init__(
-        self,
-        key,
-        secret=None,
-        secure=True,
-        host=None,
-        port=None,
-        api_version=None,
-        region=DEFAULT_REGION,
-        **kwargs,
-    ):
-
-        if region not in API_ENDPOINTS:
-            raise ValueError("Invalid region: %s" % (region))
-
-        self.selected_region = API_ENDPOINTS[region]
-
-        super().__init__(
-            key=key,
-            secret=secret,
-            secure=secure,
-            host=host,
-            port=port,
-            api_version=api_version,
-            region=region,
-            **kwargs,
-        )
diff --git a/libcloud/compute/drivers/cloudwatt.py b/libcloud/compute/drivers/cloudwatt.py
deleted file mode 100644
index 4cf4327..0000000
--- a/libcloud/compute/drivers/cloudwatt.py
+++ /dev/null
@@ -1,163 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Cloudwatt driver.
-"""
-try:
-    import simplejson as json
-except ImportError:
-    import json
-
-from libcloud.utils.py3 import httplib
-from libcloud.compute.types import Provider, InvalidCredsError, MalformedResponseError
-from libcloud.utils.iso8601 import parse_date
-from libcloud.common.openstack_identity import OpenStackIdentityConnection
-from libcloud.compute.drivers.openstack import OpenStack_1_1_Connection, OpenStack_1_1_NodeDriver
-
-__all__ = ["CloudwattNodeDriver"]
-
-BASE_URL = "https://identity.fr1.cloudwatt.com/v2.0"
-AUTH_URL = BASE_URL + "/tokens"
-
-
-class CloudwattAuthConnection(OpenStackIdentityConnection):
-    """
-    AuthConnection class for the Cloudwatt driver.
-    """
-
-    name = "Cloudwatt Auth"
-
-    def __init__(self, *args, **kwargs):
-        self._ex_tenant_id = kwargs.pop("ex_tenant_id")
-        super().__init__(*args, **kwargs)
-
-    def morph_action_hook(self, action):
-        (_, _, _, request_path) = self._tuple_from_url(self.auth_url)
-
-        if request_path == "":
-            # No path is provided in the auth_url, use action passed to this
-            # method.
-            return action
-
-        return request_path
-
-    def authenticate(self, force=False):
-        reqbody = json.dumps(
-            {
-                "auth": {
-                    "passwordCredentials": {
-                        "username": self.user_id,
-                        "password": self.key,
-                    },
-                    "tenantId": self._ex_tenant_id,
-                }
-            }
-        )
-        resp = self.request("/tokens", data=reqbody, headers={}, method="POST")
-
-        if resp.status == httplib.UNAUTHORIZED:
-            # HTTP UNAUTHORIZED (401): auth failed
-            raise InvalidCredsError()
-        elif resp.status != httplib.OK:
-            body = "code: {} body:{}".format(resp.status, resp.body)
-            raise MalformedResponseError("Malformed response", body=body, driver=self.driver)
-        else:
-            try:
-                body = json.loads(resp.body)
-            except Exception as e:
-                raise MalformedResponseError("Failed to parse JSON", e)
-
-            try:
-                expires = body["access"]["token"]["expires"]
-
-                self.auth_token = body["access"]["token"]["id"]
-                self.auth_token_expires = parse_date(expires)
-                self.urls = body["access"]["serviceCatalog"]
-                self.auth_user_info = None
-            except KeyError as e:
-                raise MalformedResponseError(
-                    "Auth JSON response is \
-                                             missing required elements",
-                    e,
-                )
-
-        return self
-
-
-class CloudwattConnection(OpenStack_1_1_Connection):
-    """
-    Connection class for the Cloudwatt driver.
-    """
-
-    auth_url = BASE_URL
-    service_region = "fr1"
-    service_type = "compute"
-
-    def __init__(self, *args, **kwargs):
-        self.ex_tenant_id = kwargs.pop("ex_tenant_id")
-        super().__init__(*args, **kwargs)
-        osa = CloudwattAuthConnection(
-            auth_url=AUTH_URL,
-            user_id=self.user_id,
-            key=self.key,
-            tenant_name=self._ex_tenant_name,
-            timeout=self.timeout,
-            ex_tenant_id=self.ex_tenant_id,
-            parent_conn=self,
-        )
-        self._osa = osa
-        self._auth_version = "2.0"
-
-
-class CloudwattNodeDriver(OpenStack_1_1_NodeDriver):
-    """
-    Implements the :class:`NodeDriver`'s for Cloudwatt.
-    """
-
-    name = "Cloudwatt"
-    website = "https://www.cloudwatt.com/"
-    connectionCls = CloudwattConnection
-    type = Provider.CLOUDWATT
-
-    def __init__(
-        self,
-        key,
-        secret,
-        tenant_id,
-        secure=True,
-        tenant_name=None,
-        host=None,
-        port=None,
-        **kwargs,
-    ):
-        """
-        @inherits:  :class:`NodeDriver.__init__`
-
-        :param tenant_id: ID of tenant required for Cloudwatt auth
-        :type tenant_id: ``str``
-        """
-        self.ex_tenant_id = tenant_id
-        self.extra = {}
-        super().__init__(key=key, secret=secret, secure=secure, host=host, port=port, **kwargs)
-
-    def attach_volume(self, node, volume, device=None):
-        return super().attach_volume(node, volume, device)
-
-    def _ex_connection_class_kwargs(self):
-        """
-        Includes ``tenant_id`` in Connection.
-        """
-        return {"ex_tenant_id": self.ex_tenant_id}
diff --git a/libcloud/compute/drivers/ecp.py b/libcloud/compute/drivers/ecp.py
deleted file mode 100644
index 8850627..0000000
--- a/libcloud/compute/drivers/ecp.py
+++ /dev/null
@@ -1,362 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Enomaly ECP driver
-"""
-import os
-import time
-import socket
-import binascii
-
-from libcloud.utils.py3 import b, httplib, base64_encode_string
-from libcloud.common.base import Response, ConnectionUserAndKey
-from libcloud.compute.base import Node, NodeSize, NodeImage, NodeDriver, NodeLocation
-from libcloud.compute.types import Provider, NodeState, InvalidCredsError
-from libcloud.utils.networking import is_private_subnet
-
-# JSON is included in the standard library starting with Python 2.6.  For 2.5
-# and 2.4, there's a simplejson egg at: http://pypi.python.org/pypi/simplejson
-try:
-    import simplejson as json
-except ImportError:
-    import json
-
-
-# Defaults
-API_HOST = ""
-API_PORT = (80, 443)
-
-
-class ECPResponse(Response):
-    def success(self):
-        if self.status == httplib.OK or self.status == httplib.CREATED:
-            try:
-                j_body = json.loads(self.body)
-            except ValueError:
-                self.error = "JSON response cannot be decoded."
-                return False
-            if j_body["errno"] == 0:
-                return True
-            else:
-                self.error = "ECP error: %s" % j_body["message"]
-                return False
-        elif self.status == httplib.UNAUTHORIZED:
-            raise InvalidCredsError()
-        else:
-            self.error = "HTTP Error Code: %s" % self.status
-        return False
-
-    def parse_error(self):
-        return self.error
-
-    # Interpret the json responses - no error checking required
-    def parse_body(self):
-        return json.loads(self.body)
-
-    def getheaders(self):
-        return self.headers
-
-
-class ECPConnection(ConnectionUserAndKey):
-    """
-    Connection class for the Enomaly ECP driver
-    """
-
-    responseCls = ECPResponse
-    host = API_HOST
-    port = API_PORT
-
-    def add_default_headers(self, headers):
-        # Authentication
-        username = self.user_id
-        password = self.key
-        base64string = base64_encode_string(b("{}:{}".format(username, password)))[:-1]
-        authheader = "Basic %s" % base64string
-        headers["Authorization"] = authheader
-
-        return headers
-
-    def _encode_multipart_formdata(self, fields):
-        """
-        Based on Wade Leftwich's function:
-        http://code.activestate.com/recipes/146306/
-        """
-        # use a random boundary that does not appear in the fields
-        boundary = ""
-        while boundary in "".join(fields):
-            boundary = binascii.hexlify(os.urandom(16)).decode("utf-8")
-        L = []
-        for i in fields:
-            L.append("--" + boundary)
-            L.append('Content-Disposition: form-data; name="%s"' % i)
-            L.append("")
-            L.append(fields[i])
-        L.append("--" + boundary + "--")
-        L.append("")
-        body = "\r\n".join(L)
-        content_type = "multipart/form-data; boundary=%s" % boundary
-        header = {"Content-Type": content_type}
-        return header, body
-
-
-class ECPNodeDriver(NodeDriver):
-    """
-    Enomaly ECP node driver
-    """
-
-    name = "Enomaly Elastic Computing Platform"
-    website = "http://www.enomaly.com/"
-    type = Provider.ECP
-    connectionCls = ECPConnection
-
-    def list_nodes(self):
-        """
-        Returns a list of all running Nodes
-
-        :rtype: ``list`` of :class:`Node`
-        """
-
-        # Make the call
-        res = self.connection.request("/rest/hosting/vm/list").parse_body()
-
-        # Put together a list of node objects
-        nodes = []
-        for vm in res["vms"]:
-            node = self._to_node(vm)
-            if node is not None:
-                nodes.append(node)
-
-        # And return it
-        return nodes
-
-    def _to_node(self, vm):
-        """
-        Turns a (json) dictionary into a Node object.
-        This returns only running VMs.
-        """
-
-        # Check state
-        if not vm["state"] == "running":
-            return None
-
-        # IPs
-        iplist = [
-            interface["ip"] for interface in vm["interfaces"] if interface["ip"] != "127.0.0.1"
-        ]
-
-        public_ips = []
-        private_ips = []
-        for ip in iplist:
-            try:
-                socket.inet_aton(ip)
-            except OSError:
-                # not a valid ip
-                continue
-            if is_private_subnet(ip):
-                private_ips.append(ip)
-            else:
-                public_ips.append(ip)
-
-        # Create the node object
-        n = Node(
-            id=vm["uuid"],
-            name=vm["name"],
-            state=NodeState.RUNNING,
-            public_ips=public_ips,
-            private_ips=private_ips,
-            driver=self,
-        )
-
-        return n
-
-    def reboot_node(self, node):
-        """
-        Shuts down a VM and then starts it again.
-
-        @inherits: :class:`NodeDriver.reboot_node`
-        """
-
-        # Turn the VM off
-        # Black magic to make the POST requests work
-        d = self.connection._encode_multipart_formdata({"action": "stop"})
-        self.connection.request(
-            "/rest/hosting/vm/%s" % node.id, method="POST", headers=d[0], data=d[1]
-        ).parse_body()
-
-        node.state = NodeState.REBOOTING
-        # Wait for it to turn off and then continue (to turn it on again)
-        while node.state == NodeState.REBOOTING:
-            # Check if it's off.
-            response = self.connection.request("/rest/hosting/vm/%s" % node.id).parse_body()
-            if response["vm"]["state"] == "off":
-                node.state = NodeState.TERMINATED
-            else:
-                time.sleep(5)
-
-        # Turn the VM back on.
-        # Black magic to make the POST requests work
-        d = self.connection._encode_multipart_formdata({"action": "start"})
-        self.connection.request(
-            "/rest/hosting/vm/%s" % node.id, method="POST", headers=d[0], data=d[1]
-        ).parse_body()
-
-        node.state = NodeState.RUNNING
-        return True
-
-    def destroy_node(self, node):
-        """
-        Shuts down and deletes a VM.
-
-        @inherits: :class:`NodeDriver.destroy_node`
-        """
-
-        # Shut down first
-        # Black magic to make the POST requests work
-        d = self.connection._encode_multipart_formdata({"action": "stop"})
-        self.connection.request(
-            "/rest/hosting/vm/%s" % node.id, method="POST", headers=d[0], data=d[1]
-        ).parse_body()
-
-        # Ensure there was no application level error
-        node.state = NodeState.PENDING
-        # Wait for the VM to turn off before continuing
-        while node.state == NodeState.PENDING:
-            # Check if it's off.
-            response = self.connection.request("/rest/hosting/vm/%s" % node.id).parse_body()
-            if response["vm"]["state"] == "off":
-                node.state = NodeState.TERMINATED
-            else:
-                time.sleep(5)
-
-        # Delete the VM
-        # Black magic to make the POST requests work
-        d = self.connection._encode_multipart_formdata({"action": "delete"})
-        self.connection.request(
-            "/rest/hosting/vm/%s" % (node.id), method="POST", headers=d[0], data=d[1]
-        ).parse_body()
-
-        return True
-
-    def list_images(self, location=None):
-        """
-        Returns a list of all package templates aka appliances aka images.
-
-        @inherits: :class:`NodeDriver.list_images`
-        """
-
-        # Make the call
-        response = self.connection.request("/rest/hosting/ptemplate/list").parse_body()
-
-        # Turn the response into an array of NodeImage objects
-        images = []
-        for ptemplate in response["packages"]:
-            images.append(
-                NodeImage(
-                    id=ptemplate["uuid"],
-                    name="{}: {}".format(ptemplate["name"], ptemplate["description"]),
-                    driver=self,
-                )
-            )
-
-        return images
-
-    def list_sizes(self, location=None):
-        """
-        Returns a list of all hardware templates
-
-        @inherits: :class:`NodeDriver.list_sizes`
-        """
-
-        # Make the call
-        response = self.connection.request("/rest/hosting/htemplate/list").parse_body()
-
-        # Turn the response into an array of NodeSize objects
-        sizes = []
-        for htemplate in response["templates"]:
-            sizes.append(
-                NodeSize(
-                    id=htemplate["uuid"],
-                    name=htemplate["name"],
-                    ram=htemplate["memory"],
-                    disk=0,  # Disk is independent of hardware template.
-                    bandwidth=0,  # There is no way to keep track of bandwidth.
-                    price=0,  # The billing system is external.
-                    driver=self,
-                )
-            )
-
-        return sizes
-
-    def list_locations(self):
-        """
-        This feature does not exist in ECP. Returns hard coded dummy location.
-
-        :rtype: ``list`` of :class:`NodeLocation`
-        """
-        return [
-            NodeLocation(id=1, name="Cloud", country="", driver=self),
-        ]
-
-    def create_node(self, name, size, image):
-        """
-        Creates a virtual machine.
-
-        :keyword    name:   String with a name for this new node (required)
-        :type       name:   ``str``
-
-        :keyword    size:   The size of resources allocated to this node .
-                            (required)
-        :type       size:   :class:`NodeSize`
-
-        :keyword    image:  OS Image to boot on node. (required)
-        :type       image:  :class:`NodeImage`
-
-        :rtype: :class:`Node`
-        """
-
-        # Find out what network to put the VM on.
-        res = self.connection.request("/rest/hosting/network/list").parse_body()
-
-        # Use the first / default network because there is no way to specific
-        # which one
-        network = res["networks"][0]["uuid"]
-
-        # Prepare to make the VM
-        data = {
-            "name": str(name),
-            "package": str(image.id),
-            "hardware": str(size.id),
-            "network_uuid": str(network),
-            "disk": "",
-        }
-
-        # Black magic to make the POST requests work
-        d = self.connection._encode_multipart_formdata(data)
-        response = self.connection.request(
-            "/rest/hosting/vm/", method="PUT", headers=d[0], data=d[1]
-        ).parse_body()
-
-        # Create a node object and return it.
-        n = Node(
-            id=response["machine_id"],
-            name=data["name"],
-            state=NodeState.PENDING,
-            public_ips=[],
-            private_ips=[],
-            driver=self,
-        )
-
-        return n
diff --git a/libcloud/compute/drivers/elastichosts.py b/libcloud/compute/drivers/elastichosts.py
deleted file mode 100644
index 530108b..0000000
--- a/libcloud/compute/drivers/elastichosts.py
+++ /dev/null
@@ -1,259 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-ElasticHosts Driver
-"""
-
-from libcloud.compute.types import Provider
-from libcloud.compute.drivers.elasticstack import ElasticStackBaseNodeDriver
-
-# API end-points
-API_ENDPOINTS = {
-    "lon-p": {
-        "name": "London Peer 1",
-        "country": "United Kingdom",
-        "host": "api-lon-p.elastichosts.com",
-    },
-    "lon-b": {
-        "name": "London BlueSquare",
-        "country": "United Kingdom",
-        "host": "api-lon-b.elastichosts.com",
-    },
-    "sat-p": {
-        "name": "San Antonio Peer 1",
-        "country": "United States",
-        "host": "api-sat-p.elastichosts.com",
-    },
-    "lax-p": {
-        "name": "Los Angeles Peer 1",
-        "country": "United States",
-        "host": "api-lax-p.elastichosts.com",
-    },
-    "sjc-c": {
-        "name": "San Jose (Silicon Valley)",
-        "country": "United States",
-        "host": "api-sjc-c.elastichosts.com",
-    },
-    "tor-p": {
-        "name": "Toronto Peer 1",
-        "country": "Canada",
-        "host": "api-tor-p.elastichosts.com",
-    },
-    "syd-y": {
-        "name": "Sydney",
-        "country": "Australia",
-        "host": "api-syd-v.elastichosts.com",
-    },
-    "cn-1": {
-        "name": "Hong Kong",
-        "country": "China",
-        "host": "api-hkg-e.elastichosts.com",
-    },
-}
-
-# Default API end-point for the base connection class.
-DEFAULT_REGION = "sat-p"
-
-# Retrieved from http://www.elastichosts.com/cloud-hosting/api
-STANDARD_DRIVES = {
-    "38df0986-4d85-4b76-b502-3878ffc80161": {
-        "uuid": "38df0986-4d85-4b76-b502-3878ffc80161",
-        "description": "CentOS Linux 5.5",
-        "size_gunzipped": "3GB",
-        "supports_deployment": True,
-    },
-    "980cf63c-f21e-4382-997b-6541d5809629": {
-        "uuid": "980cf63c-f21e-4382-997b-6541d5809629",
-        "description": "Debian Linux 5.0",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "aee5589a-88c3-43ef-bb0a-9cab6e64192d": {
-        "uuid": "aee5589a-88c3-43ef-bb0a-9cab6e64192d",
-        "description": "Ubuntu Linux 10.04",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "62f512cd-82c7-498e-88d8-a09ac2ef20e7": {
-        "uuid": "62f512cd-82c7-498e-88d8-a09ac2ef20e7",
-        "description": "Ubuntu Linux 12.04",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "b9d0eb72-d273-43f1-98e3-0d4b87d372c0": {
-        "uuid": "b9d0eb72-d273-43f1-98e3-0d4b87d372c0",
-        "description": "Windows Web Server 2008",
-        "size_gunzipped": "13GB",
-        "supports_deployment": False,
-    },
-    "30824e97-05a4-410c-946e-2ba5a92b07cb": {
-        "uuid": "30824e97-05a4-410c-946e-2ba5a92b07cb",
-        "description": "Windows Web Server 2008 R2",
-        "size_gunzipped": "13GB",
-        "supports_deployment": False,
-    },
-    "9ecf810e-6ad1-40ef-b360-d606f0444671": {
-        "uuid": "9ecf810e-6ad1-40ef-b360-d606f0444671",
-        "description": "Windows Web Server 2008 R2 + SQL Server",
-        "size_gunzipped": "13GB",
-        "supports_deployment": False,
-    },
-    "10a88d1c-6575-46e3-8d2c-7744065ea530": {
-        "uuid": "10a88d1c-6575-46e3-8d2c-7744065ea530",
-        "description": "Windows Server 2008 Standard R2",
-        "size_gunzipped": "13GB",
-        "supports_deployment": False,
-    },
-    "2567f25c-8fb8-45c7-95fc-bfe3c3d84c47": {
-        "uuid": "2567f25c-8fb8-45c7-95fc-bfe3c3d84c47",
-        "description": "Windows Server 2008 Standard R2 + SQL Server",
-        "size_gunzipped": "13GB",
-        "supports_deployment": False,
-    },
-}
-
-
-class ElasticHostsException(Exception):
-    def __str__(self):
-        # pylint: disable=unsubscriptable-object
-        return self.args[0]
-
-    def __repr__(self):
-        # pylint: disable=unsubscriptable-object
-        return "<ElasticHostsException '%s'>" % (self.args[0])
-
-
-class ElasticHostsNodeDriver(ElasticStackBaseNodeDriver):
-    """
-    Node Driver class for ElasticHosts
-    """
-
-    type = Provider.ELASTICHOSTS
-    api_name = "elastichosts"
-    name = "ElasticHosts"
-    website = "http://www.elastichosts.com/"
-    features = {"create_node": ["generates_password"]}
-    _standard_drives = STANDARD_DRIVES
-
-    def __init__(
-        self,
-        key,
-        secret=None,
-        secure=True,
-        host=None,
-        port=None,
-        region=DEFAULT_REGION,
-        **kwargs,
-    ):
-
-        if hasattr(self, "_region"):
-            region = getattr(self, "_region", None)
-
-        if region not in API_ENDPOINTS:
-            raise ValueError("Invalid region: %s" % (region))
-
-        self._host_argument_set = host is not None
-        super().__init__(
-            key=key,
-            secret=secret,
-            secure=secure,
-            host=host,
-            port=port,
-            region=region,
-            **kwargs,
-        )
-
-    def _ex_connection_class_kwargs(self):
-        """
-        Return the host value based on the user supplied region.
-        """
-        kwargs = {}
-        if not self._host_argument_set:
-            kwargs["host"] = API_ENDPOINTS[self.region]["host"]
-
-        return kwargs
-
-
-class ElasticHostsUK1NodeDriver(ElasticHostsNodeDriver):
-    """
-    ElasticHosts node driver for the London Peer 1 end-point
-    """
-
-    name = "ElasticHosts (lon-p)"
-    _region = "lon-p"
-
-
-class ElasticHostsUK2NodeDriver(ElasticHostsNodeDriver):
-    """
-    ElasticHosts node driver for the London Bluesquare end-point
-    """
-
-    name = "ElasticHosts (lon-b)"
-    _region = "lon-b"
-
-
-class ElasticHostsUS1NodeDriver(ElasticHostsNodeDriver):
-    """
-    ElasticHosts node driver for the San Antonio Peer 1 end-point
-    """
-
-    name = "ElasticHosts (sat-p)"
-    _region = "sat-p"
-
-
-class ElasticHostsUS2NodeDriver(ElasticHostsNodeDriver):
-    """
-    ElasticHosts node driver for the Los Angeles Peer 1 end-point
-    """
-
-    name = "ElasticHosts (lax-p)"
-    _region = "lax-p"
-
-
-class ElasticHostsUS3NodeDriver(ElasticHostsNodeDriver):
-    """
-    ElasticHosts node driver for the San Jose (Silicon Valley) end-point
-    """
-
-    name = "ElasticHosts (sjc-c)"
-    _region = "sjc-c"
-
-
-class ElasticHostsCA1NodeDriver(ElasticHostsNodeDriver):
-    """
-    ElasticHosts node driver for the Toronto Peer 1 end-point
-    """
-
-    name = "ElasticHosts (tor-p)"
-    _region = "tor-p"
-
-
-class ElasticHostsAU1NodeDriver(ElasticHostsNodeDriver):
-    """
-    ElasticHosts node driver for the Sydney end-point
-    """
-
-    name = "ElasticHosts (syd-y)"
-    _region = "syd-y"
-
-
-class ElasticHostsCN1NodeDriver(ElasticHostsNodeDriver):
-    """
-    ElasticHosts node driver for the Hong Kong end-point
-    """
-
-    name = "ElasticHosts (cn-1)"
-    _region = "cn-1"
diff --git a/libcloud/compute/drivers/elasticstack.py b/libcloud/compute/drivers/elasticstack.py
deleted file mode 100644
index f635916..0000000
--- a/libcloud/compute/drivers/elasticstack.py
+++ /dev/null
@@ -1,513 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Base driver for the providers based on the ElasticStack platform -
-http://www.elasticstack.com.
-"""
-
-import re
-import time
-import base64
-
-from libcloud.utils.py3 import b, httplib
-from libcloud.common.base import JsonResponse, ConnectionUserAndKey
-from libcloud.common.types import InvalidCredsError
-from libcloud.compute.base import Node, NodeSize, NodeImage, NodeDriver
-from libcloud.compute.types import NodeState
-from libcloud.compute.deployment import ScriptDeployment, SSHKeyDeployment, MultiStepDeployment
-
-try:
-    import simplejson as json
-except ImportError:
-    import json
-
-
-NODE_STATE_MAP = {
-    "active": NodeState.RUNNING,
-    "dead": NodeState.TERMINATED,
-    "dumped": NodeState.TERMINATED,
-}
-
-# Default timeout (in seconds) for the drive imaging process
-IMAGING_TIMEOUT = 10 * 60
-
-# ElasticStack doesn't specify special instance types, so I just specified
-# some plans based on the other provider offerings.
-#
-# Basically for CPU any value between 500Mhz and 20000Mhz should work,
-# 256MB to 8192MB for ram and 1GB to 2TB for disk.
-INSTANCE_TYPES = {
-    "small": {
-        "id": "small",
-        "name": "Small instance",
-        "cpu": 2000,
-        "memory": 1700,
-        "disk": 160,
-        "bandwidth": None,
-    },
-    "medium": {
-        "id": "medium",
-        "name": "Medium instance",
-        "cpu": 3000,
-        "memory": 4096,
-        "disk": 500,
-        "bandwidth": None,
-    },
-    "large": {
-        "id": "large",
-        "name": "Large instance",
-        "cpu": 4000,
-        "memory": 7680,
-        "disk": 850,
-        "bandwidth": None,
-    },
-    "extra-large": {
-        "id": "extra-large",
-        "name": "Extra Large instance",
-        "cpu": 8000,
-        "memory": 8192,
-        "disk": 1690,
-        "bandwidth": None,
-    },
-    "high-cpu-medium": {
-        "id": "high-cpu-medium",
-        "name": "High-CPU Medium instance",
-        "cpu": 5000,
-        "memory": 1700,
-        "disk": 350,
-        "bandwidth": None,
-    },
-    "high-cpu-extra-large": {
-        "id": "high-cpu-extra-large",
-        "name": "High-CPU Extra Large instance",
-        "cpu": 20000,
-        "memory": 7168,
-        "disk": 1690,
-        "bandwidth": None,
-    },
-}
-
-
-class ElasticStackException(Exception):
-    def __str__(self):
-        # pylint: disable=unsubscriptable-object
-        return self.args[0]
-
-    def __repr__(self):
-        # pylint: disable=unsubscriptable-object
-        return "<ElasticStackException '%s'>" % (self.args[0])
-
-
-class ElasticStackResponse(JsonResponse):
-    def success(self):
-        if self.status == 401:
-            raise InvalidCredsError()
-
-        return 200 <= self.status <= 299
-
-    def parse_error(self):
-        error_header = self.headers.get("x-elastic-error", "")
-        return "X-Elastic-Error: {} ({})".format(error_header, self.body.strip())
-
-
-class ElasticStackNodeSize(NodeSize):
-    def __init__(self, id, name, cpu, ram, disk, bandwidth, price, driver):
-        self.id = id
-        self.name = name
-        self.cpu = cpu
-        self.ram = ram
-        self.disk = disk
-        self.bandwidth = bandwidth
-        self.price = price
-        self.driver = driver
-
-    def __repr__(self):
-        return (
-            "<NodeSize: id=%s, name=%s, cpu=%s, ram=%s "
-            "disk=%s bandwidth=%s price=%s driver=%s ...>"
-        ) % (
-            self.id,
-            self.name,
-            self.cpu,
-            self.ram,
-            self.disk,
-            self.bandwidth,
-            self.price,
-            self.driver.name,
-        )
-
-
-class ElasticStackBaseConnection(ConnectionUserAndKey):
-    """
-    Base connection class for the ElasticStack driver
-    """
-
-    host = None
-    responseCls = ElasticStackResponse
-
-    def add_default_headers(self, headers):
-        headers["Accept"] = "application/json"
-        headers["Content-Type"] = "application/json"
-        headers["Authorization"] = "Basic %s" % (
-            base64.b64encode(b("{}:{}".format(self.user_id, self.key)))
-        ).decode("utf-8")
-        return headers
-
-
-class ElasticStackBaseNodeDriver(NodeDriver):
-    website = "http://www.elasticstack.com"
-    connectionCls = ElasticStackBaseConnection
-    features = {"create_node": ["generates_password"]}
-
-    # Dynamically populated by sub-classes
-    _standard_drives = {}
-
-    def reboot_node(self, node):
-        # Reboots the node
-        response = self.connection.request(action="/servers/%s/reset" % (node.id), method="POST")
-        return response.status == 204
-
-    def destroy_node(self, node):
-        # Kills the server immediately
-        response = self.connection.request(action="/servers/%s/destroy" % (node.id), method="POST")
-        return response.status == 204
-
-    def list_images(self, location=None):
-        # Returns a list of available pre-installed system drive images
-        images = []
-        for key, value in self._standard_drives.items():
-            image = NodeImage(
-                id=value["uuid"],
-                name=value["description"],
-                driver=self.connection.driver,
-                extra={"size_gunzipped": value["size_gunzipped"]},
-            )
-            images.append(image)
-
-        return images
-
-    def list_sizes(self, location=None):
-        sizes = []
-        for key, value in INSTANCE_TYPES.items():
-            size = ElasticStackNodeSize(
-                id=value["id"],
-                name=value["name"],
-                cpu=value["cpu"],
-                ram=value["memory"],
-                disk=value["disk"],
-                bandwidth=value["bandwidth"],
-                price=self._get_size_price(size_id=value["id"]),
-                driver=self.connection.driver,
-            )
-            sizes.append(size)
-
-        return sizes
-
-    def list_nodes(self):
-        # Returns a list of active (running) nodes
-        response = self.connection.request(action="/servers/info").object
-
-        nodes = []
-        for data in response:
-            node = self._to_node(data)
-            nodes.append(node)
-
-        return nodes
-
-    def create_node(
-        self,
-        name,
-        size,
-        image,
-        smp="auto",
-        nic_model="e1000",
-        vnc_password=None,
-        drive_type="hdd",
-    ):
-        """Creates an ElasticStack instance
-
-        @inherits: :class:`NodeDriver.create_node`
-
-        :keyword    name: String with a name for this new node (required)
-        :type       name: ``str``
-
-        :keyword    smp: Number of virtual processors or None to calculate
-                         based on the cpu speed
-        :type       smp: ``int``
-
-        :keyword    nic_model: e1000, rtl8139 or virtio
-                               (if not specified, e1000 is used)
-        :type       nic_model: ``str``
-
-        :keyword    vnc_password: If set, the same password is also used for
-                                  SSH access with user toor,
-                                  otherwise VNC access is disabled and
-                                  no SSH login is possible.
-        :type       vnc_password: ``str``
-        """
-        ssh_password = vnc_password
-
-        if nic_model not in ("e1000", "rtl8139", "virtio"):
-            raise ElasticStackException("Invalid NIC model specified")
-
-        # check that drive size is not smaller than pre installed image size
-
-        # First we create a drive with the specified size
-        drive_data = {}
-        drive_data.update({"name": name, "size": "%sG" % (size.disk)})
-
-        response = self.connection.request(
-            action="/drives/create", data=json.dumps(drive_data), method="POST"
-        ).object
-
-        if not response:
-            raise ElasticStackException("Drive creation failed")
-
-        drive_uuid = response["drive"]
-
-        # Then we image the selected pre-installed system drive onto it
-        response = self.connection.request(
-            action="/drives/{}/image/{}/gunzip".format(drive_uuid, image.id), method="POST"
-        )
-
-        if response.status not in (200, 204):
-            raise ElasticStackException("Drive imaging failed")
-
-        # We wait until the drive is imaged and then boot up the node
-        # (in most cases, the imaging process shouldn't take longer
-        # than a few minutes)
-        response = self.connection.request(action="/drives/%s/info" % (drive_uuid)).object
-
-        imaging_start = time.time()
-        while "imaging" in response:
-            response = self.connection.request(action="/drives/%s/info" % (drive_uuid)).object
-
-            elapsed_time = time.time() - imaging_start
-            if "imaging" in response and elapsed_time >= IMAGING_TIMEOUT:
-                raise ElasticStackException("Drive imaging timed out")
-
-            time.sleep(1)
-
-        node_data = {}
-        node_data.update(
-            {
-                "name": name,
-                "cpu": size.cpu,
-                "mem": size.ram,
-                "ide:0:0": drive_uuid,
-                "boot": "ide:0:0",
-                "smp": smp,
-            }
-        )
-        node_data.update({"nic:0:model": nic_model, "nic:0:dhcp": "auto"})
-
-        if vnc_password:
-            node_data.update({"vnc": "auto", "vnc:password": vnc_password})
-
-        response = self.connection.request(
-            action="/servers/create", data=json.dumps(node_data), method="POST"
-        ).object
-
-        if isinstance(response, list):
-            nodes = [self._to_node(node, ssh_password) for node in response]
-        else:
-            nodes = self._to_node(response, ssh_password)
-
-        return nodes
-
-    # Extension methods
-    def ex_set_node_configuration(self, node, **kwargs):
-        """
-        Changes the configuration of the running server
-
-        :param      node: Node which should be used
-        :type       node: :class:`Node`
-
-        :param      kwargs: keyword arguments
-        :type       kwargs: ``dict``
-
-        :rtype: ``bool``
-        """
-        valid_keys = (
-            "^name$",
-            "^parent$",
-            "^cpu$",
-            "^smp$",
-            "^mem$",
-            "^boot$",
-            "^nic:0:model$",
-            "^nic:0:dhcp",
-            "^nic:1:model$",
-            "^nic:1:vlan$",
-            "^nic:1:mac$",
-            "^vnc:ip$",
-            "^vnc:password$",
-            "^vnc:tls",
-            "^ide:[0-1]:[0-1](:media)?$",
-            "^scsi:0:[0-7](:media)?$",
-            "^block:[0-7](:media)?$",
-        )
-
-        invalid_keys = []
-        keys = list(kwargs.keys())
-        for key in keys:
-            matches = False
-            for regex in valid_keys:
-                if re.match(regex, key):
-                    matches = True
-                    break
-            if not matches:
-                invalid_keys.append(key)
-
-        if invalid_keys:
-            raise ElasticStackException(
-                "Invalid configuration key specified: %s" % (",".join(invalid_keys))
-            )
-
-        response = self.connection.request(
-            action="/servers/%s/set" % (node.id), data=json.dumps(kwargs), method="POST"
-        )
-
-        return response.status == httplib.OK and response.body != ""
-
-    def deploy_node(self, **kwargs):
-        """
-        Create a new node, and start deployment.
-
-        @inherits: :class:`NodeDriver.deploy_node`
-
-        :keyword    enable_root: If true, root password will be set to
-                                 vnc_password (this will enable SSH access)
-                                 and default 'toor' account will be deleted.
-        :type       enable_root: ``bool``
-        """
-        image = kwargs["image"]
-        vnc_password = kwargs.get("vnc_password", None)
-        enable_root = kwargs.get("enable_root", False)
-
-        if not vnc_password:
-            raise ValueError(
-                "You need to provide vnc_password argument " "if you want to use deployment"
-            )
-
-        if (
-            image in self._standard_drives
-            and not self._standard_drives[image]["supports_deployment"]
-        ):
-            raise ValueError("Image %s does not support deployment" % (image.id))
-
-        if enable_root:
-            script = (
-                "unset HISTFILE;"
-                "echo root:%s | chpasswd;"
-                "sed -i '/^toor.*$/d' /etc/passwd /etc/shadow;"
-                "history -c"
-            ) % vnc_password
-            root_enable_script = ScriptDeployment(script=script, delete=True)
-            deploy = kwargs.get("deploy", None)
-            if deploy:
-                if isinstance(deploy, ScriptDeployment) or isinstance(deploy, SSHKeyDeployment):
-                    deployment = MultiStepDeployment([deploy, root_enable_script])
-                elif isinstance(deploy, MultiStepDeployment):
-                    deployment = deploy
-                    deployment.add(root_enable_script)
-            else:
-                deployment = root_enable_script
-
-            kwargs["deploy"] = deployment
-
-        if not kwargs.get("ssh_username", None):
-            kwargs["ssh_username"] = "toor"
-
-        return super().deploy_node(**kwargs)
-
-    def ex_shutdown_node(self, node):
-        """
-        Sends the ACPI power-down event
-
-        :param      node: Node which should be used
-        :type       node: :class:`Node`
-
-        :rtype: ``bool``
-        """
-        response = self.connection.request(action="/servers/%s/shutdown" % (node.id), method="POST")
-        return response.status == 204
-
-    def ex_destroy_drive(self, drive_uuid):
-        """
-        Deletes a drive
-
-        :param      drive_uuid: Drive uuid which should be used
-        :type       drive_uuid: ``str``
-
-        :rtype: ``bool``
-        """
-        response = self.connection.request(
-            action="/drives/%s/destroy" % (drive_uuid), method="POST"
-        )
-        return response.status == 204
-
-    # Helper methods
-    def _to_node(self, data, ssh_password=None):
-        try:
-            state = NODE_STATE_MAP[data["status"]]
-        except KeyError:
-            state = NodeState.UNKNOWN
-
-        if "nic:0:dhcp:ip" in data:
-            if isinstance(data["nic:0:dhcp:ip"], list):
-                public_ip = data["nic:0:dhcp:ip"]
-            else:
-                public_ip = [data["nic:0:dhcp:ip"]]
-        else:
-            public_ip = []
-
-        extra = {"cpu": data["cpu"], "mem": data["mem"]}
-
-        if "started" in data:
-            extra["started"] = data["started"]
-
-        if "smp" in data:
-            extra["smp"] = data["smp"]
-
-        if "vnc:ip" in data:
-            extra["vnc:ip"] = data["vnc:ip"]
-
-        if "vnc:password" in data:
-            extra["vnc:password"] = data["vnc:password"]
-
-        boot_device = data["boot"]
-
-        if isinstance(boot_device, list):
-            for device in boot_device:
-                extra[device] = data[device]
-        else:
-            extra[boot_device] = data[boot_device]
-
-        if ssh_password:
-            extra.update({"password": ssh_password})
-
-        node = Node(
-            id=data["server"],
-            name=data["name"],
-            state=state,
-            public_ips=public_ip,
-            private_ips=None,
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-        return node
diff --git a/libcloud/compute/drivers/gogrid.py b/libcloud/compute/drivers/gogrid.py
deleted file mode 100644
index 8e02abc..0000000
--- a/libcloud/compute/drivers/gogrid.py
+++ /dev/null
@@ -1,448 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""
-GoGrid driver
-"""
-import copy
-import time
-import hashlib
-
-from libcloud.utils.py3 import b
-from libcloud.common.types import LibcloudError, InvalidCredsError
-from libcloud.compute.base import Node, NodeSize, NodeImage, NodeDriver, NodeLocation
-from libcloud.common.gogrid import BaseGoGridDriver, GoGridConnection
-from libcloud.compute.types import NodeState
-from libcloud.compute.providers import Provider
-
-STATE = {
-    "Starting": NodeState.PENDING,
-    "On": NodeState.RUNNING,
-    "On/Saving": NodeState.RUNNING,
-    "Off": NodeState.PENDING,
-    "Restarting": NodeState.REBOOTING,
-    "Saving": NodeState.PENDING,
-    "Restoring": NodeState.PENDING,
-}
-
-GOGRID_INSTANCE_TYPES = {
-    "512MB": {
-        "id": "512MB",
-        "name": "512MB",
-        "ram": 512,
-        "disk": 30,
-        "bandwidth": None,
-    },
-    "1GB": {"id": "1GB", "name": "1GB", "ram": 1024, "disk": 60, "bandwidth": None},
-    "2GB": {"id": "2GB", "name": "2GB", "ram": 2048, "disk": 120, "bandwidth": None},
-    "4GB": {"id": "4GB", "name": "4GB", "ram": 4096, "disk": 240, "bandwidth": None},
-    "8GB": {"id": "8GB", "name": "8GB", "ram": 8192, "disk": 480, "bandwidth": None},
-    "16GB": {
-        "id": "16GB",
-        "name": "16GB",
-        "ram": 16384,
-        "disk": 960,
-        "bandwidth": None,
-    },
-    "24GB": {
-        "id": "24GB",
-        "name": "24GB",
-        "ram": 24576,
-        "disk": 960,
-        "bandwidth": None,
-    },
-}
-
-
-class GoGridNode(Node):
-    # Generating uuid based on public ip to get around missing id on
-    # create_node in gogrid api
-    #
-    # Used public ip since it is not mutable and specified at create time,
-    # so uuid of node should not change after add is completed
-    def get_uuid(self):
-        return hashlib.sha1(b("{}:{}".format(self.public_ips, self.driver.type))).hexdigest()
-
-
-class GoGridNodeDriver(BaseGoGridDriver, NodeDriver):
-    """
-    GoGrid node driver
-    """
-
-    connectionCls = GoGridConnection
-    type = Provider.GOGRID
-    api_name = "gogrid"
-    name = "GoGrid"
-    website = "http://www.gogrid.com/"
-    features = {"create_node": ["generates_password"]}
-
-    _instance_types = GOGRID_INSTANCE_TYPES
-
-    def __init__(self, *args, **kwargs):
-        """
-        @inherits: :class:`NodeDriver.__init__`
-        """
-        super().__init__(*args, **kwargs)
-
-    def _get_state(self, element):
-        try:
-            return STATE[element["state"]["name"]]
-        except Exception:
-            pass
-        return NodeState.UNKNOWN
-
-    def _get_ip(self, element):
-        return element.get("ip").get("ip")
-
-    def _get_id(self, element):
-        return element.get("id")
-
-    def _to_node(self, element, password=None):
-        state = self._get_state(element)
-        ip = self._get_ip(element)
-        id = self._get_id(element)
-        n = GoGridNode(
-            id=id,
-            name=element["name"],
-            state=state,
-            public_ips=[ip],
-            private_ips=[],
-            extra={
-                "ram": element.get("ram").get("name"),
-                "description": element.get("description", ""),
-            },
-            driver=self.connection.driver,
-        )
-        if password:
-            n.extra["password"] = password
-
-        return n
-
-    def _to_image(self, element):
-        n = NodeImage(
-            id=element["id"],
-            name=element["friendlyName"],
-            driver=self.connection.driver,
-        )
-        return n
-
-    def _to_images(self, object):
-        return [self._to_image(el) for el in object["list"]]
-
-    def _to_location(self, element):
-        location = NodeLocation(
-            id=element["id"],
-            name=element["name"],
-            country="US",
-            driver=self.connection.driver,
-        )
-        return location
-
-    def _to_locations(self, object):
-        return [self._to_location(el) for el in object["list"]]
-
-    def list_images(self, location=None):
-        params = {}
-        if location is not None:
-            params["datacenter"] = location.id
-        images = self._to_images(self.connection.request("/api/grid/image/list", params).object)
-        return images
-
-    def list_nodes(self):
-        """
-        @inherits: :class:`NodeDriver.list_nodes`
-        :rtype: ``list`` of :class:`GoGridNode`
-        """
-        passwords_map = {}
-
-        res = self._server_list()
-        try:
-            for password in self._password_list()["list"]:
-                try:
-                    passwords_map[password["server"]["id"]] = password["password"]
-                except KeyError:
-                    pass
-        except InvalidCredsError:
-            # some gogrid API keys don't have permission to access the
-            # password list.
-            pass
-
-        return [self._to_node(el, passwords_map.get(el.get("id"))) for el in res["list"]]
-
-    def reboot_node(self, node):
-        """
-        @inherits: :class:`NodeDriver.reboot_node`
-        :type node: :class:`GoGridNode`
-        """
-        id = node.id
-        power = "restart"
-        res = self._server_power(id, power)
-        if not res.success():
-            raise Exception(res.parse_error())
-        return True
-
-    def destroy_node(self, node):
-        """
-        @inherits: :class:`NodeDriver.reboot_node`
-        :type node: :class:`GoGridNode`
-        """
-        id = node.id
-        res = self._server_delete(id)
-        if not res.success():
-            raise Exception(res.parse_error())
-        return True
-
-    def _server_list(self):
-        return self.connection.request("/api/grid/server/list").object
-
-    def _password_list(self):
-        return self.connection.request("/api/support/password/list").object
-
-    def _server_power(self, id, power):
-        # power in ['start', 'stop', 'restart']
-        params = {"id": id, "power": power}
-        return self.connection.request("/api/grid/server/power", params, method="POST")
-
-    def _server_delete(self, id):
-        params = {"id": id}
-        return self.connection.request("/api/grid/server/delete", params, method="POST")
-
-    def _get_first_ip(self, location=None):
-        ips = self.ex_list_ips(public=True, assigned=False, location=location)
-        try:
-            return ips[0].ip
-        except IndexError:
-            raise LibcloudError("No public unassigned IPs left", GoGridNodeDriver)
-
-    def list_sizes(self, location=None):
-        sizes = []
-        for key, values in self._instance_types.items():
-            attributes = copy.deepcopy(values)
-            attributes.update({"price": self._get_size_price(size_id=key)})
-            sizes.append(NodeSize(driver=self.connection.driver, **attributes))
-
-        return sizes
-
-    def list_locations(self):
-        locations = self._to_locations(
-            self.connection.request(
-                "/api/common/lookup/list", params={"lookup": "ip.datacenter"}
-            ).object
-        )
-        return locations
-
-    def ex_create_node_nowait(
-        self, name, size, image, location=None, ex_description=None, ex_ip=None
-    ):
-        """Don't block until GoGrid allocates id for a node
-        but return right away with id == None.
-
-        The existence of this method is explained by the fact
-        that GoGrid assigns id to a node only few minutes after
-        creation.
-
-
-        :keyword    name:   String with a name for this new node (required)
-        :type       name:   ``str``
-
-        :keyword    size:   The size of resources allocated to this node .
-                            (required)
-        :type       size:   :class:`NodeSize`
-
-        :keyword    image:  OS Image to boot on node. (required)
-        :type       image:  :class:`NodeImage`
-
-        :keyword    ex_description: Description of a Node
-        :type       ex_description: ``str``
-
-        :keyword    ex_ip: Public IP address to use for a Node. If not
-            specified, first available IP address will be picked
-        :type       ex_ip: ``str``
-
-        :rtype: :class:`GoGridNode`
-        """
-        if not ex_ip:
-            ip = self._get_first_ip(location)
-
-        params = {
-            "name": name,
-            "image": image.id,
-            "description": ex_description or "",
-            "server.ram": size.id,
-            "ip": ip,
-        }
-
-        object = self.connection.request(
-            "/api/grid/server/add", params=params, method="POST"
-        ).object
-        node = self._to_node(object["list"][0])
-
-        return node
-
-    def create_node(self, name, size, image, location=None, ex_description=None, ex_ip=None):
-        """Create a new GoGird node
-
-        @inherits: :class:`NodeDriver.create_node`
-
-        :keyword    ex_description: Description of a Node
-        :type       ex_description: ``str``
-
-        :keyword    ex_ip: Public IP address to use for a Node. If not
-                    specified, first available IP address will be picked
-        :type       ex_ip: ``str``
-
-        :rtype: :class:`GoGridNode`
-        """
-        node = self.ex_create_node_nowait(
-            name=name,
-            size=size,
-            image=image,
-            ex_description=ex_description,
-            ex_ip=ex_ip,
-        )
-
-        timeout = 60 * 20
-        waittime = 0
-        interval = 2 * 60
-
-        while node.id is None and waittime < timeout:
-            nodes = self.list_nodes()
-
-            for i in nodes:
-                if i.public_ips[0] == node.public_ips[0] and i.id is not None:
-                    return i
-
-            waittime += interval
-            time.sleep(interval)
-
-        if id is None:
-            raise Exception("Wasn't able to wait for id allocation for the node %s" % str(node))
-
-        return node
-
-    def ex_save_image(self, node, name):
-        """Create an image for node.
-
-        Please refer to GoGrid documentation to get info
-        how prepare a node for image creation:
-
-        http://wiki.gogrid.com/wiki/index.php/MyGSI
-
-        :keyword    node: node to use as a base for image
-        :type       node: :class:`GoGridNode`
-
-        :keyword    name: name for new image
-        :type       name: ``str``
-
-        :rtype: :class:`NodeImage`
-        """
-        params = {"server": node.id, "friendlyName": name}
-        object = self.connection.request(
-            "/api/grid/image/save", params=params, method="POST"
-        ).object
-
-        return self._to_images(object)[0]
-
-    def ex_edit_node(self, **kwargs):
-        """Change attributes of a node.
-
-        :keyword    node: node to be edited (required)
-        :type       node: :class:`GoGridNode`
-
-        :keyword    size: new size of a node (required)
-        :type       size: :class:`NodeSize`
-
-        :keyword    ex_description: new description of a node
-        :type       ex_description: ``str``
-
-        :rtype: :class:`Node`
-        """
-        node = kwargs["node"]
-        size = kwargs["size"]
-
-        params = {"id": node.id, "server.ram": size.id}
-
-        if "ex_description" in kwargs:
-            params["description"] = kwargs["ex_description"]
-
-        object = self.connection.request("/api/grid/server/edit", params=params).object
-
-        return self._to_node(object["list"][0])
-
-    def ex_edit_image(self, **kwargs):
-        """Edit metadata of a server image.
-
-        :keyword    image: image to be edited (required)
-        :type       image: :class:`NodeImage`
-
-        :keyword    public: should be the image public (required)
-        :type       public: ``bool``
-
-        :keyword    ex_description: description of the image (optional)
-        :type       ex_description: ``str``
-
-        :keyword    name: name of the image
-        :type       name: ``str``
-
-        :rtype: :class:`NodeImage`
-        """
-
-        image = kwargs["image"]
-        public = kwargs["public"]
-
-        params = {"id": image.id, "isPublic": str(public).lower()}
-
-        if "ex_description" in kwargs:
-            params["description"] = kwargs["ex_description"]
-
-        if "name" in kwargs:
-            params["friendlyName"] = kwargs["name"]
-
-        object = self.connection.request("/api/grid/image/edit", params=params).object
-
-        return self._to_image(object["list"][0])
-
-    def ex_list_ips(self, **kwargs):
-        """Return list of IP addresses assigned to
-        the account.
-
-        :keyword    public: set to True to list only
-                    public IPs or False to list only
-                    private IPs. Set to None or not specify
-                    at all not to filter by type
-        :type       public: ``bool``
-
-        :keyword    assigned: set to True to list only addresses
-                    assigned to servers, False to list unassigned
-                    addresses and set to None or don't set at all
-                    not no filter by state
-        :type       assigned: ``bool``
-
-        :keyword    location: filter IP addresses by location
-        :type       location: :class:`NodeLocation`
-
-        :rtype: ``list`` of :class:`GoGridIpAddress`
-        """
-
-        params = {}
-
-        if "public" in kwargs and kwargs["public"] is not None:
-            params["ip.type"] = {True: "Public", False: "Private"}[kwargs["public"]]
-        if "assigned" in kwargs and kwargs["assigned"] is not None:
-            params["ip.state"] = {True: "Assigned", False: "Unassigned"}[kwargs["assigned"]]
-        if "location" in kwargs and kwargs["location"] is not None:
-            params["datacenter"] = kwargs["location"].id
-
-        ips = self._to_ips(self.connection.request("/api/grid/ip/list", params=params).object)
-        return ips
diff --git a/libcloud/compute/drivers/gridspot.py b/libcloud/compute/drivers/gridspot.py
deleted file mode 100644
index 7f3652d..0000000
--- a/libcloud/compute/drivers/gridspot.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from libcloud.common.base import JsonResponse, ConnectionKey
-from libcloud.common.types import InvalidCredsError
-from libcloud.compute.base import Node, NodeState, NodeDriver
-from libcloud.compute.types import Provider
-
-
-class GridspotAPIException(Exception):
-    def __str__(self):
-        # pylint: disable=unsubscriptable-object
-        return self.args[0]
-
-    def __repr__(self):
-        # pylint: disable=unsubscriptable-object
-        return "<GridspotAPIException '%s'>" % (self.args[0])
-
-
-class GridspotResponse(JsonResponse):
-    """
-    Response class for Gridspot
-    """
-
-    def parse_body(self):
-        body = super().parse_body()
-
-        if "exception_name" in body and body["exception_name"]:
-            raise GridspotAPIException(body["exception_name"])
-
-        return body
-
-    def parse_error(self):
-        # Gridspot 404s on invalid api key or instance_id
-        raise InvalidCredsError("Invalid api key/instance_id")
-
-
-class GridspotConnection(ConnectionKey):
-    """
-    Connection class to connect to Gridspot's API servers
-    """
-
-    host = "gridspot.com"
-    responseCls = GridspotResponse
-
-    def add_default_params(self, params):
-        params["api_key"] = self.key
-        return params
-
-
-class GridspotNodeDriver(NodeDriver):
-    """
-    Gridspot (http://www.gridspot.com/) node driver.
-    """
-
-    type = Provider.GRIDSPOT
-    name = "Gridspot"
-    website = "http://www.gridspot.com/"
-    connectionCls = GridspotConnection
-    NODE_STATE_MAP = {"Running": NodeState.RUNNING, "Starting": NodeState.PENDING}
-
-    def list_nodes(self):
-        data = self.connection.request("/compute_api/v1/list_instances").object
-        return [self._to_node(n) for n in data["instances"]]
-
-    def destroy_node(self, node):
-        data = {"instance_id": node.id}
-        self.connection.request("/compute_api/v1/stop_instance", data).object
-        return True
-
-    def _get_node_state(self, state):
-        result = self.NODE_STATE_MAP.get(state, NodeState.UNKNOWN)
-        return result
-
-    def _add_int_param(self, params, data, field):
-        if data[field]:
-            try:
-                params[field] = int(data[field])
-            except Exception:
-                pass
-
-    def _to_node(self, data):
-        port = None
-        ip = None
-
-        state = self._get_node_state(data["current_state"])
-
-        if data["vm_ssh_wan_ip_endpoint"] != "null":
-            parts = data["vm_ssh_wan_ip_endpoint"].split(":")
-            ip = parts[0]
-            port = int(parts[1])
-
-        extra_params = {"winning_bid_id": data["winning_bid_id"], "port": port}
-
-        # Spec is vague and doesn't indicate if these will always be present
-        self._add_int_param(extra_params, data, "vm_num_logical_cores")
-        self._add_int_param(extra_params, data, "vm_num_physical_cores")
-        self._add_int_param(extra_params, data, "vm_ram")
-        self._add_int_param(extra_params, data, "start_state_time")
-        self._add_int_param(extra_params, data, "ended_state_time")
-        self._add_int_param(extra_params, data, "running_state_time")
-
-        return Node(
-            id=data["instance_id"],
-            name=data["instance_id"],
-            state=state,
-            public_ips=[ip],
-            private_ips=[],
-            driver=self.connection.driver,
-            extra=extra_params,
-        )
diff --git a/libcloud/compute/drivers/hostvirtual.py b/libcloud/compute/drivers/hostvirtual.py
deleted file mode 100644
index 7b364f0..0000000
--- a/libcloud/compute/drivers/hostvirtual.py
+++ /dev/null
@@ -1,477 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-libcloud driver for the Host Virtual Inc. (VR) API
-Home page https://www.hostvirtual.com/
-"""
-
-import re
-import time
-
-from libcloud.compute.base import (
-    Node,
-    NodeSize,
-    NodeImage,
-    NodeDriver,
-    NodeLocation,
-    NodeAuthSSHKey,
-    NodeAuthPassword,
-)
-from libcloud.compute.types import NodeState
-from libcloud.compute.providers import Provider
-from libcloud.common.hostvirtual import (
-    HostVirtualResponse,
-    HostVirtualException,
-    HostVirtualConnection,
-)
-
-try:
-    import simplejson as json
-except ImportError:
-    import json
-
-
-API_ROOT = ""
-
-NODE_STATE_MAP = {
-    "BUILDING": NodeState.PENDING,
-    "PENDING": NodeState.PENDING,
-    "RUNNING": NodeState.RUNNING,  # server is powered up
-    "STOPPING": NodeState.REBOOTING,
-    "REBOOTING": NodeState.REBOOTING,
-    "STARTING": NodeState.REBOOTING,
-    "TERMINATED": NodeState.TERMINATED,  # server is powered down
-    "STOPPED": NodeState.STOPPED,
-}
-
-DEFAULT_NODE_LOCATION_ID = 21
-
-
-class HostVirtualComputeResponse(HostVirtualResponse):
-    pass
-
-
-class HostVirtualComputeConnection(HostVirtualConnection):
-    responseCls = HostVirtualComputeResponse
-
-
-class HostVirtualNodeDriver(NodeDriver):
-    type = Provider.HOSTVIRTUAL
-    name = "HostVirtual"
-    website = "http://www.hostvirtual.com"
-    connectionCls = HostVirtualComputeConnection
-    features = {"create_node": ["ssh_key", "password"]}
-
-    def __init__(self, key, secure=True, host=None, port=None):
-        self.location = None
-        super().__init__(key=key, secure=secure, host=host, port=port)
-
-    def list_nodes(self):
-        try:
-            result = self.connection.request(API_ROOT + "/cloud/servers/").object
-        except HostVirtualException:
-            return []
-        nodes = []
-        for value in result:
-            node = self._to_node(value)
-            nodes.append(node)
-        return nodes
-
-    def list_locations(self):
-        result = self.connection.request(API_ROOT + "/cloud/locations/").object
-        locations = []
-        for k in result:
-            dc = result[k]
-            locations.append(
-                NodeLocation(
-                    dc["id"],
-                    dc["name"],
-                    dc["name"].split(",")[1].replace(" ", ""),  # country
-                    self,
-                )
-            )
-        return sorted(locations, key=lambda x: int(x.id))
-
-    def list_sizes(self, location=None):
-        params = {}
-        if location is not None:
-            params = {"location": location.id}
-        result = self.connection.request(API_ROOT + "/cloud/sizes/", params=params).object
-        sizes = []
-        for size in result:
-            n = NodeSize(
-                id=size["plan_id"],
-                name=size["plan"],
-                ram=size["ram"],
-                disk=size["disk"],
-                bandwidth=size["transfer"],
-                price=size["price"],
-                driver=self.connection.driver,
-            )
-            sizes.append(n)
-        return sizes
-
-    def list_images(self):
-        result = self.connection.request(API_ROOT + "/cloud/images/").object
-        images = []
-        for image in result:
-            i = NodeImage(
-                id=image["id"],
-                name=image["os"],
-                driver=self.connection.driver,
-                extra=image,
-            )
-            del i.extra["id"]
-            del i.extra["os"]
-            images.append(i)
-        return images
-
-    def create_node(self, name, image, size, location=None, auth=None):
-        """
-        Creates a node
-
-        Example of node creation with ssh key deployed:
-
-        >>> from libcloud.compute.base import NodeAuthSSHKey
-        >>> key = open('/home/user/.ssh/id_rsa.pub').read()
-        >>> auth = NodeAuthSSHKey(pubkey=key)
-        >>> from libcloud.compute.providers import get_driver
-        >>> driver = get_driver('hostvirtual')
-        >>> conn = driver('API_KEY')
-        >>> image = conn.list_images()[1]
-        >>> size = conn.list_sizes()[0]
-        >>> location = conn.list_locations()[1]
-        >>> name = 'markos-dev'
-        >>> node = conn.create_node(name, image, size, auth=auth,
-        >>>                         location=location)
-        """
-
-        dc = None
-
-        auth = self._get_and_check_auth(auth)
-
-        if not self._is_valid_fqdn(name):
-            raise HostVirtualException(
-                500, "Name should be a valid FQDN (e.g, hostname.example.com)"
-            )
-
-        # simply order a package first
-        pkg = self.ex_order_package(size)
-
-        if location:
-            dc = location.id
-        else:
-            dc = DEFAULT_NODE_LOCATION_ID
-
-        # create a stub node
-        stub_node = self._to_node(
-            {
-                "mbpkgid": pkg["id"],
-                "status": "PENDING",
-                "fqdn": name,
-                "plan_id": size.id,
-                "os_id": image.id,
-                "location_id": dc,
-            }
-        )
-
-        # provisioning a server using the stub node
-        self.ex_provision_node(node=stub_node, auth=auth)
-        node = self._wait_for_node(stub_node.id)
-        if getattr(auth, "generated", False):
-            node.extra["password"] = auth.password
-
-        return node
-
-    def reboot_node(self, node):
-        params = {"force": 0, "mbpkgid": node.id}
-        result = self.connection.request(
-            API_ROOT + "/cloud/server/reboot", data=json.dumps(params), method="POST"
-        ).object
-
-        return bool(result)
-
-    def destroy_node(self, node):
-        params = {
-            "mbpkgid": node.id,
-            # 'reason': 'Submitted through Libcloud API'
-        }
-
-        result = self.connection.request(
-            API_ROOT + "/cloud/cancel", data=json.dumps(params), method="POST"
-        ).object
-
-        return bool(result)
-
-    def ex_list_packages(self):
-        """
-        List the server packages.
-
-        """
-
-        try:
-            result = self.connection.request(API_ROOT + "/cloud/packages/").object
-        except HostVirtualException:
-            return []
-        pkgs = []
-        for value in result:
-            pkgs.append(value)
-        return pkgs
-
-    def ex_order_package(self, size):
-        """
-        Order a server package.
-
-        :param      size:
-        :type       node: :class:`NodeSize`
-
-        :rtype: ``str``
-        """
-
-        params = {"plan": size.name}
-        pkg = self.connection.request(
-            API_ROOT + "/cloud/buy/", data=json.dumps(params), method="POST"
-        ).object
-
-        return pkg
-
-    def ex_cancel_package(self, node):
-        """
-        Cancel a server package.
-
-        :param      node: Node which should be used
-        :type       node: :class:`Node`
-
-        :rtype: ``str``
-        """
-
-        params = {"mbpkgid": node.id}
-        result = self.connection.request(
-            API_ROOT + "/cloud/cancel/", data=json.dumps(params), method="POST"
-        ).object
-
-        return result
-
-    def ex_unlink_package(self, node):
-        """
-        Unlink a server package from location.
-
-        :param      node: Node which should be used
-        :type       node: :class:`Node`
-
-        :rtype: ``str``
-        """
-
-        params = {"mbpkgid": node.id}
-        result = self.connection.request(
-            API_ROOT + "/cloud/unlink/", data=json.dumps(params), method="POST"
-        ).object
-
-        return result
-
-    def ex_get_node(self, node_id):
-        """
-        Get a single node.
-
-        :param      node_id: id of the node that we need the node object for
-        :type       node_id: ``str``
-
-        :rtype: :class:`Node`
-        """
-
-        params = {"mbpkgid": node_id}
-        result = self.connection.request(API_ROOT + "/cloud/server", params=params).object
-        node = self._to_node(result)
-        return node
-
-    def start_node(self, node):
-        """
-        Start a node.
-
-        :param      node: Node which should be used
-        :type       node: :class:`Node`
-
-        :rtype: ``bool``
-        """
-        params = {"mbpkgid": node.id}
-        result = self.connection.request(
-            API_ROOT + "/cloud/server/start", data=json.dumps(params), method="POST"
-        ).object
-
-        return bool(result)
-
-    def stop_node(self, node):
-        """
-        Stop a node.
-
-        :param      node: Node which should be used
-        :type       node: :class:`Node`
-
-        :rtype: ``bool``
-        """
-        params = {"force": 0, "mbpkgid": node.id}
-        result = self.connection.request(
-            API_ROOT + "/cloud/server/shutdown", data=json.dumps(params), method="POST"
-        ).object
-
-        return bool(result)
-
-    def ex_start_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.start_node(node=node)
-
-    def ex_stop_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.stop_node(node=node)
-
-    def ex_provision_node(self, **kwargs):
-        """
-        Provision a server on a VR package and get it booted
-
-        :keyword node: node which should be used
-        :type    node: :class:`Node`
-
-        :keyword image: The distribution to deploy on your server (mandatory)
-        :type    image: :class:`NodeImage`
-
-        :keyword auth: an SSH key or root password (mandatory)
-        :type    auth: :class:`NodeAuthSSHKey` or :class:`NodeAuthPassword`
-
-        :keyword location: which datacenter to create the server in
-        :type    location: :class:`NodeLocation`
-
-        :return: Node representing the newly built server
-        :rtype: :class:`Node`
-        """
-
-        node = kwargs["node"]
-
-        if "image" in kwargs:
-            image = kwargs["image"]
-        else:
-            image = node.extra["image"]
-
-        params = {
-            "mbpkgid": node.id,
-            "image": image,
-            "fqdn": node.name,
-            "location": node.extra["location"],
-        }
-
-        auth = kwargs["auth"]
-
-        ssh_key = None
-        password = None
-        if isinstance(auth, NodeAuthSSHKey):
-            ssh_key = auth.pubkey
-            params["ssh_key"] = ssh_key
-        elif isinstance(auth, NodeAuthPassword):
-            password = auth.password
-            params["password"] = password
-
-        if not ssh_key and not password:
-            raise HostVirtualException(500, "SSH key or Root password is required")
-
-        try:
-            result = self.connection.request(
-                API_ROOT + "/cloud/server/build", data=json.dumps(params), method="POST"
-            ).object
-            return bool(result)
-        except HostVirtualException:
-            self.ex_cancel_package(node)
-
-    def ex_delete_node(self, node):
-        """
-        Delete a node.
-
-        :param      node: Node which should be used
-        :type       node: :class:`Node`
-
-        :rtype: ``bool``
-        """
-
-        params = {"mbpkgid": node.id}
-        result = self.connection.request(
-            API_ROOT + "/cloud/server/delete", data=json.dumps(params), method="POST"
-        ).object
-
-        return bool(result)
-
-    def _to_node(self, data):
-        state = NODE_STATE_MAP[data["status"]]
-        public_ips = []
-        private_ips = []
-        extra = {}
-
-        if "plan_id" in data:
-            extra["size"] = data["plan_id"]
-        if "os_id" in data:
-            extra["image"] = data["os_id"]
-        if "fqdn" in data:
-            extra["fqdn"] = data["fqdn"]
-        if "location_id" in data:
-            extra["location"] = data["location_id"]
-        if "ip" in data:
-            public_ips.append(data["ip"])
-
-        node = Node(
-            id=data["mbpkgid"],
-            name=data["fqdn"],
-            state=state,
-            public_ips=public_ips,
-            private_ips=private_ips,
-            driver=self.connection.driver,
-            extra=extra,
-        )
-        return node
-
-    def _wait_for_node(self, node_id, timeout=30, interval=5.0):
-        """
-        :param node_id: ID of the node to wait for.
-        :type node_id: ``int``
-
-        :param timeout: Timeout (in seconds).
-        :type timeout: ``int``
-
-        :param interval: How long to wait (in seconds) between each attempt.
-        :type interval: ``float``
-
-        :return: Node representing the newly built server
-        :rtype: :class:`Node`
-        """
-        # poll until we get a node
-        for i in range(0, timeout, int(interval)):
-            try:
-                node = self.ex_get_node(node_id)
-                return node
-            except HostVirtualException:
-                time.sleep(interval)
-
-        raise HostVirtualException(412, "Timeout on getting node details")
-
-    def _is_valid_fqdn(self, fqdn):
-        if len(fqdn) > 255:
-            return False
-        if fqdn[-1] == ".":
-            fqdn = fqdn[:-1]
-        valid = re.compile(r"(?!-)[A-Z\d-]{1,63}(?<!-)$", re.IGNORECASE)
-        if len(fqdn.split(".")) > 1:
-            return all(valid.match(x) for x in fqdn.split("."))
-        else:
-            return False
diff --git a/libcloud/compute/drivers/indosat.py b/libcloud/compute/drivers/indosat.py
deleted file mode 100644
index 7895244..0000000
--- a/libcloud/compute/drivers/indosat.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""
-Indosat Driver
-"""
-
-from libcloud.compute.providers import Provider
-from libcloud.common.dimensiondata import API_ENDPOINTS, DimensionDataConnection
-from libcloud.compute.drivers.dimensiondata import DimensionDataNodeDriver
-
-DEFAULT_REGION = "indosat-id"
-
-
-class IndosatNodeDriver(DimensionDataNodeDriver):
-    """
-    Indosat node driver, based on Dimension Data driver
-    """
-
-    selected_region = None
-    connectionCls = DimensionDataConnection
-    name = "Indosat"
-    website = "http://www.indosat.com/"
-    type = Provider.INDOSAT
-    features = {"create_node": ["password"]}
-    api_version = 1.0
-
-    def __init__(
-        self,
-        key,
-        secret=None,
-        secure=True,
-        host=None,
-        port=None,
-        api_version=None,
-        region=DEFAULT_REGION,
-        **kwargs,
-    ):
-
-        if region not in API_ENDPOINTS:
-            raise ValueError("Invalid region: %s" % (region))
-
-        self.selected_region = API_ENDPOINTS[region]
-
-        super().__init__(
-            key=key,
-            secret=secret,
-            secure=secure,
-            host=host,
-            port=port,
-            api_version=api_version,
-            region=region,
-            **kwargs,
-        )
diff --git a/libcloud/compute/drivers/joyent.py b/libcloud/compute/drivers/joyent.py
deleted file mode 100644
index ea0f4cb..0000000
--- a/libcloud/compute/drivers/joyent.py
+++ /dev/null
@@ -1,278 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Joyent Cloud (http://www.joyentcloud.com) driver.
-"""
-
-import base64
-
-from libcloud.utils.py3 import b, httplib
-from libcloud.common.base import JsonResponse, ConnectionUserAndKey
-from libcloud.common.types import LibcloudError
-from libcloud.compute.base import Node, NodeSize, NodeImage, NodeDriver
-from libcloud.compute.types import NodeState, InvalidCredsError
-from libcloud.utils.networking import is_private_subnet
-from libcloud.compute.providers import Provider
-
-try:
-    import simplejson as json
-except Exception:
-    import json
-
-
-API_HOST_SUFFIX = ".api.joyentcloud.com"
-API_VERSION = "~6.5"
-
-
-NODE_STATE_MAP = {
-    "provisioning": NodeState.PENDING,
-    "running": NodeState.RUNNING,
-    "stopping": NodeState.TERMINATED,
-    "stopped": NodeState.TERMINATED,
-    "deleted": NodeState.TERMINATED,
-}
-
-VALID_REGIONS = [
-    "us-east-1",
-    "us-east-2",
-    "us-east-3",
-    "us-west-1",
-    "us-sw-1",
-    "eu-ams-1",
-]
-DEFAULT_REGION = "us-east-1"
-
-
-class JoyentResponse(JsonResponse):
-    """
-    Joyent response class.
-    """
-
-    valid_response_codes = [
-        httplib.OK,
-        httplib.ACCEPTED,
-        httplib.CREATED,
-        httplib.NO_CONTENT,
-    ]
-
-    def parse_error(self):
-        if self.status == httplib.UNAUTHORIZED:
-            data = self.parse_body()
-            raise InvalidCredsError(data["code"] + ": " + data["message"])
-        return self.body
-
-    def success(self):
-        return self.status in self.valid_response_codes
-
-
-class JoyentConnection(ConnectionUserAndKey):
-    """
-    Joyent connection class.
-    """
-
-    responseCls = JoyentResponse
-
-    allow_insecure = False
-
-    def add_default_headers(self, headers):
-        headers["Accept"] = "application/json"
-        headers["Content-Type"] = "application/json; charset=UTF-8"
-        headers["X-Api-Version"] = API_VERSION
-
-        user_b64 = base64.b64encode(b("{}:{}".format(self.user_id, self.key)))
-        headers["Authorization"] = "Basic %s" % (user_b64.decode("utf-8"))
-        return headers
-
-
-class JoyentNodeDriver(NodeDriver):
-    """
-    Joyent node driver class.
-    """
-
-    type = Provider.JOYENT
-    name = "Joyent"
-    website = "http://www.joyentcloud.com"
-    connectionCls = JoyentConnection
-    features = {"create_node": ["generates_password"]}
-
-    def __init__(
-        self,
-        key,
-        secret=None,
-        secure=True,
-        host=None,
-        port=None,
-        region=DEFAULT_REGION,
-        **kwargs,
-    ):
-        # Location is here for backward compatibility reasons
-        if "location" in kwargs:
-            region = kwargs["location"]
-
-        if region not in VALID_REGIONS:
-            msg = 'Invalid region: "%s". Valid region: %s'
-            raise LibcloudError(msg % (region, ", ".join(VALID_REGIONS)), driver=self)
-
-        super().__init__(
-            key=key,
-            secret=secret,
-            secure=secure,
-            host=host,
-            port=port,
-            region=region,
-            **kwargs,
-        )
-        self.connection.host = region + API_HOST_SUFFIX
-
-    def list_images(self):
-        result = self.connection.request("/my/datasets").object
-
-        images = []
-        for value in result:
-            extra = {
-                "type": value["type"],
-                "urn": value["urn"],
-                "os": value["os"],
-                "default": value["default"],
-            }
-            image = NodeImage(
-                id=value["id"],
-                name=value["name"],
-                driver=self.connection.driver,
-                extra=extra,
-            )
-            images.append(image)
-
-        return images
-
-    def list_sizes(self):
-        result = self.connection.request("/my/packages").object
-
-        sizes = []
-        for value in result:
-            size = NodeSize(
-                id=value["name"],
-                name=value["name"],
-                ram=value["memory"],
-                disk=value["disk"],
-                bandwidth=None,
-                price=0.0,
-                driver=self.connection.driver,
-            )
-            sizes.append(size)
-
-        return sizes
-
-    def list_nodes(self):
-        result = self.connection.request("/my/machines").object
-
-        nodes = []
-        for value in result:
-            node = self._to_node(value)
-            nodes.append(node)
-
-        return nodes
-
-    def reboot_node(self, node):
-        data = json.dumps({"action": "reboot"})
-        result = self.connection.request("/my/machines/%s" % (node.id), data=data, method="POST")
-        return result.status == httplib.ACCEPTED
-
-    def destroy_node(self, node):
-        result = self.connection.request("/my/machines/%s" % (node.id), method="DELETE")
-        return result.status == httplib.NO_CONTENT
-
-    def create_node(self, name, size, image):
-        data = json.dumps({"name": name, "package": size.id, "dataset": image.id})
-        result = self.connection.request("/my/machines", data=data, method="POST")
-        return self._to_node(result.object)
-
-    def start_node(self, node):
-        """
-        Start node
-
-        :param  node: The node to be stopped
-        :type   node: :class:`Node`
-
-        :rtype: ``bool``
-        """
-        data = json.dumps({"action": "start"})
-        result = self.connection.request("/my/machines/%s" % (node.id), data=data, method="POST")
-        return result.status == httplib.ACCEPTED
-
-    def stop_node(self, node):
-        """
-        Stop node
-
-        :param  node: The node to be stopped
-        :type   node: :class:`Node`
-
-        :rtype: ``bool``
-        """
-        data = json.dumps({"action": "stop"})
-        result = self.connection.request("/my/machines/%s" % (node.id), data=data, method="POST")
-        return result.status == httplib.ACCEPTED
-
-    def ex_start_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.start_node(node=node)
-
-    def ex_stop_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.stop_node(node=node)
-
-    def ex_get_node(self, node_id):
-        """
-        Return a Node object based on a node ID.
-
-        :param  node_id: ID of the node
-        :type   node_id: ``str``
-
-        :return:  A Node object for the node
-        :rtype:   :class:`Node`
-        """
-        result = self.connection.request("/my/machines/%s" % (node_id))
-        return self._to_node(result.object)
-
-    def _to_node(self, data):
-        state = NODE_STATE_MAP[data["state"]]
-        public_ips = []
-        private_ips = []
-        extra = {}
-
-        for ip in data["ips"]:
-            if is_private_subnet(ip):
-                private_ips.append(ip)
-            else:
-                public_ips.append(ip)
-
-        if "credentials" in data["metadata"]:
-            extra["password"] = data["metadata"]["credentials"]["root"]
-
-        node = Node(
-            id=data["id"],
-            name=data["name"],
-            state=state,
-            public_ips=public_ips,
-            private_ips=private_ips,
-            driver=self.connection.driver,
-            extra=extra,
-        )
-        return node
diff --git a/libcloud/compute/drivers/kili.py b/libcloud/compute/drivers/kili.py
deleted file mode 100644
index 33b5ce1..0000000
--- a/libcloud/compute/drivers/kili.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-HP Public cloud driver which is essentially just a small wrapper around
-OpenStack driver.
-"""
-
-from libcloud.compute.types import Provider, LibcloudError
-from libcloud.compute.drivers.openstack import OpenStack_1_1_Connection, OpenStack_1_1_NodeDriver
-
-__all__ = ["KiliCloudNodeDriver"]
-
-ENDPOINT_ARGS = {"service_type": "compute", "name": "nova", "region": "RegionOne"}
-
-AUTH_URL = "https://api.kili.io/keystone"
-
-
-class KiliCloudConnection(OpenStack_1_1_Connection):
-    _auth_version = "2.0_password"
-
-    def __init__(self, *args, **kwargs):
-        self.region = kwargs.pop("region", None)
-        self.get_endpoint_args = kwargs.pop("get_endpoint_args", None)
-        super().__init__(*args, **kwargs)
-        self._auth_version = KiliCloudConnection._auth_version
-
-    def get_endpoint(self):
-        if not self.get_endpoint_args:
-            raise LibcloudError("KiliCloudConnection must have get_endpoint_args set")
-
-        if "2.0_password" in self._auth_version:
-            ep = self.service_catalog.get_endpoint(**self.get_endpoint_args)
-        else:
-            raise LibcloudError('Auth version "%s" not supported' % (self._auth_version))
-
-        public_url = ep.url
-
-        if not public_url:
-            raise LibcloudError("Could not find specified endpoint")
-
-        return public_url
-
-
-class KiliCloudNodeDriver(OpenStack_1_1_NodeDriver):
-    name = "Kili Public Cloud"
-    website = "http://kili.io/"
-    connectionCls = KiliCloudConnection
-    type = Provider.HPCLOUD
-
-    def __init__(self, key, secret, tenant_name, secure=True, host=None, port=None, **kwargs):
-        """
-        Note: tenant_name argument is required for Kili cloud.
-        """
-        self.tenant_name = tenant_name
-        super().__init__(key=key, secret=secret, secure=secure, host=host, port=port, **kwargs)
-
-    def _ex_connection_class_kwargs(self):
-        kwargs = self.openstack_connection_kwargs()
-        kwargs["get_endpoint_args"] = ENDPOINT_ARGS
-        kwargs["ex_force_auth_url"] = AUTH_URL
-        kwargs["ex_tenant_name"] = self.tenant_name
-
-        return kwargs
diff --git a/libcloud/compute/drivers/medone.py b/libcloud/compute/drivers/medone.py
deleted file mode 100644
index 038066b..0000000
--- a/libcloud/compute/drivers/medone.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""
-Med-1 Driver
-"""
-
-from libcloud.compute.providers import Provider
-from libcloud.common.dimensiondata import API_ENDPOINTS, DimensionDataConnection
-from libcloud.compute.drivers.dimensiondata import DimensionDataNodeDriver
-
-DEFAULT_REGION = "med1-il"
-
-
-class MedOneNodeDriver(DimensionDataNodeDriver):
-    """
-    Med-1 node driver, based on Dimension Data driver
-    """
-
-    selected_region = None
-    connectionCls = DimensionDataConnection
-    name = "MedOne"
-    website = "http://www.med-1.com/"
-    type = Provider.MEDONE
-    features = {"create_node": ["password"]}
-    api_version = 1.0
-
-    def __init__(
-        self,
-        key,
-        secret=None,
-        secure=True,
-        host=None,
-        port=None,
-        api_version=None,
-        region=DEFAULT_REGION,
-        **kwargs,
-    ):
-
-        if region not in API_ENDPOINTS:
-            raise ValueError("Invalid region: %s" % (region))
-
-        self.selected_region = API_ENDPOINTS[region]
-
-        super().__init__(
-            key=key,
-            secret=secret,
-            secure=secure,
-            host=host,
-            port=port,
-            api_version=api_version,
-            region=region,
-            **kwargs,
-        )
diff --git a/libcloud/compute/drivers/nephoscale.py b/libcloud/compute/drivers/nephoscale.py
deleted file mode 100644
index 8b60e88..0000000
--- a/libcloud/compute/drivers/nephoscale.py
+++ /dev/null
@@ -1,461 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-NephoScale Cloud driver (http://www.nephoscale.com)
-API documentation: http://docs.nephoscale.com
-Created by Markos Gogoulos (https://mist.io)
-"""
-
-import os
-import time
-import base64
-import binascii
-
-from libcloud.utils.py3 import b, httplib, urlencode
-from libcloud.common.base import JsonResponse, ConnectionUserAndKey
-from libcloud.compute.base import Node, NodeSize, NodeImage, NodeDriver, NodeLocation
-from libcloud.compute.types import NodeState, LibcloudError, InvalidCredsError
-from libcloud.utils.networking import is_private_subnet
-from libcloud.compute.providers import Provider
-
-API_HOST = "api.nephoscale.com"
-
-NODE_STATE_MAP = {
-    "on": NodeState.RUNNING,
-    "off": NodeState.UNKNOWN,
-    "unknown": NodeState.UNKNOWN,
-}
-
-VALID_RESPONSE_CODES = [
-    httplib.OK,
-    httplib.ACCEPTED,
-    httplib.CREATED,
-    httplib.NO_CONTENT,
-]
-
-# used in create_node and specifies how many times to get the list of nodes and
-# check if the newly created node is there. This is because when a request is
-# sent to create a node, NephoScale replies with the job id, and not the node
-# itself thus we don't have the ip addresses, that are required in deploy_node
-CONNECT_ATTEMPTS = 10
-
-
-class NodeKey:
-    def __init__(self, id, name, public_key=None, key_group=None, password=None):
-        self.id = id
-        self.name = name
-        self.key_group = key_group
-        self.password = password
-        self.public_key = public_key
-
-    def __repr__(self):
-        return ("<NodeKey: id=%s, name=%s>") % (self.id, self.name)
-
-
-class NephoscaleResponse(JsonResponse):
-    """
-    Nephoscale API Response
-    """
-
-    def parse_error(self):
-        if self.status == httplib.UNAUTHORIZED:
-            raise InvalidCredsError("Authorization Failed")
-        if self.status == httplib.NOT_FOUND:
-            raise Exception("The resource you are looking for is not found.")
-
-        return self.body
-
-    def success(self):
-        return self.status in VALID_RESPONSE_CODES
-
-
-class NephoscaleConnection(ConnectionUserAndKey):
-    """
-    Nephoscale connection class.
-    Authenticates to the API through Basic Authentication
-    with username/password
-    """
-
-    host = API_HOST
-    responseCls = NephoscaleResponse
-
-    allow_insecure = False
-
-    def add_default_headers(self, headers):
-        """
-        Add parameters that are necessary for every request
-        """
-        user_b64 = base64.b64encode(b("{}:{}".format(self.user_id, self.key)))
-        headers["Authorization"] = "Basic %s" % (user_b64.decode("utf-8"))
-        return headers
-
-
-class NephoscaleNodeDriver(NodeDriver):
-    """
-    Nephoscale node driver class.
-
-    >>> from libcloud.compute.providers import get_driver
-    >>> driver = get_driver('nephoscale')
-    >>> conn = driver('nepho_user','nepho_password')
-    >>> conn.list_nodes()
-    """
-
-    type = Provider.NEPHOSCALE
-    api_name = "nephoscale"
-    name = "NephoScale"
-    website = "http://www.nephoscale.com"
-    connectionCls = NephoscaleConnection
-    features = {"create_node": ["ssh_key"]}
-
-    def list_locations(self):
-        """
-        List available zones for deployment
-
-        :rtype: ``list`` of :class:`NodeLocation`
-        """
-        result = self.connection.request("/datacenter/zone/").object
-        locations = []
-        for value in result.get("data", []):
-            location = NodeLocation(
-                id=value.get("id"), name=value.get("name"), country="US", driver=self
-            )
-            locations.append(location)
-        return locations
-
-    def list_images(self):
-        """
-        List available images for deployment
-
-        :rtype: ``list`` of :class:`NodeImage`
-        """
-        result = self.connection.request("/image/server/").object
-        images = []
-        for value in result.get("data", []):
-            extra = {
-                "architecture": value.get("architecture"),
-                "disks": value.get("disks"),
-                "billable_type": value.get("billable_type"),
-                "pcpus": value.get("pcpus"),
-                "cores": value.get("cores"),
-                "uri": value.get("uri"),
-                "storage": value.get("storage"),
-            }
-            image = NodeImage(
-                id=value.get("id"),
-                name=value.get("friendly_name"),
-                driver=self,
-                extra=extra,
-            )
-            images.append(image)
-        return images
-
-    def list_sizes(self):
-        """
-        List available sizes containing prices
-
-        :rtype: ``list`` of :class:`NodeSize`
-        """
-        result = self.connection.request("/server/type/cloud/").object
-        sizes = []
-        for value in result.get("data", []):
-            value_id = value.get("id")
-            size = NodeSize(
-                id=value_id,
-                name=value.get("friendly_name"),
-                ram=value.get("ram"),
-                disk=value.get("storage"),
-                bandwidth=None,
-                price=self._get_size_price(size_id=str(value_id)),
-                driver=self,
-            )
-            sizes.append(size)
-
-        return sorted(sizes, key=lambda k: k.price)
-
-    def list_nodes(self):
-        """
-        List available nodes
-
-        :rtype: ``list`` of :class:`Node`
-        """
-        result = self.connection.request("/server/cloud/").object
-        nodes = [self._to_node(value) for value in result.get("data", [])]
-        return nodes
-
-    def rename_node(self, node, name, hostname=None):
-        """rename a cloud server, optionally specify hostname too"""
-        data = {"name": name}
-        if hostname:
-            data["hostname"] = hostname
-        params = urlencode(data)
-        result = self.connection.request(
-            "/server/cloud/%s/" % node.id, data=params, method="PUT"
-        ).object
-        return result.get("response") in VALID_RESPONSE_CODES
-
-    def reboot_node(self, node):
-        """reboot a running node"""
-        result = self.connection.request(
-            "/server/cloud/%s/initiator/restart/" % node.id, method="POST"
-        ).object
-        return result.get("response") in VALID_RESPONSE_CODES
-
-    def start_node(self, node):
-        """start a stopped node"""
-        result = self.connection.request(
-            "/server/cloud/%s/initiator/start/" % node.id, method="POST"
-        ).object
-        return result.get("response") in VALID_RESPONSE_CODES
-
-    def stop_node(self, node):
-        """stop a running node"""
-        result = self.connection.request(
-            "/server/cloud/%s/initiator/stop/" % node.id, method="POST"
-        ).object
-        return result.get("response") in VALID_RESPONSE_CODES
-
-    def destroy_node(self, node):
-        """destroy a node"""
-        result = self.connection.request("/server/cloud/%s/" % node.id, method="DELETE").object
-        return result.get("response") in VALID_RESPONSE_CODES
-
-    def ex_start_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.start_node(node=node)
-
-    def ex_stop_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.stop_node(node=node)
-
-    def ex_list_keypairs(self, ssh=False, password=False, key_group=None):
-        """
-        List available console and server keys
-        There are two types of keys for NephoScale, ssh and password keys.
-        If run without arguments, lists all keys. Otherwise list only
-        ssh keys, or only password keys.
-        Password keys with key_group 4 are console keys. When a server
-        is created, it has two keys, one password or ssh key, and
-        one password console key.
-
-        :keyword ssh: if specified, show ssh keys only (optional)
-        :type    ssh: ``bool``
-
-        :keyword password: if specified, show password keys only (optional)
-        :type    password: ``bool``
-
-        :keyword key_group: if specified, show keys with this key_group only
-                            eg key_group=4 for console password keys (optional)
-        :type    key_group: ``int``
-
-        :rtype: ``list`` of :class:`NodeKey`
-        """
-        if ssh and password:
-            raise LibcloudError(
-                "You can only supply ssh or password. To \
-get all keys call with no arguments"
-            )
-        if ssh:
-            result = self.connection.request("/key/sshrsa/").object
-        elif password:
-            result = self.connection.request("/key/password/").object
-        else:
-            result = self.connection.request("/key/").object
-        keys = [self._to_key(value) for value in result.get("data", [])]
-
-        if key_group:
-            keys = [key for key in keys if key.key_group == key_group]
-        return keys
-
-    def ex_create_keypair(self, name, public_key=None, password=None, key_group=None):
-        """Creates a key, ssh or password, for server or console
-        The group for the key (key_group) is 1 for Server and 4 for Console
-        Returns the id of the created key
-        """
-        if public_key:
-            if not key_group:
-                key_group = 1
-            data = {"name": name, "public_key": public_key, "key_group": key_group}
-            params = urlencode(data)
-            result = self.connection.request("/key/sshrsa/", data=params, method="POST").object
-        else:
-            if not key_group:
-                key_group = 4
-            if not password:
-                password = self.random_password()
-                data = {"name": name, "password": password, "key_group": key_group}
-            params = urlencode(data)
-            result = self.connection.request("/key/password/", data=params, method="POST").object
-        return result.get("data", {}).get("id", "")
-
-    def ex_delete_keypair(self, key_id, ssh=False):
-        """Delete an ssh key or password given it's id"""
-        if ssh:
-            result = self.connection.request("/key/sshrsa/%s/" % key_id, method="DELETE").object
-        else:
-            result = self.connection.request("/key/password/%s/" % key_id, method="DELETE").object
-        return result.get("response") in VALID_RESPONSE_CODES
-
-    def create_node(
-        self, name, size, image, server_key=None, console_key=None, zone=None, **kwargs
-    ):
-        """Creates the node, and sets the ssh key, console key
-        NephoScale will respond with a 200-200 response after sending a valid
-        request. If nowait=True is specified in the args, we then ask a few
-        times until the server is created and assigned a public IP address,
-        so that deploy_node can be run
-
-        >>> from libcloud.compute.providers import get_driver
-        >>> driver = get_driver('nephoscale')
-        >>> conn = driver('nepho_user','nepho_password')
-        >>> conn.list_nodes()
-        >>> name = 'staging-server'
-        >>> size = conn.list_sizes()[0]
-        <NodeSize: id=27, ...name=CS025 - 0.25GB, 10GB, ...>
-        >>> image = conn.list_images()[9]
-        <NodeImage: id=49, name=Linux Ubuntu Server 10.04 LTS 64-bit, ...>
-        >>> server_keys = conn.ex_list_keypairs(key_group=1)[0]
-        <NodeKey: id=71211, name=markos>
-        >>> server_key = conn.ex_list_keypairs(key_group=1)[0].id
-        70867
-        >>> console_keys = conn.ex_list_keypairs(key_group=4)[0]
-        <NodeKey: id=71213, name=mistio28434>
-        >>> console_key = conn.ex_list_keypairs(key_group=4)[0].id
-        70907
-        >>> node = conn.create_node(name=name, size=size, image=image, \
-                console_key=console_key, server_key=server_key)
-
-        We can also create an ssh key, plus a console key and
-        deploy node with them
-        >>> server_key = conn.ex_create_keypair(name, public_key='123')
-        71211
-        >>> console_key = conn.ex_create_keypair(name, key_group=4)
-        71213
-
-        We can increase the number of connect attempts to wait until
-        the node is created, so that deploy_node has ip address to
-        deploy the script
-        We can also specify the location
-        >>> location = conn.list_locations()[0]
-        >>> node = conn.create_node(name=name,
-        >>> ...                     size=size,
-        >>> ...                     image=image,
-        >>> ...                     console_key=console_key,
-        >>> ...                     server_key=server_key,
-        >>> ...                     connect_attempts=10,
-        >>> ...                     nowait=True,
-        >>> ...                     zone=location.id)
-        """
-        hostname = kwargs.get("hostname", name)
-        service_type = size.id
-        image = image.id
-        connect_attempts = int(kwargs.get("connect_attempts", CONNECT_ATTEMPTS))
-
-        data = {
-            "name": name,
-            "hostname": hostname,
-            "service_type": service_type,
-            "image": image,
-            "server_key": server_key,
-            "console_key": console_key,
-            "zone": zone,
-        }
-
-        params = urlencode(data)
-        try:
-            node = self.connection.request("/server/cloud/", data=params, method="POST")
-        except Exception as e:
-            raise Exception("Failed to create node %s" % e)
-        node = Node(
-            id="",
-            name=name,
-            state=NodeState.UNKNOWN,
-            public_ips=[],
-            private_ips=[],
-            driver=self,
-        )
-
-        nowait = kwargs.get("ex_wait", False)
-        if not nowait:
-            return node
-        else:
-            # try to get the created node public ips, for use in deploy_node
-            # At this point we don't have the id of the newly created Node,
-            # so search name in nodes
-            created_node = False
-            while connect_attempts > 0:
-                nodes = self.list_nodes()
-                created_node = [c_node for c_node in nodes if c_node.name == name]
-                if created_node:
-                    return created_node[0]
-                else:
-                    time.sleep(60)
-                    connect_attempts = connect_attempts - 1
-            return node
-
-    def _to_node(self, data):
-        """Convert node in Node instances"""
-
-        state = NODE_STATE_MAP.get(data.get("power_status"), "4")
-        public_ips = []
-        private_ips = []
-        ip_addresses = data.get("ipaddresses", "")
-        # E.g. "ipaddresses": "198.120.14.6, 10.132.60.1"
-        if ip_addresses:
-            for ip in ip_addresses.split(","):
-                ip = ip.replace(" ", "")
-                if is_private_subnet(ip):
-                    private_ips.append(ip)
-                else:
-                    public_ips.append(ip)
-        extra = {
-            "zone_data": data.get("zone"),
-            "zone": data.get("zone", {}).get("name"),
-            "image": data.get("image", {}).get("friendly_name"),
-            "create_time": data.get("create_time"),
-            "network_ports": data.get("network_ports"),
-            "is_console_enabled": data.get("is_console_enabled"),
-            "service_type": data.get("service_type", {}).get("friendly_name"),
-            "hostname": data.get("hostname"),
-        }
-
-        node = Node(
-            id=data.get("id"),
-            name=data.get("name"),
-            state=state,
-            public_ips=public_ips,
-            private_ips=private_ips,
-            driver=self,
-            extra=extra,
-        )
-        return node
-
-    def _to_key(self, data):
-        return NodeKey(
-            id=data.get("id"),
-            name=data.get("name"),
-            password=data.get("password"),
-            key_group=data.get("key_group"),
-            public_key=data.get("public_key"),
-        )
-
-    def random_password(self, size=8):
-        value = os.urandom(size)
-        password = binascii.hexlify(value).decode("ascii")
-        return password[:size]
diff --git a/libcloud/compute/drivers/oneandone.py b/libcloud/compute/drivers/oneandone.py
deleted file mode 100644
index bc31986..0000000
--- a/libcloud/compute/drivers/oneandone.py
+++ /dev/null
@@ -1,2000 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""
-1&1 Cloud Server Compute driver
-"""
-import json
-from time import sleep
-
-from libcloud.utils.py3 import httplib
-from libcloud.common.base import JsonResponse, ConnectionKey
-from libcloud.common.types import InvalidCredsError
-from libcloud.compute.base import (
-    Node,
-    NodeSize,
-    NodeImage,
-    NodeDriver,
-    NodeLocation,
-    NodeAuthSSHKey,
-    NodeAuthPassword,
-)
-from libcloud.compute.types import NodeState
-from libcloud.compute.providers import Provider
-
-API_HOST = "cloudpanel-api.1and1.com"
-API_VERSION = "/v1/"
-
-__all__ = [
-    "API_HOST",
-    "API_VERSION",
-    "OneAndOneResponse",
-    "OneAndOneConnection",
-    "OneAndOneNodeDriver",
-]
-
-
-class OneAndOneResponse(JsonResponse):
-    """
-    OneAndOne response parsing.
-    """
-
-    valid_response_codes = [httplib.OK, httplib.CREATED, httplib.ACCEPTED]
-
-    def parse_error(self):
-
-        if self.status == httplib.UNAUTHORIZED:
-            body = self.parse_body()
-            raise InvalidCredsError(body["message"])
-        else:
-            body = self.parse_body()
-            if "message" in body:
-                error = "{} (code: {})".format(body["message"], self.status)
-            else:
-                error = body
-            return error
-
-    def success(self):
-        return self.status in self.valid_response_codes
-
-
-class OneAndOneConnection(ConnectionKey):
-    """
-    Connection class for the 1&1 driver
-    """
-
-    host = API_HOST
-    api_prefix = API_VERSION
-    responseCls = OneAndOneResponse
-
-    def encode_data(self, data):
-        return json.dumps(data)
-
-    def add_default_headers(self, headers):
-        """
-        Add headers that are necessary for every request
-
-        This method adds ``token`` and ``Content-Type`` to the request.
-        """
-        headers["X-Token"] = self.key
-        headers["Content-Type"] = "application/json"
-        return headers
-
-    def request(self, action, params=None, data=None, headers=None, method="GET", raw=False):
-        """
-        Some requests will use the href attribute directly.
-        If this is not the case, then we should formulate the
-        url based on the action specified.
-        If we are using a full url, we need to remove the
-        host and protocol components.
-        """
-        action = self.api_prefix + action.lstrip("/")
-
-        return super().request(
-            action=action,
-            params=params,
-            data=data,
-            headers=headers,
-            method=method,
-            raw=raw,
-        )
-
-
-class OneAndOneNodeDriver(NodeDriver):
-    """
-    Base OneAndOne node driver.
-    """
-
-    connectionCls = OneAndOneConnection
-    name = "1and1"
-    website = "http://www.1and1.com"
-    type = Provider.ONEANDONE
-
-    NODE_STATE_MAP = {
-        "POWERING_ON": NodeState.STARTING,
-        "POWERING_OFF": NodeState.PENDING,
-        "POWERED_OFF": NodeState.STOPPING,
-        "POWERED_ON": NodeState.RUNNING,
-        "REBOOTING": NodeState.REBOOTING,
-        "CONFIGURING": NodeState.RECONFIGURING,
-        "REMOVING": NodeState.UNKNOWN,
-        "DEPLOYING": NodeState.STARTING,
-    }
-
-    """
-    Core Functions
-    """
-
-    def list_sizes(self):
-        """
-        Lists all sizes
-
-        :return: A list of all configurable node sizes.
-        :rtype: ``list`` of :class:`NodeSize`
-        """
-        sizes = []
-
-        fixed_instances = self._list_fixed_instances()
-        for value in fixed_instances:
-            node_size = self._to_node_size(value)
-            sizes.append(node_size)
-
-        return sizes
-
-    def list_locations(self):
-        """
-        Lists all locations
-
-        :return: ``list`` of :class:`NodeLocation`
-        :rtype: ``list``
-        """
-        datacenters = self.ex_list_datacenters()
-        locations = []
-        for values in datacenters:
-            node_size = self._to_location(values)
-            locations.append(node_size)
-
-        return locations
-
-    def list_images(self, image_type=None):
-        """
-        :return: ``list`` of :class: `NodeImage`
-        :rtype: ``list``
-        """
-        response = self.connection.request(action="server_appliances", method="GET")
-
-        return self._to_images(response.object, image_type)
-
-    def get_image(self, image_id):
-        response = self.connection.request(action="server_appliances/%s" % image_id, method="GET")
-        return self._to_image(response.object)
-
-    """
-    Node functions
-    """
-
-    def create_node(
-        self,
-        name,
-        image,
-        ex_fixed_instance_size_id,
-        location=None,
-        auth=None,
-        ex_ip=None,
-        ex_monitoring_policy_id=None,
-        ex_firewall_policy_id=None,
-        ex_loadbalancer_id=None,
-        ex_description=None,
-        ex_power_on=None,
-    ):
-        """
-        Creates a node.
-
-        :param name: The name of the new node
-        :type name: `str`
-
-        :param ex_fixed_instance_size_id:
-        Fixed instance size ID from list_sizes
-        :type ex_fixed_instance_size_id: ``str``
-
-        :param location: 1&1 Data center Location
-        :type location: `NodeLocation`
-
-        :param ex_ip: IP address
-        :type ex_ip: `str`
-
-        :param ex_ssh_key: SSH Key
-        :type ex_ssh_key: `str`
-
-        :param password: Password
-        :type password: `str`
-
-        :param ex_monitoring_policy_id:
-        :type ex_firewall_policy_id: `str`
-
-        :param ex_firewall_policy_id:
-        :type ex_firewall_policy_id: `str`
-
-        :param ex_loadbalancer_id:
-        :type ex_loadbalancer_id: `str`
-
-        :param ex_description:
-        :type ex_description: `str`
-
-        :param ex_power_on:
-        :type ex_power_on: `bool`
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class:`Node`
-        """
-
-        body = {
-            "name": name,
-            "appliance_id": image.id,
-            "hardware": {"fixed_instance_size_id": ex_fixed_instance_size_id},
-        }
-
-        if location is not None:
-            body["datacenter_id"] = location.id
-        if ex_power_on is not None:
-            body["power_on"] = ex_power_on
-
-        if ex_description is not None:
-            body["description"] = ex_description
-
-        if ex_firewall_policy_id is not None:
-            body["firewall_policy_id"] = ex_firewall_policy_id
-
-        if ex_monitoring_policy_id is not None:
-            body["monitoring_policy_id"] = ex_monitoring_policy_id
-
-        if ex_loadbalancer_id is not None:
-            body["loadbalancer_id"] = ex_loadbalancer_id
-
-        if auth is not None:
-            if isinstance(auth, NodeAuthPassword):
-                body["password"] = auth.password
-            elif isinstance(auth, NodeAuthSSHKey):
-                body["rsa_key"] = auth.pubkey
-        if ex_ip is not None:
-            body["ip_id"] = ex_ip
-
-        response = self.connection.request(
-            action="servers",
-            data=body,
-            method="POST",
-        )
-
-        return self._to_node(response.object)
-
-    def list_nodes(self):
-        """
-        List all nodes.
-
-        :return: ``list`` of :class:`Node`
-        :rtype: ``list``
-        """
-        response = self.connection.request(action="servers", method="GET")
-
-        return self._to_nodes(response.object)
-
-    def destroy_node(self, node, ex_keep_ips=False):
-        """
-        Destroys a node.
-
-        :param node: The node you wish to destroy.
-        :type volume: :class:`Node`
-
-        :param ex_keep_ips: True to keep all IP addresses assigned to the node
-        :type ex_keep_ips: : ``bool``
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-        self.ex_shutdown_server(node.id)
-
-        self._wait_for_state(node.id, "POWERED_OFF")
-
-        response = self.connection.request(
-            action="servers/%s" % node.id,
-            params={"keep_ips": ex_keep_ips},
-            method="DELETE",
-        )
-
-        return self._to_node(response.object)
-
-    def reboot_node(self, node):
-        """
-        Reboots the node.
-
-        :param node: The node you wish to destroy.
-        :type volume: :class:`Node`
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-        shutdown_body = {"action": "REBOOT", "method": "HARDWARE"}
-        response = self.connection.request(
-            action="servers/%s/status/action" % node.id,
-            data=shutdown_body,
-            method="PUT",
-        )
-        return self._to_node(response.object)
-
-    """
-    Extension functions
-    """
-
-    def ex_rename_server(self, server_id, name=None, description=None):
-        """
-        Renames the server
-        :param  server_id: ID of the server you want to rename
-
-        :param  name: New name of the server
-        :type: ``str``
-
-        :param description: New description of the server
-        :type: ``str``
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-
-        body = {}
-        if name is not None:
-            body["name"] = name
-        if description is not None:
-            body["description"] = description
-
-        response = self.connection.request(action="servers/%s" % server_id, data=body, method="PUT")
-
-        return self._to_node(response.object)
-
-    def ex_get_server_hardware(self, server_id):
-        """
-        Gets all server hardware
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :return: Server's hardware
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="servers/%s/hardware" % server_id, method="GET")
-        return response.object
-
-    """
-    Hardware operations
-    """
-
-    def ex_modify_server_hardware(
-        self,
-        server_id,
-        fixed_instance_size_id=None,
-        vcore=None,
-        cores_per_processor=None,
-        ram=None,
-    ):
-        """
-        Modifies server's hardware
-
-        :param server_id:
-        :type: ``str``
-
-        :param fixed_instance_size_id: Id of the fixed instance size
-        :type: ``str``
-
-        :param vcore: Virtual cores count
-        :type: ``int``
-
-        :param cores_per_processor: Count of cores per procesor
-        :type: ``int``
-
-        :param ram: Amount of ram for the server
-        :type: ``int``
-
-        :return:    Instance of class ``Node``
-        :type:     :class: `Node`
-        """
-
-        body = {}
-
-        if fixed_instance_size_id is not None:
-            body["fixed_instance_size_id"] = fixed_instance_size_id
-        if vcore is not None:
-            body["vcore"] = vcore
-        if cores_per_processor is not None:
-            body["cores_per_processor"] = cores_per_processor
-        if ram is not None:
-            body["ram"] = ram
-
-        response = self.connection.request(
-            action="servers/%s/hardware" % server_id, data=body, method="PUT"
-        )
-
-        return self._to_node(response.object)
-
-    """
-    HDD operations
-    """
-
-    def ex_modify_server_hdd(self, server_id, hdd_id=None, size=None):
-        """
-        Modifies server hard disk drives
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param hdd_id: Id of the hard disk
-        :type: ``str``
-
-        :param size: Size of the hard disk
-        :type: ``str``
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-
-        body = {}
-
-        if size is not None:
-            body["size"] = size
-
-            response = self.connection.request(
-                action="servers/{}/hardware/hdds/{}".format(server_id, hdd_id),
-                data=body,
-                method="PUT",
-            )
-
-            return self._to_node(response.object)
-
-    def ex_add_hdd(self, server_id, size, is_main):
-        """
-        Add a hard disk to the server
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param size: Size of the new disk
-        :type: ``str``
-
-        :param is_main: Indicates if the disk is going to be the boot disk
-        :type: ``boolean``
-
-        :return:    Instance of class ``Node``
-        :type:     :class: `Node`
-        """
-        body = {"size": size, "is_main": is_main}
-
-        response = self.connection.request(
-            action="servers/%s/hardware/hdds" % server_id, data=body, method="POST"
-        )
-
-        return self._to_node(response.object)
-
-    def ex_remove_hdd(self, server_id, hdd_id):
-        """
-        Removes existing hard disk
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param hdd_id: Id of the hard disk
-        :type: ``str``
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-
-        response = self.connection.request(
-            action="servers/{}/hardware/hdds/{}".format(server_id, hdd_id), method="DELETE"
-        )
-
-        return self._to_node(response.object)
-
-    """
-    Data center operations
-    """
-
-    def ex_list_datacenters(self):
-        """
-        Lists all data centers
-
-        :return: List of data centers
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="datacenters", method="GET")
-
-        return response.object
-
-    def ex_get_server(self, server_id):
-        """
-        Gets a server
-
-        :param server_id: Id of the server to be retrieved
-        :type: ``str``
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-
-        response = self.connection.request(action="servers/%s" % (server_id), method="GET")
-
-        return self._to_node(response.object)
-
-    def ex_shutdown_server(self, server_id, method="SOFTWARE"):
-        """
-        Shuts down the server
-
-        :param server_id: Id of the server to be shut down
-        :type: ``str``
-
-        :param method: Method of shutting down "SOFTWARE" or "HARDWARE"
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-
-        shutdown_body = {"action": "POWER_OFF", "method": method}
-        response = self.connection.request(
-            action="servers/%s/status/action" % (server_id),
-            data=shutdown_body,
-            method="PUT",
-        )
-        return self._to_node(response.object)
-
-    """
-    Image operations
-    """
-
-    def ex_get_server_image(self, server_id):
-        """
-        Gets server image
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :return: Server image
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(action="servers/%s/image" % server_id, method="GET")
-        return response.object
-
-    def ex_reinstall_server_image(self, server_id, image_id, password=None):
-        """
-        Installs a new image on the server
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param image_id: Id of the image (Server Appliance)
-        :type: ``str``
-
-        :param password: New password for the server
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-
-        body = {
-            "id": image_id,
-        }
-
-        if password is not None:
-            body["password"] = password
-
-        response = self.connection.request(
-            action="servers/%s/image" % server_id, data=body, method="PUT"
-        )
-        return self._to_node(response.object)
-
-    """
-    Server IP operations
-    """
-
-    def ex_list_server_ips(self, server_id):
-        """
-        Gets all server IP objects
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :return: List of server IP objects
-        :rtype: ``list`` of ``dict``
-        """
-        response = self.connection.request(action="servers/%s/ips" % server_id, method="GET")
-
-        return response.object
-
-    def ex_get_server_ip(self, server_id, ip_id):
-        """
-        Get a single server IP object
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param ip_id: ID of the IP address
-        :type: ``str``
-
-        :return: IP address object
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="servers/{}/ips/{}".format(server_id, ip_id), method="GET"
-        )
-
-        return response.object
-
-    def ex_assign_server_ip(self, server_id, ip_type):
-        """
-        Assigns a new IP address to the server
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param ip_type: Type of the IP address [IPV4,IPV6]
-        :type: ``str``
-
-        :return: ``Node`` instance
-        :rtype: ``Node``
-        """
-
-        body = {"type": ip_type}
-
-        response = self.connection.request(
-            action="servers/%s/ips" % server_id, data=body, method="POST"
-        )
-
-        return self._to_node(response.object)
-
-    def ex_remove_server_ip(self, server_id, ip_id, keep_ip=None):
-        """
-        Removes an IP address from the server
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param ip_id: ID of the IP address
-        :type: ``str``
-
-        :param keep_ip: Indicates whether IP address will be removed from
-                        the Cloud Panel
-        :type: ``boolean``
-
-        :return: ``Node`` instance
-        :rtype: ``Node``
-        """
-
-        body = {}
-        if keep_ip is not None:
-            body["keep_ip"] = keep_ip
-
-        response = self.connection.request(
-            action="servers/{}/ips/{}".format(server_id, ip_id), data=body, method="DELETE"
-        )
-
-        return self._to_node(response.object)
-
-    def ex_get_server_firewall_policies(self, server_id, ip_id):
-        """
-        Gets a firewall policy of attached to the server's IP
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param ip_id: ID of the IP address
-        :type: ``str``
-
-        :return: IP address object
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="/servers/{}/ips/{}/firewall_policy".format(server_id, ip_id),
-            method="GET",
-        )
-
-        return response.object
-
-    def ex_add_server_firewall_policy(self, server_id, ip_id, firewall_id):
-        """
-        Adds a firewall policy to the server's IP address
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :param ip_id: ID of the IP address
-        :type: ``str``
-
-        :param firewall_id: ID of the firewall policy
-        :type: ``str``
-
-        :return: ``Node`` instance
-        :rtype: ``Node``
-        """
-        body = {"id": firewall_id}
-        response = self.connection.request(
-            action="/servers/{}/ips/{}/firewall_policy".format(server_id, ip_id),
-            data=body,
-            method="POST",
-        )
-
-        return self._to_node(response.object)
-
-    """
-    Firewall Policy operations
-    """
-
-    def ex_create_firewall_policy(self, name, rules, description=None):
-        """
-        Creates a firewall Policy.
-
-        :param name:
-        :param description:
-        :param rules:
-
-        :rtype: `dict`
-        :return: `dict` firewall policy
-
-        """
-        body = {"name": name}
-
-        if description is not None:
-            body["description"] = description
-
-        if len(rules) == 0:
-            raise ValueError("At least one firewall rule is required.")
-        else:
-            body["rules"] = rules
-
-        response = self.connection.request(
-            action="firewall_policies",
-            data=body,
-            method="POST",
-        )
-
-        return response.object
-
-    def ex_list_firewall_policies(self):
-        """ "
-        List firewall policies
-
-        :return: 'dict'
-        """
-
-        response = self.connection.request(action="firewall_policies", method="GET")
-
-        return response.object
-
-    def ex_get_firewall_policy(self, fw_id):
-        """
-        Gets firewall policy
-
-        :param fw_id: ID of the firewall policy
-        :return: 'dict'
-        """
-
-        response = self.connection.request(action="firewall_policy/%s" % fw_id, method="GET")
-
-        return response.object
-
-    def ex_delete_firewall_policy(self, fw_id):
-        """
-        Deletes firewall policy
-
-        :param fw_id: ID of the Firewall
-        :return: 'dict'
-        """
-        response = self.connection.request(action="firewall_policy/%s" % fw_id, method="DELETE")
-
-        return response.object
-
-    """
-    Shared storage operations
-    """
-
-    def ex_list_shared_storages(self):
-        """
-        List of shared storages
-        :return: 'dict'
-        """
-        response = self.connection.request(action="shared_storages", method="GET")
-
-        return response.object
-
-    def ex_get_shared_storage(self, storage_id):
-        """
-        Gets a shared storage
-        :return: 'dict'
-        """
-        response = self.connection.request(action="shared_storages/%s" % (storage_id), method="GET")
-
-        return response.object
-
-    def ex_create_shared_storage(self, name, size, datacenter_id=None, description=None):
-        """
-        Creates a shared storage
-        :param name: Name of the storage
-        :param size: Size of the storage
-        :param datacenter_id: datacenter where storage should be created
-        :param description: description ot the  storage
-        :return: 'dict'
-        """
-
-        body = {"name": name, "size": size, "datacenter_id": datacenter_id}
-
-        if description is not None:
-            body["description"] = description
-
-        response = self.connection.request(action="shared_storages", data=body, method="POST")
-
-        return response.object
-
-    def ex_delete_shared_storage(self, storage_id):
-        """
-        Removes a shared storage
-
-        :param storage_id: Id of the shared storage
-        :type: ``str``
-
-        :return: Instnace of shared storage
-        :rtype: ``list`` of ``dict``
-        """
-        response = self.connection.request(
-            action="shared_storages/%s" % storage_id, method="DELETE"
-        )
-
-        return response.object
-
-    def ex_attach_server_to_shared_storage(self, storage_id, server_id, rights):
-        """
-        Attaches a single server to a shared storage
-
-        :param storage_id: Id of the shared storage
-        :param server_id: Id of the server to be attached to the shared storage
-        :param rights:
-        :return:
-        :rtype: 'dict'
-        """
-        body = {"severs": [{"id": server_id, "rights": rights}]}
-
-        response = self.connection.request(
-            action="shared_storages/%s/servers" % storage_id, data=body, method="POST"
-        )
-
-        return response.object
-
-    def ex_get_shared_storage_server(self, storage_id, server_id):
-        """
-        Gets a shared storage's server
-        :param storage_id:
-        :param server_id:
-        :return:
-        """
-        response = self.connection.request(
-            action="shared_storages/{}/servers/{}".format(storage_id, server_id),
-        )
-
-        return response.object
-
-    def ex_detach_server_from_shared_storage(self, storage_id, server_id):
-        """
-        Detaches a server from shared storage
-
-        :param storage_id: Id of the shared storage
-        :type: ``str``
-
-        :param server_id: Id of the server
-        :type: ``str``
-
-        :return: Instance of shared storage
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="shared_storages/{}/servers/{}".format(storage_id, server_id),
-            method="DELETE",
-        )
-
-        return response.object
-
-    """
-    Load Balancers operations
-    """
-
-    def ex_create_load_balancer(
-        self,
-        name,
-        method,
-        rules,
-        persistence=None,
-        persistence_time=None,
-        health_check_test=None,
-        health_check_interval=None,
-        health_check_path=None,
-        health_check_parser=None,
-        datacenter_id=None,
-        description=None,
-    ):
-        """
-
-        :param name: Name of the load balancer
-
-        :param method: Load balancer method
-
-        :param rules: Load balancer rules
-        :type rules: ``list`` of ``dict``
-
-        :param persistence: Indictes if persistance is set
-        :type persistence: ``boolean``
-
-        :param persistence_time: Persistance time
-        :type persistence_time: ``int``
-
-        :param health_check_test: Type of test
-        :type health_check_test:``str``
-
-        :param health_check_interval: Interval of the check
-
-        :param health_check_path: Path
-        :type health_check_path: ``str``
-
-        :param health_check_parser: Parser
-        :type health_check_parser:``str``
-
-        :param datacenter_id: Data center id
-        :type datacenter_id:``str``
-
-        :param description: Description of load balancer
-        :type description:``str``
-
-        :return: ``dict``
-        """
-
-        body = {
-            "name": name,
-            "method": method,
-        }
-
-        body["rules"] = []
-        body["rules"] = rules
-
-        if persistence is not None:
-            body["persistence"] = persistence
-        if persistence_time is not None:
-            body["persistence_time"] = persistence_time
-        if health_check_test is not None:
-            body["health_check_test"] = health_check_test
-        if health_check_interval is not None:
-            body["health_check_interval"] = health_check_interval
-        if health_check_path is not None:
-            body["health_check_path"] = health_check_path
-        if health_check_parser is not None:
-            body["health_check_parser"] = health_check_parser
-        if datacenter_id is not None:
-            body["datacenter_id"] = datacenter_id
-        if description is not None:
-            body["description"] = description
-
-        response = self.connection.request(action="load_balancers", data=body, method="POST")
-
-        return response.object
-
-    def ex_update_load_balancer(
-        self,
-        lb_id,
-        name=None,
-        description=None,
-        health_check_test=None,
-        health_check_interval=None,
-        persistence=None,
-        persistence_time=None,
-        method=None,
-    ):
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-        if description is not None:
-            body["description"] = description
-        if health_check_test is not None:
-            body["health_check_test"] = health_check_test
-        if health_check_interval is not None:
-            body["health_check_interval"] = health_check_interval
-        if persistence is not None:
-            body["persistence"] = persistence
-        if persistence_time is not None:
-            body["persistence_time"] = persistence_time
-        if method is not None:
-            body["method"] = method
-
-        response = self.connection.request(
-            action="load_balancers/%s" % lb_id, data=body, method="PUT"
-        )
-
-        return response.object
-
-    def ex_add_servers_to_load_balancer(self, lb_id, server_ips=[]):
-        """
-        Adds server's IP address to load balancer
-
-        :param lb_id: Load balancer ID
-        :type: ``str``
-
-        :param server_ips: Array of server IP IDs
-        :type: ``list`` of ``str``
-
-        :return: Instance of load balancer
-        :rtype: ``dict``
-        """
-        body = {
-            "server_ips": server_ips,
-        }
-
-        response = self.connection.request(
-            action="load_balancers/%s/server_ips" % lb_id, data=body, method="POST"
-        )
-
-        return response.object
-
-    def ex_remove_server_from_load_balancer(self, lb_id, server_ip):
-        """
-        Removes server's IP from load balancer
-
-        :param lb_id: Load balancer ID
-        :type: ``str``
-
-        :param server_ip: ID of the server IP
-        :type: ``str``
-
-        :return: Instance of load balancer
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="/load_balancers/{}/server_ips/{}".format(lb_id, server_ip),
-            method="DELETE",
-        )
-
-        return response.object
-
-    def ex_add_load_balancer_rule(self, lb_id, protocol, port_balancer, port_server, source=None):
-        """
-        Adds a rule to load balancer
-
-        :param lb_id: Load balancer ID
-        :rtype: ``str``
-
-        :param protocol: Load balancer protocol
-        :rtype: ``str``
-
-        :param port_balancer: Port to be balananced
-        :rtype: ``int``
-
-        :param port_server: Server port
-        :rtype: ``int``
-
-        :param source: Source IP address
-        :rtype: ``str``
-
-        :return: Instance of load balancer
-        :rtype: ``dict``
-        """
-
-        body = {
-            "rules": [
-                {
-                    "protocol": protocol,
-                    "port_balancer": port_balancer,
-                    "port_server": port_server,
-                }
-            ]
-        }
-
-        if source is not None:
-            body["rules"][0]["source"] = source
-
-        response = self.connection.request(
-            action="/load_balancers/%s/rules" % lb_id, data=body, method="POST"
-        )
-
-        return response.object
-
-    def ex_remove_load_balancer_rule(self, lb_id, rule_id):
-        """
-        Removes load balancer rule
-
-        :param lb_id: Load balancer ID
-        :rtype: ``str``
-
-        :param rule_id: Rule ID
-        :rtype: ``str``
-
-        :return: Instance of load balancer
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="/load_balancers/{}/rules/{}".format(lb_id, rule_id), method="DELETE"
-        )
-
-        return response.object
-
-    def ex_list_load_balancers(self):
-        """
-        Lists all load balancers
-
-        :return: List of load balancers
-        :rtype: ``list`` of ``dict``
-        """
-        response = self.connection.request(action="load_balancers", method="GET")
-        return response.object
-
-    def ex_get_load_balancer(self, lb_id):
-        """
-        Gets a single load balancer
-
-        :param lb_id: ID of the load balancer
-        :type lb_id: ``str``
-
-        :return: Instance of load balancer
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="load_balancers/%s" % lb_id, method="GET")
-
-        return response.object
-
-    def ex_list_load_balancer_server_ips(self, lb_id):
-        """
-        List balanced server IP addresses
-
-        :param lb_id: ID of the load balancer
-        :type lb_id: ``str``
-
-        :return: Array of IP address IDs
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="load_balancers/%s/server_ips" % lb_id, method="GET"
-        )
-
-        return response.object
-
-    def ex_get_load_balancer_server_ip(self, lb_id, server_ip):
-        """
-        Gets load balanced server id
-
-        :param lb_id: ID of the load balancer
-        :type lb_id: ``str``
-
-        :param server_ip: ID of the server IP
-        :type server_ip: ``str``
-
-        :return: Server IP
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="load_balancers/{}/server_ips/{}".format(lb_id, server_ip), method="GET"
-        )
-
-        return response.object
-
-    def ex_list_load_balancer_rules(self, lb_id):
-        """
-        Lists loadbalancer rules
-
-        :param lb_id: ID of the load balancer
-        :type lb_id: ``str``
-
-        :return: Lists of rules
-        :rtype: ``list`` of ``dict``
-        """
-        response = self.connection.request(action="load_balancers/%s/rules" % lb_id, method="GET")
-
-        return response.object
-
-    def ex_get_load_balancer_rule(self, lb_id, rule_id):
-        """
-        Get a load balancer rule
-
-        :param lb_id: ID of the load balancer
-        :type lb_id: ``str``
-
-        :param rule_id: Rule ID
-        :type rule_id: ``str``
-
-        :return: A load balancer rule
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="load_balancers/{}/rules/{}".format(lb_id, rule_id), method="GET"
-        )
-
-        return response.object
-
-    def ex_delete_load_balancer(self, lb_id):
-        """
-        Deletes a load balancer rule
-
-        :param lb_id: ID of the load balancer
-        :type lb_id: ``str``
-
-        :param rule_id: Rule ID
-        :type rule_id: ``str``
-
-        :return: Instance of load balancer
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="load_balancers/%s" % lb_id, method="DELETE")
-
-        return response.object
-
-    """
-    Public IP operations
-    """
-
-    def ex_list_public_ips(self):
-        """
-        Lists all public IP addresses
-
-        :return: Array of public addresses
-        :rtype: ``list`` of ``dict``
-        """
-        response = self.connection.request(action="public_ips", method="GET")
-
-        return response.object
-
-    def ex_create_public_ip(self, type, reverse_dns=None, datacenter_id=None):
-        """
-        Creates a public IP
-
-        :param type: Type of IP (IPV4 or IPV6)
-        :type type: ``str``
-
-        :param reverse_dns: Reverse DNS
-        :type reverse_dns: ``str``
-
-        :param datacenter_id: Datacenter ID where IP address will be crated
-        :type datacenter_id: ``str``
-
-        :return: Instance of Public IP
-        :rtype: ``dict``
-        """
-        body = {"type": type}
-
-        if reverse_dns is not None:
-            body["reverse_dns"] = reverse_dns
-        if datacenter_id is not None:
-            body["datacenter_id"] = datacenter_id
-
-        response = self.connection.request(action="public_ips", data=body, method="POST")
-
-        return response.object
-
-    def ex_get_public_ip(self, ip_id):
-        """
-        Gets a Public IP
-
-        :param ip_id: ID of the IP
-        :type ip_id: ``str``
-
-        :return: Instance of Public IP
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="public_ips/%s" % ip_id, method="GET")
-
-        return response.object
-
-    def ex_delete_public_ip(self, ip_id):
-        """
-        Deletes a public IP
-
-        :param ip_id: ID of public IP
-        :type ip_id: ``str``
-
-        :return: Instance of IP Address
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="public_ips/%s" % ip_id, method="DELETE")
-
-        return response
-
-    def ex_update_public_ip(self, ip_id, reverse_dns):
-        """
-        Updates a Public IP
-
-        :param ip_id: ID of public IP
-        :type ip_id: ``str``
-
-        :param reverse_dns: Reverse DNS
-        :type reverse_dns: ``str``
-
-        :return: Instance of Public IP
-        :rtype: ``dict``
-        """
-
-        body = {"reverse_dns": reverse_dns}
-        response = self.connection.request(
-            action="public_ips/%s" % ip_id, data=body, method="DELETE"
-        )
-
-        return response.object
-
-    """
-    Private Network Operations
-    """
-
-    def ex_list_private_networks(self):
-        """
-        Lists all private networks
-
-        :return: List of private networks
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="private_networks", method="GET")
-
-        return response.object
-
-    def ex_create_private_network(
-        self,
-        name,
-        description=None,
-        datacenter_id=None,
-        network_address=None,
-        subnet_mask=None,
-    ):
-        """
-        Creates a private network
-
-        :param name: Name of the private network
-        :type name: ``str``
-
-        :param description: Description of the private network
-        :type description: ``str``
-
-        :param datacenter_id: ID of the data center for the private network
-        :type datacenter_id: ``str``
-
-        :param network_address: Network address of the private network
-        :type network_address: ``str``
-
-        :param subnet_mask: Subnet mask of the private network
-        :type subnet_mask: ``str``
-
-        :return: Newly created private network
-        :rtype: ``dict``
-        """
-
-        body = {"name": name}
-
-        if description is not None:
-            body["description"] = description
-        if datacenter_id is not None:
-            body["datacenter_id"] = datacenter_id
-        if network_address is not None:
-            body["network_address"] = network_address
-        if subnet_mask is not None:
-            body["subnet_maks"] = subnet_mask
-
-        response = self.connection.request(action="private_networks", data=body, method="POST")
-        return response.object
-
-    def ex_delete_private_network(self, network_id):
-        """
-        Deletes a private network
-
-        :param network_id: Id of the private network
-        :type network_id: ``str``
-
-        :return: Instance of the private network being deleted
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="private_networks" % network_id, method="DELETE")
-
-        return response.object
-
-    def ex_update_private_network(
-        self,
-        network_id,
-        name=None,
-        description=None,
-        datacenter_id=None,
-        network_address=None,
-        subnet_mask=None,
-    ):
-        """
-        Updates a private network
-
-        :param name: Name of the private network
-        :type name: ``str``
-
-        :param description: Description of the private network
-        :type description: ``str``
-
-        :param datacenter_id: ID of the data center for the private network
-        :type datacenter_id: ``str``
-
-        :param network_address: Network address of the private network
-        :type network_address: ``str``
-
-        :param subnet_mask: Subnet mask of the private network
-        :type subnet_mask: ``str``
-
-        :return: Instance of private network
-        :rtype: ``dict``
-        """
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-        if description is not None:
-            body["description"] = description
-        if datacenter_id is not None:
-            body["datacenter_id"] = datacenter_id
-        if network_address is not None:
-            body["network_address"] = network_address
-        if subnet_mask is not None:
-            body["subnet_maks"] = subnet_mask
-
-        response = self.connection.request(action="private_networks/%s", data=body, method="PUT")
-
-        return response.object
-
-    def ex_list_private_network_servers(self, network_id):
-        """
-        Lists all private network servers
-
-        :param network_id: Private network ID
-        :type network_id: ``str``
-
-        :return: List of private network servers
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="/private_networks/%s/servers" % network_id, method="GET"
-        )
-        return response.object
-
-    def ex_add_private_network_server(self, network_id, server_ids):
-        """
-        Add servers to private network
-
-        :param network_id: Private Network ID
-        :type network_id: ``str``
-
-        :param server_ids: List of server IDs
-        :type server_ids: ``list`` of ``str``
-
-        :return: List of attached servers
-        :rtype: ``dict``
-
-        """
-        body = {"servers": server_ids}
-
-        response = self.connection.request(
-            action="/private_networks/%s/servers" % network_id, data=body, method="POST"
-        )
-
-        return response.object
-
-    def ex_remove_server_from_private_network(self, network_id, server_id):
-        """
-        Removes a server from the private network
-
-        :param network_id: Private Network ID
-        :type network_id: ``str``
-
-        :param server_id: Id of the server
-        :type server_id: ``str``
-
-        :return: Instance of the private network
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="/private_networks/{}/servers/{}".format(network_id, server_id),
-            method="POST",
-        )
-        return response.object
-
-    """
-    Monitoring policy operations
-    """
-
-    def ex_list_monitoring_policies(self):
-        """
-        Lists all monitoring policies
-
-        :return: List of monitoring policies
-        :rtype: ``dict``
-        """
-        response = self.connection.request(action="monitoring_policies", method="GET")
-
-        return response.object
-
-    def ex_create_monitoring_policy(
-        self,
-        name,
-        thresholds,
-        ports,
-        processes,
-        description=None,
-        email=None,
-        agent=None,
-    ):
-        """
-        Creates a monitoring policy
-
-        :param name: Name for the monitoring policy
-        :type name: ``str``
-
-        :param thresholds: Thresholds for the monitoring policy
-        :type thresholds: ``dict``
-
-        :param ports: Monitoring policies for ports
-        :type ports: ``list`` of ``dict``
-
-        :param processes: Processes to be monitored
-        :type processes: ``list`` of ``dict``
-
-        :param description: Description for the monitoring policy
-        :type description: ``str``
-
-        :param email: Email for notifications
-        :type email: ``str``
-
-        :param agent: Indicates if agent application will be installed
-        :type agent: ``boolean``
-
-        :return: Newly created instance of monitofing policy
-        :rtype: ``dict``
-        """
-        body = {
-            "name": name,
-            "thresholds": thresholds,
-            "ports": ports,
-            "processes": processes,
-        }
-
-        if description is not None:
-            body["description"] = description
-        if email is not None:
-            body["email"] = email
-        if agent is not None:
-            body["agent"] = agent
-
-        response = self.connection.request(action="monitoring_policies", data=body, method="POST")
-        return response.object
-
-    def ex_delete_monitoring_policy(self, policy_id):
-        """
-        Deletes a monitoring policy
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :return: Instance of the monitoring policy being deleted
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="monitoring_policies" % policy_id, method="DELETE"
-        )
-
-        return response.object
-
-    def ex_update_monitoring_policy(
-        self, policy_id, email, thresholds, name=None, description=None
-    ):
-        """
-        Updates monitoring policy
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param email: Email to send notifications to
-        :type email: ``str``
-
-        :param thresholds: Thresholds for the monitoring policy
-        :type thresholds: ``dict``
-
-        :param name: Name of the monitoring policy
-        :type name: ``str``
-
-        :param description: Description of the monitoring policy
-        :type description: ``str``
-
-        :return: Instance of the monitoring policy being deleted
-        :rtype: ``dict``
-        """
-
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-        if description is not None:
-            body["description"] = description
-        if thresholds is not None:
-            body["thresholds"] = thresholds
-        if email is not None:
-            body["email"] = email
-
-        response = self.connection.request(
-            action="monitoring_policies/%s" % policy_id, data=body, method="PUT"
-        )
-
-        return response.object
-
-    def ex_get_monitoring_policy(self, policy_id):
-        """
-        Fetches a monitoring policy
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="monitoring_policies/%s" % policy_id, method="GET"
-        )
-
-        return response.object
-
-    def ex_get_monitoring_policy_ports(self, policy_id):
-        """
-        Fetches monitoring policy ports
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id:
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="monitoring_policies/%s/ports" % policy_id, method="GET"
-        )
-
-        return response.object
-
-    def ex_get_monitoring_policy_port(self, policy_id, port_id):
-        """
-        Fetches monitoring policy port
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param port_id: Id of the port
-        :type port_id: ``str``
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="monitoring_policies/{}/ports/{}".format(policy_id, port_id),
-            method="GET",
-        )
-
-        return response.object
-
-    def ex_remove_monitoring_policy_port(self, policy_id, port_id):
-        """
-        Removes monitoring policy port
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param port_id: Id of the port
-        :type port_id: ``str``
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="monitoring_policies/{}/ports/{}".format(policy_id, port_id),
-            method="DELETE",
-        )
-
-        return response.object
-
-    def ex_add_monitoring_policy_ports(self, policy_id, ports):
-        """
-        Add monitoring policy ports
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param ports: List of ports
-        :type ports: ``dict``
-        [
-           {
-              'protocol':'TCP',
-              'port':'80',
-              'alert_if':'RESPONDING',
-              'email_notification':true
-           }
-        ]
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-
-        body = {"ports": ports}
-
-        response = self.connection.request(
-            action="monitoring_policies/%s/ports" % policy_id, data=body, method="POST"
-        )
-
-        return response.object
-
-    def ex_get_monitoring_policy_processes(self, policy_id):
-        """
-        Fetches monitoring policy processes
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="monitoring_policies/%s/processes" % policy_id, method="GET"
-        )
-
-        return response.object
-
-    def ex_get_monitoring_policy_process(self, policy_id, process_id):
-        """
-        Fetches monitoring policy process
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param process_id: Id of the process
-        :type process_id: ``str``
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="monitoring_policies/{}/processes/{}".format(policy_id, process_id),
-            method="GET",
-        )
-
-        return response.object
-
-    def ex_remove_monitoring_policy_process(self, policy_id, process_id):
-        """
-        Removes monitoring policy process
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param process_id: Id of the process
-        :type process_id: ``str``
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-
-        response = self.connection.request(
-            action="monitoring_policies/{}/processes/{}".format(policy_id, process_id),
-            method="DELETE",
-        )
-
-        return response.object
-
-    def ex_add_monitoring_policy_processes(self, policy_id, processes):
-        """
-        Add monitoring policy processes
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param processes: List of processes
-        :type processes: ``list`` of ``dict``
-        [
-          {
-            'process': 'taskmmgr',
-            'alert_if': 'RUNNING',
-            'email_notification': true
-          }
-        ]
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-
-        body = {"processes": processes}
-
-        response = self.connection.request(
-            action="monitoring_policies/%s/processes" % policy_id,
-            data=body,
-            method="POST",
-        )
-
-        return response.object
-
-    def ex_list_monitoring_policy_servers(self, policy_id):
-        """
-        List all servers that are being monitoried by the policy
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :return: List of servers being monitored
-        :rtype: ``list`` of ``dict``
-        """
-
-        response = self.connection.request(
-            action="monitoring_policies/%s/servers" % policy_id, method="GET"
-        )
-
-        return response.object
-
-    def ex_add_servers_to_monitoring_policy(self, policy_id, servers):
-        """
-        Adds servers to monitoring policy
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param servers: List of server ID
-        :type servers: ``list`` of ``str``
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-        body = {"servers": servers}
-        response = self.connection.request(
-            action="monitoring_policies/%s/servers" % policy_id,
-            data=body,
-            method="POST",
-        )
-
-        return response.object
-
-    def ex_remove_server_from_monitoring_policy(self, policy_id, server_id):
-        """
-        Removes a server from monitoring policy
-
-        :param policy_id: Id of the monitoring policy
-        :type policy_id: ``str``
-
-        :param server_id: Id of the server
-        :type server_id: ``str``
-
-        :return: Instance of a monitoring policy
-        :rtype: ``dict``
-        """
-        response = self.connection.request(
-            action="monitoring_policies/{}/servers/{}".format(policy_id, server_id),
-            method="DELETE",
-        )
-
-        return response.object
-
-    """
-    Private Functions
-    """
-
-    def _to_images(self, object, image_type=None):
-        if image_type is not None:
-            images = [image for image in object if image["type"] == image_type]
-        else:
-            images = [image for image in object]
-
-        return [self._to_image(image) for image in images]
-
-    def _to_image(self, data):
-        extra = {
-            "os_family": data["os_family"],
-            "os": data["os"],
-            "os_version": data["os_version"],
-            "os_architecture": data["os_architecture"],
-            "os_image_type": data["os_image_type"],
-            "min_hdd_size": data["min_hdd_size"],
-            "available_datacenters": data["available_datacenters"],
-            "licenses": data["licenses"],
-            "version": data["version"],
-            "categories": data["categories"],
-        }
-        return NodeImage(id=data["id"], name=data["name"], driver=self, extra=extra)
-
-    def _to_node_size(self, data):
-        return NodeSize(
-            id=data["id"],
-            name=data["name"],
-            ram=data["hardware"]["ram"],
-            disk=data["hardware"]["hdds"][0]["size"],
-            bandwidth=None,
-            price=None,
-            driver=self.connection.driver,
-            extra={
-                "vcores": data["hardware"]["vcore"],
-                "cores_per_processor": data["hardware"]["cores_per_processor"],
-            },
-        )
-
-    def _to_location(self, location):
-        return NodeLocation(
-            id=location["id"],
-            name=location["country_code"],
-            country=location["location"],
-            driver=self.connection.driver,
-        )
-
-    def _to_nodes(self, servers):
-        return [self._to_node(server) for server in servers]
-
-    def _to_node(self, server):
-        extra = {}
-        extra["datacenter"] = server["datacenter"]
-
-        if "description" in server:
-            extra["description"] = server["description"]
-        if "status" in server:
-            extra["status"] = server["status"]
-        if "image" in server:
-            extra["image"] = server["image"]
-        if "hardware" in server:
-            extra["hardware"] = server["hardware"]
-        if "dvd" in server:
-            extra["dvd"] = server["dvd"]
-        if "snapshot" in server:
-            extra["snapshot"] = server["snapshot"]
-        if "ips" in server:
-            extra["ips"] = server["ips"]
-        if "alerts" in server:
-            extra["alerts"] = server["alerts"]
-        if "monitoring_policy" in server:
-            extra["monitoring_policy"] = server["monitoring_policy"]
-        if "private_networks" in server:
-            extra["private_networks"] = server["private_networks"]
-
-        ips = []
-
-        if server["ips"] is not None:
-            for ip in server["ips"]:
-                ips.append(ip["ip"])
-        state = self.NODE_STATE_MAP.get(server["status"]["state"])
-
-        return Node(
-            id=server["id"],
-            state=state,
-            name=server["name"],
-            driver=self.connection.driver,
-            public_ips=ips,
-            private_ips=None,
-            extra=extra,
-        )
-
-    def _wait_for_state(self, server_id, state, retries=50):
-        for i in (0, retries):
-            server = self.ex_get_server(server_id)
-
-            if server.extra["status"]["state"] == state:
-                return
-            sleep(5)
-
-            if i == retries:
-                raise Exception("Retries count reached")
-
-    def _list_fixed_instances(self):
-        response = self.connection.request(action="/servers/fixed_instance_sizes", method="GET")
-
-        return response.object
diff --git a/libcloud/compute/drivers/opennebula.py b/libcloud/compute/drivers/opennebula.py
index 631c3de..737ebb9 100644
--- a/libcloud/compute/drivers/opennebula.py
+++ b/libcloud/compute/drivers/opennebula.py
@@ -261,10 +261,10 @@
 
         The hash is a function of an SHA1 hash of the network's ID and
         its driver which means that it should be unique between all
-        networks. In some subclasses (e.g. GoGrid) there is no ID
-        available so the public IP address is used. This means that,
-        unlike a properly done system UUID, the same UUID may mean a
-        different system install at a different time
+        networks. In some subclasses there is no ID available so the
+        public IP address is used. This means that, unlike a properly
+        done system UUID, the same UUID may mean a different system
+        install at a different time
 
         >>> from libcloud.network.drivers.dummy import DummyNetworkDriver
         >>> driver = DummyNetworkDriver()
diff --git a/libcloud/compute/drivers/profitbricks.py b/libcloud/compute/drivers/profitbricks.py
deleted file mode 100644
index a1dad0f..0000000
--- a/libcloud/compute/drivers/profitbricks.py
+++ /dev/null
@@ -1,3672 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""ProfitBricks Compute driver
-"""
-import copy
-import json
-import time
-import base64
-from collections import defaultdict
-
-from libcloud.utils.py3 import b, urlencode
-from libcloud.common.base import JsonResponse, ConnectionUserAndKey
-from libcloud.common.types import LibcloudError, MalformedResponseError
-from libcloud.compute.base import (
-    Node,
-    NodeSize,
-    NodeImage,
-    UuidMixin,
-    NodeDriver,
-    NodeLocation,
-    StorageVolume,
-    NodeAuthSSHKey,
-    VolumeSnapshot,
-    NodeAuthPassword,
-)
-from libcloud.compute.types import NodeState
-from libcloud.common.exceptions import BaseHTTPError
-from libcloud.compute.providers import Provider
-
-__all__ = [
-    "API_VERSION",
-    "API_HOST",
-    "ProfitBricksNodeDriver",
-    "Datacenter",
-    "ProfitBricksNetworkInterface",
-    "ProfitBricksFirewallRule",
-    "ProfitBricksLan",
-    "ProfitBricksIPFailover",
-    "ProfitBricksLoadBalancer",
-    "ProfitBricksAvailabilityZone",
-    "ProfitBricksIPBlock",
-]
-
-API_HOST = "api.profitbricks.com"
-API_VERSION = "/cloudapi/v4/"
-
-
-class ProfitBricksResponse(JsonResponse):
-    """
-    ProfitBricks response parsing.
-    """
-
-    def parse_error(self):
-        http_code = None
-        fault_code = None
-        message = None
-        try:
-            body = json.loads(self.body)
-            if "httpStatus" in body:
-                http_code = body["httpStatus"]
-            else:
-                http_code = "unknown"
-
-            if "messages" in body:
-                message = ", ".join(list(map(lambda item: item["message"], body["messages"])))
-                fault_code = ", ".join(list(map(lambda item: item["errorCode"], body["messages"])))
-            else:
-                message = "No messages returned."
-                fault_code = "unknown"
-        except Exception:
-            raise MalformedResponseError(
-                "Failed to parse Json", body=self.body, driver=ProfitBricksNodeDriver
-            )
-
-        return LibcloudError(
-            """
-                HTTP Code: %s,
-                Fault Code(s): %s,
-                Message(s): %s
-            """
-            % (http_code, fault_code, message),
-            driver=self,
-        )
-
-
-class ProfitBricksConnection(ConnectionUserAndKey):
-    """
-    Represents a single connection to the ProfitBricks endpoint.
-    """
-
-    host = API_HOST
-    api_prefix = API_VERSION
-    responseCls = ProfitBricksResponse
-
-    def add_default_headers(self, headers):
-        headers["Authorization"] = "Basic %s" % (
-            base64.b64encode(b("{}:{}".format(self.user_id, self.key))).decode("utf-8")
-        )
-
-        return headers
-
-    def encode_data(self, data):
-        """
-        If a string is passed in, just return it
-        or else if a dict is passed in, encode it
-        as a json string.
-        """
-        if type(data) is str:
-            return data
-
-        elif type(data) is dict:
-            return json.dumps(data)
-
-        else:
-            return ""
-
-    def request(
-        self,
-        action,
-        params=None,
-        data=None,
-        headers=None,
-        method="GET",
-        raw=False,
-        with_full_url=False,
-    ):
-
-        """
-        Some requests will use the href attribute directly.
-        If this is not the case, then we should formulate the
-        url based on the action specified.
-        If we are using a full url, we need to remove the
-        host and protocol components.
-        """
-        if not with_full_url or with_full_url is False:
-            action = self.api_prefix + action.lstrip("/")
-        else:
-            action = action.replace("https://{host}".format(host=self.host), "")
-
-        return super().request(
-            action=action,
-            params=params,
-            data=data,
-            headers=headers,
-            method=method,
-            raw=raw,
-        )
-
-
-class Datacenter(UuidMixin):
-    """
-    Class which stores information about ProfitBricks datacenter
-    instances.
-
-    :param      id: The datacenter ID.
-    :type       id: ``str``
-
-    :param      href: The datacenter href.
-    :type       href: ``str``
-
-    :param      name: The datacenter name.
-    :type       name: ``str``
-
-    :param      version: Datacenter version.
-    :type       version: ``str``
-
-    :param      driver: ProfitBricks Node Driver.
-    :type       driver: :class:`ProfitBricksNodeDriver`
-
-    :param      extra: Extra properties for the Datacenter.
-    :type       extra: ``dict``
-
-    Note: This class is ProfitBricks specific.
-    """
-
-    def __init__(self, id, href, name, version, driver, extra=None):
-        self.id = str(id)
-        self.href = href
-        self.name = name
-        self.version = version
-        self.driver = driver
-        self.extra = extra or {}
-        UuidMixin.__init__(self)
-
-    def __repr__(self):
-        return ("<Datacenter: id=%s, href=%s name=%s, version=%s, driver=%s> ...>") % (
-            self.id,
-            self.href,
-            self.name,
-            self.version,
-            self.driver.name,
-        )
-
-
-class ProfitBricksNetworkInterface:
-    """
-    Class which stores information about ProfitBricks network
-    interfaces.
-
-    :param      id: The network interface ID.
-    :type       id: ``str``
-
-    :param      name: The network interface name.
-    :type       name: ``str``
-
-    :param      href: The network interface href.
-    :type       href: ``str``
-
-    :param      state: The network interface name.
-    :type       state: ``int``
-
-    :param      extra: Extra properties for the network interface.
-    :type       extra: ``dict``
-
-    Note: This class is ProfitBricks specific.
-    """
-
-    def __init__(self, id, name, href, state, extra=None):
-        self.id = id
-        self.name = name
-        self.href = href
-        self.state = state
-        self.extra = extra or {}
-
-    def __repr__(self):
-        return ("<ProfitBricksNetworkInterface: id=%s, name=%s, href=%s>") % (
-            self.id,
-            self.name,
-            self.href,
-        )
-
-
-class ProfitBricksFirewallRule:
-    """
-    Extension class which stores information about a ProfitBricks
-    firewall rule.
-
-    :param      id: The firewall rule ID.
-    :type       id: ``str``
-
-    :param      name: The firewall rule name.
-    :type       name: ``str``
-
-    :param      href: The firewall rule href.
-    :type       href: ``str``
-
-    :param      state: The current state of the firewall rule.
-    :type       state: ``int``
-
-    :param      extra: Extra properties for the firewall rule.
-    :type       extra: ``dict``
-
-    Note: This class is ProfitBricks specific.
-
-    """
-
-    def __init__(self, id, name, href, state, extra=None):
-        self.id = id
-        self.name = name
-        self.href = href
-        self.state = state
-        self.extra = extra or {}
-
-    def __repr__(self):
-        return ("<ProfitBricksFirewallRule: id=%s, name=%s, href=%s>") % (
-            self.id,
-            self.name,
-            self.href,
-        )
-
-
-class ProfitBricksLan:
-    """
-    Extension class which stores information about a
-    ProfitBricks LAN
-
-    :param      id: The ID of the lan.
-    :param      id: ``str``
-
-    :param      name: The name of the lan.
-    :type       name: ``str``
-
-    :param      href: The lan href.
-    :type       href: ``str``
-
-    :param      is_public: If public, the lan faces the public internet.
-    :type       is_public: ``bool``
-
-    :param      state: The current state of the lan.
-    :type       state: ``int``
-
-    :param      extra: Extra properties for the lan.
-    :type       extra: ``dict``
-
-    Note: This class is ProfitBricks specific.
-
-    """
-
-    def __init__(self, id, name, href, is_public, state, driver, extra=None):
-        self.id = id
-        self.name = name
-        self.href = href
-        self.is_public = is_public
-        self.state = state
-        self.driver = driver
-        self.extra = extra or {}
-
-    def __repr__(self):
-        return ("<ProfitBricksLan: id=%s, name=%s, href=%s>") % (
-            self.id,
-            self.name,
-            self.href,
-        )
-
-
-class ProfitBricksIPFailover:
-    """
-    Extension class which stores information about a
-    ProfitBricks LAN's failover
-
-    :param      ip: The IP address to fail over.
-    :type       ip: ``str``
-
-    :param      nic_uuid: The ID of the NIC to fail over.
-    :param      nic_uuid: ``str``
-
-    Note: This class is ProfitBricks specific.
-
-    """
-
-    def __init__(self, ip, nic_uuid):
-        self.ip = ip
-        self.nic_uuid = nic_uuid
-
-    def __repr__(self):
-        return ("<ProfitBricksIPFailover: ip=%s, nic_uuid=%s>") % (
-            self.ip,
-            self.nic_uuid,
-        )
-
-
-class ProfitBricksLoadBalancer:
-    """
-    Extention class which stores information about a
-    ProfitBricks load balancer
-
-    :param      id: The ID of the load balancer.
-    :param      id: ``str``
-
-    :param      name: The name of the load balancer.
-    :type       name: ``str``
-
-    :param      href: The load balancer href.
-    :type       href: ``str``
-
-    :param      state: The current state of the load balancer.
-    :type       state: ``int``
-
-    :param      extra: Extra properties for the load balancer.
-    :type       extra: ``dict``
-
-    Note: This class is ProfitBricks specific
-
-    """
-
-    def __init__(self, id, name, href, state, driver, extra=None):
-        self.id = id
-        self.name = name
-        self.href = href
-        self.state = state
-        self.driver = driver
-        self.extra = extra or {}
-
-    def __repr__(self):
-        return ("ProfitBricksLoadbalancer: id=%s, name=%s, href=%s>") % (
-            self.id,
-            self.name,
-            self.href,
-        )
-
-
-class ProfitBricksAvailabilityZone:
-    """
-    Extension class which stores information about a ProfitBricks
-    availability zone.
-
-    :param      name: The availability zone name.
-    :type       name: ``str``
-
-    Note: This class is ProfitBricks specific.
-    """
-
-    def __init__(self, name):
-        self.name = name
-
-    def __repr__(self):
-        return ("<ProfitBricksAvailabilityZone: name=%s>") % (self.name)
-
-
-class ProfitBricksIPBlock:
-    """
-    Extension class which stores information about a ProfitBricks
-    IP block.
-
-    :param      id: The ID of the IP block.
-    :param      id: ``str``
-
-    :param      name: The name of the IP block.
-    :type       name: ``str``
-
-    :param      href: The IP block href.
-    :type       href: ``str``
-
-    :param      location: The location of the IP block.
-    :type       location: ``str``
-
-    :param      size: Number of IP addresses in the block.
-    :type       size: ``int``
-
-    :param      ips: A collection of IPs associated with the block.
-    :type       ips: ``list``
-
-    :param      state: The current state of the IP block.
-    :type       state: ``int``
-
-    :param      extra: Extra properties for the IP block.
-    :type       extra: ``dict``
-
-    Note: This class is ProfitBricks specific
-    """
-
-    def __init__(self, id, name, href, location, size, ips, state, driver, extra=None):
-
-        self.id = id
-        self.name = name
-        self.href = href
-        self.location = location
-        self.size = size
-        self.ips = ips
-        self.state = state
-        self.driver = driver
-        self.extra = extra or {}
-
-    def __repr__(self):
-        return ("<ProfitBricksIPBlock: id=%s," "name=%s, href=%s,location=%s, size=%s>") % (
-            self.id,
-            self.name,
-            self.href,
-            self.location,
-            self.size,
-        )
-
-
-class ProfitBricksNodeDriver(NodeDriver):
-    """
-    Base ProfitBricks node driver.
-    """
-
-    connectionCls = ProfitBricksConnection
-    name = "ProfitBricks"
-    website = "http://www.profitbricks.com"
-    type = Provider.PROFIT_BRICKS
-
-    PROVISIONING_STATE = {
-        "AVAILABLE": NodeState.RUNNING,
-        "BUSY": NodeState.PENDING,
-        "INACTIVE": NodeState.PENDING,
-    }
-
-    NODE_STATE_MAP = {
-        "NOSTATE": NodeState.UNKNOWN,
-        "RUNNING": NodeState.RUNNING,
-        "BLOCKED": NodeState.STOPPED,
-        "PAUSE": NodeState.PAUSED,
-        "SHUTDOWN": NodeState.STOPPING,
-        "SHUTOFF": NodeState.STOPPED,
-        "CRASHED": NodeState.ERROR,
-        "AVAILABLE": NodeState.RUNNING,
-        "BUSY": NodeState.PENDING,
-    }
-
-    AVAILABILITY_ZONE = {
-        "1": {"name": "AUTO"},
-        "2": {"name": "ZONE_1"},
-        "3": {"name": "ZONE_2"},
-    }
-
-    """
-    ProfitBricks is unique in that they allow the user to define all aspects
-    of the instance size, i.e. disk size, core size, and memory size.
-
-    These are instance types that match up with what other providers support.
-
-    You can configure disk size, core size, and memory size using the ``ex_``
-    parameters on the create_node method.
-    """
-
-    PROFIT_BRICKS_GENERIC_SIZES = {
-        "1": {"id": "1", "name": "Micro", "ram": 1024, "disk": 50, "cores": 1},
-        "2": {"id": "2", "name": "Small Instance", "ram": 2048, "disk": 50, "cores": 1},
-        "3": {
-            "id": "3",
-            "name": "Medium Instance",
-            "ram": 4096,
-            "disk": 50,
-            "cores": 2,
-        },
-        "4": {"id": "4", "name": "Large Instance", "ram": 7168, "disk": 50, "cores": 4},
-        "5": {
-            "id": "5",
-            "name": "ExtraLarge Instance",
-            "ram": 14336,
-            "disk": 50,
-            "cores": 8,
-        },
-        "6": {
-            "id": "6",
-            "name": "Memory Intensive Instance Medium",
-            "ram": 28672,
-            "disk": 50,
-            "cores": 4,
-        },
-        "7": {
-            "id": "7",
-            "name": "Memory Intensive Instance Large",
-            "ram": 57344,
-            "disk": 50,
-            "cores": 8,
-        },
-    }
-
-    """
-    Core Functions
-    """
-
-    def list_sizes(self):
-        """
-        Lists all sizes
-
-        :return: A list of all configurable node sizes.
-        :rtype: ``list`` of :class:`NodeSize`
-        """
-        sizes = []
-
-        for key, values in self.PROFIT_BRICKS_GENERIC_SIZES.items():
-            node_size = self._to_node_size(values)
-            sizes.append(node_size)
-
-        return sizes
-
-    def list_images(self, image_type=None, is_public=True):
-        """
-        List all images with an optional filter.
-
-        :param  image_type: The image type (HDD, CDROM)
-        :type   image_type: ``str``
-
-        :param  is_public: Image is public
-        :type   is_public: ``bool``
-
-        :return: ``list`` of :class:`NodeImage`
-        :rtype: ``list``
-        """
-        response = self.connection.request(action="images", params={"depth": 1}, method="GET")
-
-        return self._to_images(response.object, image_type, is_public)
-
-    def list_locations(self):
-        """
-        List all locations.
-
-        :return: ``list`` of :class:`NodeLocation`
-        :rtype: ``list``
-        """
-        return self._to_locations(
-            self.connection.request(action="locations", params={"depth": 1}, method="GET").object
-        )
-
-    """
-    Node functions
-    """
-
-    def list_nodes(self):
-        """
-        List all nodes.
-
-        :return: ``list`` of :class:`Node`
-        :rtype: ``list``
-        """
-        datacenters = self.ex_list_datacenters()
-        nodes = list()
-
-        for datacenter in datacenters:
-            servers_href = datacenter.extra["entities"]["servers"]["href"]
-            response = self.connection.request(
-                action=servers_href,
-                params={"depth": 3},
-                method="GET",
-                with_full_url=True,
-            )
-
-            mapped_nodes = self._to_nodes(response.object)
-            nodes += mapped_nodes
-
-        return nodes
-
-    def reboot_node(self, node):
-        """
-        Reboots the node.
-
-        :rtype: ``bool``
-        """
-        action = node.extra["href"] + "/reboot"
-
-        self.connection.request(action=action, method="POST", with_full_url=True)
-
-        return True
-
-    def create_node(
-        self,
-        name,
-        image=None,
-        size=None,
-        location=None,
-        ex_cpu_family=None,
-        volume=None,
-        ex_datacenter=None,
-        ex_network_interface=True,
-        ex_internet_access=True,
-        ex_exposed_public_ports=[],
-        ex_exposed_private_ports=[22],
-        ex_availability_zone=None,
-        ex_ram=None,
-        ex_cores=None,
-        ex_disk=None,
-        ex_password=None,
-        ex_ssh_keys=None,
-        ex_bus_type=None,
-        ex_disk_type=None,
-        **kwargs,
-    ):
-        """
-        Creates a node.
-
-        image is optional as long as you pass ram, cores, and disk
-        to the method. ProfitBricks allows you to adjust compute
-        resources at a much more granular level.
-
-        :param  name: The name for the new node.
-        :param  type: ``str``
-
-        :param  image: The image to create the node with.
-        :type   image: :class:`NodeImage`
-
-        :param  size: Standard configured size offered by
-            ProfitBricks - containing configuration for the
-            number of cpu cores, amount of ram and disk size.
-        :param  size: :class:`NodeSize`
-
-        :param  location: The location of the new data center
-            if one is not supplied.
-        :type   location: :class:`NodeLocation`
-
-        :param  ex_cpu_family: The CPU family to use (AMD_OPTERON, INTEL_XEON)
-        :type   ex_cpu_family: ``str``
-
-        :param  volume: If the volume already exists then pass this in.
-        :type   volume: :class:`StorageVolume`
-
-        :param  ex_datacenter: If you've already created the DC then pass
-                           it in.
-        :type   ex_datacenter: :class:`Datacenter`
-
-        :param  ex_network_interface: Create with a network interface.
-        :type   ex_network_interface: : ``bool``
-
-        :param  ex_internet_access: Configure public Internet access.
-        :type   ex_internet_access: : ``bool``
-
-        :param  ex_exposed_public_ports: Ports to be opened
-                                        for the public nic.
-        :param  ex_exposed_public_ports: ``list`` of ``int``
-
-        :param  ex_exposed_private_ports: Ports to be opened
-                                        for the private nic.
-        :param  ex_exposed_private_ports: ``list`` of ``int``
-
-        :param  ex_availability_zone: The availability zone.
-        :type   ex_availability_zone: class: `ProfitBricksAvailabilityZone`
-
-        :param  ex_ram: The amount of ram required.
-        :type   ex_ram: : ``int``
-
-        :param  ex_cores: The number of cores required.
-        :type   ex_cores: ``int``
-
-        :param  ex_disk: The amount of disk required.
-        :type   ex_disk: ``int``
-
-        :param  ex_password: The password for the volume.
-        :type   ex_password: :class:`NodeAuthPassword` or ``str``
-
-        :param  ex_ssh_keys: Optional SSH keys for the volume.
-        :type   ex_ssh_keys: ``list`` of :class:`NodeAuthSSHKey` or
-                             ``list`` of ``str``
-
-        :param  ex_bus_type: Volume bus type (VIRTIO, IDE).
-        :type   ex_bus_type: ``str``
-
-        :param  ex_disk_type: Volume disk type (SSD, HDD).
-        :type   ex_disk_type: ``str``
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-
-        """
-        If we have a volume we can determine the DC
-        that it belongs to and set accordingly.
-        """
-        if volume is not None:
-            dc_url_pruned = volume.extra["href"].split("/")[:-2]
-            dc_url = "/".join(item for item in dc_url_pruned)
-            ex_datacenter = self.ex_describe_datacenter(ex_href=dc_url)
-
-        if not ex_datacenter:
-            """
-            Determine location for new DC by
-            getting the location of the image.
-            """
-            if not location:
-                if image is not None:
-                    location = self.ex_describe_location(ex_location_id=image.extra["location"])
-
-            """
-            Creating a Datacenter for the node
-            since one was not provided.
-            """
-            new_datacenter = self._create_new_datacenter_for_node(name=name, location=location)
-
-            """
-            Then wait for the operation to finish,
-            assigning the full data center on completion.
-            """
-            ex_datacenter = self._wait_for_datacenter_state(datacenter=new_datacenter)
-
-        if not size:
-            if not ex_ram:
-                raise ValueError(
-                    "You need to either pass a "
-                    "NodeSize or specify ex_ram as "
-                    "an extra parameter."
-                )
-            if not ex_cores:
-                raise ValueError(
-                    "You need to either pass a "
-                    "NodeSize or specify ex_cores as "
-                    "an extra parameter."
-                )
-
-        """
-        If passing in an image we need
-        to enforce a password or ssh keys.
-        """
-        if not volume and image is not None:
-            if ex_password is None and ex_ssh_keys is None:
-                raise ValueError(
-                    "When creating a server without a "
-                    "volume, you need to specify either an "
-                    "array of SSH keys or a volume password."
-                )
-
-            if not size:
-                if not ex_disk:
-                    raise ValueError(
-                        "You need to either pass a "
-                        "StorageVolume, a NodeSize, or specify "
-                        "ex_disk as an extra parameter."
-                    )
-
-        """
-        You can override the suggested sizes by passing in unique
-        values for ram, cores, and disk allowing you to size it
-        for your specific use.
-        """
-
-        if image is not None:
-            if not ex_disk:
-                ex_disk = size.disk
-
-        if not ex_disk_type:
-            ex_disk_type = "HDD"
-
-        if not ex_bus_type:
-            ex_bus_type = "VIRTIO"
-
-        if not ex_ram:
-            ex_ram = size.ram
-
-        if not ex_cores:
-            ex_cores = size.extra["cores"]
-
-        action = ex_datacenter.href + "/servers"
-        body = {
-            "properties": {"name": name, "ram": ex_ram, "cores": ex_cores},
-            "entities": {"volumes": {"items": []}},
-        }
-
-        """
-        If we are using a pre-existing storage volume.
-        """
-        if volume is not None:
-            body["entities"]["volumes"]["items"].append({"id": volume.id})
-        elif image is not None:
-            new_volume = {
-                "properties": {
-                    "size": ex_disk,
-                    "name": name + " - volume",
-                    "image": image.id,
-                    "type": ex_disk_type,
-                    "bus": ex_bus_type,
-                }
-            }
-
-            if ex_password is not None:
-                if isinstance(ex_password, NodeAuthPassword):
-                    new_volume["properties"]["imagePassword"] = ex_password.password
-                else:
-                    new_volume["properties"]["imagePassword"] = ex_password
-
-            if ex_ssh_keys is not None:
-                if isinstance(ex_ssh_keys[0], NodeAuthSSHKey):
-                    new_volume["properties"]["sshKeys"] = [
-                        ssh_key.pubkey for ssh_key in ex_ssh_keys
-                    ]
-                else:
-                    new_volume["properties"]["sshKeys"] = ex_ssh_keys
-
-            body["entities"]["volumes"]["items"].append(new_volume)
-
-        if ex_network_interface is True:
-            body["entities"]["nics"] = {}
-            body["entities"]["nics"]["items"] = list()
-
-            """
-            Get the LANs for the data center this node
-            will be provisioned at.
-            """
-            dc_lans = self.ex_list_lans(datacenter=ex_datacenter)
-
-            private_lans = [lan for lan in dc_lans if lan.is_public is False]
-            private_lan = None
-
-            if private_lans:
-                private_lan = private_lans[0]
-
-            if private_lan is not None:
-                private_nic = {
-                    "properties": {
-                        "name": name + " - private nic",
-                        "lan": private_lan.id,
-                    },
-                    "entities": {"firewallrules": {"items": []}},
-                }
-
-                for port in ex_exposed_private_ports:
-                    private_nic["entities"]["firewallrules"]["items"].append(
-                        {
-                            "properties": {
-                                "name": (
-                                    "{name} - firewall rule:{port}".format(name=name, port=port)
-                                ),
-                                "protocol": "TCP",
-                                "portRangeStart": port,
-                                "portRangeEnd": port,
-                            }
-                        }
-                    )
-
-                body["entities"]["nics"]["items"].append(private_nic)
-
-            if ex_internet_access is not None and ex_internet_access is True:
-                public_lans = [lan for lan in dc_lans if lan.is_public]
-                public_lan = None
-
-                if public_lans:
-                    public_lan = public_lans[0]
-
-                if public_lan is not None:
-                    pub_nic = {
-                        "properties": {
-                            "name": name + " - public nic",
-                            "lan": public_lan.id,
-                        },
-                        "entities": {"firewallrules": {"items": []}},
-                    }
-
-                    for port in ex_exposed_public_ports:
-                        pub_nic["entities"]["firewallrules"]["items"].append(
-                            {
-                                "properties": {
-                                    "name": (
-                                        "{name} - firewall rule:{port}".format(name=name, port=port)
-                                    ),
-                                    "protocol": "TCP",
-                                    "portRangeStart": port,
-                                    "portRangeEnd": port,
-                                }
-                            }
-                        )
-
-                    body["entities"]["nics"]["items"].append(pub_nic)
-
-        if ex_cpu_family is not None:
-            body["properties"]["cpuFamily"] = ex_cpu_family
-
-        if ex_availability_zone is not None:
-            body["properties"]["availabilityZone"] = ex_availability_zone.name
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return self._to_node(response.object, response.headers)
-
-    def destroy_node(self, node, ex_remove_attached_disks=False):
-        """
-        Destroys a node.
-
-        :param node: The node you wish to destroy.
-        :type volume: :class:`Node`
-
-        :param ex_remove_attached_disks: True to destroy all attached volumes.
-        :type ex_remove_attached_disks: : ``bool``
-
-        :rtype:     : ``bool``
-        """
-
-        if ex_remove_attached_disks is True:
-            for volume in self.ex_list_attached_volumes(node):
-                self.destroy_volume(volume)
-
-        action = node.extra["href"]
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    def start_node(self, node):
-        """
-        Starts a node.
-
-        :param  node: The node you wish to start.
-        :type   node: :class:`Node`
-
-        :rtype: ``bool``
-        """
-        action = node.extra["href"] + "/start"
-
-        self.connection.request(action=action, method="POST", with_full_url=True)
-        return True
-
-    def stop_node(self, node):
-        """
-        Stops a node.
-
-        This also deallocates the public IP space.
-
-        :param  node: The node you wish to halt.
-        :type   node: :class:`Node`
-
-        :rtype:     : ``bool``
-        """
-        action = node.extra["href"] + "/stop"
-
-        self.connection.request(action=action, method="POST", with_full_url=True)
-
-        return True
-
-    """
-    Volume Functions
-    """
-
-    def list_volumes(self):
-        """
-        List all volumes attached to a data center.
-
-        :return: ``list`` of :class:`StorageVolume`
-        :rtype: ``list``
-        """
-        datacenters = self.ex_list_datacenters()
-        volumes = list()
-
-        for datacenter in datacenters:
-            volumes_href = datacenter.extra["entities"]["volumes"]["href"]
-
-            response = self.connection.request(
-                action=volumes_href,
-                params={"depth": 3},
-                method="GET",
-                with_full_url=True,
-            )
-
-            mapped_volumes = self._to_volumes(response.object)
-            volumes += mapped_volumes
-
-        return volumes
-
-    def attach_volume(self, node, volume):
-        """
-        Attaches a volume.
-
-        :param  node: The node to which you're attaching the volume.
-        :type   node: :class:`Node`
-
-        :param  volume: The volume you're attaching.
-        :type   volume: :class:`StorageVolume`
-
-        :return:    Instance of class ``StorageVolume``
-        :rtype:     :class:`StorageVolume`
-        """
-        action = node.extra["href"] + "/volumes"
-        body = {"id": volume.id}
-
-        data = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return self._to_volume(data.object, data.headers)
-
-    def create_volume(
-        self,
-        size,
-        ex_datacenter,
-        name=None,
-        image=None,
-        ex_image_alias=None,
-        ex_type=None,
-        ex_bus_type=None,
-        ex_ssh_keys=None,
-        ex_password=None,
-        ex_availability_zone=None,
-    ):
-        """
-        Creates a volume.
-
-        :param  size: The size of the volume in GB.
-        :type   size: ``int``
-
-        :param  ex_datacenter: The datacenter you're placing
-                              the storage in. (req)
-        :type   ex_datacenter: :class:`Datacenter`
-
-        :param  name: The name to be given to the volume.
-        :param  name: ``str``
-
-        :param  image: The OS image for the volume.
-        :type   image: :class:`NodeImage`
-
-        :param  ex_image_alias: An alias to a ProfitBricks public image.
-                                Use instead of 'image'.
-        :type   ex_image_alias: ``str``
-
-        :param  ex_type: The type to be given to the volume (SSD or HDD).
-        :param  ex_type: ``str``
-
-        :param  ex_bus_type: Bus type. Either IDE or VIRTIO (default).
-        :type   ex_bus_type: ``str``
-
-        :param  ex_ssh_keys: Optional SSH keys.
-        :type   ex_ssh_keys: ``list`` of :class:`NodeAuthSSHKey` or
-                             ``list`` of ``str``
-
-        :param  ex_password: Optional password for root.
-        :type   ex_password: :class:`NodeAuthPassword` or ``str``
-
-        :param  ex_availability_zone: Volume Availability Zone.
-        :type   ex_availability_zone: ``str``
-
-        :return:    Instance of class ``StorageVolume``
-        :rtype:     :class:`StorageVolume`
-        """
-
-        if not ex_datacenter:
-            raise ValueError("You need to specify a data center" " to attach this volume to.")
-
-        if image is not None:
-            if image.extra["image_type"] != "HDD":
-                raise ValueError(
-                    "Invalid type of {image_type} specified for "
-                    "{image_name}, which needs to be of type HDD".format(
-                        image_type=image.extra["image_type"], image_name=image.name
-                    )
-                )
-
-            if ex_datacenter.extra["location"] != image.extra["location"]:
-                raise ValueError(
-                    "The image {image_name} "
-                    "(location: {image_location}) you specified "
-                    "is not available at the data center "
-                    "{datacenter_name} "
-                    "(location: {datacenter_location}).".format(
-                        image_name=image.extra["name"],
-                        datacenter_name=ex_datacenter.extra["name"],
-                        image_location=image.extra["location"],
-                        datacenter_location=ex_datacenter.extra["location"],
-                    )
-                )
-        else:
-            if not ex_image_alias:
-                raise ValueError(
-                    "You need to specify an image or image alias" " to create this volume from."
-                )
-
-        action = ex_datacenter.href + "/volumes"
-        body = {"properties": {"size": size}}
-
-        if image is not None:
-            body["properties"]["image"] = image.id
-        else:
-            body["properties"]["imageAlias"] = ex_image_alias
-        if name is not None:
-            body["properties"]["name"] = name
-        if ex_type is not None:
-            body["properties"]["type"] = ex_type
-        if ex_bus_type is not None:
-            body["properties"]["bus"] = ex_bus_type
-        if ex_ssh_keys is not None:
-            if isinstance(ex_ssh_keys[0], NodeAuthSSHKey):
-                body["properties"]["sshKeys"] = [ssh_key.pubkey for ssh_key in ex_ssh_keys]
-            else:
-                body["properties"]["sshKeys"] = ex_ssh_keys
-        if ex_password is not None:
-            if isinstance(ex_password, NodeAuthPassword):
-                body["properties"]["imagePassword"] = ex_password.password
-            else:
-                body["properties"]["imagePassword"] = ex_password
-        if ex_availability_zone is not None:
-            body["properties"]["availabilityZone"] = ex_availability_zone
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return self._to_volume(response.object, response.headers)
-
-    def detach_volume(self, node, volume):
-        """
-        Detaches a volume.
-
-        :param  node: The node to which you're detaching the volume.
-        :type   node: :class:`Node`
-
-        :param volume: The volume you're detaching.
-        :type volume: :class:`StorageVolume`
-
-        :rtype:     :``bool``
-        """
-
-        action = node.extra["href"] + "/volumes/{volume_id}".format(volume_id=volume.id)
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    def destroy_volume(self, volume):
-        """
-        Destroys a volume.
-
-        :param volume: The volume you're destroying.
-        :type volume: :class:`StorageVolume`
-
-        :rtype:     : ``bool``
-        """
-        action = volume.extra["href"]
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    """
-    Volume snapshot functions
-    """
-
-    def list_snapshots(self):
-        """
-        Fetches as a list of all snapshots
-
-        :return:    ``list`` of class ``VolumeSnapshot``
-        :rtype:     `list`
-        """
-
-        response = self.connection.request(action="snapshots", params={"depth": 3}, method="GET")
-
-        return self._to_snapshots(response.object)
-
-    def create_volume_snapshot(self, volume):
-        """
-        Creates a snapshot for a volume
-
-        :param  volume: The volume you're creating a snapshot for.
-        :type   volume: :class:`StorageVolume`
-
-        :return:    Instance of class ``VolumeSnapshot``
-        :rtype:     :class:`VolumeSnapshot`
-        """
-
-        action = volume.extra["href"] + "/create-snapshot"
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/x-www-form-urlencoded"},
-            method="POST",
-            with_full_url=True,
-        )
-
-        return self._to_snapshot(response.object, response.headers)
-
-    def destroy_volume_snapshot(self, snapshot):
-        """
-        Delete a snapshot
-
-        :param  snapshot: The snapshot you wish to delete.
-        :type:  snapshot: :class:`VolumeSnapshot`
-
-        :rtype  ``bool``
-        """
-
-        action = snapshot.extra["href"]
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    """
-    Extension Functions
-    """
-
-    """
-    Server Extension Functions
-    """
-
-    def ex_start_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.start_node(node=node)
-
-    def ex_stop_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.stop_node(node=node)
-
-    def ex_list_availability_zones(self):
-        """
-        Returns a list of availability zones.
-
-        :return: ``list`` of :class:`ProfitBricksAvailabilityZone`
-        :rtype: ``list``
-        """
-
-        availability_zones = []
-
-        for key, values in self.AVAILABILITY_ZONE.items():
-            name = copy.deepcopy(values)["name"]
-
-            availability_zone = ProfitBricksAvailabilityZone(name=name)
-            availability_zones.append(availability_zone)
-
-        return availability_zones
-
-    def ex_list_attached_volumes(self, node):
-        """
-        Returns a list of attached volumes for a server
-
-        :param  node: The node with the attached volumes.
-        :type   node: :class:`Node`
-
-        :return:    ``list`` of :class:`StorageVolume`
-        :rtype:     ``list``
-        """
-        action = node.extra["entities"]["volumes"]["href"]
-        response = self.connection.request(
-            action=action, params={"depth": 3}, method="GET", with_full_url=True
-        )
-
-        return self._to_volumes(response.object)
-
-    def ex_describe_node(self, ex_href=None, ex_datacenter_id=None, ex_node_id=None):
-        """
-        Fetches a node directly by href or
-        by a combination of the datacenter
-        ID and the server ID.
-
-        :param  ex_href: The href (url) of the node you wish to describe.
-        :type   ex_href: ``str``
-
-        :param  ex_datacenter_id: The ID for the data center.
-        :type   ex_datacenter_id: ``str``
-
-        :param  ex_node_id: The ID for the node (server).
-        :type   ex_node_id: ``str``
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class:`Node`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_datacenter_id is None or ex_node_id is None:
-                raise ValueError("IDs for the data center and node are required.")
-            else:
-                use_full_url = False
-                ex_href = ("datacenters/{datacenter_id}/" "servers/{server_id}").format(
-                    datacenter_id=ex_datacenter_id, server_id=ex_node_id
-                )
-
-        response = self.connection.request(
-            action=ex_href,
-            method="GET",
-            params={"depth": 3},
-            with_full_url=use_full_url,
-        )
-
-        return self._to_node(response.object)
-
-    def ex_update_node(
-        self,
-        node,
-        name=None,
-        cores=None,
-        ram=None,
-        availability_zone=None,
-        ex_licence_type=None,
-        ex_boot_volume=None,
-        ex_boot_cdrom=None,
-        ex_cpu_family=None,
-    ):
-        """
-        Updates a node.
-
-        :param  node: The node you wish to update.
-        :type   node: :class:`Node`
-
-        :param  name: The new name for the node.
-        :type   name: ``str``
-
-        :param  cores: The number of CPUs the node should have.
-        :type   cores: : ``int``
-
-        :param  ram: The amount of ram the node should have.
-        :type   ram: : ``int``
-
-        :param  availability_zone: Update the availability zone.
-        :type   availability_zone: :class:`ProfitBricksAvailabilityZone`
-
-        :param  ex_licence_type: Licence type (WINDOWS, WINDOWS2016, LINUX,
-                                OTHER, UNKNOWN).
-        :type   ex_licence_type: ``str``
-
-        :param  ex_boot_volume: Setting the new boot (HDD) volume.
-        :type   ex_boot_volume: :class:`StorageVolume`
-
-        :param  ex_boot_cdrom: Setting the new boot (CDROM) volume.
-        :type   ex_boot_cdrom: :class:`StorageVolume`
-
-        :param  ex_cpu_family: CPU family (INTEL_XEON, AMD_OPTERON).
-        :type   ex_cpu_family: ``str``
-
-        :return:    Instance of class ``Node``
-        :rtype:     :class: `Node`
-        """
-        action = node.extra["href"]
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-
-        if cores is not None:
-            body["cores"] = cores
-
-        if ram is not None:
-            body["ram"] = ram
-
-        if availability_zone is not None:
-            body["availabilityZone"] = availability_zone.name
-
-        if ex_licence_type is not None:
-            body["licencetype"] = ex_licence_type
-
-        if ex_boot_volume is not None:
-            body["bootVolume"] = ex_boot_volume.id
-
-        if ex_boot_cdrom is not None:
-            body["bootCdrom"] = ex_boot_cdrom.id
-
-        if ex_cpu_family is not None:
-            body["allowReboot"] = True
-            body["cpuFamily"] = ex_cpu_family
-
-        response = self.connection.request(
-            action=action,
-            data=body,
-            headers={"Content-Type": "application/json"},
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_node(response.object, response.headers)
-
-    """
-    Data center Extension Functions
-    """
-
-    def ex_create_datacenter(self, name, location, description=None):
-        """
-        Creates a datacenter.
-
-        ProfitBricks has a concept of datacenters.
-        These represent buckets into which you
-        can place various compute resources.
-
-        :param  name: The datacenter name.
-        :type   name: : ``str``
-
-        :param  location: instance of class ``NodeLocation``.
-        :type   location: : ``NodeLocation``
-
-        :param  description: The datacenter description.
-        :type   description: : ``str``
-
-        :return:    Instance of class ``Datacenter``
-        :rtype:     :class:`Datacenter`
-        """
-        body = {"properties": {"name": name, "location": location.id}}
-
-        if description is not None:
-            body["properties"]["description"] = description
-
-        body["entities"] = defaultdict(dict)
-        body["entities"]["lans"]["items"] = [
-            {"properties": {"name": name + " - public lan", "public": True}},
-            {"properties": {"name": name + " - private lan", "public": False}},
-        ]
-
-        response = self.connection.request(
-            action="datacenters",
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-        )
-
-        return self._to_datacenter(response.object, response.headers)
-
-    def ex_destroy_datacenter(self, datacenter):
-        """
-        Destroys a datacenter.
-
-        :param datacenter: The DC you're destroying.
-        :type datacenter: :class:`Datacenter`
-
-        :rtype:     : ``bool``
-        """
-        action = datacenter.href
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    def ex_describe_datacenter(self, ex_href=None, ex_datacenter_id=None):
-        """
-        Fetches the details for a data center.
-
-        :param  ex_href: The href for the data center
-                        you are describing.
-        :type   ex_href: ``str``
-
-        :param  ex_datacenter_id: The ID for the data center
-                                you are describing.
-        :type   ex_datacenter_id: ``str``
-
-        :return:    Instance of class ``Datacenter``
-        :rtype:     :class:`Datacenter`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_datacenter_id is None:
-                raise ValueError("The data center ID is required.")
-            else:
-                use_full_url = False
-                ex_href = ("datacenters/{datacenter_id}").format(datacenter_id=ex_datacenter_id)
-
-        response = self.connection.request(
-            action=ex_href,
-            method="GET",
-            params={"depth": 3},
-            with_full_url=use_full_url,
-        )
-
-        return self._to_datacenter(response.object)
-
-    def ex_list_datacenters(self):
-        """
-        Lists all datacenters.
-
-        :return: ``list`` of :class:`DataCenter`
-        :rtype: ``list``
-        """
-        response = self.connection.request(action="datacenters", params={"depth": 2}, method="GET")
-
-        return self._to_datacenters(response.object)
-
-    def ex_rename_datacenter(self, datacenter, name):
-        """
-        Update a datacenter.
-
-        :param  datacenter: The DC you are renaming.
-        :type   datacenter: :class:`Datacenter`
-
-        :param  name: The DC name.
-        :type   name: : ``str``
-
-        :return:    Instance of class ``Datacenter``
-        :rtype:     :class:`Datacenter`
-        """
-        action = datacenter.href
-        body = {"name": name}
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_datacenter(response.object, response.headers)
-
-    """
-    Image Extension Functions
-    """
-
-    def ex_describe_image(self, ex_href=None, ex_image_id=None):
-        """
-        Describe a ProfitBricks image
-
-        :param      ex_href: The href for the image you are describing
-        :type       ex_href: ``str``
-
-        :param      ex_image_id: The ID for the image you are describing
-        :type       ex_image_id: ``str``
-
-        :return:    Instance of class ``Image``
-        :rtype:     :class:`Image`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_image_id is None:
-                raise ValueError("The image ID is required.")
-            else:
-                use_full_url = False
-                ex_href = ("images/{image_id}").format(image_id=ex_image_id)
-
-        response = self.connection.request(action=ex_href, method="GET", with_full_url=use_full_url)
-
-        return self._to_image(response.object)
-
-    def ex_delete_image(self, image):
-        """
-        Delete a private image
-
-        :param  image: The private image you are deleting.
-        :type   image: :class:`NodeImage`
-
-        :rtype:     : ``bool``
-        """
-
-        self.connection.request(action=image.extra["href"], method="DELETE", with_full_url=True)
-
-        return True
-
-    def ex_update_image(
-        self,
-        image,
-        name=None,
-        description=None,
-        licence_type=None,
-        cpu_hot_plug=None,
-        cpu_hot_unplug=None,
-        ram_hot_plug=None,
-        ram_hot_unplug=None,
-        nic_hot_plug=None,
-        nic_hot_unplug=None,
-        disc_virtio_hot_plug=None,
-        disc_virtio_hot_unplug=None,
-        disc_scsi_hot_plug=None,
-        disc_scsi_hot_unplug=None,
-    ):
-        """
-        Update a private image
-
-        :param  image: The private image you are deleting.
-        :type   image: :class:`NodeImage`
-
-        :return:    Instance of class ``Image``
-        :rtype:     :class:`Image`
-        """
-        action = image.extra["href"]
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-
-        if description is not None:
-            body["description"] = description
-
-        if licence_type is not None:
-            body["licenceType"] = licence_type
-
-        if cpu_hot_plug is not None:
-            body["cpuHotPlug"] = cpu_hot_plug
-
-        if cpu_hot_unplug is not None:
-            body["cpuHotUnplug"] = cpu_hot_unplug
-
-        if ram_hot_plug is not None:
-            body["ramHotPlug"] = ram_hot_plug
-
-        if ram_hot_unplug is not None:
-            body["ramHotUnplug"] = ram_hot_unplug
-
-        if nic_hot_plug is not None:
-            body["nicHotPlug"] = nic_hot_plug
-
-        if nic_hot_unplug is not None:
-            body["nicHotUnplug"] = nic_hot_unplug
-
-        if disc_virtio_hot_plug is not None:
-            body["discVirtioHotPlug"] = disc_virtio_hot_plug
-
-        if disc_virtio_hot_unplug is not None:
-            body["discVirtioHotUnplug"] = disc_virtio_hot_unplug
-
-        if disc_scsi_hot_plug is not None:
-            body["discScsiHotPlug"] = disc_scsi_hot_plug
-
-        if disc_scsi_hot_unplug is not None:
-            body["discScsiHotUnplug"] = disc_scsi_hot_unplug
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_image(response.object, response.headers)
-
-    """
-    Location Extension Functions
-    """
-
-    def ex_describe_location(self, ex_href=None, ex_location_id=None):
-        """
-        Fetch details for a ProfitBricks location.
-
-        :param      ex_href: The href for the location
-                            you are describing.
-        :type       ex_href: ``str``
-
-        :param      ex_location_id: The id for the location you are
-                        describing ('de/fra', 'de/fkb', 'us/las', 'us/ewr')
-        :type       ex_location_id: ``str``
-
-        :return:    Instance of class ``NodeLocation``
-        :rtype:     :class:`NodeLocation`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_location_id is None:
-                raise ValueError("The location ID is required.")
-            else:
-                use_full_url = False
-                ex_href = ("locations/{location_id}").format(location_id=ex_location_id)
-
-        response = self.connection.request(action=ex_href, method="GET", with_full_url=use_full_url)
-
-        return self._to_location(response.object)
-
-    """
-    Network Interface Extension Functions
-    """
-
-    def ex_list_network_interfaces(self):
-        """
-        Fetch a list of all network interfaces from all data centers.
-
-        :return:    ``list`` of class ``ProfitBricksNetworkInterface``
-        :rtype:     `list`
-        """
-        nodes = self.list_nodes()
-        nics = list()
-
-        for node in nodes:
-            action = node.extra["entities"]["nics"]["href"]
-            nics += self._to_interfaces(
-                self.connection.request(
-                    action=action, params={"depth": 1}, method="GET", with_full_url=True
-                ).object
-            )
-
-        return nics
-
-    def ex_describe_network_interface(
-        self, ex_href=None, ex_datacenter_id=None, ex_server_id=None, ex_nic_id=None
-    ):
-        """
-        Fetch information on a network interface.
-
-        :param  ex_href: The href of the NIC you wish to describe.
-        :type   ex_href: ``str``
-
-        :param  ex_datacenter_id: The ID of parent data center
-                            of the NIC you wish to describe.
-        :type   ex_datacenter_id: ``str``
-
-        :param  ex_server_id: The server the NIC is connected to.
-        :type   ex_server_id: ``str``
-
-        :param  ex_nic_id: The ID of the NIC
-        :type   ex_nic_id: ``str``
-
-        :return:    Instance of class ``ProfitBricksNetworkInterface``
-        :rtype:     :class:`ProfitBricksNetworkInterface`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_datacenter_id is None or ex_server_id is None or ex_nic_id is None:
-                raise ValueError(
-                    (
-                        "IDs are required for the data center",
-                        "server and network interface.",
-                    )
-                )
-            else:
-                use_full_url = False
-                ex_href = (
-                    "datacenters/{datacenter_id}" "/servers/{server_id}" "/nics/{nic_id}"
-                ).format(
-                    datacenter_id=ex_datacenter_id,
-                    server_id=ex_server_id,
-                    nic_id=ex_nic_id,
-                )
-
-        response = self.connection.request(action=ex_href, method="GET", with_full_url=use_full_url)
-
-        return self._to_interface(response.object)
-
-    def ex_create_network_interface(
-        self, node, lan_id=None, ips=None, nic_name=None, dhcp_active=True
-    ):
-        """
-        Creates a network interface.
-
-        :param lan_id: The ID for the LAN.
-        :type lan_id: : ``int``
-
-        :param ips: The IP addresses for the NIC.
-        :type ips: ``list``
-
-        :param nic_name: The name of the NIC, e.g. PUBLIC.
-        :type nic_name: ``str``
-
-        :param dhcp_active: Set to false to disable.
-        :type dhcp_active: ``bool``
-
-        :return:    Instance of class ``ProfitBricksNetworkInterface``
-        :rtype:     :class:`ProfitBricksNetworkInterface`
-        """
-
-        if lan_id is not None:
-            lan_id = str(lan_id)
-
-        else:
-            lan_id = str(1)
-
-        action = node.extra["href"] + "/nics"
-        body = {"properties": {"lan": lan_id, "dhcp": dhcp_active}}
-
-        if ips is not None:
-            body["properties"]["ips"] = ips
-
-        if nic_name is not None:
-            body["properties"]["name"] = nic_name
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return self._to_interface(response.object, response.headers)
-
-    def ex_update_network_interface(
-        self, network_interface, name=None, lan_id=None, ips=None, dhcp_active=None
-    ):
-        """
-        Updates a network interface.
-
-        :param  network_interface: The network interface being updated.
-        :type   network_interface: :class:`ProfitBricksNetworkInterface`
-
-        :param  name: The name of the NIC, e.g. PUBLIC.
-        :type   name: ``str``
-
-        :param  lan_id: The ID for the LAN.
-        :type   lan_id: : ``int``
-
-        :param  ips: The IP addresses for the NIC as a list.
-        :type   ips: ``list``
-
-        :param  dhcp_active: Set to false to disable.
-        :type   dhcp_active: ``bool``
-
-        :return:    Instance of class ``ProfitBricksNetworkInterface``
-        :rtype:     :class:`ProfitBricksNetworkInterface`
-        """
-
-        if lan_id:
-            lan_id = str(lan_id)
-
-        action = network_interface.href
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-
-        if lan_id is not None:
-            body["lan"] = str(lan_id)
-
-        if ips is not None:
-            body["ips"] = ips
-
-        if dhcp_active is not None:
-            body["dhcp"] = dhcp_active
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_interface(response.object, response.headers)
-
-    def ex_destroy_network_interface(self, network_interface):
-        """
-        Destroy a network interface.
-
-        :param network_interface: The NIC you wish to describe.
-        :type network_interface: :class:`ProfitBricksNetworkInterface`
-
-        :rtype:     : ``bool``
-        """
-
-        action = network_interface.href
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    def ex_set_inet_access(self, network_interface, internet_access=True):
-        """
-        Add/remove public internet access to an interface.
-
-        :param network_interface: The NIC you wish to update.
-        :type network_interface: :class:`ProfitBricksNetworkInterface`
-
-        :return:    Instance of class ``ProfitBricksNetworkInterface``
-        :rtype:     :class:`ProfitBricksNetworkInterface`
-        """
-
-        action = network_interface.href
-        body = {"nat": internet_access}
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_interface(response.object, response.headers)
-
-    """
-    Firewall Rule Extension Functions
-    """
-
-    def ex_list_firewall_rules(self, network_interface):
-        """
-        Fetch firewall rules for a network interface.
-
-        :param network_interface: The network interface.
-        :type network_interface: :class:`ProfitBricksNetworkInterface`
-
-        :return:    ``list`` of class ``ProfitBricksFirewallRule``
-        :rtype:     `list`
-        """
-        action = network_interface.href + "/firewallrules"
-        response = self.connection.request(
-            action=action, method="GET", params={"depth": 3}, with_full_url=True
-        )
-
-        return self._to_firewall_rules(response.object)
-
-    def ex_describe_firewall_rule(
-        self,
-        ex_href=None,
-        ex_datacenter_id=None,
-        ex_server_id=None,
-        ex_nic_id=None,
-        ex_firewall_rule_id=None,
-    ):
-        """
-        Fetch data for a firewall rule.
-
-        :param href: The href of the firewall rule you wish to describe.
-        :type href: ``str``
-
-        :param  ex_datacenter_id: The ID of parent data center
-                            of the NIC you wish to describe.
-        :type   ex_datacenter_id: ``str``
-
-        :param  ex_server_id: The server the NIC is connected to.
-        :type   ex_server_id: ``str``
-
-        :param  ex_nic_id: The ID of the NIC.
-        :type   ex_nic_id: ``str``
-
-        :param  ex_firewall_rule_id: The ID of the firewall rule.
-        :type   ex_firewall_rule_id: ``str``
-
-        :return:    Instance class ``ProfitBricksFirewallRule``
-        :rtype:     :class:`ProfitBricksFirewallRule`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if (
-                ex_datacenter_id is None
-                or ex_server_id is None
-                or ex_nic_id is None
-                or ex_firewall_rule_id is None
-            ):
-                raise ValueError(
-                    (
-                        "IDs are required for the data " "center, server, network interface",
-                        "and firewall rule.",
-                    )
-                )
-            else:
-                use_full_url = False
-                ex_href = (
-                    "datacenters/{datacenter_id}"
-                    "/servers/{server_id}"
-                    "/nics/{nic_id}"
-                    "/firewallrules/{firewall_rule_id}"
-                ).format(
-                    datacenter_id=ex_datacenter_id,
-                    server_id=ex_server_id,
-                    nic_id=ex_nic_id,
-                    firewall_rule_id=ex_firewall_rule_id,
-                )
-
-        response = self.connection.request(action=ex_href, method="GET", with_full_url=use_full_url)
-
-        return self._to_firewall_rule(response.object)
-
-    def ex_create_firewall_rule(
-        self,
-        network_interface,
-        protocol,
-        name=None,
-        source_mac=None,
-        source_ip=None,
-        target_ip=None,
-        port_range_start=None,
-        port_range_end=None,
-        icmp_type=None,
-        icmp_code=None,
-    ):
-        """
-        Create a firewall rule for a network interface.
-
-        :param  network_interface: The network interface to
-                        attach the firewall rule to.
-        :type:  network_interface: :class:`ProfitBricksNetworkInterface`
-
-        :param  protocol: The protocol for the rule (TCP, UDP, ICMP, ANY)
-        :type   protocol: ``str``
-
-        :param  name: The name for the firewall rule
-        :type   name: ``str``
-
-        :param  source_mac: Only traffic originating from the respective
-                            MAC address is allowed.
-                            Valid format: aa:bb:cc:dd:ee:ff.
-                            Value null allows all source MAC address.
-        :type   source_mac: ``str``
-
-        :param  source_ip: Only traffic originating from the respective IPv4
-                    address is allowed. Value null allows all source IPs.
-        :type   source_ip: ``str``
-
-        :param  target_ip: In case the target NIC has multiple IP addresses,
-                        only traffic directed to the respective IP address
-                        of the NIC is allowed.
-                        Value null allows all target IPs.
-        :type   target_ip: ``str``
-
-        :param  port_range_start: Defines the start range of the allowed port
-                        (from 1 to 65534) if protocol TCP or UDP is chosen.
-                        Leave portRangeStart and portRangeEnd value null
-                        to allow all ports.
-        type:   port_range_start: ``int``
-
-        :param  port_range_end: Defines the end range of the allowed port
-                        (from 1 to 65534) if protocol TCP or UDP is chosen.
-                        Leave portRangeStart and portRangeEnd value null
-                        to allow all ports.
-        type:   port_range_end: ``int``
-
-        :param  icmp_type: Defines the allowed type (from 0 to 254) if the
-                        protocol ICMP is chosen. Value null allows all types.
-        :type   icmp_type: ``int``
-
-        :param  icmp_code: Defines the allowed code (from 0 to 254) if
-                    protocol ICMP is chosen. Value null allows all codes.
-        :type   icmp_code: ``int``
-
-        :return:    Instance class ``ProfitBricksFirewallRule``
-        :rtype:     :class:`ProfitBricksFirewallRule`
-        """
-
-        action = network_interface.href + "/firewallrules"
-        body = {"properties": {"protocol": protocol}}
-
-        if name is not None:
-            body["properties"]["name"] = name
-
-        if source_mac is not None:
-            body["properties"]["sourceMac"] = source_mac
-
-        if source_ip is not None:
-            body["properties"]["sourceIp"] = source_ip
-
-        if target_ip is not None:
-            body["properties"]["targetIp"] = target_ip
-
-        if port_range_start is not None:
-            body["properties"]["portRangeStart"] = str(port_range_start)
-
-        if port_range_end is not None:
-            body["properties"]["portRangeEnd"] = str(port_range_end)
-
-        if icmp_type is not None:
-            body["properties"]["icmpType"] = str(icmp_type)
-
-        if icmp_code is not None:
-            body["properties"]["icmpType"] = str(icmp_code)
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return self._to_firewall_rule(response.object, response.headers)
-
-    def ex_update_firewall_rule(
-        self,
-        firewall_rule,
-        name=None,
-        source_mac=None,
-        source_ip=None,
-        target_ip=None,
-        port_range_start=None,
-        port_range_end=None,
-        icmp_type=None,
-        icmp_code=None,
-    ):
-        """
-        Update a firewall rule
-
-        :param  firewall_rule: The firewall rule to update
-        :type:  firewall_rule: :class:`ProfitBricksFirewallRule`
-
-        :param  name: The name for the firewall rule
-        :type   name: ``str``
-
-        :param  source_mac: Only traffic originating from the respective
-                            MAC address is allowed.
-                            Valid format: aa:bb:cc:dd:ee:ff.
-                            Value null allows all source MAC address.
-        :type   source_mac: ``str``
-
-        :param  source_ip: Only traffic originating from the respective IPv4
-                    address is allowed. Value null allows all source IPs.
-        :type   source_ip: ``str``
-
-        :param  target_ip: In case the target NIC has multiple IP addresses,
-                        only traffic directed to the respective IP address
-                        of the NIC is allowed.
-                        Value null allows all target IPs.
-        :type   target_ip: ``str``
-
-        :param  port_range_start: Defines the start range of the allowed port
-                        (from 1 to 65534) if protocol TCP or UDP is chosen.
-                        Leave portRangeStart and portRangeEnd value null
-                        to allow all ports.
-        type:   port_range_start: ``int``
-
-        :param  port_range_end: Defines the end range of the allowed port
-                        (from 1 to 65534) if protocol TCP or UDP is chosen.
-                        Leave portRangeStart and portRangeEnd value null
-                        to allow all ports.
-        type:   port_range_end: ``int``
-
-        :param  icmp_type: Defines the allowed type (from 0 to 254) if the
-                        protocol ICMP is chosen. Value null allows all types.
-        :type   icmp_type: ``int``
-
-        :param  icmp_code: Defines the allowed code (from 0 to 254) if
-                    protocol ICMP is chosen. Value null allows all codes.
-        :type   icmp_code: ``int``
-
-        :return:    Instance class ``ProfitBricksFirewallRule``
-        :rtype:     :class:`ProfitBricksFirewallRule`
-        """
-
-        action = firewall_rule.href
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-
-        if source_mac is not None:
-            body["sourceMac"] = source_mac
-
-        if source_ip is not None:
-            body["sourceIp"] = source_ip
-
-        if target_ip is not None:
-            body["targetIp"] = target_ip
-
-        if port_range_start is not None:
-            body["portRangeStart"] = str(port_range_start)
-
-        if port_range_end is not None:
-            body["portRangeEnd"] = str(port_range_end)
-
-        if icmp_type is not None:
-            body["icmpType"] = str(icmp_type)
-
-        if icmp_code is not None:
-            body["icmpType"] = str(icmp_code)
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_firewall_rule(response.object, response.headers)
-
-    def ex_delete_firewall_rule(self, firewall_rule):
-        """
-        Delete a firewall rule
-
-        :param  firewall_rule: The firewall rule to delete.
-        :type:  firewall_rule: :class:`ProfitBricksFirewallRule`
-
-        :rtype  ``bool``
-        """
-        action = firewall_rule.href
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    """
-    LAN extension functions
-    """
-
-    def ex_list_lans(self, datacenter=None):
-        """
-        List local area network on:
-        - a datacenter if one is specified
-        - all datacenters if none specified
-
-        :param  datacenter: The parent DC for the LAN.
-        :type   datacenter: :class:`Datacenter`
-
-        :return:    ``list`` of class ``ProfitBricksLan``
-        :rtype:     `list`
-        """
-        if datacenter is not None:
-            action = datacenter.extra["entities"]["lans"]["href"]
-            request = self.connection.request(
-                action=action, params={"depth": 3}, method="GET", with_full_url=True
-            )
-            lans = self._to_lans(request.object)
-
-        else:
-            datacenters = self.ex_list_datacenters()
-            lans = []
-            for datacenter in datacenters:
-                action = datacenter.extra["entities"]["lans"]["href"]
-                request = self.connection.request(
-                    action=action, params={"depth": 3}, method="GET", with_full_url=True
-                )
-                lans += self._to_lans(request.object)
-
-        return lans
-
-    def ex_create_lan(self, datacenter, name=None, is_public=False, nics=None):
-        """
-        Create and attach a Lan to a data center.
-
-        :param  datacenter: The parent DC for the LAN..
-        :type   datacenter: :class:`Datacenter`
-
-        :param  name: LAN name.
-        :type   name: ``str``
-
-        :param  is_public: True if the Lan is to have internet access.
-        :type   is_public: ``bool``
-
-        :param  nics: Optional network interfaces to attach to the lan.
-        :param  nics: ``list`` of class ``ProfitBricksNetworkInterface``
-
-        :return:    Instance class ``ProfitBricksLan``
-        :rtype:     :class:`ProfitBricksLan`
-        """
-
-        action = datacenter.extra["entities"]["lans"]["href"]
-        body = {
-            "properties": {
-                "name": name or "LAN - {datacenter_name}".format(datacenter_name=datacenter.name),
-                "public": is_public,
-            }
-        }
-
-        if nics is not None:
-            body["entities"] = defaultdict(dict)
-            body["entities"]["nics"]["items"] = [{"id": nic.id} for nic in nics]
-
-        request = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return self._to_lan(request.object, request.headers)
-
-    def ex_describe_lan(self, ex_href=None, ex_datacenter_id=None, ex_lan_id=None):
-        """
-        Fetch data on a local area network
-
-        :param  ex_href: The href of the lan you wish to describe.
-        :type   ex_href: ``str``
-
-        :param  ex_datacenter_id: The ID of the parent
-                                datacenter for the LAN.
-        :type   ex_datacenter_id: ``str``
-
-        :param  ex_lan_id: The ID of LAN.
-        :type   ex_lan_id: ``str``
-
-        :return:    Instance class ``ProfitBricksLan``
-        :rtype:     :class:`ProfitBricksLan`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_datacenter_id is None or ex_lan_id is None:
-                raise ValueError("IDs for the data center and LAN are required.")
-            else:
-                use_full_url = False
-                ex_href = ("datacenters/{datacenter_id}/" "lans/{lan_id}").format(
-                    datacenter_id=ex_datacenter_id, lan_id=ex_lan_id
-                )
-
-        response = self.connection.request(
-            action=ex_href,
-            method="GET",
-            params={"depth": 1},
-            with_full_url=use_full_url,
-        )
-
-        return self._to_lan(response.object)
-
-    def ex_update_lan(self, lan, is_public, name=None, ip_failover=None):
-        """
-        Update a local area network
-
-        :param  lan: The lan you wish to update.
-        :type:  lan: :class:`ProfitBricksLan`
-
-        :param  is_public: Boolean indicating if
-                the lan faces the public internet.
-        :type   is_public: ``bool``
-
-        :param  name: The name of the lan.
-        :type   name: ``str``
-
-        :param  ip_failover: The IP to fail over.
-        :type   ip_failover: ``list`` of :class: ``ProfitBricksIPFailover``
-
-        :return:    Instance class ``ProfitBricksLan``
-        :rtype:     :class:`ProfitBricksLan`
-        """
-        action = lan.href
-        body = {"public": is_public}
-
-        if name is not None:
-            body["name"] = name
-
-        if ip_failover is not None:
-            body["ipFailover"] = [{"ip": item.ip, "nicUuid": item.nic_uuid} for item in ip_failover]
-
-        request = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_lan(request.object, request.headers)
-
-    def ex_delete_lan(self, lan):
-        """
-        Delete a local area network
-
-        :param  lan: The lan you wish to delete.
-        :type:  lan: :class:`ProfitBrickLan`
-
-        :rtype  ``bool``
-        """
-
-        action = lan.href
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    """
-    Volume extension functions
-    """
-
-    def ex_update_volume(self, volume, ex_storage_name=None, size=None, ex_bus_type=None):
-        """
-        Updates a volume.
-
-        :param volume: The volume you're updating.
-        :type volume: :class:`StorageVolume`
-
-        :param  ex_storage_name: The name of the volume.
-        :type   ex_storage_name: ``str``
-
-        :param  size: The desired size.
-        :type   size: ``int``
-
-        :param  ex_bus_type: Volume bus type (VIRTIO, IDE).
-        :type   ex_bus_type: ``str``
-
-        :return:    Instance of class ``StorageVolume``
-        :rtype:     :class:`StorageVolume`
-        """
-
-        if not ex_storage_name:
-            ex_storage_name = volume.name
-        if not size:
-            size = str(volume.size)
-
-        action = volume.extra["href"]
-        body = {"name": ex_storage_name, "size": size}
-
-        if ex_bus_type is not None:
-            body["bus"] = ex_bus_type
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_volume(response.object, response.headers)
-
-    def ex_describe_volume(self, ex_href=None, ex_datacenter_id=None, ex_volume_id=None):
-        """
-        Fetches and returns a volume
-
-        :param  ex_href: The full href (url) of the volume.
-        :type   ex_href: ``str``
-
-        :param  ex_datacenter_id: The ID of the parent
-                                datacenter for the volume.
-        :type   ex_datacenter_id: ``str``
-
-        :param  ex_volume_id: The ID of the volume.
-        :type   ex_volume_id: ``str``
-
-        :return:    Instance of class ``StorageVolume``
-        :rtype:     :class:`StorageVolume`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_datacenter_id is None or ex_volume_id is None:
-                raise ValueError("IDs for the data center and volume are required.")
-            else:
-                use_full_url = False
-                ex_href = ("datacenters/{datacenter_id}/" "volumes/{volume_id}").format(
-                    datacenter_id=ex_datacenter_id, volume_id=ex_volume_id
-                )
-
-        response = self.connection.request(
-            action=ex_href,
-            method="GET",
-            params={"depth": 3},
-            with_full_url=use_full_url,
-        )
-
-        return self._to_volume(response.object)
-
-    def ex_restore_volume_snapshot(self, volume, snapshot):
-        """
-        Restores a snapshot for a volume
-
-        :param  volume: The volume you're restoring the snapshot to.
-        :type   volume: :class:`StorageVolume`
-
-        :param  snapshot: The snapshot you're restoring to the volume.
-        :type   snapshot: :class:`ProfitBricksSnapshot`
-
-        :rtype  ``bool``
-        """
-
-        action = volume.extra["href"] + "/restore-snapshot"
-        data = {"snapshotId": snapshot.id}
-        body = urlencode(data)
-
-        self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/x-www-form-urlencoded"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return True
-
-    """
-    Volume snapshot extension functions
-    """
-
-    def ex_describe_snapshot(self, ex_href=None, ex_snapshot_id=None):
-        """
-        Fetches and returns a volume snapshot
-
-        :param  ex_href: The full href (url) of the snapshot.
-        :type   ex_href: ``str``
-
-        :param  ex_snapshot_id: The ID of the snapshot.
-        :type   ex_snapshot_id: ``str``
-
-        :return:    Instance of class ``ProfitBricksSnapshot``
-        :rtype:     :class:`ProfitBricksSnapshot`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_snapshot_id is None:
-                raise ValueError("The snapshot ID is required.")
-            else:
-                use_full_url = False
-                ex_href = ("snapshots/{snapshot_id}").format(snapshot_id=ex_snapshot_id)
-
-        response = self.connection.request(
-            action=ex_href,
-            params={"depth": 3},
-            method="GET",
-            with_full_url=use_full_url,
-        )
-
-        return self._to_snapshot(response.object)
-
-    def ex_update_snapshot(
-        self,
-        snapshot,
-        name=None,
-        description=None,
-        cpu_hot_plug=None,
-        cpu_hot_unplug=None,
-        ram_hot_plug=None,
-        ram_hot_unplug=None,
-        nic_hot_plug=None,
-        nic_hot_unplug=None,
-        disc_virtio_hot_plug=None,
-        disc_virtio_hot_unplug=None,
-        disc_scsi_hot_plug=None,
-        disc_scsi_hot_unplug=None,
-        licence_type=None,
-    ):
-        """
-        Updates a snapshot
-
-        :param  snapshot: The snapshot you're restoring to the volume.
-        :type   snapshot: :class:`VolumeSnapshot`
-
-        :param  name: The snapshot name
-        :type   name: `str`
-
-        :param  description: The snapshot description
-        :type   description: `str`
-
-        :param  cpu_hot_plug: Snapshot CPU is hot pluggalbe
-        :type   cpu_hot_plug: `str`
-
-        :param  cpu_hot_unplug: Snapshot CPU is hot unpluggalbe
-        :type   cpu_hot_unplug: `str`
-
-        :param  ram_hot_plug: Snapshot RAM is hot pluggalbe
-        :type   ram_hot_plug: `str`
-
-        :param  ram_hot_unplug: Snapshot RAM is hot unpluggalbe
-        :type   ram_hot_unplug: `str`
-
-        :param  nic_hot_plug: Snapshot Network Interface is hot pluggalbe
-        :type   nic_hot_plug: `str`
-
-        :param  nic_hot_unplug: Snapshot Network Interface is hot unpluggalbe
-        :type   nic_hot_unplug: `str`
-
-        :param  disc_virtio_hot_plug: Snapshot VIRTIO disk is hot pluggalbe
-        :type   disc_virtio_hot_plug: `str`
-
-        :param  disc_virtio_hot_unplug: Snapshot VIRTIO disk is hot unpluggalbe
-        :type   disc_virtio_hot_unplug: `str`
-
-        :param  disc_scsi_hot_plug: Snapshot SCSI disk is hot pluggalbe
-        :type   disc_scsi_hot_plug: `str`
-
-        :param  disc_scsi_hot_unplug: Snapshot SCSI disk is hot unpluggalbe
-        :type   disc_scsi_hot_unplug: `str`
-
-        :param  licence_type: The snapshot licence_type
-        :type   licence_type: `str`
-
-        :return:    Instance of class ``VolumeSnapshot``
-        :rtype:     :class:`VolumeSnapshot`
-        """
-
-        action = snapshot.extra["href"]
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-
-        if description is not None:
-            body["description"] = description
-
-        if cpu_hot_plug is not None:
-            body["cpuHotPlug"] = cpu_hot_plug
-
-        if cpu_hot_unplug is not None:
-            body["cpuHotUnplug"] = cpu_hot_unplug
-
-        if ram_hot_plug is not None:
-            body["ramHotPlug"] = ram_hot_plug
-
-        if ram_hot_unplug is not None:
-            body["ramHotUnplug"] = ram_hot_unplug
-
-        if nic_hot_plug is not None:
-            body["nicHotPlug"] = nic_hot_plug
-
-        if nic_hot_unplug is not None:
-            body["nicHotUnplug"] = nic_hot_unplug
-
-        if disc_virtio_hot_plug is not None:
-            body["discVirtioHotPlug"] = disc_virtio_hot_plug
-
-        if disc_virtio_hot_unplug is not None:
-            body["discVirtioHotUnplug"] = disc_virtio_hot_unplug
-
-        if disc_scsi_hot_plug is not None:
-            body["discScsiHotPlug"] = disc_scsi_hot_plug
-
-        if disc_scsi_hot_unplug is not None:
-            body["discScsiHotUnplug"] = disc_scsi_hot_unplug
-
-        if licence_type is not None:
-            body["licenceType"] = licence_type
-
-        response = self.connection.request(
-            action=action,
-            params={"Content-Type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_snapshot(response.object, response.headers)
-
-    """
-    Load balancer extension functions
-    """
-
-    def ex_list_load_balancers(self):
-        """
-        Fetches as a list of load balancers
-
-        :return:    ``list`` of class ``ProfitBricksLoadBalancer``
-        :rtype:     `list`
-        """
-
-        datacenters = self.ex_list_datacenters()
-        load_balancers = list()
-
-        for datacenter in datacenters:
-            extra = datacenter.extra
-            load_balancers_href = extra["entities"]["loadbalancers"]["href"]
-
-            response = self.connection.request(
-                action=load_balancers_href,
-                params={"depth": 3},
-                method="GET",
-                with_full_url=True,
-            )
-
-            mapped_load_balancers = self._to_load_balancers(response.object)
-            load_balancers += mapped_load_balancers
-
-        return load_balancers
-
-    def ex_describe_load_balancer(
-        self, ex_href=None, ex_datacenter_id=None, ex_load_balancer_id=None
-    ):
-        """
-        Fetches and returns a load balancer
-
-        :param  href: The full href (url) of the load balancer.
-        :type   href: ``str``
-
-        :param  ex_datacenter_id: The ID of the parent data center
-                                for the load balancer.
-        :type   ex_datacenter_id: ``str``
-
-        :param  ex_load_balancer_id: The load balancer ID.
-        :type   ex_load_balancer_id: ``str``
-
-        :return:    Instance of class ``ProfitBricksLoadBalancer``
-        :rtype:     :class:`ProfitBricksLoadBalancer`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_datacenter_id is None or ex_load_balancer_id is None:
-                raise ValueError("IDs for the data center and " "load balancer are required.")
-            else:
-                use_full_url = False
-                ex_href = (
-                    "datacenters/{datacenter_id}/" "loadbalancers/{load_balancer_id}"
-                ).format(datacenter_id=ex_datacenter_id, load_balancer_id=ex_load_balancer_id)
-
-        response = self.connection.request(
-            action=ex_href,
-            params={"depth": 3},
-            method="GET",
-            with_full_url=use_full_url,
-        )
-
-        return self._to_load_balancer(response.object)
-
-    def ex_create_load_balancer(self, datacenter, name=None, ip=None, dhcp=None, nics=None):
-        """
-        Create and attach a load balancer to a data center.
-
-        :param  datacenter: The parent DC for the load balancer.
-        :type   datacenter: :class:`Datacenter`
-
-        :param  name: Load balancer name.
-        :type   name: ``str``
-
-        :param  ip: Load balancer IPV4 address.
-        :type   ip: ``str``
-
-        :param  dhcp: If true, the load balancer
-                will reserve an IP address using DHCP.
-        :type   dhcp: ``bool``
-
-        :param  nics: Optional network interfaces
-                taking part in load balancing.
-        :param  nics: ``list`` of class ``ProfitBricksNetworkInterface``
-
-        :return:    Instance class ``ProfitBricksLoadBalancer``
-        :rtype:     :class:`ProfitBricksLoadBalancer`
-        """
-
-        action = datacenter.extra["entities"]["loadbalancers"]["href"]
-        body = {
-            "properties": {
-                "name": name
-                or "Load Balancer - {datacenter_name}".format(datacenter_name=datacenter.name)
-            }
-        }
-
-        if ip is not None:
-            body["properties"]["ip"] = ip
-
-        if dhcp is not None:
-            body["properties"]["dhcp"] = dhcp
-
-        if nics is not None:
-            body["entities"] = defaultdict(dict)
-            body["entities"]["balancednics"]["items"] = [{"id": nic.id} for nic in nics]
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return self._to_load_balancer(response.object, response.headers)
-
-    def ex_update_load_balancer(self, load_balancer, name=None, ip=None, dhcp=None):
-        """
-        Update a load balancer
-
-        :param  load_balancer: The load balancer you wish to update.
-        :type:  load_balancer: :class:`ProfitBricksLoadBalancer`
-
-        :param  name: The name of the load balancer.
-        :type   name: ``str``
-
-        :param  ip: The IPV4 address of the load balancer.
-        :type   ip: ``str``
-
-        :param  dhcp: If true, the load balancer
-                will reserve an IP address using DHCP.
-        :type   dhcp: ``bool``
-
-        :return:    Instance class ``ProfitBricksLoadBalancer``
-        :rtype:     :class:`ProfitBricksLoadBalancer`
-        """
-        action = load_balancer.href
-        body = {}
-
-        if name is not None:
-            body["name"] = name
-
-        if ip is not None:
-            body["ip"] = ip
-
-        if dhcp is not None:
-            body["dhcp"] = dhcp
-
-        response = self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="PATCH",
-            with_full_url=True,
-        )
-
-        return self._to_load_balancer(response.object, response.headers)
-
-    def ex_list_load_balanced_nics(self, load_balancer):
-        """
-        List balanced network interfaces for a load balancer.
-
-        :param  load_balancer: The load balancer you wish to update.
-        :type:  load_balancer: :class:`ProfitBricksLoadBalancer`
-
-        :return:    ``list`` of class ``ProfitBricksNetorkInterface``
-        :rtype:     `list`
-        """
-        action = load_balancer.extra["entities"]["balancednics"]["href"]
-
-        response = self.connection.request(
-            action=action, params={"depth": 3}, method="GET", with_full_url=True
-        )
-
-        return self._to_interfaces(response.object)
-
-    def ex_describe_load_balanced_nic(
-        self, ex_href=None, ex_datacenter_id=None, ex_server_id=None, ex_nic_id=None
-    ):
-        """
-        Fetch information on a load balanced network interface.
-
-        :param  ex_href: The href of the load balanced
-                        NIC you wish to describe.
-        :type   ex_href: ``str``
-
-        :param  ex_datacenter_id: The ID of parent data center
-                            of the NIC you wish to describe.
-        :type   ex_datacenter_id: ``str``
-
-        :param  ex_server_id: The server the NIC is connected to.
-        :type   ex_server_id: ``str``
-
-        :param  ex_nic_id: The ID of the NIC
-        :type   ex_nic_id: ``str``
-
-        :return:    Instance of class ``ProfitBricksNetworkInterface``
-        :rtype:     :class:`ProfitBricksNetworkInterface`
-        """
-        return self.ex_describe_network_interface(
-            ex_href=ex_href,
-            ex_datacenter_id=ex_datacenter_id,
-            ex_server_id=ex_server_id,
-            ex_nic_id=ex_nic_id,
-        )
-
-    def ex_attach_nic_to_load_balancer(self, load_balancer, network_interface):
-        """
-        Attaches a network interface to a load balancer
-
-        :param  load_balancer: The load balancer you wish
-                to attach the network interface to.
-        :type:  load_balancer: :class:`ProfitBricksLoadBalancer`
-
-        :param  network_interface: The network interface
-                being attached.
-        :type:  network_interface: :class:`ProfitBricksNetworkInterface`
-
-        :rtype  ``bool``
-        """
-        action = load_balancer.extra["entities"]["balancednics"]["href"]
-        body = {"id": network_interface.id}
-
-        self.connection.request(
-            action=action,
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-            with_full_url=True,
-        )
-
-        return True
-
-    def ex_remove_nic_from_load_balancer(self, load_balancer, network_interface):
-        """
-        Removed a network interface from a load balancer
-
-        :param  load_balancer: The load balancer you
-                wish to remove the network interface from.
-        :type:  load_balancer: :class:`ProfitBricksLoadBalancer`
-
-        :param  network_interface: The network interface
-                being removed.
-        :type:  network_interface: :class:`ProfitBricksNetworkInterface`
-
-        :rtype  ``bool``
-        """
-        action = load_balancer.href + "/balancednics/" + network_interface.id
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    def ex_delete_load_balancer(self, load_balancer):
-        """
-        Delete a load balancer
-
-        :param  load_balancer: The load balancer you wish to delete.
-        :type:  load_balancer: :class:`ProfitBricksLoadBalancer`
-
-        :rtype  ``bool``
-        """
-
-        action = load_balancer.href
-
-        self.connection.request(action=action, method="DELETE", with_full_url=True)
-
-        return True
-
-    """
-    IP Block extension functions
-    """
-
-    def ex_list_ip_blocks(self):
-        """
-        List all IP blocks
-
-        :return:    ``list`` of class ``ProfitBricksIPBlock``
-        :rtype:     `list`
-        """
-
-        response = self.connection.request(action="ipblocks", params={"depth": 3}, method="GET")
-
-        return self._to_ip_blocks(response.object)
-
-    def ex_create_ip_block(self, location, size, name=None):
-        """
-        Create an IP block
-
-        :param  location: The location of the IP block.
-        :type   location: :class:`NodeLocation`
-
-        :param  size: The size of the IP block.
-        :type   size: ``int``
-
-        :param  name: The name of the IP block.
-        :type   name: ``str``
-
-        :return:    Instance class ``ProfitBricksIPBlock``
-        :rtype:     :class:`ProfitBricksIPBlock`
-        """
-
-        body = {"properties": {"location": location.id, "size": size}}
-
-        if name is not None:
-            body["properties"]["name"] = name
-
-        response = self.connection.request(
-            action="ipblocks",
-            headers={"Content-Type": "application/json"},
-            data=body,
-            method="POST",
-        )
-
-        return self._to_ip_block(response.object, response.headers)
-
-    def ex_describe_ip_block(self, ex_href=None, ex_ip_block_id=None):
-        """
-        Fetch an IP block
-
-        :param  ex_href: The href of the IP block.
-        :type   ex_href: ``str``
-
-        :param  ex_ip_block_id: The ID of the IP block.
-        :type   ex_ip_block_id: ``str``
-
-        :return:    Instance class ``ProfitBricksIPBlock``
-        :rtype:     :class:`ProfitBricksIPBlock`
-        """
-
-        use_full_url = True
-
-        if ex_href is None:
-            if ex_ip_block_id is None:
-                raise ValueError("The IP block ID is required.")
-            else:
-                use_full_url = False
-                ex_href = ("ipblocks/{ip_block_id}").format(ip_block_id=ex_ip_block_id)
-
-        response = self.connection.request(
-            action=ex_href,
-            params={"depth": 3},
-            method="GET",
-            with_full_url=use_full_url,
-        )
-
-        return self._to_ip_block(response.object)
-
-    def ex_delete_ip_block(self, ip_block):
-        """
-        Delete an IP block
-
-        :param  ip_block: The IP block you wish to delete.
-        :type:  ip_block: :class:`ProfitBricksIPBlock`
-
-        :rtype  ``bool``
-        """
-
-        self.connection.request(action=ip_block.href, method="DELETE", with_full_url=True)
-
-        return True
-
-    """
-    Private Functions
-    """
-
-    def _to_ip_blocks(self, object):
-        return [self._to_ip_block(ip_block) for ip_block in object["items"]]
-
-    def _to_ip_block(self, ip_block, headers=None):
-        nested = {"metadata": ip_block["metadata"]}
-
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedDate": "last_modified_date",
-                "lastModifiedBy": "last_modified_by",
-                "state": "state",
-            }
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        state = self.NODE_STATE_MAP.get(ip_block["metadata"]["state"], NodeState.UNKNOWN)
-
-        # self, id, name, href, location, size, ips, state, driver, extra=None
-
-        return ProfitBricksIPBlock(
-            id=ip_block["id"],
-            name=ip_block["properties"]["name"],
-            href=ip_block["href"],
-            location=ip_block["properties"]["location"],
-            size=ip_block["properties"]["size"],
-            ips=ip_block["properties"]["ips"] or [],
-            state=state,
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-    def _to_load_balancers(self, object):
-        return [self._to_load_balancer(load_balancer) for load_balancer in object["items"]]
-
-    def _to_load_balancer(self, load_balancer, headers=None):
-        nested = {
-            "props": load_balancer["properties"],
-            "metadata": load_balancer["metadata"],
-        }
-
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedDate": "last_modified_date",
-                "lastModifiedBy": "last_modified_by",
-                "state": "state",
-            },
-            "props": {"name": "name", "ip": "ip", "dhcp": "dhcp"},
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        if "entities" in load_balancer:
-            extra["entities"] = load_balancer["entities"]
-
-        state = self.NODE_STATE_MAP.get(load_balancer["metadata"]["state"], NodeState.UNKNOWN)
-
-        return ProfitBricksLoadBalancer(
-            id=load_balancer["id"],
-            name=load_balancer["properties"]["name"],
-            href=load_balancer["href"],
-            state=state,
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-    def _to_snapshots(self, object):
-        return [self._to_snapshot(snapshot) for snapshot in object["items"]]
-
-    def _to_snapshot(self, snapshot, headers=None):
-        nested = {"props": snapshot["properties"], "metadata": snapshot["metadata"]}
-
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedDate": "last_modified_date",
-                "lastModifiedBy": "last_modified_by",
-                "state": "state",
-            },
-            "props": {
-                "name": "name",
-                "description": "description",
-                "location": "location",
-                "size": "size",
-                "cpuHotPlug": "cpu_hot_plug",
-                "cpuHotUnplug": "cpu_hot_unplug",
-                "ramHotPlug": "ram_hot_plug",
-                "ramHotUnplug": "ram_hot_unplug",
-                "nicHotPlug": "nic_hot_plug",
-                "nicHotUnplug": "nic_hot_unplug",
-                "discVirtioHotPlug": "disc_virtio_hot_plug",
-                "discVirtioHotUnplug": "disc_virtio_hot_unplug",
-                "discScsiHotPlug": "disc_scsi_hot_plug",
-                "discScsiHotUnplug": "disc_scsi_hot_unplug",
-                "licenceType": "licence_type",
-            },
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        state = self.NODE_STATE_MAP.get(snapshot["metadata"]["state"], NodeState.UNKNOWN)
-
-        extra["href"] = snapshot["href"]
-
-        return VolumeSnapshot(
-            id=snapshot["id"],
-            driver=self.connection.driver,
-            size=extra["size"],
-            extra=extra,
-            created=extra["created_date"],
-            state=state,
-            name=extra["name"],
-        )
-
-    def _to_lans(self, object):
-        return [self._to_lan(lan) for lan in object["items"]]
-
-    def _to_lan(self, lan, headers=None):
-        nested = {"props": lan["properties"], "metadata": lan["metadata"]}
-
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedDate": "last_modified_date",
-                "lastModifiedBy": "last_modified_by",
-                "state": "state",
-            },
-            "props": {"name": "name", "public": "is_public"},
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if "entities" in lan:
-            extra["entities"] = lan["entities"]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        extra["provisioning_state"] = self.PROVISIONING_STATE.get(
-            lan["metadata"]["state"], NodeState.UNKNOWN
-        )
-
-        state = self.NODE_STATE_MAP.get(lan["metadata"]["state"], NodeState.UNKNOWN)
-
-        return ProfitBricksLan(
-            id=lan["id"],
-            name=lan["properties"]["name"],
-            href=lan["href"],
-            is_public=lan["properties"]["public"],
-            state=state,
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-    def _to_datacenters(self, object):
-        return [self._to_datacenter(datacenter) for datacenter in object["items"]]
-
-    def _to_datacenter(self, datacenter, headers=None):
-        nested = {"props": datacenter["properties"], "metadata": datacenter["metadata"]}
-
-        if "entities" in datacenter:
-            nested["entities"] = datacenter["entities"]
-
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedDate": "last_modified_date",
-                "lastModifiedBy": "last_modified_by",
-                "state": "state",
-            },
-            "props": {
-                "description": "description",
-                "features": "features",
-                "location": "location",
-                "name": "name",
-                "version": "version",
-            },
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if "entities" in datacenter:
-            extra["entities"] = datacenter["entities"]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        extra["provisioning_state"] = self.PROVISIONING_STATE.get(
-            datacenter["metadata"]["state"], NodeState.UNKNOWN
-        )
-
-        return Datacenter(
-            id=datacenter["id"],
-            href=datacenter["href"],
-            name=datacenter["properties"]["name"],
-            version=datacenter["properties"]["version"],
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-    def _to_images(self, object, image_type=None, is_public=True):
-
-        if image_type is not None:
-            images = [
-                image
-                for image in object["items"]
-                if image["properties"]["imageType"] == image_type
-                and image["properties"]["public"] == is_public
-            ]
-        else:
-            images = [
-                image for image in object["items"] if image["properties"]["public"] == is_public
-            ]
-
-        return [self._to_image(image) for image in images]
-
-    def _to_image(self, image, headers=None):
-        nested = {"props": image["properties"], "metadata": image["metadata"]}
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedDate": "last_modified_date",
-                "lastModifiedBy": "last_modified_by",
-                "state": "state",
-            },
-            "props": {
-                "name": "name",
-                "description": "description",
-                "location": "location",
-                "size": "size",
-                "cpuHotPlug": "cpu_hot_plug",
-                "cpuHotUnplug": "cpu_hot_unplug",
-                "ramHotPlug": "ram_hot_plug",
-                "ramHotUnplug": "ram_hot_unplug",
-                "nicHotPlug": "nic_hot_plug",
-                "nicHotUnplug": "nic_hot_unplug",
-                "discVirtioHotPlug": "disc_virtio_hot_plug",
-                "discVirtioHotUnplug": "disc_virtio_hot_unplug",
-                "discScsiHotPlug": "disc_scsi_hot_plug",
-                "discScsiHotUnplug": "disc_scsi_hot_unplug",
-                "licenceType": "licence_type",
-                "imageType": "image_type",
-                "imageAliases": "image_aliases",
-                "public": "public",
-            },
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        """
-        Put the href inside extra
-        because we cannot assign
-        it to the NodeImage type.
-        """
-        extra["href"] = image["href"]
-
-        return NodeImage(
-            id=image["id"],
-            name=image["properties"]["name"],
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-    def _to_nodes(self, object):
-        return [self._to_node(n) for n in object["items"]]
-
-    def _to_node(self, node, headers=None):
-        """
-        Convert the request into a node Node
-        """
-        nested = {
-            "props": node["properties"],
-            "metadata": node["metadata"],
-            "entities": node["entities"],
-        }
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "props": {
-                "name": "name",
-                "availabilityZone": "availability_zone",
-                "bootCdrom": "boot_cdrom",
-                "bootVolume": "boot_volume",
-                "cores": "cores",
-                "cpuFamily": "cpu_family",
-                "ram": "ram",
-                "vmState": "vm_state",
-            },
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedBy": "last_modified_by",
-                "lastModifiedDate": "last_modified_date",
-                "state": "state",
-            },
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        state = self.NODE_STATE_MAP.get(node["properties"]["vmState"], NodeState.UNKNOWN)
-
-        extra["entities"] = nested["entities"]
-        extra["href"] = node["href"]
-
-        public_ips = []
-        private_ips = []
-
-        if "nics" in nested["entities"]:
-            if "items" in nested["entities"]["nics"]:
-                for nic in nested["entities"]["nics"]["items"]:
-                    if nic["properties"]["nat"] is True:
-                        public_ips += nic["properties"]["ips"]
-                    elif nic["properties"]["nat"] is False:
-                        private_ips += nic["properties"]["ips"]
-
-        return Node(
-            id=node["id"],
-            name=nested["props"]["name"],
-            state=state,
-            public_ips=public_ips,
-            private_ips=private_ips,
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-    def _to_volumes(self, object):
-        return [self._to_volume(volume) for volume in object["items"]]
-
-    def _to_volume(self, volume, headers=None):
-
-        nested = {"props": volume["properties"], "metadata": volume["metadata"]}
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "props": {
-                "bus": "bus",
-                "size": "size",
-                "cpuHotPlug": "cpu_hot_plug",
-                "cpuHotUnplug": "cpu_hot_unplug",
-                "discScsiHotPlug": "disc_scsi_hot_plug",
-                "discScsiHotUnplug": "disc_scsi_hot_unplug",
-                "discVirtioHotPlug": "disc_virtio_hot_plug",
-                "discVirtioHotUnplug": "disc_virtio_hot_unplug",
-                "image": "image",
-                "imagePassword": "image_password",
-                "licenceType": "licence_type",
-                "name": "name",
-                "nicHotPlug": "nic_hot_plug",
-                "nicHotUnplug": "nic_hot_unplug",
-                "ramHotPlug": "ram_hot_plug",
-                "ramHotUnplug": "ram_hot_unplug",
-                "sshKeys": "ssh_keys",
-                "type": "type",
-                "deviceNumber": "device_number",
-            },
-            "metadata": {
-                "createdBy": "created_by",
-                "createdDate": "created_date",
-                "etag": "etag",
-                "lastModifiedBy": "last_modified_by",
-                "lastModifiedDate": "last_modified_date",
-                "state": "state",
-            },
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        extra["provisioning_state"] = self.PROVISIONING_STATE.get(
-            volume["metadata"]["state"], NodeState.UNKNOWN
-        )
-
-        extra["href"] = volume["href"]
-
-        if "availabilityZone" in volume["properties"]:
-            properties = volume["properties"]
-            extra["availability_zone"] = properties["availabilityZone"]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        return StorageVolume(
-            id=volume["id"],
-            name=volume["properties"]["name"],
-            size=volume["properties"]["size"],
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-    def _to_interfaces(self, object):
-        return [self._to_interface(interface) for interface in object["items"]]
-
-    def _to_interface(self, interface, headers=None):
-        nested = {"props": interface["properties"], "metadata": interface["metadata"]}
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "props": {
-                "dhcp": "dhcp",
-                "firewallActive": "firewall_active",
-                "ips": "ips",
-                "lan": "lan",
-                "mac": "mac",
-                "name": "name",
-                "nat": "nat",
-            },
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedBy": "last_modified_by",
-                "lastModifiedDate": "last_modified_date",
-                "state": "state",
-            },
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if "entities" in interface:
-            extra["entities"] = interface["entities"]
-
-        state = self.NODE_STATE_MAP.get(interface["metadata"]["state"], NodeState.UNKNOWN)
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        return ProfitBricksNetworkInterface(
-            id=interface["id"],
-            name=interface["properties"]["name"],
-            href=interface["href"],
-            state=state,
-            extra=extra,
-        )
-
-    def _to_firewall_rules(self, object):
-        return [self._to_firewall_rule(firewall_rule) for firewall_rule in object["items"]]
-
-    def _to_firewall_rule(self, firewallrule, headers=None):
-        nested = {
-            "props": firewallrule["properties"],
-            "metadata": firewallrule["metadata"],
-        }
-        extra = {}
-
-        MAPPED_ATTRS = {
-            "props": {
-                "name": "name",
-                "protocol": "protocol",
-                "sourceMac": "source_mac",
-                "sourceIp": "source_ip",
-                "targetIp": "target_ip",
-                "icmpCode": "icmp_code",
-                "icmpType": "icmp_type",
-                "portRangeStart": "port_range_start",
-                "portRangeEnd": "port_range_end",
-            },
-            "metadata": {
-                "createdDate": "created_date",
-                "createdBy": "created_by",
-                "etag": "etag",
-                "lastModifiedDate": "last_modified_date",
-                "lastModifiedBy": "last_modified_by",
-                "state": "state",
-            },
-        }
-
-        for k, v in MAPPED_ATTRS.items():
-            for original_name, altered_name in v.items():
-                extra[altered_name] = nested[k][original_name]
-
-        if headers is not None:
-            if "location" in headers:
-                extra["status_url"] = headers["location"]
-
-        state = self.NODE_STATE_MAP.get(firewallrule["metadata"]["state"], NodeState.UNKNOWN)
-
-        return ProfitBricksFirewallRule(
-            id=firewallrule["id"],
-            name=firewallrule["properties"]["name"],
-            href=firewallrule["href"],
-            state=state,
-            extra=extra,
-        )
-
-    def _to_locations(self, object):
-        return [self._to_location(location) for location in object["items"]]
-
-    def _to_location(self, location):
-        return NodeLocation(
-            id=location["id"],
-            name=location["properties"]["name"],
-            country=location["id"].split("/")[0],
-            driver=self.connection.driver,
-        )
-
-    def _to_node_size(self, data):
-        """
-        Convert the PROFIT_BRICKS_GENERIC_SIZES into NodeSize
-        """
-        return NodeSize(
-            id=data["id"],
-            name=data["name"],
-            ram=data["ram"],
-            disk=data["disk"],
-            bandwidth=None,
-            price=None,
-            driver=self.connection.driver,
-            extra={"cores": data["cores"]},
-        )
-
-    def _wait_for_datacenter_state(
-        self, datacenter, state=NodeState.RUNNING, timeout=300, interval=5
-    ):
-        """
-        Private function that waits the datacenter
-        to transition into the specified state.
-
-        :return: Datacenter object on success.
-        :rtype: :class:`.Datacenter`
-        """
-
-        wait_time = 0
-        attempts = 0
-
-        while attempts < 5:
-            attempts += 1
-            try:
-                datacenter = self.ex_describe_datacenter(ex_datacenter_id=datacenter.id)
-                break
-
-            except BaseHTTPError:
-                time.sleep(interval)
-
-        if datacenter is None:
-            raise Exception("Data center was not ready in time to " "complete this operation.")
-
-        while datacenter.extra["provisioning_state"] != state:
-            datacenter = self.ex_describe_datacenter(ex_href=datacenter.href)
-
-            if datacenter.extra["provisioning_state"] == state:
-                break
-
-            if wait_time >= timeout:
-                raise Exception(
-                    "Datacenter didn't transition to %s state " "in %s seconds" % (state, timeout)
-                )
-
-            wait_time += interval
-            time.sleep(interval)
-
-        return datacenter
-
-    def _create_new_datacenter_for_node(self, name, location=None):
-        """
-        Creates a Datacenter for a node.
-        """
-        dc_name = name + "-DC"
-
-        if location is None:
-            location = self.ex_describe_location(ex_location_id="us/las")
-
-        return self.ex_create_datacenter(name=dc_name, location=location)
diff --git a/libcloud/compute/drivers/serverlove.py b/libcloud/compute/drivers/serverlove.py
deleted file mode 100644
index 964fd5a..0000000
--- a/libcloud/compute/drivers/serverlove.py
+++ /dev/null
@@ -1,84 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-ServerLove Driver
-"""
-
-from libcloud.compute.types import Provider
-from libcloud.compute.drivers.elasticstack import (
-    ElasticStackBaseConnection,
-    ElasticStackBaseNodeDriver,
-)
-
-# API end-points
-API_ENDPOINTS = {
-    "uk-1": {
-        "name": "United Kingdom, Manchester",
-        "country": "United Kingdom",
-        "host": "api.z1-man.serverlove.com",
-    }
-}
-
-# Default API end-point for the base connection class.
-DEFAULT_ENDPOINT = "uk-1"
-
-# Retrieved from http://www.serverlove.com/cloud-server-faqs/api-questions/
-STANDARD_DRIVES = {
-    "679f5f44-0be7-4745-a658-cccd4334c1aa": {
-        "uuid": "679f5f44-0be7-4745-a658-cccd4334c1aa",
-        "description": "CentOS 5.5",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "5f2e0e29-2937-42b9-b362-d2d07eddbdeb": {
-        "uuid": "5f2e0e29-2937-42b9-b362-d2d07eddbdeb",
-        "description": "Ubuntu Linux 10.04",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "5795b68f-ed26-4639-b41d-c93235062b6b": {
-        "uuid": "5795b68f-ed26-4639-b41d-c93235062b6b",
-        "description": "Debian Linux 5",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "41993a02-0b22-4e49-bb47-0aa8975217e4": {
-        "uuid": "41993a02-0b22-4e49-bb47-0aa8975217e4",
-        "description": "Windows Server 2008 R2 Standard",
-        "size_gunzipped": "15GB",
-        "supports_deployment": False,
-    },
-    "85623ca1-9c2a-4398-a771-9a43c347e86b": {
-        "uuid": "85623ca1-9c2a-4398-a771-9a43c347e86b",
-        "description": "Windows Web Server 2008 R2",
-        "size_gunzipped": "15GB",
-        "supports_deployment": False,
-    },
-}
-
-
-class ServerLoveConnection(ElasticStackBaseConnection):
-    host = API_ENDPOINTS[DEFAULT_ENDPOINT]["host"]
-
-
-class ServerLoveNodeDriver(ElasticStackBaseNodeDriver):
-    type = Provider.SERVERLOVE
-    api_name = "serverlove"
-    website = "http://www.serverlove.com/"
-    name = "ServerLove"
-    connectionCls = ServerLoveConnection
-    features = {"create_node": ["generates_password"]}
-    _standard_drives = STANDARD_DRIVES
diff --git a/libcloud/compute/drivers/skalicloud.py b/libcloud/compute/drivers/skalicloud.py
deleted file mode 100644
index e95ced2..0000000
--- a/libcloud/compute/drivers/skalicloud.py
+++ /dev/null
@@ -1,84 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-skalicloud Driver
-"""
-
-from libcloud.compute.types import Provider
-from libcloud.compute.drivers.elasticstack import (
-    ElasticStackBaseConnection,
-    ElasticStackBaseNodeDriver,
-)
-
-# API end-points
-API_ENDPOINTS = {
-    "my-1": {
-        "name": "Malaysia, Kuala Lumpur",
-        "country": "Malaysia",
-        "host": "api.sdg-my.skalicloud.com",
-    }
-}
-
-# Default API end-point for the base connection class.
-DEFAULT_ENDPOINT = "my-1"
-
-# Retrieved from http://www.skalicloud.com/cloud-api/
-STANDARD_DRIVES = {
-    "90aa51f2-15c0-4cff-81ee-e93aa20b9468": {
-        "uuid": "90aa51f2-15c0-4cff-81ee-e93aa20b9468",
-        "description": "CentOS 5.5 -64bit",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "c144d7a7-e24b-48ab-954b-6b6ec514ed6f": {
-        "uuid": "c144d7a7-e24b-48ab-954b-6b6ec514ed6f",
-        "description": "Debian 5 -64bit",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "3051699a-a536-4220-aeb5-67f2ec101a09": {
-        "uuid": "3051699a-a536-4220-aeb5-67f2ec101a09",
-        "description": "Ubuntu Server 10.10 -64bit",
-        "size_gunzipped": "1GB",
-        "supports_deployment": True,
-    },
-    "11c4c922-5ff8-4094-b06c-eb8ffaec1ea9": {
-        "uuid": "11c4c922-5ff8-4094-b06c-eb8ffaec1ea9",
-        "description": "Windows 2008R2 Web Edition",
-        "size_gunzipped": "13GB",
-        "supports_deployment": False,
-    },
-    "93bf390e-4f46-4252-a8bc-9d6d80e3f955": {
-        "uuid": "93bf390e-4f46-4252-a8bc-9d6d80e3f955",
-        "description": "Windows Server 2008R2 Standard",
-        "size_gunzipped": "13GB",
-        "supports_deployment": False,
-    },
-}
-
-
-class SkaliCloudConnection(ElasticStackBaseConnection):
-    host = API_ENDPOINTS[DEFAULT_ENDPOINT]["host"]
-
-
-class SkaliCloudNodeDriver(ElasticStackBaseNodeDriver):
-    type = Provider.SKALICLOUD
-    api_name = "skalicloud"
-    name = "skalicloud"
-    website = "http://www.skalicloud.com/"
-    connectionCls = SkaliCloudConnection
-    features = {"create_node": ["generates_password"]}
-    _standard_drives = STANDARD_DRIVES
diff --git a/libcloud/compute/drivers/softlayer.py b/libcloud/compute/drivers/softlayer.py
deleted file mode 100644
index 0b4fa5d..0000000
--- a/libcloud/compute/drivers/softlayer.py
+++ /dev/null
@@ -1,480 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""
-Softlayer driver
-"""
-
-import time
-
-from libcloud.compute.base import Node, KeyPair, NodeSize, NodeImage, NodeDriver, NodeLocation
-from libcloud.compute.types import Provider, NodeState, KeyPairDoesNotExistError
-from libcloud.common.softlayer import SoftLayerException, SoftLayerConnection
-
-try:
-    from cryptography.hazmat.backends import default_backend
-    from cryptography.hazmat.primitives import serialization
-    from cryptography.hazmat.primitives.asymmetric import rsa
-
-    crypto = True
-except ImportError:
-    crypto = False
-
-
-DEFAULT_DOMAIN = "example.com"
-DEFAULT_CPU_SIZE = 1
-DEFAULT_RAM_SIZE = 2048
-DEFAULT_DISK_SIZE = 100
-
-DATACENTERS = {
-    "hou02": {"country": "US"},
-    "sea01": {"country": "US", "name": "Seattle - West Coast U.S."},
-    "wdc01": {"country": "US", "name": "Washington, DC - East Coast U.S."},
-    "dal01": {"country": "US"},
-    "dal02": {"country": "US"},
-    "dal04": {"country": "US"},
-    "dal05": {"country": "US", "name": "Dallas - Central U.S."},
-    "dal06": {"country": "US"},
-    "dal07": {"country": "US"},
-    "sjc01": {"country": "US", "name": "San Jose - West Coast U.S."},
-    "sng01": {"country": "SG", "name": "Singapore - Southeast Asia"},
-    "ams01": {"country": "NL", "name": "Amsterdam - Western Europe"},
-    "tok02": {"country": "JP", "name": "Tokyo - Japan"},
-}
-
-NODE_STATE_MAP = {
-    "RUNNING": NodeState.RUNNING,
-    "HALTED": NodeState.UNKNOWN,
-    "PAUSED": NodeState.UNKNOWN,
-    "INITIATING": NodeState.PENDING,
-}
-
-SL_BASE_TEMPLATES = [
-    {"name": "1 CPU, 1GB ram, 25GB", "ram": 1024, "disk": 25, "cpus": 1},
-    {"name": "1 CPU, 1GB ram, 100GB", "ram": 1024, "disk": 100, "cpus": 1},
-    {"name": "1 CPU, 2GB ram, 100GB", "ram": 2 * 1024, "disk": 100, "cpus": 1},
-    {"name": "1 CPU, 4GB ram, 100GB", "ram": 4 * 1024, "disk": 100, "cpus": 1},
-    {"name": "2 CPU, 2GB ram, 100GB", "ram": 2 * 1024, "disk": 100, "cpus": 2},
-    {"name": "2 CPU, 4GB ram, 100GB", "ram": 4 * 1024, "disk": 100, "cpus": 2},
-    {"name": "2 CPU, 8GB ram, 100GB", "ram": 8 * 1024, "disk": 100, "cpus": 2},
-    {"name": "4 CPU, 4GB ram, 100GB", "ram": 4 * 1024, "disk": 100, "cpus": 4},
-    {"name": "4 CPU, 8GB ram, 100GB", "ram": 8 * 1024, "disk": 100, "cpus": 4},
-    {"name": "6 CPU, 4GB ram, 100GB", "ram": 4 * 1024, "disk": 100, "cpus": 6},
-    {"name": "6 CPU, 8GB ram, 100GB", "ram": 8 * 1024, "disk": 100, "cpus": 6},
-    {"name": "8 CPU, 8GB ram, 100GB", "ram": 8 * 1024, "disk": 100, "cpus": 8},
-    {"name": "8 CPU, 16GB ram, 100GB", "ram": 16 * 1024, "disk": 100, "cpus": 8},
-]
-
-SL_TEMPLATES = {}
-for i, template in enumerate(SL_BASE_TEMPLATES):
-    # Add local disk templates
-    local = template.copy()
-    local["local_disk"] = True
-    SL_TEMPLATES[i] = local
-
-
-class SoftLayerNodeDriver(NodeDriver):
-    """
-    SoftLayer node driver
-
-    Extra node attributes:
-        - password: root password
-        - hourlyRecurringFee: hourly price (if applicable)
-        - recurringFee      : flat rate    (if applicable)
-        - recurringMonths   : The number of months in which the recurringFee
-         will be incurred.
-    """
-
-    connectionCls = SoftLayerConnection
-    name = "SoftLayer"
-    website = "http://www.softlayer.com/"
-    type = Provider.SOFTLAYER
-
-    features = {"create_node": ["generates_password", "ssh_key"]}
-    api_name = "softlayer"
-
-    def _to_node(self, host):
-        try:
-            password = host["operatingSystem"]["passwords"][0]["password"]
-        except (IndexError, KeyError):
-            password = None
-
-        hourlyRecurringFee = host.get("billingItem", {}).get("hourlyRecurringFee", 0)
-        recurringFee = host.get("billingItem", {}).get("recurringFee", 0)
-        recurringMonths = host.get("billingItem", {}).get("recurringMonths", 0)
-        createDate = host.get("createDate", None)
-
-        # When machine is launching it gets state halted
-        # we change this to pending
-        state = NODE_STATE_MAP.get(host["powerState"]["keyName"], NodeState.UNKNOWN)
-
-        if not password and state == NodeState.UNKNOWN:
-            state = NODE_STATE_MAP["INITIATING"]
-
-        public_ips = []
-        private_ips = []
-
-        if "primaryIpAddress" in host:
-            public_ips.append(host["primaryIpAddress"])
-
-        if "primaryBackendIpAddress" in host:
-            private_ips.append(host["primaryBackendIpAddress"])
-
-        image = (
-            host.get("operatingSystem", {})
-            .get("softwareLicense", {})
-            .get("softwareDescription", {})
-            .get("longDescription", None)
-        )
-
-        return Node(
-            id=host["id"],
-            name=host["fullyQualifiedDomainName"],
-            state=state,
-            public_ips=public_ips,
-            private_ips=private_ips,
-            driver=self,
-            extra={
-                "hostname": host["hostname"],
-                "fullyQualifiedDomainName": host["fullyQualifiedDomainName"],
-                "password": password,
-                "maxCpu": host.get("maxCpu", None),
-                "datacenter": host.get("datacenter", {}).get("longName", None),
-                "maxMemory": host.get("maxMemory", None),
-                "image": image,
-                "hourlyRecurringFee": hourlyRecurringFee,
-                "recurringFee": recurringFee,
-                "recurringMonths": recurringMonths,
-                "created": createDate,
-            },
-        )
-
-    def destroy_node(self, node):
-        self.connection.request("SoftLayer_Virtual_Guest", "deleteObject", id=node.id)
-        return True
-
-    def reboot_node(self, node):
-        self.connection.request("SoftLayer_Virtual_Guest", "rebootSoft", id=node.id)
-        return True
-
-    def start_node(self, node):
-        self.connection.request("SoftLayer_Virtual_Guest", "powerOn", id=node.id)
-        return True
-
-    def stop_node(self, node):
-        self.connection.request("SoftLayer_Virtual_Guest", "powerOff", id=node.id)
-        return True
-
-    def ex_start_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.start_node(node=node)
-
-    def ex_stop_node(self, node):
-        # NOTE: This method is here for backward compatibility reasons after
-        # this method was promoted to be part of the standard compute API in
-        # Libcloud v2.7.0
-        return self.stop_node(node=node)
-
-    def _get_order_information(self, node_id, timeout=1200, check_interval=5):
-        mask = {
-            "billingItem": "",
-            "powerState": "",
-            "operatingSystem": {"passwords": ""},
-            "provisionDate": "",
-        }
-
-        for i in range(0, timeout, check_interval):
-            res = self.connection.request(
-                "SoftLayer_Virtual_Guest", "getObject", id=node_id, object_mask=mask
-            ).object
-
-            if res.get("provisionDate", None):
-                return res
-
-            time.sleep(check_interval)
-
-        raise SoftLayerException("Timeout on getting node details")
-
-    def create_node(
-        self,
-        name,
-        size=None,
-        image=None,
-        location=None,
-        ex_domain=None,
-        ex_cpus=None,
-        ex_disk=None,
-        ex_ram=None,
-        ex_bandwidth=None,
-        ex_local_disk=None,
-        ex_datacenter=None,
-        ex_os=None,
-        ex_keyname=None,
-        ex_hourly=True,
-    ):
-        """Create a new SoftLayer node
-
-        @inherits: :class:`NodeDriver.create_node`
-
-        :keyword    ex_domain: e.g. libcloud.org
-        :type       ex_domain: ``str``
-        :keyword    ex_cpus: e.g. 2
-        :type       ex_cpus: ``int``
-        :keyword    ex_disk: e.g. 100
-        :type       ex_disk: ``int``
-        :keyword    ex_ram: e.g. 2048
-        :type       ex_ram: ``int``
-        :keyword    ex_bandwidth: e.g. 100
-        :type       ex_bandwidth: ``int``
-        :keyword    ex_local_disk: e.g. True
-        :type       ex_local_disk: ``bool``
-        :keyword    ex_datacenter: e.g. Dal05
-        :type       ex_datacenter: ``str``
-        :keyword    ex_os: e.g. UBUNTU_LATEST
-        :type       ex_os: ``str``
-        :keyword    ex_keyname: The name of the key pair
-        :type       ex_keyname: ``str``
-        """
-        os = "DEBIAN_LATEST"
-        if ex_os:
-            os = ex_os
-        elif image:
-            os = image.id
-
-        size = size or NodeSize(
-            id=123,
-            name="Custom",
-            ram=None,
-            disk=None,
-            bandwidth=None,
-            price=None,
-            driver=self.connection.driver,
-        )
-        ex_size_data = SL_TEMPLATES.get(int(size.id)) or {}
-        # plan keys are ints
-        cpu_count = ex_cpus or ex_size_data.get("cpus") or DEFAULT_CPU_SIZE
-        ram = ex_ram or ex_size_data.get("ram") or DEFAULT_RAM_SIZE
-        bandwidth = ex_bandwidth or size.bandwidth or 10
-        hourly = ex_hourly
-
-        local_disk = "true"
-        if ex_size_data.get("local_disk") is False:
-            local_disk = "false"
-
-        if ex_local_disk is False:
-            local_disk = "false"
-
-        disk_size = DEFAULT_DISK_SIZE
-        if size.disk:
-            disk_size = size.disk
-        if ex_disk:
-            disk_size = ex_disk
-
-        datacenter = ""
-        if ex_datacenter:
-            datacenter = ex_datacenter
-        elif location:
-            datacenter = location.id
-
-        domain = ex_domain
-        if domain is None:
-            if name.find(".") != -1:
-                domain = name[name.find(".") + 1 :]
-        if domain is None:
-            # TODO: domain is a required argument for the Sofylayer API, but it
-            # it shouldn't be.
-            domain = DEFAULT_DOMAIN
-
-        newCCI = {
-            "hostname": name,
-            "domain": domain,
-            "startCpus": cpu_count,
-            "maxMemory": ram,
-            "networkComponents": [{"maxSpeed": bandwidth}],
-            "hourlyBillingFlag": hourly,
-            "operatingSystemReferenceCode": os,
-            "localDiskFlag": local_disk,
-            "blockDevices": [{"device": "0", "diskImage": {"capacity": disk_size}}],
-        }
-
-        if datacenter:
-            newCCI["datacenter"] = {"name": datacenter}
-
-        if ex_keyname:
-            newCCI["sshKeys"] = [{"id": self._key_name_to_id(ex_keyname)}]
-
-        res = self.connection.request("SoftLayer_Virtual_Guest", "createObject", newCCI).object
-
-        node_id = res["id"]
-        raw_node = self._get_order_information(node_id)
-
-        return self._to_node(raw_node)
-
-    def list_key_pairs(self):
-        result = self.connection.request("SoftLayer_Account", "getSshKeys").object
-        elems = [x for x in result]
-        key_pairs = self._to_key_pairs(elems=elems)
-        return key_pairs
-
-    def get_key_pair(self, name):
-        key_id = self._key_name_to_id(name=name)
-        result = self.connection.request(
-            "SoftLayer_Security_Ssh_Key", "getObject", id=key_id
-        ).object
-        return self._to_key_pair(result)
-
-    # TODO: Check this with the libcloud guys,
-    # can we create new dependencies?
-    def create_key_pair(self, name, ex_size=4096):
-        if crypto is False:
-            raise NotImplementedError("create_key_pair needs" "the cryptography library")
-        key = rsa.generate_private_key(
-            public_exponent=65537, key_size=4096, backend=default_backend()
-        )
-        public_key = key.public_key().public_bytes(
-            encoding=serialization.Encoding.OpenSSH,
-            format=serialization.PublicFormat.OpenSSH,
-        )
-        new_key = {
-            "key": public_key,
-            "label": name,
-            "notes": "",
-        }
-        result = self.connection.request(
-            "SoftLayer_Security_Ssh_Key", "createObject", new_key
-        ).object
-        result["private"] = key.private_bytes(
-            encoding=serialization.Encoding.PEM,
-            format=serialization.PrivateFormat.TraditionalOpenSSL,
-            encryption_algorithm=serialization.NoEncryption(),
-        )
-        return self._to_key_pair(result)
-
-    def import_key_pair_from_string(self, name, key_material):
-        new_key = {
-            "key": key_material,
-            "label": name,
-            "notes": "",
-        }
-        result = self.connection.request(
-            "SoftLayer_Security_Ssh_Key", "createObject", new_key
-        ).object
-
-        key_pair = self._to_key_pair(result)
-        return key_pair
-
-    def delete_key_pair(self, key_pair):
-        key = self._key_name_to_id(key_pair)
-        result = self.connection.request(
-            "SoftLayer_Security_Ssh_Key", "deleteObject", id=key
-        ).object
-        return result
-
-    def _to_image(self, img):
-        return NodeImage(
-            id=img["template"]["operatingSystemReferenceCode"],
-            name=img["itemPrice"]["item"]["description"],
-            driver=self.connection.driver,
-        )
-
-    def list_images(self, location=None):
-        result = self.connection.request("SoftLayer_Virtual_Guest", "getCreateObjectOptions").object
-        return [self._to_image(i) for i in result["operatingSystems"]]
-
-    def get_image(self, image_id):
-        """
-        Gets an image based on an image_id.
-
-        :param image_id: Image identifier
-        :type image_id: ``str``
-
-        :return: A NodeImage object
-        :rtype: :class:`NodeImage`
-
-        """
-        images = self.list_images()
-        images = [image for image in images if image.id == image_id]
-        if len(images) < 1:
-            raise SoftLayerException("could not find the image with id %s" % image_id)
-        image = images[0]
-        return image
-
-    def _to_size(self, id, size):
-        return NodeSize(
-            id=id,
-            name=size["name"],
-            ram=size["ram"],
-            disk=size["disk"],
-            bandwidth=size.get("bandwidth"),
-            price=self._get_size_price(str(id)),
-            driver=self.connection.driver,
-        )
-
-    def list_sizes(self, location=None):
-        return [self._to_size(id, s) for id, s in SL_TEMPLATES.items()]
-
-    def _to_loc(self, loc):
-        country = "UNKNOWN"
-        loc_id = loc["template"]["datacenter"]["name"]
-        name = loc_id
-
-        if loc_id in DATACENTERS:
-            country = DATACENTERS[loc_id]["country"]
-            name = DATACENTERS[loc_id].get("name", loc_id)
-        return NodeLocation(id=loc_id, name=name, country=country, driver=self)
-
-    def list_locations(self):
-        res = self.connection.request("SoftLayer_Virtual_Guest", "getCreateObjectOptions").object
-        return [self._to_loc(loc) for loc in res["datacenters"]]
-
-    def list_nodes(self):
-        mask = {
-            "virtualGuests": {
-                "powerState": "",
-                "hostname": "",
-                "maxMemory": "",
-                "datacenter": "",
-                "operatingSystem": {"passwords": ""},
-                "billingItem": "",
-            },
-        }
-        res = self.connection.request(
-            "SoftLayer_Account", "getVirtualGuests", object_mask=mask
-        ).object
-        return [self._to_node(h) for h in res]
-
-    def _to_key_pairs(self, elems):
-        key_pairs = [self._to_key_pair(elem=elem) for elem in elems]
-        return key_pairs
-
-    def _to_key_pair(self, elem):
-        key_pair = KeyPair(
-            name=elem["label"],
-            public_key=elem["key"],
-            fingerprint=elem["fingerprint"],
-            private_key=elem.get("private", None),
-            driver=self,
-            extra={"id": elem["id"]},
-        )
-        return key_pair
-
-    def _key_name_to_id(self, name):
-        result = self.connection.request("SoftLayer_Account", "getSshKeys").object
-        key_id = [x for x in result if x["label"] == name]
-        if len(key_id) == 0:
-            raise KeyPairDoesNotExistError(name, self)
-        else:
-            return int(key_id[0]["id"])
diff --git a/libcloud/compute/drivers/voxel.py b/libcloud/compute/drivers/voxel.py
deleted file mode 100644
index 7b790be..0000000
--- a/libcloud/compute/drivers/voxel.py
+++ /dev/null
@@ -1,329 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""
-Voxel VoxCloud driver
-"""
-import hashlib
-import datetime
-
-from libcloud.utils.py3 import b
-from libcloud.common.base import XmlResponse, ConnectionUserAndKey
-from libcloud.common.types import InvalidCredsError
-from libcloud.compute.base import Node, NodeSize, NodeImage, NodeDriver, NodeLocation
-from libcloud.compute.types import NodeState
-from libcloud.compute.providers import Provider
-
-VOXEL_API_HOST = "api.voxel.net"
-
-
-class VoxelResponse(XmlResponse):
-    def __init__(self, response, connection):
-        self.parsed = None
-        super().__init__(response=response, connection=connection)
-
-    def parse_body(self):
-        if not self.body:
-            return None
-        if self.parsed is None:
-            self.parsed = super().parse_body()
-        return self.parsed
-
-    def parse_error(self):
-        err_list = []
-        if not self.body:
-            return None
-        if self.parsed is None:
-            self.parsed = super().parse_body()
-        for err in self.parsed.findall("err"):
-            code = err.get("code")
-            err_list.append("({}) {}".format(code, err.get("msg")))
-            # From voxel docs:
-            # 1: Invalid login or password
-            # 9: Permission denied: user lacks access rights for this method
-            if code == "1" or code == "9":
-                # sucks, but only way to detect
-                # bad authentication tokens so far
-                raise InvalidCredsError(err_list[-1])
-        return "\n".join(err_list)
-
-    def success(self):
-        if not self.parsed:
-            self.parsed = super().parse_body()
-        stat = self.parsed.get("stat")
-        if stat != "ok":
-            return False
-        return True
-
-
-class VoxelConnection(ConnectionUserAndKey):
-    """
-    Connection class for the Voxel driver
-    """
-
-    host = VOXEL_API_HOST
-    responseCls = VoxelResponse
-
-    def add_default_params(self, params):
-        params = {k: v for k, v in list(params.items()) if v is not None}
-        params["key"] = self.user_id
-        params["timestamp"] = datetime.datetime.utcnow().isoformat() + "+0000"
-
-        keys = list(params.keys())
-        keys.sort()
-
-        md5 = hashlib.md5()
-        md5.update(b(self.key))
-        for key in keys:
-            if params[key]:
-                if not params[key] is None:
-                    md5.update(b("{}{}".format(key, params[key])))
-                else:
-                    md5.update(b(key))
-        params["api_sig"] = md5.hexdigest()
-        return params
-
-
-VOXEL_INSTANCE_TYPES = {}
-RAM_PER_CPU = 2048
-
-NODE_STATE_MAP = {
-    "IN_PROGRESS": NodeState.PENDING,
-    "QUEUED": NodeState.PENDING,
-    "SUCCEEDED": NodeState.RUNNING,
-    "shutting-down": NodeState.TERMINATED,
-    "terminated": NodeState.TERMINATED,
-    "unknown": NodeState.UNKNOWN,
-}
-
-
-class VoxelNodeDriver(NodeDriver):
-    """
-    Voxel VoxCLOUD node driver
-    """
-
-    connectionCls = VoxelConnection
-    type = Provider.VOXEL
-    name = "Voxel VoxCLOUD"
-    website = "http://www.voxel.net/"
-
-    def _initialize_instance_types():  # pylint: disable=no-method-argument
-        for cpus in range(1, 14):
-            if cpus == 1:
-                name = "Single CPU"
-            else:
-                name = "%d CPUs" % cpus
-            id = "%dcpu" % cpus
-            ram = cpus * RAM_PER_CPU
-
-            VOXEL_INSTANCE_TYPES[id] = {
-                "id": id,
-                "name": name,
-                "ram": ram,
-                "disk": None,
-                "bandwidth": None,
-                "price": None,
-            }
-
-    features = {"create_node": [], "list_sizes": ["variable_disk"]}
-
-    _initialize_instance_types()  # pylint: disable=too-many-function-args
-
-    def list_nodes(self):
-        params = {"method": "voxel.devices.list"}
-        result = self.connection.request("/", params=params).object
-        return self._to_nodes(result)
-
-    def list_sizes(self, location=None):
-        return [
-            NodeSize(driver=self.connection.driver, **i)
-            for i in list(VOXEL_INSTANCE_TYPES.values())
-        ]
-
-    def list_images(self, location=None):
-        params = {"method": "voxel.images.list"}
-        result = self.connection.request("/", params=params).object
-        return self._to_images(result)
-
-    def create_node(
-        self,
-        name,
-        size,
-        image,
-        location,
-        ex_privateip=None,
-        ex_publicip=None,
-        ex_rootpass=None,
-        ex_consolepass=None,
-        ex_sshuser=None,
-        ex_sshpass=None,
-        ex_voxel_access=None,
-    ):
-        """Create Voxel Node
-
-        :keyword name: the name to assign the node (mandatory)
-        :type    name: ``str``
-
-        :keyword image: distribution to deploy
-        :type    image: :class:`NodeImage`
-
-        :keyword size: the plan size to create (mandatory)
-                       Requires size.disk (GB) to be set manually
-        :type    size: :class:`NodeSize`
-
-        :keyword location: which datacenter to create the node in
-        :type    location: :class:`NodeLocation`
-
-        :keyword ex_privateip: Backend IP address to assign to node;
-                               must be chosen from the customer's
-                               private VLAN assignment.
-        :type    ex_privateip: ``str``
-
-        :keyword ex_publicip: Public-facing IP address to assign to node;
-                              must be chosen from the customer's
-                              public VLAN assignment.
-        :type    ex_publicip: ``str``
-
-        :keyword ex_rootpass: Password for root access; generated if unset.
-        :type    ex_rootpass: ``str``
-
-        :keyword ex_consolepass: Password for remote console;
-                                 generated if unset.
-        :type    ex_consolepass: ``str``
-
-        :keyword ex_sshuser: Username for SSH access
-        :type    ex_sshuser: ``str``
-
-        :keyword ex_sshpass: Password for SSH access; generated if unset.
-        :type    ex_sshpass: ``str``
-
-        :keyword ex_voxel_access: Allow access Voxel administrative access.
-                                  Defaults to False.
-        :type    ex_voxel_access: ``bool``
-
-        :rtype: :class:`Node` or ``None``
-        """
-
-        # assert that disk > 0
-        if not size.disk:
-            raise ValueError("size.disk must be non-zero")
-
-        # convert voxel_access to string boolean if needed
-        if ex_voxel_access is not None:
-            ex_voxel_access = "true" if ex_voxel_access else "false"
-
-        params = {
-            "method": "voxel.voxcloud.create",
-            "hostname": name,
-            "disk_size": int(size.disk),
-            "facility": location.id,
-            "image_id": image.id,
-            "processing_cores": size.ram / RAM_PER_CPU,
-            "backend_ip": ex_privateip,
-            "frontend_ip": ex_publicip,
-            "admin_password": ex_rootpass,
-            "console_password": ex_consolepass,
-            "ssh_username": ex_sshuser,
-            "ssh_password": ex_sshpass,
-            "voxel_access": ex_voxel_access,
-        }
-
-        object = self.connection.request("/", params=params).object
-
-        if self._getstatus(object):
-            return Node(
-                id=object.findtext("device/id"),
-                name=name,
-                state=NODE_STATE_MAP[object.findtext("device/status")],
-                public_ips=ex_publicip,
-                private_ips=ex_privateip,
-                driver=self.connection.driver,
-            )
-        else:
-            return None
-
-    def reboot_node(self, node):
-        params = {
-            "method": "voxel.devices.power",
-            "device_id": node.id,
-            "power_action": "reboot",
-        }
-        return self._getstatus(self.connection.request("/", params=params).object)
-
-    def destroy_node(self, node):
-        params = {"method": "voxel.voxcloud.delete", "device_id": node.id}
-        return self._getstatus(self.connection.request("/", params=params).object)
-
-    def list_locations(self):
-        params = {"method": "voxel.voxcloud.facilities.list"}
-        result = self.connection.request("/", params=params).object
-        nodes = self._to_locations(result)
-        return nodes
-
-    def _getstatus(self, element):
-        status = element.attrib["stat"]
-        return status == "ok"
-
-    def _to_locations(self, object):
-        return [
-            NodeLocation(
-                element.attrib["label"],
-                element.findtext("description"),
-                element.findtext("description"),
-                self,
-            )
-            for element in object.findall("facilities/facility")
-        ]
-
-    def _to_nodes(self, object):
-        nodes = []
-        for element in object.findall("devices/device"):
-            if element.findtext("type") == "Virtual Server":
-                try:
-                    state = self.NODE_STATE_MAP[element.attrib["status"]]
-                except KeyError:
-                    state = NodeState.UNKNOWN
-
-                public_ip = private_ip = None
-                ipassignments = element.findall("ipassignments/ipassignment")
-                for ip in ipassignments:
-                    if ip.attrib["type"] == "frontend":
-                        public_ip = ip.text
-                    elif ip.attrib["type"] == "backend":
-                        private_ip = ip.text
-
-                nodes.append(
-                    Node(
-                        id=element.attrib["id"],
-                        name=element.attrib["label"],
-                        state=state,
-                        public_ips=public_ip,
-                        private_ips=private_ip,
-                        driver=self.connection.driver,
-                    )
-                )
-        return nodes
-
-    def _to_images(self, object):
-        images = []
-        for element in object.findall("images/image"):
-            images.append(
-                NodeImage(
-                    id=element.attrib["id"],
-                    name=element.attrib["summary"],
-                    driver=self.connection.driver,
-                )
-            )
-        return images
diff --git a/libcloud/compute/providers.py b/libcloud/compute/providers.py
index d5c3328..d50fb13 100644
--- a/libcloud/compute/providers.py
+++ b/libcloud/compute/providers.py
@@ -36,39 +36,22 @@
     Provider.AZURE_ARM: ("libcloud.compute.drivers.azure_arm", "AzureNodeDriver"),
     Provider.DUMMY: ("libcloud.compute.drivers.dummy", "DummyNodeDriver"),
     Provider.EC2: ("libcloud.compute.drivers.ec2", "EC2NodeDriver"),
-    Provider.ECP: ("libcloud.compute.drivers.ecp", "ECPNodeDriver"),
-    Provider.ELASTICHOSTS: (
-        "libcloud.compute.drivers.elastichosts",
-        "ElasticHostsNodeDriver",
-    ),
-    Provider.SKALICLOUD: (
-        "libcloud.compute.drivers.skalicloud",
-        "SkaliCloudNodeDriver",
-    ),
-    Provider.SERVERLOVE: (
-        "libcloud.compute.drivers.serverlove",
-        "ServerLoveNodeDriver",
-    ),
     Provider.CLOUDSIGMA: (
         "libcloud.compute.drivers.cloudsigma",
         "CloudSigmaNodeDriver",
     ),
     Provider.GCE: ("libcloud.compute.drivers.gce", "GCENodeDriver"),
-    Provider.GOGRID: ("libcloud.compute.drivers.gogrid", "GoGridNodeDriver"),
     Provider.RACKSPACE: ("libcloud.compute.drivers.rackspace", "RackspaceNodeDriver"),
     Provider.RACKSPACE_FIRST_GEN: (
         "libcloud.compute.drivers.rackspace",
         "RackspaceFirstGenNodeDriver",
     ),
-    Provider.KILI: ("libcloud.compute.drivers.kili", "KiliCloudNodeDriver"),
     Provider.VPSNET: ("libcloud.compute.drivers.vpsnet", "VPSNetNodeDriver"),
     Provider.LINODE: ("libcloud.compute.drivers.linode", "LinodeNodeDriver"),
     Provider.RIMUHOSTING: (
         "libcloud.compute.drivers.rimuhosting",
         "RimuHostingNodeDriver",
     ),
-    Provider.VOXEL: ("libcloud.compute.drivers.voxel", "VoxelNodeDriver"),
-    Provider.SOFTLAYER: ("libcloud.compute.drivers.softlayer", "SoftLayerNodeDriver"),
     Provider.EUCALYPTUS: ("libcloud.compute.drivers.ec2", "EucNodeDriver"),
     Provider.OPENNEBULA: (
         "libcloud.compute.drivers.opennebula",
@@ -76,7 +59,6 @@
     ),
     Provider.BRIGHTBOX: ("libcloud.compute.drivers.brightbox", "BrightboxNodeDriver"),
     Provider.NIMBUS: ("libcloud.compute.drivers.ec2", "NimbusNodeDriver"),
-    Provider.BLUEBOX: ("libcloud.compute.drivers.bluebox", "BlueboxNodeDriver"),
     Provider.GANDI: ("libcloud.compute.drivers.gandi", "GandiNodeDriver"),
     Provider.DIMENSIONDATA: (
         "libcloud.compute.drivers.dimensiondata",
@@ -90,38 +72,24 @@
         "CloudStackNodeDriver",
     ),
     Provider.LIBVIRT: ("libcloud.compute.drivers.libvirt_driver", "LibvirtNodeDriver"),
-    Provider.JOYENT: ("libcloud.compute.drivers.joyent", "JoyentNodeDriver"),
     Provider.VCL: ("libcloud.compute.drivers.vcl", "VCLNodeDriver"),
     Provider.KTUCLOUD: ("libcloud.compute.drivers.ktucloud", "KTUCloudNodeDriver"),
-    Provider.HOSTVIRTUAL: (
-        "libcloud.compute.drivers.hostvirtual",
-        "HostVirtualNodeDriver",
-    ),
     Provider.ABIQUO: ("libcloud.compute.drivers.abiquo", "AbiquoNodeDriver"),
     Provider.DIGITAL_OCEAN: (
         "libcloud.compute.drivers.digitalocean",
         "DigitalOceanNodeDriver",
     ),
-    Provider.NEPHOSCALE: (
-        "libcloud.compute.drivers.nephoscale",
-        "NephoscaleNodeDriver",
-    ),
     Provider.EXOSCALE: ("libcloud.compute.drivers.exoscale", "ExoscaleNodeDriver"),
     Provider.IKOULA: ("libcloud.compute.drivers.ikoula", "IkoulaNodeDriver"),
     Provider.OUTSCALE_SAS: ("libcloud.compute.drivers.ec2", "OutscaleSASNodeDriver"),
     Provider.OUTSCALE_INC: ("libcloud.compute.drivers.ec2", "OutscaleINCNodeDriver"),
     Provider.OUTSCALE: ("libcloud.compute.drivers.outscale", "OutscaleNodeDriver"),
-    Provider.PROFIT_BRICKS: (
-        "libcloud.compute.drivers.profitbricks",
-        "ProfitBricksNodeDriver",
-    ),
     Provider.VSPHERE: ("libcloud.compute.drivers.vsphere", "VSphereNodeDriver"),
     Provider.VULTR: ("libcloud.compute.drivers.vultr", "VultrNodeDriver"),
     Provider.AURORACOMPUTE: (
         "libcloud.compute.drivers.auroracompute",
         "AuroraComputeNodeDriver",
     ),
-    Provider.CLOUDWATT: ("libcloud.compute.drivers.cloudwatt", "CloudwattNodeDriver"),
     Provider.EQUINIXMETAL: (
         "libcloud.compute.drivers.equinixmetal",
         "EquinixMetalNodeDriver",
@@ -132,16 +100,12 @@
         "libcloud.compute.drivers.internetsolutions",
         "InternetSolutionsNodeDriver",
     ),
-    Provider.INDOSAT: ("libcloud.compute.drivers.indosat", "IndosatNodeDriver"),
-    Provider.MEDONE: ("libcloud.compute.drivers.medone", "MedOneNodeDriver"),
-    Provider.BSNL: ("libcloud.compute.drivers.bsnl", "BSNLNodeDriver"),
     Provider.NTTA: ("libcloud.compute.drivers.ntta", "NTTAmericaNodeDriver"),
     Provider.ALIYUN_ECS: ("libcloud.compute.drivers.ecs", "ECSDriver"),
     Provider.CLOUDSCALE: (
         "libcloud.compute.drivers.cloudscale",
         "CloudscaleNodeDriver",
     ),
-    Provider.ONEANDONE: ("libcloud.compute.drivers.oneandone", "OneAndOneNodeDriver"),
     Provider.UPCLOUD: ("libcloud.compute.drivers.upcloud", "UpcloudDriver"),
     Provider.NTTCIS: ("libcloud.compute.drivers.nttcis", "NttCisNodeDriver"),
     Provider.SCALEWAY: ("libcloud.compute.drivers.scaleway", "ScalewayNodeDriver"),
diff --git a/libcloud/compute/types.py b/libcloud/compute/types.py
index 04194bb..1ff5983 100644
--- a/libcloud/compute/types.py
+++ b/libcloud/compute/types.py
@@ -51,28 +51,21 @@
     :cvar AURORACOMPUTE: Aurora Compute driver.
     :cvar AZURE: Azure (classic) driver.
     :cvar AZURE_ARM: Azure Resource Manager (modern) driver.
-    :cvar BLUEBOX: Bluebox
     :cvar CLOUDSIGMA: CloudSigma
     :cvar CLOUDSCALE: cloudscale.ch
     :cvar CLOUDSTACK: CloudStack
     :cvar DIMENSIONDATA: Dimension Data Cloud
     :cvar EC2: Amazon AWS.
-    :cvar ECP: Enomaly
-    :cvar ELASTICHOSTS: ElasticHosts.com
     :cvar EXOSCALE: Exoscale driver.
     :cvar GCE: Google Compute Engine
-    :cvar GOGRID: GoGrid
     :cvar GRIDSCALE: gridscale
-    :cvar GRIDSPOT: Gridspot driver
     :cvar IBM: IBM Developer Cloud
     :cvar IKOULA: Ikoula driver.
-    :cvar JOYENT: Joyent driver
     :cvar KAMATERA: Kamatera driver
     :cvar KTUCLOUD: kt ucloud driver
     :cvar KUBEVIRT: kubevirt driver
     :cvar LIBVIRT: Libvirt driver
     :cvar LINODE: Linode.com
-    :cvar NEPHOSCALE: NephoScale driver
     :cvar NIMBUS: Nimbus
     :cvar NINEFOLD: Ninefold
     :cvar NTTC-CIS: NTT Communications CIS
@@ -81,7 +74,6 @@
     :cvar OUTSCALE_INC: Outscale INC driver.
     :cvar OUTSCALE_SAS: Outscale SAS driver.
     :cvar OUTSCALE_SDK: Outscale SDK driver.
-    :cvar PROFIT_BRICKS: ProfitBricks driver.
     :cvar RACKSPACE: Rackspace next-gen OpenStack based Cloud Servers
     :cvar RACKSPACE_FIRST_GEN: Rackspace First Gen Cloud Servers
     :cvar RIMUHOSTING: RimuHosting.com
@@ -100,9 +92,7 @@
     ABIQUO = "abiquo"
     ALIYUN_ECS = "aliyun_ecs"
     AURORACOMPUTE = "aurora_compute"
-    BLUEBOX = "bluebox"
     BRIGHTBOX = "brightbox"
-    BSNL = "bsnl"
     CISCOCCS = "ciscoccs"
     CLOUDFRAMES = "cloudframes"
     CLOUDSIGMA = "cloudsigma"
@@ -111,36 +101,26 @@
     DIGITAL_OCEAN = "digitalocean"
     DIMENSIONDATA = "dimensiondata"
     EC2 = "ec2"
-    ECP = "ecp"
-    ELASTICHOSTS = "elastichosts"
     EQUINIXMETAL = "equinixmetal"
     EUCALYPTUS = "eucalyptus"
     EXOSCALE = "exoscale"
     GANDI = "gandi"
     GCE = "gce"
     GIG_G8 = "gig_g8"
-    GOGRID = "gogrid"
     GRIDSCALE = "gridscale"
-    GRIDSPOT = "gridspot"
-    HOSTVIRTUAL = "hostvirtual"
     IBM = "ibm"
     IKOULA = "ikoula"
-    INDOSAT = "indosat"
     INTERNETSOLUTIONS = "internetsolutions"
-    JOYENT = "joyent"
     KAMATERA = "kamatera"
     KTUCLOUD = "ktucloud"
     KUBEVIRT = "kubevirt"
     LIBVIRT = "libvirt"
     LINODE = "linode"
     MAXIHOST = "maxihost"
-    MEDONE = "medone"
-    NEPHOSCALE = "nephoscale"
     NIMBUS = "nimbus"
     NINEFOLD = "ninefold"
     NTTA = "ntta"
     NTTCIS = "nttcis"
-    ONEANDONE = "oneandone"
     OPENNEBULA = "opennebula"
     OPENSTACK = "openstack"
     OPSOURCE = "opsource"
@@ -148,28 +128,21 @@
     OUTSCALE_SAS = "outscale_sas"
     OUTSCALE = "outscale"
     OVH = "ovh"
-    PROFIT_BRICKS = "profitbricks"
     RACKSPACE = "rackspace"
     RACKSPACE_FIRST_GEN = "rackspace_first_gen"
     RIMUHOSTING = "rimuhosting"
     RUNABOVE = "runabove"
     SCALEWAY = "scaleway"
-    SERVERLOVE = "serverlove"
-    SKALICLOUD = "skalicloud"
-    SOFTLAYER = "softlayer"
     TERREMARK = "terremark"
     UPCLOUD = "upcloud"
     VCL = "vcl"
     VCLOUD = "vcloud"
-    VOXEL = "voxel"
     VPSNET = "vpsnet"
     VSPHERE = "vsphere"
     VULTR = "vultr"
 
     # OpenStack based providers
-    CLOUDWATT = "cloudwatt"
     HPCLOUD = "hpcloud"
-    KILI = "kili"
     ONAPP = "onapp"
 
     # Deprecated constants which aren't supported anymore
@@ -194,15 +167,6 @@
     EC2_AP_SOUTHEAST2 = "ec2_ap_southeast_2"
     EC2_CA_CENTRAL1 = "ec2_ca_central_1"
 
-    ELASTICHOSTS_UK1 = "elastichosts_uk1"
-    ELASTICHOSTS_UK2 = "elastichosts_uk2"
-    ELASTICHOSTS_US1 = "elastichosts_us1"
-    ELASTICHOSTS_US2 = "elastichosts_us2"
-    ELASTICHOSTS_US3 = "elastichosts_us3"
-    ELASTICHOSTS_CA1 = "elastichosts_ca1"
-    ELASTICHOSTS_AU1 = "elastichosts_au1"
-    ELASTICHOSTS_CN1 = "elastichosts_cn1"
-
     CLOUDSIGMA_US = "cloudsigma_us"
 
     # Removed
@@ -238,15 +202,6 @@
     Provider.EC2_US_WEST_OREGON: Provider.EC2,
     Provider.EC2_SA_EAST: Provider.EC2,
     Provider.EC2_CA_CENTRAL1: Provider.EC2,
-    # ElasticHosts
-    Provider.ELASTICHOSTS_UK1: Provider.ELASTICHOSTS,
-    Provider.ELASTICHOSTS_UK2: Provider.ELASTICHOSTS,
-    Provider.ELASTICHOSTS_US1: Provider.ELASTICHOSTS,
-    Provider.ELASTICHOSTS_US2: Provider.ELASTICHOSTS,
-    Provider.ELASTICHOSTS_US3: Provider.ELASTICHOSTS,
-    Provider.ELASTICHOSTS_CA1: Provider.ELASTICHOSTS,
-    Provider.ELASTICHOSTS_AU1: Provider.ELASTICHOSTS,
-    Provider.ELASTICHOSTS_CN1: Provider.ELASTICHOSTS,
 }
 
 
diff --git a/libcloud/container/drivers/joyent.py b/libcloud/container/drivers/joyent.py
deleted file mode 100644
index 92faa0f..0000000
--- a/libcloud/container/drivers/joyent.py
+++ /dev/null
@@ -1,83 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-from libcloud.container.providers import Provider
-from libcloud.container.drivers.docker import DockerConnection, DockerContainerDriver
-
-
-class JoyentContainerDriver(DockerContainerDriver):
-    """
-    Joyent Triton container driver class.
-
-    >>> from libcloud.container.providers import get_driver
-    >>> driver = get_driver('joyent')
-    >>> conn = driver(host='https://us-east-1.docker.joyent.com',
-        port=2376, key_file='key.pem', cert_file='cert.pem')
-    """
-
-    type = Provider.JOYENT
-    name = "Joyent Triton"
-    website = "http://joyent.com"
-    connectionCls = DockerConnection
-    supports_clusters = False
-
-    def __init__(
-        self,
-        key=None,
-        secret=None,
-        secure=False,
-        host="localhost",
-        port=2376,
-        key_file=None,
-        cert_file=None,
-    ):
-
-        super().__init__(
-            key=key,
-            secret=secret,
-            secure=secure,
-            host=host,
-            port=port,
-            key_file=key_file,
-            cert_file=cert_file,
-        )
-        if host.startswith("https://"):
-            secure = True
-
-        # strip the prefix
-        prefixes = ["http://", "https://"]
-        for prefix in prefixes:
-            if host.startswith(prefix):
-                host = host.strip(prefix)
-
-        if key_file or cert_file:
-            # docker tls authentication-
-            # https://docs.docker.com/articles/https/
-            # We pass two files, a key_file with the
-            # private key and cert_file with the certificate
-            # libcloud will handle them through LibcloudHTTPSConnection
-            if not (key_file and cert_file):
-                raise Exception(
-                    "Needs both private key file and " "certificate file for tls authentication"
-                )
-            self.connection.key_file = key_file
-            self.connection.cert_file = cert_file
-            self.connection.secure = True
-        else:
-            self.connection.secure = secure
-
-        self.connection.host = host
-        self.connection.port = port
diff --git a/libcloud/container/providers.py b/libcloud/container/providers.py
index 8c65c1b..0a994fe 100644
--- a/libcloud/container/providers.py
+++ b/libcloud/container/providers.py
@@ -27,7 +27,6 @@
 DRIVERS = {
     Provider.DUMMY: ("libcloud.container.drivers.dummy", "DummyContainerDriver"),
     Provider.DOCKER: ("libcloud.container.drivers.docker", "DockerContainerDriver"),
-    Provider.JOYENT: ("libcloud.container.drivers.joyent", "JoyentContainerDriver"),
     Provider.ECS: ("libcloud.container.drivers.ecs", "ElasticContainerDriver"),
     Provider.KUBERNETES: (
         "libcloud.container.drivers.kubernetes",
diff --git a/libcloud/container/types.py b/libcloud/container/types.py
index 5524499..69c949a 100644
--- a/libcloud/container/types.py
+++ b/libcloud/container/types.py
@@ -48,7 +48,6 @@
     DOCKER = "docker"
     ECS = "ecs"
     GKE = "GKE"
-    JOYENT = "joyent"
     KUBERNETES = "kubernetes"
     LXD = "lxd"
     RANCHER = "rancher"
diff --git a/libcloud/dns/drivers/hostvirtual.py b/libcloud/dns/drivers/hostvirtual.py
deleted file mode 100644
index 95fc856..0000000
--- a/libcloud/dns/drivers/hostvirtual.py
+++ /dev/null
@@ -1,250 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-__all__ = ["HostVirtualDNSDriver"]
-
-try:
-    import simplejson as json
-except Exception:
-    import json
-
-from libcloud.dns.base import Zone, Record, DNSDriver
-from libcloud.dns.types import Provider, RecordType, ZoneDoesNotExistError, RecordDoesNotExistError
-from libcloud.utils.py3 import httplib
-from libcloud.utils.misc import get_new_obj, merge_valid_keys
-from libcloud.common.hostvirtual import HostVirtualResponse, HostVirtualConnection
-from libcloud.compute.drivers.hostvirtual import API_ROOT
-
-VALID_RECORD_EXTRA_PARAMS = ["prio", "ttl"]
-
-
-class HostVirtualDNSResponse(HostVirtualResponse):
-    def parse_error(self):
-        context = self.connection.context
-        status = int(self.status)
-
-        if status == httplib.NOT_FOUND:
-            if context["resource"] == "zone":
-                raise ZoneDoesNotExistError(
-                    value=self.parse_body()["error"]["message"],
-                    driver=self,
-                    zone_id=context["id"],
-                )
-            elif context["resource"] == "record":
-                raise RecordDoesNotExistError(
-                    value=self.parse_body()["error"]["message"],
-                    driver=self,
-                    record_id=context["id"],
-                )
-
-        super().parse_error()
-        return self.body
-
-
-class HostVirtualDNSConnection(HostVirtualConnection):
-    responseCls = HostVirtualDNSResponse
-
-
-class HostVirtualDNSDriver(DNSDriver):
-    type = Provider.HOSTVIRTUAL
-    name = "Host Virtual DNS"
-    website = "https://www.hostvirtual.com/"
-    connectionCls = HostVirtualDNSConnection
-
-    RECORD_TYPE_MAP = {
-        RecordType.A: "A",
-        RecordType.AAAA: "AAAA",
-        RecordType.CNAME: "CNAME",
-        RecordType.MX: "MX",
-        RecordType.NS: "SPF",
-        RecordType.SRV: "SRV",
-        RecordType.TXT: "TXT",
-    }
-
-    def __init__(self, key, secure=True, host=None, port=None):
-        super().__init__(key=key, secure=secure, host=host, port=port)
-
-    def _to_zones(self, items):
-        zones = []
-        for item in items:
-            zones.append(self._to_zone(item))
-        return zones
-
-    def _to_zone(self, item):
-        extra = {}
-        if "records" in item:
-            extra["records"] = item["records"]
-        if item["type"] == "NATIVE":
-            item["type"] = "master"
-        zone = Zone(
-            id=item["id"],
-            domain=item["name"],
-            type=item["type"],
-            ttl=item["ttl"],
-            driver=self,
-            extra=extra,
-        )
-        return zone
-
-    def _to_records(self, items, zone=None):
-        records = []
-
-        for item in items:
-            records.append(self._to_record(item=item, zone=zone))
-        return records
-
-    def _to_record(self, item, zone=None):
-        extra = {"ttl": item["ttl"]}
-        type = self._string_to_record_type(item["type"])
-        name = item["name"][: -len(zone.domain) - 1]
-        record = Record(
-            id=item["id"],
-            name=name,
-            type=type,
-            data=item["content"],
-            zone=zone,
-            driver=self,
-            ttl=item["ttl"],
-            extra=extra,
-        )
-        return record
-
-    def list_zones(self):
-        result = self.connection.request(API_ROOT + "/dns/zones/").object
-        zones = self._to_zones(result)
-        return zones
-
-    def list_records(self, zone):
-        params = {"id": zone.id}
-        self.connection.set_context({"resource": "zone", "id": zone.id})
-        try:
-            result = self.connection.request(API_ROOT + "/dns/records/", params=params).object
-        except ZoneDoesNotExistError as e:
-            if "Not Found: No Records Found" in e.value:
-                return []
-            raise e
-        records = self._to_records(items=result, zone=zone)
-        return records
-
-    def get_zone(self, zone_id):
-        params = {"id": zone_id}
-        self.connection.set_context({"resource": "zone", "id": zone_id})
-        result = self.connection.request(API_ROOT + "/dns/zone/", params=params).object
-        if "id" not in result:
-            raise ZoneDoesNotExistError(value="", driver=self, zone_id=zone_id)
-        zone = self._to_zone(result)
-        return zone
-
-    def get_record(self, zone_id, record_id):
-        zone = self.get_zone(zone_id=zone_id)
-        params = {"id": record_id}
-        self.connection.set_context({"resource": "record", "id": record_id})
-        result = self.connection.request(API_ROOT + "/dns/record/", params=params).object
-        if "id" not in result:
-            raise RecordDoesNotExistError(value="", driver=self, record_id=record_id)
-        record = self._to_record(item=result, zone=zone)
-        return record
-
-    def delete_zone(self, zone):
-        params = {"id": zone.id}
-        self.connection.set_context({"resource": "zone", "id": zone.id})
-        result = self.connection.request(
-            API_ROOT + "/dns/zone/", params=params, method="DELETE"
-        ).object
-        return bool(result)
-
-    def delete_record(self, record):
-        params = {"id": record.id}
-        self.connection.set_context({"resource": "record", "id": record.id})
-        result = self.connection.request(
-            API_ROOT + "/dns/record/", params=params, method="DELETE"
-        ).object
-
-        return bool(result)
-
-    def create_zone(self, domain, type="NATIVE", ttl=None, extra=None):
-        if type == "master":
-            type = "NATIVE"
-        elif type == "slave":
-            type = "SLAVE"
-        params = {"name": domain, "type": type, "ttl": ttl}
-        result = self.connection.request(
-            API_ROOT + "/dns/zone/", data=json.dumps(params), method="POST"
-        ).object
-        extra = {"soa": result["soa"], "ns": result["ns"]}
-        zone = Zone(id=result["id"], domain=domain, type=type, ttl=ttl, extra=extra, driver=self)
-        return zone
-
-    def update_zone(self, zone, domain=None, type=None, ttl=None, extra=None):
-        params = {"id": zone.id}
-        if domain:
-            params["name"] = domain
-        if type:
-            params["type"] = type
-        self.connection.set_context({"resource": "zone", "id": zone.id})
-        self.connection.request(
-            API_ROOT + "/dns/zone/", data=json.dumps(params), method="PUT"
-        ).object
-        updated_zone = get_new_obj(
-            obj=zone,
-            klass=Zone,
-            attributes={"domain": domain, "type": type, "ttl": ttl, "extra": extra},
-        )
-        return updated_zone
-
-    def create_record(self, name, zone, type, data, extra=None):
-        params = {
-            "name": name,
-            "type": self.RECORD_TYPE_MAP[type],
-            "domain_id": zone.id,
-            "content": data,
-        }
-        merged = merge_valid_keys(params=params, valid_keys=VALID_RECORD_EXTRA_PARAMS, extra=extra)
-        self.connection.set_context({"resource": "zone", "id": zone.id})
-        result = self.connection.request(
-            API_ROOT + "/dns/record/", data=json.dumps(params), method="POST"
-        ).object
-        record = Record(
-            id=result["id"],
-            name=name,
-            type=type,
-            data=data,
-            extra=merged,
-            zone=zone,
-            ttl=merged.get("ttl", None),
-            driver=self,
-        )
-        return record
-
-    def update_record(self, record, name=None, type=None, data=None, extra=None):
-        params = {"domain_id": record.zone.id, "record_id": record.id}
-        if name:
-            params["name"] = name
-        if data:
-            params["content"] = data
-        if type is not None:
-            params["type"] = self.RECORD_TYPE_MAP[type]
-            merged = merge_valid_keys(
-                params=params, valid_keys=VALID_RECORD_EXTRA_PARAMS, extra=extra
-            )
-        self.connection.set_context({"resource": "record", "id": record.id})
-        self.connection.request(
-            API_ROOT + "/dns/record/", data=json.dumps(params), method="PUT"
-        ).object
-        updated_record = get_new_obj(
-            obj=record,
-            klass=Record,
-            attributes={"name": name, "data": data, "type": type, "extra": merged},
-        )
-        return updated_record
diff --git a/libcloud/dns/drivers/softlayer.py b/libcloud/dns/drivers/softlayer.py
deleted file mode 100644
index 1aae8bd..0000000
--- a/libcloud/dns/drivers/softlayer.py
+++ /dev/null
@@ -1,189 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# pylint: disable=unexpected-keyword-arg
-
-__all__ = ["SoftLayerDNSDriver"]
-
-
-from libcloud.dns.base import Zone, Record, DNSDriver
-from libcloud.dns.types import Provider, RecordType, ZoneDoesNotExistError, RecordDoesNotExistError
-from libcloud.common.softlayer import SoftLayerConnection, SoftLayerObjectDoesntExist
-
-VALID_RECORD_EXTRA_PARAMS = ["priority", "ttl"]
-
-
-class SoftLayerDNSDriver(DNSDriver):
-    type = Provider.SOFTLAYER
-    name = "Softlayer DNS"
-    website = "https://www.softlayer.com"
-    connectionCls = SoftLayerConnection
-
-    RECORD_TYPE_MAP = {
-        RecordType.A: "a",
-        RecordType.AAAA: "aaaa",
-        RecordType.CNAME: "cname",
-        RecordType.MX: "mx",
-        RecordType.NS: "ns",
-        RecordType.PTR: "ptr",
-        RecordType.SOA: "soa",
-        RecordType.SPF: "spf",
-        RecordType.SRV: "srv",
-        RecordType.TXT: "txt",
-    }
-
-    def create_zone(self, domain, ttl=None, extra=None):
-        self.connection.set_context({"resource": "zone", "id": domain})
-        data = {"name": domain, "resourceRecords": []}
-        response = self.connection.request("SoftLayer_Dns_Domain", "createObject", data).object
-        zone = Zone(id=response["id"], domain=domain, type="master", ttl=3600, driver=self)
-        return zone
-
-    def get_zone(self, zone_id):
-        self.connection.set_context({"resource": "zone", "id": zone_id})
-        try:
-            response = self.connection.request(
-                "SoftLayer_Dns_Domain", "getObject", id=zone_id
-            ).object
-        except SoftLayerObjectDoesntExist:
-            raise ZoneDoesNotExistError(value="", driver=self, zone_id=zone_id)
-        return self._to_zone(response)
-
-    def delete_zone(self, zone):
-        self.connection.set_context({"resource": "zone", "id": zone.id})
-        try:
-            self.connection.request("SoftLayer_Dns_Domain", "deleteObject", id=zone.id).object
-        except SoftLayerObjectDoesntExist:
-            raise ZoneDoesNotExistError(value="", driver=self, zone_id=zone.id)
-        else:
-            return True
-
-    def iterate_zones(self):
-        zones_list = self.connection.request("SoftLayer_Dns_Domain", "getByDomainName", ".").object
-        for item in zones_list:
-            yield self._to_zone(item)
-
-    def iterate_records(self, zone):
-        self.connection.set_context({"resource": "zone", "id": zone.id})
-        records_list = self.connection.request(
-            "SoftLayer_Dns_Domain", "getResourceRecords", id=zone.id
-        ).object
-        for item in records_list:
-            yield self._to_record(item, zone=zone)
-
-    def get_record(self, zone_id, record_id):
-        try:
-            record = self.connection.request(
-                "SoftLayer_Dns_Domain_ResourceRecord", "getObject", id=record_id
-            ).object
-            return self._to_record(record, zone=self.get_zone(zone_id))
-        except SoftLayerObjectDoesntExist:
-            raise RecordDoesNotExistError(value="", driver=self, record_id=record_id)
-
-    def delete_record(self, record):
-        try:
-            self.connection.request(
-                "SoftLayer_Dns_Domain_ResourceRecord", "deleteObject", id=record.id
-            ).object
-        except SoftLayerObjectDoesntExist:
-            raise RecordDoesNotExistError(value="", driver=self, record_id=record.id)
-        else:
-            return True
-
-    def create_record(self, name, zone, type, data, extra=None):
-        params = {
-            "domainId": zone.id,
-            "type": self.RECORD_TYPE_MAP[type],
-            "host": name,
-            "data": data,
-        }
-        if extra:
-            if extra.get("ttl"):
-                params["ttl"] = extra["ttl"]
-            if extra.get("refresh"):
-                params["refresh"] = extra["refresh"]
-            if extra.get("retry"):
-                params["retry"] = extra["retry"]
-            if extra.get("expire"):
-                params["expire"] = extra["expire"]
-            if extra.get("priority"):
-                params["mxPriority"] = extra["priority"]
-        response = self.connection.request(
-            "SoftLayer_Dns_Domain_ResourceRecord", "createObject", params
-        ).object
-
-        return self._to_record(response, zone=zone)
-
-    def update_record(self, record, name=None, type=None, data=None, extra=None):
-        params = {}
-        if type:
-            params["type"] = self.RECORD_TYPE_MAP[type]
-        if name:
-            params["host"] = name
-        if data:
-            params["data"] = data
-
-        if extra:
-            if extra.get("ttl"):
-                params["ttl"] = extra["ttl"]
-            if extra.get("refresh"):
-                params["refresh"] = extra["refresh"]
-            if extra.get("retry"):
-                params["retry"] = extra["retry"]
-            if extra.get("expire"):
-                params["expire"] = extra["expire"]
-            if extra.get("priority"):
-                params["mxPriority"] = extra["priority"]
-
-        response = self.connection.request(
-            "SoftLayer_Dns_Domain_ResourceRecord",
-            "editObject",
-            params,
-            id=record.id,
-        ).object
-
-        if response:
-            changed_record = self.connection.request(
-                "SoftLayer_Dns_Domain_ResourceRecord",
-                "getObject",
-                id=record.id,
-            ).object
-            return self._to_record(changed_record, zone=record.zone)
-        else:
-            return False
-
-    def _to_zone(self, item):
-        ttl = item.get("ttl", 3600)
-        zone = Zone(id=item["id"], domain=item["name"], type="master", ttl=ttl, driver=self)
-        return zone
-
-    def _to_record(self, item, zone=None):
-        extra = {
-            "ttl": item["ttl"],
-            "expire": item["expire"],
-            "mxPriority": item["mxPriority"],
-            "refresh": item["refresh"],
-            "retry": item["retry"],
-        }
-        record = Record(
-            id=item["id"],
-            name=item["host"],
-            type=self._string_to_record_type(item["type"]),
-            data=item["data"],
-            zone=zone,
-            driver=self,
-            ttl=item["ttl"],
-            extra=extra,
-        )
-        return record
diff --git a/libcloud/dns/providers.py b/libcloud/dns/providers.py
index 80d9f81..7469275 100644
--- a/libcloud/dns/providers.py
+++ b/libcloud/dns/providers.py
@@ -32,12 +32,10 @@
     Provider.LINODE: ("libcloud.dns.drivers.linode", "LinodeDNSDriver"),
     Provider.ZERIGO: ("libcloud.dns.drivers.zerigo", "ZerigoDNSDriver"),
     Provider.RACKSPACE: ("libcloud.dns.drivers.rackspace", "RackspaceDNSDriver"),
-    Provider.HOSTVIRTUAL: ("libcloud.dns.drivers.hostvirtual", "HostVirtualDNSDriver"),
     Provider.ROUTE53: ("libcloud.dns.drivers.route53", "Route53DNSDriver"),
     Provider.GANDI: ("libcloud.dns.drivers.gandi", "GandiDNSDriver"),
     Provider.GANDI_LIVE: ("libcloud.dns.drivers.gandi_live", "GandiLiveDNSDriver"),
     Provider.GOOGLE: ("libcloud.dns.drivers.google", "GoogleDNSDriver"),
-    Provider.SOFTLAYER: ("libcloud.dns.drivers.softlayer", "SoftLayerDNSDriver"),
     Provider.DIGITAL_OCEAN: (
         "libcloud.dns.drivers.digitalocean",
         "DigitalOceanDNSDriver",
diff --git a/libcloud/dns/types.py b/libcloud/dns/types.py
index 7440714..ec2cb7b 100644
--- a/libcloud/dns/types.py
+++ b/libcloud/dns/types.py
@@ -47,7 +47,6 @@
     GANDI_LIVE = "gandi_live"
     GODADDY = "godaddy"
     GOOGLE = "google"
-    HOSTVIRTUAL = "hostvirtual"
     LINODE = "linode"
     LIQUIDWEB = "liquidweb"
     LUADNS = "luadns"
@@ -59,7 +58,6 @@
     RACKSPACE = "rackspace"
     RCODEZERO = "rcodezero"
     ROUTE53 = "route53"
-    SOFTLAYER = "softlayer"
     VULTR = "vultr"
     WORLDWIDEDNS = "worldwidedns"
     ZERIGO = "zerigo"
diff --git a/libcloud/loadbalancer/drivers/__init__.py b/libcloud/loadbalancer/drivers/__init__.py
index 71b63e5..af6f71b 100644
--- a/libcloud/loadbalancer/drivers/__init__.py
+++ b/libcloud/loadbalancer/drivers/__init__.py
@@ -13,4 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-__all__ = ["rackspace", "gogrid", "nttcis"]
+__all__ = [
+    "rackspace",
+    "nttcis"
+]
diff --git a/libcloud/loadbalancer/drivers/gogrid.py b/libcloud/loadbalancer/drivers/gogrid.py
deleted file mode 100644
index bc9e826..0000000
--- a/libcloud/loadbalancer/drivers/gogrid.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import time
-
-from libcloud.utils.py3 import httplib
-from libcloud.utils.misc import reverse_dict
-from libcloud.common.types import LibcloudError
-from libcloud.common.gogrid import GoGridResponse, BaseGoGridDriver, GoGridConnection
-from libcloud.loadbalancer.base import DEFAULT_ALGORITHM, Driver, Member, Algorithm, LoadBalancer
-from libcloud.loadbalancer.types import State, LibcloudLBImmutableError
-
-try:
-    import simplejson as json
-except ImportError:
-    import json
-
-
-class GoGridLBResponse(GoGridResponse):
-    def success(self):
-        if self.status == httplib.INTERNAL_SERVER_ERROR:
-            # Hack, but at least this error message is more useful than
-            # "unexpected server error"
-            body = json.loads(self.body)
-            if (
-                body["method"] == "/grid/loadbalancer/add"
-                and len(body["list"]) >= 1
-                and body["list"][0]["message"].find("unexpected server error") != -1
-            ):
-                raise LibcloudError(
-                    value="You mostly likely tried to add a member with an IP"
-                    " address not assigned to your account",
-                    driver=self,
-                )
-        return super().success()
-
-
-class GoGridLBConnection(GoGridConnection):
-    """
-    Connection class for the GoGrid load-balancer driver.
-    """
-
-    responseCls = GoGridLBResponse
-
-
-class GoGridLBDriver(BaseGoGridDriver, Driver):
-    connectionCls = GoGridLBConnection
-    api_name = "gogrid_lb"
-    name = "GoGrid LB"
-    website = "http://www.gogrid.com/"
-
-    LB_STATE_MAP = {"On": State.RUNNING, "Unknown": State.UNKNOWN}
-    _VALUE_TO_ALGORITHM_MAP = {
-        "round robin": Algorithm.ROUND_ROBIN,
-        "least connect": Algorithm.LEAST_CONNECTIONS,
-    }
-    _ALGORITHM_TO_VALUE_MAP = reverse_dict(_VALUE_TO_ALGORITHM_MAP)
-
-    def __init__(self, *args, **kwargs):
-        """
-        @inherits: :class:`Driver.__init__`
-        """
-        super().__init__(*args, **kwargs)
-
-    def list_protocols(self):
-        # GoGrid only supports http
-        return ["http"]
-
-    def list_balancers(self):
-        return self._to_balancers(self.connection.request("/api/grid/loadbalancer/list").object)
-
-    def ex_create_balancer_nowait(
-        self, name, members, protocol="http", port=80, algorithm=DEFAULT_ALGORITHM
-    ):
-        """
-        @inherits: :class:`Driver.create_balancer`
-        """
-        algorithm = self._algorithm_to_value(algorithm)
-
-        params = {
-            "name": name,
-            "loadbalancer.type": algorithm,
-            "virtualip.ip": self._get_first_ip(),
-            "virtualip.port": port,
-        }
-        params.update(self._members_to_params(members))
-
-        resp = self.connection.request("/api/grid/loadbalancer/add", method="GET", params=params)
-        return self._to_balancers(resp.object)[0]
-
-    def create_balancer(self, name, members, protocol="http", port=80, algorithm=DEFAULT_ALGORITHM):
-        balancer = self.ex_create_balancer_nowait(name, members, protocol, port, algorithm)
-
-        timeout = 60 * 20
-        waittime = 0
-        interval = 2 * 15
-
-        if balancer.id is not None:
-            return balancer
-        else:
-            while waittime < timeout:
-                balancers = self.list_balancers()
-
-                for i in balancers:
-                    if i.name == balancer.name and i.id is not None:
-                        return i
-
-                waittime += interval
-                time.sleep(interval)
-
-        raise Exception("Failed to get id")
-
-    def destroy_balancer(self, balancer):
-        try:
-            resp = self.connection.request(
-                "/api/grid/loadbalancer/delete",
-                method="POST",
-                params={"id": balancer.id},
-            )
-        except Exception as e:
-            if "Update request for LoadBalancer" in str(e):
-                raise LibcloudLBImmutableError("Cannot delete immutable object", GoGridLBDriver)
-            else:
-                raise
-
-        return resp.status == 200
-
-    def get_balancer(self, **kwargs):
-        params = {}
-
-        try:
-            params["name"] = kwargs["ex_balancer_name"]
-        except KeyError:
-            balancer_id = kwargs["balancer_id"]
-            params["id"] = balancer_id
-
-        resp = self.connection.request("/api/grid/loadbalancer/get", params=params)
-
-        return self._to_balancers(resp.object)[0]
-
-    def balancer_attach_member(self, balancer, member):
-        members = self.balancer_list_members(balancer)
-        members.append(member)
-
-        params = {"id": balancer.id}
-
-        params.update(self._members_to_params(members))
-
-        resp = self._update_balancer(params)
-        return [
-            m
-            for m in self._to_members(resp.object["list"][0]["realiplist"], balancer)
-            if m.ip == member.ip
-        ][0]
-
-    def balancer_detach_member(self, balancer, member):
-        members = self.balancer_list_members(balancer)
-
-        remaining_members = [n for n in members if n.id != member.id]
-
-        params = {"id": balancer.id}
-        params.update(self._members_to_params(remaining_members))
-
-        resp = self._update_balancer(params)
-
-        return resp.status == 200
-
-    def balancer_list_members(self, balancer):
-        resp = self.connection.request("/api/grid/loadbalancer/get", params={"id": balancer.id})
-        return self._to_members(resp.object["list"][0]["realiplist"], balancer)
-
-    def _update_balancer(self, params):
-        try:
-            return self.connection.request(
-                "/api/grid/loadbalancer/edit", method="POST", params=params
-            )
-        except Exception as e:
-            if "Update already pending" in str(e):
-                raise LibcloudLBImmutableError("Balancer is immutable", GoGridLBDriver)
-
-            raise LibcloudError(value="Exception: %s" % str(e), driver=self)
-
-    def _members_to_params(self, members):
-        """
-        Helper method to convert list of :class:`Member` objects
-        to GET params.
-
-        """
-
-        params = {}
-
-        i = 0
-        for member in members:
-            params["realiplist.%s.ip" % i] = member.ip
-            params["realiplist.%s.port" % i] = member.port
-            i += 1
-
-        return params
-
-    def _to_balancers(self, object):
-        return [self._to_balancer(el) for el in object["list"]]
-
-    def _to_balancer(self, el):
-        lb = LoadBalancer(
-            id=el.get("id"),
-            name=el["name"],
-            state=self.LB_STATE_MAP.get(el["state"]["name"], State.UNKNOWN),
-            ip=el["virtualip"]["ip"]["ip"],
-            port=el["virtualip"]["port"],
-            driver=self.connection.driver,
-        )
-        return lb
-
-    def _to_members(self, object, balancer=None):
-        return [self._to_member(el, balancer) for el in object]
-
-    def _to_member(self, el, balancer=None):
-        member = Member(id=el["ip"]["id"], ip=el["ip"]["ip"], port=el["port"], balancer=balancer)
-        return member
diff --git a/libcloud/loadbalancer/drivers/softlayer.py b/libcloud/loadbalancer/drivers/softlayer.py
deleted file mode 100644
index 7d507d4..0000000
--- a/libcloud/loadbalancer/drivers/softlayer.py
+++ /dev/null
@@ -1,410 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance withv
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-__all__ = ["SoftlayerLBDriver"]
-
-from libcloud.utils.misc import find, reverse_dict
-from libcloud.common.types import LibcloudError
-from libcloud.common.softlayer import SoftLayerConnection
-from libcloud.loadbalancer.base import DEFAULT_ALGORITHM, Driver, Member, Algorithm, LoadBalancer
-from libcloud.loadbalancer.types import State
-
-lb_service = "SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_" "VirtualIpAddress"
-
-
-class LBPackage:
-
-    """
-    Defines a single Softlayer package to be used when placing orders (
-    e.g. via ex_place_balancer_order method).
-
-    :param id: Package id.
-    :type id: ``int``
-
-    :param name: Package name.
-    :type name: ``str``
-
-    :param description: Package short description.
-    :type description: ``str``
-
-    :param price_id: Id of the price for this package.
-    :type price_id: ``int``
-
-    :param capacity: Provides a numerical representation of the capacity given
-                     in the description of this package.
-    :type capacity: ``int``
-
-    """
-
-    def __init__(self, id, name, description, price_id, capacity):
-        self.id = id
-        self.name = name
-        self.description = description
-        self.price_id = price_id
-        self.capacity = capacity
-
-    def __repr__(self):
-        return "<LBPackage: id=%s, name=%s, description=%s, price_id=%s, " "capacity=%s>" % (
-            self.id,
-            self.name,
-            self.description,
-            self.price_id,
-            self.capacity,
-        )
-
-
-class SoftlayerLBDriver(Driver):
-    name = "Softlayer Load Balancing"
-    website = "http://www.softlayer.com/"
-    connectionCls = SoftLayerConnection
-
-    _VALUE_TO_ALGORITHM_MAP = {
-        "ROUND_ROBIN": Algorithm.ROUND_ROBIN,
-        "LEAST_CONNECTIONS": Algorithm.LEAST_CONNECTIONS,
-        "SHORTEST_RESPONSE": Algorithm.SHORTEST_RESPONSE,
-        "PERSISTENT_IP": Algorithm.PERSISTENT_IP,
-    }
-
-    _ALGORITHM_TO_VALUE_MAP = reverse_dict(_VALUE_TO_ALGORITHM_MAP)
-
-    def list_balancers(self):
-        mask = {
-            "adcLoadBalancers": {
-                "ipAddress": "",
-                "loadBalancerHardware": {"datacenter": ""},
-                "virtualServers": {
-                    "serviceGroups": {
-                        "routingMethod": "",
-                        "routingType": "",
-                        "services": {"ipAddress": ""},
-                    }
-                },
-            }
-        }
-
-        res = self.connection.request(
-            "SoftLayer_Account", "getAdcLoadBalancers", object_mask=mask
-        ).object
-
-        return [self._to_balancer(lb) for lb in res]
-
-    def get_balancer(self, balancer_id):
-        balancers = self.list_balancers()
-        balancer = find(balancers, lambda b: b.id == balancer_id)
-        if not balancer:
-            raise LibcloudError(value="No balancer found for id: %s" % balancer_id, driver=self)
-        return balancer
-
-    def list_protocols(self):
-        """
-        Return a list of supported protocols.
-
-        :rtype: ``list`` of ``str``
-        """
-        return ["dns", "ftp", "http", "https", "tcp", "udp"]
-
-    def balancer_list_members(self, balancer):
-        lb = self._get_balancer_model(balancer.id)
-        members = []
-        vs = self._locate_service_group(lb, balancer.port)
-        if vs:
-            if vs["serviceGroups"]:
-                srvgrp = vs["serviceGroups"][0]
-                members = [self._to_member(srv, balancer) for srv in srvgrp["services"]]
-
-        return members
-
-    def balancer_attach_member(self, balancer, member):
-        lb = self._get_balancer_model(balancer.id)
-        vs = self._locate_service_group(lb, balancer.port)
-        if not vs:
-            raise LibcloudError(
-                value="No service_group found for balancer " "port: %s" % balancer.port,
-                driver=self,
-            )
-
-        if vs["serviceGroups"]:
-            services = vs["serviceGroups"][0]["services"]
-            services.append(self._to_service_template(member.ip, member.port))
-
-        self.connection.request(lb_service, "editObject", lb, id=balancer.id)
-
-        return [m for m in balancer.list_members() if m.ip == member.ip][0]
-
-    def balancer_detach_member(self, balancer, member):
-        svc_lbsrv = "SoftLayer_Network_Application_Delivery_Controller_" "LoadBalancer_Service"
-
-        self.connection.request(svc_lbsrv, "deleteObject", id=member.id)
-        return True
-
-    def destroy_balancer(self, balancer):
-        res_billing = self.connection.request(lb_service, "getBillingItem", id=balancer.id).object
-
-        self.connection.request("SoftLayer_Billing_Item", "cancelService", id=res_billing["id"])
-        return True
-
-    def ex_list_balancer_packages(self):
-        """
-        Retrieves the available local load balancer packages.
-
-        :rtype: ``list`` of :class:`LBPackage`
-        """
-        mask = {"prices": ""}
-        res = self.connection.request(
-            "SoftLayer_Product_Package", "getItems", id=0, object_mask=mask
-        ).object
-
-        res_lb_pkgs = [r for r in res if r["description"].find("Load Balancer") != -1]
-        res_lb_pkgs = [r for r in res_lb_pkgs if not r["description"].startswith("Global")]
-
-        return [self._to_lb_package(r) for r in res_lb_pkgs]
-
-    def ex_place_balancer_order(self, package, location):
-        """
-        Places an order for a local loadbalancer in the specified
-        location.
-
-        :param package: The package to create the loadbalancer from.
-        :type package: :class:`LBPackage`
-
-        :param string location: The location (datacenter) to create the
-                                loadbalancer.
-        :type location: :class:`NodeLocation`
-
-        :return: ``True`` if ex_place_balancer_order was successful.
-        :rtype: ``bool``
-        """
-        data = {
-            "complexType": "SoftLayer_Container_Product_Order_Network_" "LoadBalancer",
-            "quantity": 1,
-            "packageId": 0,
-            "location": self._get_location(location.id),
-            "prices": [{"id": package.price_id}],
-        }
-
-        self.connection.request("SoftLayer_Product_Order", "placeOrder", data)
-        return True
-
-    def ex_configure_load_balancer(
-        self,
-        balancer,
-        port=80,
-        protocol="http",
-        algorithm=DEFAULT_ALGORITHM,
-        ex_allocation=100,
-    ):
-        """
-        Configure the loadbalancer by adding it with a front-end port (aka
-        a service group in the Softlayer loadbalancer model).
-
-        Softlayer loadbalancer may be defined with multiple service
-        groups (front-end ports) each defined with a unique port number.
-
-        :param balancer: The loadbalancer.
-        :type  balancer: :class:`LoadBalancer`
-
-        :param port: Port of the service group, defaults to 80.
-        :type  port: ``int``
-
-        :param protocol: Loadbalancer protocol, defaults to http.
-        :type  protocol: ``str``
-
-        :param algorithm: Load balancing algorithm, defaults to
-                            Algorithm.ROUND_ROBIN
-        :type  algorithm: :class:`Algorithm`
-
-        :param ex_allocation: The percentage of the total connection
-                              allocations to allocate for this group.
-        :type  ex_allocation: ``int``
-
-        :return: ``True`` if ex_add_service_group was successful.
-        :rtype: ``bool``
-        """
-        _types = self._get_routing_types()
-        _methods = self._get_routing_methods()
-
-        rt = find(_types, lambda t: t["keyname"] == protocol.upper())
-        if not rt:
-            raise LibcloudError(value="Invalid protocol %s" % protocol, driver=self)
-
-        value = self._algorithm_to_value(algorithm)
-        meth = find(_methods, lambda m: m["keyname"] == value)
-        if not meth:
-            raise LibcloudError(value="Invalid algorithm %s" % algorithm, driver=self)
-
-        service_group_template = {
-            "port": port,
-            "allocation": ex_allocation,
-            "serviceGroups": [{"routingTypeId": rt["id"], "routingMethodId": meth["id"]}],
-        }
-
-        lb = self._get_balancer_model(balancer.id)
-        if len(lb["virtualServers"]) > 0:
-            port = lb["virtualServers"][0]["port"]
-            raise LibcloudError(
-                value="Loadbalancer already configured with "
-                "a service group (front-end port)" % port,
-                driver=self,
-            )
-
-        lb["virtualServers"].append(service_group_template)
-        self.connection.request(lb_service, "editObject", lb, id=balancer.id)
-        return True
-
-    def _get_balancer_model(self, balancer_id):
-        """
-        Retrieve Softlayer loadbalancer model.
-        """
-        lb_mask = {
-            "virtualServers": {
-                "serviceGroups": {"services": {"ipAddress": "", "groupReferences": ""}}
-            }
-        }
-
-        lb_res = self.connection.request(
-            lb_service, "getObject", object_mask=lb_mask, id=balancer_id
-        ).object
-        return lb_res
-
-    def _locate_service_group(self, lb, port):
-        """
-        Locate service group with given port.
-
-        Return virtualServers (vs) entry whose port matches the
-        supplied parameter port. For a negative port, just return
-        the first vs entry.
-        None is returned if no match found.
-
-        :param lb: Softlayer loadbalancer model.
-        :type lb: ``dict``
-
-        :param port: loadbalancer front-end port.
-        :type port: ``int``
-
-        :return: Matched entry in the virtualServers array of the supplied
-        model.
-        :rtype: ``dict``
-        """
-        vs = None
-        if port < 0:
-            vs = lb["virtualServers"][0] if lb["virtualServers"] else None
-        else:
-            vs = find(lb["virtualServers"], lambda v: v["port"] == port)
-
-        return vs
-
-    def _get_routing_types(self):
-        svc_rtype = "SoftLayer_Network_Application_Delivery_Controller_" "LoadBalancer_Routing_Type"
-
-        return self.connection.request(svc_rtype, "getAllObjects").object
-
-    def _get_routing_methods(self):
-        svc_rmeth = (
-            "SoftLayer_Network_Application_Delivery_Controller_" "LoadBalancer_Routing_Method"
-        )
-
-        return self.connection.request(svc_rmeth, "getAllObjects").object
-
-    def _get_location(self, location_id):
-        res = self.connection.request("SoftLayer_Location_Datacenter", "getDatacenters").object
-
-        dcenter = find(res, lambda d: d["name"] == location_id)
-        if not dcenter:
-            raise LibcloudError(value="Invalid value %s" % location_id, driver=self)
-        return dcenter["id"]
-
-    def _get_ipaddress(self, ip):
-        svc_ipaddress = "SoftLayer_Network_Subnet_IpAddress"
-
-        return self.connection.request(svc_ipaddress, "getByIpAddress", ip).object
-
-    def _to_lb_package(self, pkg):
-        try:
-            price_id = pkg["prices"][0]["id"]
-        except Exception:
-            price_id = -1
-
-        capacity = int(pkg.get("capacity", 0))
-        return LBPackage(
-            id=pkg["id"],
-            name=pkg["keyName"],
-            description=pkg["description"],
-            price_id=price_id,
-            capacity=capacity,
-        )
-
-    def _to_service_template(self, ip, port):
-        """
-        Builds single member entry in Softlayer loadbalancer model
-        """
-        template = {
-            "enabled": 1,  # enable the service
-            "port": port,  # back-end port
-            "ipAddressId": self._get_ipaddress(ip)["id"],
-            "healthChecks": [{"healthCheckTypeId": 21}],  # default health check
-            "groupReferences": [{"weight": 1}],
-        }
-
-        return template
-
-    def _to_balancer(self, lb):
-        ipaddress = lb["ipAddress"]["ipAddress"]
-
-        extra = {}
-        extra["connection_limit"] = lb["connectionLimit"]
-        extra["ssl_active"] = lb["sslActiveFlag"]
-        extra["ssl_enabled"] = lb["sslEnabledFlag"]
-        extra["ha"] = lb["highAvailabilityFlag"]
-        extra["datacenter"] = lb["loadBalancerHardware"][0]["datacenter"]["name"]
-
-        # In Softlayer, there could be multiple group of members (aka service
-        # groups), so retrieve the first one
-        vs = self._locate_service_group(lb, -1)
-        if vs:
-            port = vs["port"]
-            if vs["serviceGroups"]:
-                srvgrp = vs["serviceGroups"][0]
-                routing_method = srvgrp["routingMethod"]["keyname"]
-                routing_type = srvgrp["routingType"]["keyname"]
-                try:
-                    extra["algorithm"] = self._value_to_algorithm(routing_method)
-                except Exception:
-                    pass
-                extra["protocol"] = routing_type.lower()
-
-        if not vs:
-            port = -1
-
-        balancer = LoadBalancer(
-            id=lb["id"],
-            name="",
-            state=State.UNKNOWN,
-            ip=ipaddress,
-            port=port,
-            driver=self.connection.driver,
-            extra=extra,
-        )
-
-        return balancer
-
-    def _to_member(self, srv, balancer=None):
-        svc_id = srv["id"]
-        ip = srv["ipAddress"]["ipAddress"]
-        port = srv["port"]
-
-        extra = {}
-        extra["status"] = srv["status"]
-        extra["enabled"] = srv["enabled"]
-        return Member(id=svc_id, ip=ip, port=port, balancer=balancer, extra=extra)
diff --git a/libcloud/loadbalancer/providers.py b/libcloud/loadbalancer/providers.py
index 8515e32..c88f59c 100644
--- a/libcloud/loadbalancer/providers.py
+++ b/libcloud/loadbalancer/providers.py
@@ -28,7 +28,6 @@
         "libcloud.loadbalancer.drivers.rackspace",
         "RackspaceLBDriver",
     ),
-    Provider.GOGRID: ("libcloud.loadbalancer.drivers.gogrid", "GoGridLBDriver"),
     Provider.NINEFOLD: ("libcloud.loadbalancer.drivers.ninefold", "NinefoldLBDriver"),
     Provider.BRIGHTBOX: (
         "libcloud.loadbalancer.drivers.brightbox",
@@ -41,10 +40,6 @@
         "CloudStackLBDriver",
     ),
     Provider.GCE: ("libcloud.loadbalancer.drivers.gce", "GCELBDriver"),
-    Provider.SOFTLAYER: (
-        "libcloud.loadbalancer.drivers.softlayer",
-        "SoftlayerLBDriver",
-    ),
     Provider.DIMENSIONDATA: (
         "libcloud.loadbalancer.drivers.dimensiondata",
         "DimensionDataLBDriver",
diff --git a/libcloud/loadbalancer/types.py b/libcloud/loadbalancer/types.py
index d2937b7..e8b46b2 100644
--- a/libcloud/loadbalancer/types.py
+++ b/libcloud/loadbalancer/types.py
@@ -49,11 +49,9 @@
     DIMENSIONDATA = "dimensiondata"
     ELB = "elb"
     GCE = "gce"
-    GOGRID = "gogrid"
     NINEFOLD = "ninefold"
     NTTCIS = "nttcis"
     RACKSPACE = "rackspace"
-    SOFTLAYER = "softlayer"
 
     # Deprecated
     RACKSPACE_US = "rackspace_us"
diff --git a/libcloud/test/compute/fixtures/bluebox/api_block_products_json.json b/libcloud/test/compute/fixtures/bluebox/api_block_products_json.json
deleted file mode 100644
index b3baa12..0000000
--- a/libcloud/test/compute/fixtures/bluebox/api_block_products_json.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"cost": 0.15, "id": "94fd37a7-2606-47f7-84d5-9000deda52ae", "description": "Block 1GB Virtual Server"}, {"cost": 0.25, "id": "b412f354-5056-4bf0-a42f-6ddd998aa092", "description": "Block 2GB Virtual Server"}, {"cost": 0.35, "id": "0cd183d3-0287-4b1a-8288-b3ea8302ed58", "description": "Block 4GB Virtual Server"}, {"cost": 0.45, "id": "b9b87a5b-2885-4a2e-b434-44a163ca6251", "description": "Block 8GB Virtual Server"}]
diff --git a/libcloud/test/compute/fixtures/bluebox/api_block_templates_json.json b/libcloud/test/compute/fixtures/bluebox/api_block_templates_json.json
deleted file mode 100644
index 2ea7cb6..0000000
--- a/libcloud/test/compute/fixtures/bluebox/api_block_templates_json.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"public": true, "id": "c66b8145-f768-45ef-9878-395bf8b1b7ff", "description": "CentOS 5 (Latest Release)", "created": "2009/04/20 15:46:34 -0700"}, {"public": true, "id": "1fc24f51-6d7d-4fa9-9a6e-0d6f36b692e2", "description": "Ubuntu 8.10 64bit", "created": "2009/04/20 15:46:34 -0700"}, {"public": true, "id": "b6f152db-988c-4194-b292-d6dd2aa2dbab", "description": "Debian 5.0 64bit", "created": "2009/04/20 15:46:34 -0700"}, {"public": true, "id": "4b697e48-282b-4140-8cf8-142e2a2711ee", "description": "Ubuntu 8.04 LTS 64bit", "created": "2009/07/31 15:58:20 -0700"}, {"public": true, "id": "a6a141bf-592a-4fa6-b130-4c14f69e82d0", "description": "Ubuntu 8.04 LTS 32Bit", "created": "2009/04/20 15:46:34 -0700"}, {"public": true, "id": "b181033f-aea7-4e6c-8bb4-11169775c0f8", "description": "Ubuntu 9.04 64bit", "created": "2010/01/26 11:31:19 -0800"}, {"public": true, "id": "b5371c5a-9da2-43ee-a745-99a4723f624c", "description": "ArchLinux 2009.08 64bit", "created": "2010/02/13 18:07:01 -0800"}, {"public": true, "id": "a00baa8f-b5d0-4815-8238-b471c4c4bf72", "description": "Ubuntu 9.10 64bit", "created": "2010/02/17 22:06:21 -0800"}, {"public": true, "id": "03807e08-a13d-44e4-b011-ebec7ef2c928", "description": "Ubuntu 10.04 LTS 64bit", "created": "2010/05/04 14:43:30 -0700"}, {"public": true, "id": "8b60e6de-7cbc-4c8e-b7df-5e2f9c4ffd6b", "description": "Ubuntu 10.04 LTS 32bit", "created": "2010/05/04 14:43:30 -0700"}]
diff --git a/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json.json b/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json.json
deleted file mode 100644
index 9db716d..0000000
--- a/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json.json
+++ /dev/null
@@ -1 +0,0 @@
-{"ips": [{"address": "67.214.214.212"}], "memory": 1073741824, "template": "centos", "id": "99df878c-6e5c-4945-a635-d94da9fd3146", "storage": 21474836480, "hostname": "apitest.c44905.c44905.blueboxgrid.com", "description": "1 GB RAM + 20 GB Disk", "cpu": 0.5, "status": "running", "product": {"cost": 0.15, "id": "94fd37a7-2606-47f7-84d5-9000deda52ae", "description": "Block 1GB Virtual Server"}}
diff --git a/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json_delete.json b/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json_delete.json
deleted file mode 100644
index 934a00f..0000000
--- a/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json_delete.json
+++ /dev/null
@@ -1 +0,0 @@
-{"text":"Block destroyed."}
diff --git a/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_reboot_json.json b/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_reboot_json.json
deleted file mode 100644
index 2ea54d2..0000000
--- a/libcloud/test/compute/fixtures/bluebox/api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_reboot_json.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "status": "ok", "text": "Reboot initiated." }
diff --git a/libcloud/test/compute/fixtures/bluebox/api_blocks_json.json b/libcloud/test/compute/fixtures/bluebox/api_blocks_json.json
deleted file mode 100644
index eb7d35f..0000000
--- a/libcloud/test/compute/fixtures/bluebox/api_blocks_json.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"ips":[{"address":"67.214.214.212"}],"memory":1073741824,"id":"99df878c-6e5c-4945-a635-d94da9fd3146","storage":21474836480,"hostname":"foo.apitest.blueboxgrid.com","description":"1 GB RAM + 20 GB Disk","cpu":0.5,"status":"running"}]
diff --git a/libcloud/test/compute/fixtures/bluebox/api_blocks_json_post.json b/libcloud/test/compute/fixtures/bluebox/api_blocks_json_post.json
deleted file mode 100644
index 4452f71..0000000
--- a/libcloud/test/compute/fixtures/bluebox/api_blocks_json_post.json
+++ /dev/null
@@ -1 +0,0 @@
-{"ips":[{"address":"67.214.214.212"}],"memory":1073741824,"id":"99df878c-6e5c-4945-a635-d94da9fd3146","storage":21474836480,"hostname":"foo.apitest.blueboxgrid.com","description":"1 GB RAM + 20 GB Disk","cpu":0.5,"status":"queued", "product": {"cost": 0.15, "id": "94fd37a7-2606-47f7-84d5-9000deda52ae", "description": "Block 1GB Virtual Server"}}
diff --git a/libcloud/test/compute/fixtures/gogrid/image_list.json b/libcloud/test/compute/fixtures/gogrid/image_list.json
deleted file mode 100644
index 761a149..0000000
--- a/libcloud/test/compute/fixtures/gogrid/image_list.json
+++ /dev/null
@@ -1,180 +0,0 @@
-{
-    "list": [
-        {
-            "billingtokens": [
-                {
-                    "id": 46,
-                    "name": "CentOS 5.3 32bit",
-                    "price": 0
-                }
-            ],
-            "description": "CentOS 5.3 (32-bit) w/ None",
-            "friendlyName": "CentOS 5.3 (32-bit) w/ None",
-            "id": 1531,
-            "isActive": true,
-            "isPublic": true,
-            "location": "gogrid/GSI-2c4c6672-69e1-4928-ac9d-a564521d55fe.img",
-            "name": "centos5.3_32_base",
-            "object": "serverimage",
-            "os": {
-                "description": "CentOS 5.3 (32-bit)",
-                "id": 16,
-                "name": "CentOS 5.3 (32-bit)",
-                "object": "option"
-            },
-            "owner": {
-                "id": -1,
-                "name": "GoGrid",
-                "object": "customer"
-            },
-            "price": 0,
-            "state": {
-                "description": "Image is available for adds",
-                "id": 2,
-                "name": "Available",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            },
-            "updatedTime": 1257789046453
-        },
-        {
-            "billingtokens": [
-                {
-                    "id": 47,
-                    "name": "CentOS 5.3 64bit",
-                    "price": 0
-                }
-            ],
-            "description": "CentOS 5.3 (64-bit) w/ None",
-            "friendlyName": "CentOS 5.3 (64-bit) w/ None",
-            "id": 1532,
-            "isActive": true,
-            "isPublic": true,
-            "location": "gogrid/GSI-939ef909-84b8-4a2f-ad56-02ccd7da05ff.img",
-            "name": "centos5.3_64_base",
-            "object": "serverimage",
-            "os": {
-                "description": "CentOS 5.3 (64-bit)",
-                "id": 17,
-                "name": "CentOS 5.3 (64-bit)",
-                "object": "option"
-            },
-            "owner": {
-                "id": -1,
-                "name": "GoGrid",
-                "object": "customer"
-            },
-            "price": 0,
-            "state": {
-                "description": "Image is available for adds",
-                "id": 2,
-                "name": "Available",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            },
-            "updatedTime": 1257789076417
-        },
-        {
-            "billingtokens": [
-                {
-                    "id": 48,
-                    "name": "RHEL 5.4 32bit",
-                    "price": 0
-                }
-            ],
-            "description": "RHEL 5.4 (32-bit) w/ None",
-            "friendlyName": "RHEL 5.4 (32-bit) w/ None",
-            "id": 1533,
-            "isActive": true,
-            "isPublic": true,
-            "location": "gogrid/GSI-4c88cb92-dd7b-4bb1-95b6-7cc93eb1d2aa.img",
-            "name": "rhel5.4_32_base",
-            "object": "serverimage",
-            "os": {
-                "description": "RHEL 5.4 (32-bit)",
-                "id": 18,
-                "name": "RHEL 5.4 (32-bit)",
-                "object": "option"
-            },
-            "owner": {
-                "id": -1,
-                "name": "GoGrid",
-                "object": "customer"
-            },
-            "price": 0,
-            "state": {
-                "description": "Image is available for adds",
-                "id": 2,
-                "name": "Available",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            },
-            "updatedTime": 1257789076417
-        },
-        {
-            "billingtokens": [
-                {
-                    "id": 49,
-                    "name": "RHEL 5.4 64bit",
-                    "price": 0
-                }
-            ],
-            "description": "RHEL 5.4 (64-bit) w/ None",
-            "friendlyName": "RHEL 5.4 (64-bit) w/ None",
-            "id": 1534,
-            "isActive": true,
-            "isPublic": true,
-            "location": "gogrid/GSI-2bd8ddb3-cc53-4a76-8188-0dce7537a422.img",
-            "name": "rhel5.4_64_base",
-            "object": "serverimage",
-            "os": {
-                "description": "RHEL 5.4 (64-bit)",
-                "id": 19,
-                "name": "RHEL 5.4 (64-bit)",
-                "object": "option"
-            },
-            "owner": {
-                "id": -1,
-                "name": "GoGrid",
-                "object": "customer"
-            },
-            "price": 0,
-            "state": {
-                "description": "Image is available for adds",
-                "id": 2,
-                "name": "Available",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            },
-            "updatedTime": 1257789076417
-        }
-    ],
-    "method": "/grid/image/list",
-    "status": "success",
-    "summary": {
-        "numpages": 0,
-        "returned": 59,
-        "start": 0,
-        "total": 59
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/image_save.json b/libcloud/test/compute/fixtures/gogrid/image_save.json
deleted file mode 100644
index e20c6d8..0000000
--- a/libcloud/test/compute/fixtures/gogrid/image_save.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-    "list": [
-        {
-            "architecture": {
-                "description": "32 bit OS", 
-                "id": 1, 
-                "name": "32-bit", 
-                "object": "option"
-            }, 
-            "billingtokens": [
-                {
-                    "id": 46, 
-                    "name": "CentOS 5.3 32bit", 
-                    "object": "billingtoken", 
-                    "price": 0
-                }
-            ], 
-            "createdTime": 1289119839685, 
-            "description": "", 
-            "friendlyName": "testimage", 
-            "id": 5050, 
-            "isActive": true, 
-            "isPublic": false, 
-            "location": "123/GSI-3ee65927-f80d-43df-92df-6c7e352f009c.img", 
-            "name": "GSI-3ee65927-f80d-43df-92df-6c7e352f009c", 
-            "object": "serverimage", 
-            "os": {
-                "description": "CentOS 5.3 (32-bit)", 
-                "id": 16, 
-                "name": "CentOS 5.3 (32-bit)", 
-                "object": "option"
-            }, 
-            "owner": {
-                "id": 123, 
-                "name": "name", 
-                "object": "customer"
-            }, 
-            "price": 0, 
-            "state": {
-                "description": "Image is being saved", 
-                "id": 1, 
-                "name": "Saving", 
-                "object": "option"
-            }, 
-            "type": {
-                "description": "Web or Application Server", 
-                "id": 1, 
-                "name": "Web Server", 
-                "object": "option"
-            }, 
-            "updatedTime": 1289119839685
-        }
-    ], 
-    "method": "/grid/image/save", 
-    "status": "success", 
-    "summary": {
-        "numpages": 0, 
-        "returned": 1, 
-        "start": 0, 
-        "total": 1
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/ip_list.json b/libcloud/test/compute/fixtures/gogrid/ip_list.json
deleted file mode 100644
index cf44eb9..0000000
--- a/libcloud/test/compute/fixtures/gogrid/ip_list.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
-    "list": [
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 5348099, 
-            "ip": "192.168.75.66", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "192.168.75.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 5348100, 
-            "ip": "192.168.75.67", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is reserved or in use", 
-                "id": 2, 
-                "name": "Assigned", 
-                "object": "option"
-            }, 
-            "subnet": "192.168.75.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 5348101, 
-            "ip": "192.168.75.68", 
-            "object": "ip", 
-            "public": false, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "192.168.75.64/255.255.255.240"
-        }
-    ], 
-    "method": "/grid/ip/list", 
-    "status": "success", 
-    "summary": {
-        "numpages": 0, 
-        "returned": 3, 
-        "start": 0, 
-        "total": 3
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/ip_list_empty.json b/libcloud/test/compute/fixtures/gogrid/ip_list_empty.json
deleted file mode 100644
index 146bd9f..0000000
--- a/libcloud/test/compute/fixtures/gogrid/ip_list_empty.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "list": [
-    ],
-    "method": "/grid/ip/list",
-    "status": "success",
-    "summary": {
-        "numpages": 0,
-        "returned": 0,
-        "start": 0,
-        "total": 0
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/lookup_list_ip_datacenter.json b/libcloud/test/compute/fixtures/gogrid/lookup_list_ip_datacenter.json
deleted file mode 100644
index 81a61c1..0000000
--- a/libcloud/test/compute/fixtures/gogrid/lookup_list_ip_datacenter.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "list": [
-        {
-            "description": "US West 1 Datacenter", 
-            "id": 1, 
-            "name": "US-West-1", 
-            "object": "option"
-        }, 
-        {
-            "description": "US East 1 Datacenter", 
-            "id": 2, 
-            "name": "US-East-1", 
-            "object": "option"
-        }
-    ], 
-    "method": "/common/lookup/list", 
-    "status": "success", 
-    "summary": {
-        "numpages": 0, 
-        "returned": 2, 
-        "start": 0, 
-        "total": 2
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/password_list.json b/libcloud/test/compute/fixtures/gogrid/password_list.json
deleted file mode 100644
index a06a3ef..0000000
--- a/libcloud/test/compute/fixtures/gogrid/password_list.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{
-    "list": [
-        {
-            "password": "bebebe",
-            "object": "password",
-            "username": "root",
-            "server": {
-		    "id": 90967,
-		    "image": {
-			"billingtokens": [
-			    {
-				"id": 46,
-				"name": "CentOS 5.3 32bit",
-				"price": 0
-			    }
-			],
-			"description": "CentOS 5.3 (32-bit) w/ None",
-			"friendlyName": "CentOS 5.3 (32-bit) w/ None",
-			"id": 1531,
-			"isActive": true,
-			"isPublic": true,
-			"location": "gogrid/GSI-2c4c6672-69e1-4928-ac9d-a564521d55fe.img",
-			"name": "centos5.3_32_base",
-			"object": "serverimage",
-			"os": {
-			    "description": "CentOS 5.3 (32-bit)",
-			    "id": 16,
-			    "name": "CentOS 5.3 (32-bit)",
-			    "object": "option"
-			},
-			"owner": {
-			    "id": -1,
-			    "name": "GoGrid",
-			    "object": "customer"
-			},
-			"price": 0,
-			"state": {
-			    "description": "Image is available for adds",
-			    "id": 2,
-			    "name": "Available",
-			    "object": "option"
-			},
-			"type": {
-			    "description": "Web or Application Server",
-			    "id": 1,
-			    "name": "Web Server",
-			    "object": "option"
-			},
-			"updatedTime": 1257789046453
-		    },
-		    "ip": {
-			"id": 1659927,
-			"ip": "192.168.0.202",
-			"object": "ip",
-			"public": true,
-			"state": {
-			    "description": "IP is reserved or in use",
-			    "id": 2,
-			    "name": "Assigned",
-			    "object": "option"
-			},
-			"subnet": "192.168.0.192/255.255.255.240"
-		    },
-		    "isSandbox": false,
-		    "name": "test1",
-		    "object": "server",
-		    "os": {
-			"description": "CentOS 5.3 (32-bit)",
-			"id": 16,
-			"name": "CentOS 5.3 (32-bit)",
-			"object": "option"
-		    },
-		    "ram": {
-			"description": "Server with 512MB RAM",
-			"id": 1,
-			"name": "512MB",
-			"object": "option"
-		    },
-		    "state": {
-			"description": "Server is in active state.",
-			"id": 1,
-			"name": "On",
-			"object": "option"
-		    },
-		    "type": {
-			"description": "Web or Application Server",
-			"id": 1,
-			"name": "Web Server",
-			"object": "option"
-		    }
-		}
-         }   
-    ],
-    "method": "/grid/server/list",
-    "status": "success",
-    "summary": {
-        "numpages": 0,
-        "returned": 1,
-        "start": 0,
-        "total": 1
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/server_add.json b/libcloud/test/compute/fixtures/gogrid/server_add.json
deleted file mode 100644
index 35a4ca1..0000000
--- a/libcloud/test/compute/fixtures/gogrid/server_add.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
-    "list": [
-        {
-            "image": {
-                "billingtokens": [
-                    {
-                        "id": 46,
-                        "name": "CentOS 5.3 32bit",
-                        "price": 0
-                    }
-                ],
-                "description": "CentOS 5.3 (32-bit) w/ None",
-                "friendlyName": "CentOS 5.3 (32-bit) w/ None",
-                "id": 1531,
-                "isActive": true,
-                "isPublic": true,
-                "location": "gogrid/GSI-2c4c6672-69e1-4928-ac9d-a564521d55fe.img",
-                "name": "centos5.3_32_base",
-                "object": "serverimage",
-                "os": {
-                    "description": "CentOS 5.3 (32-bit)",
-                    "id": 16,
-                    "name": "CentOS 5.3 (32-bit)",
-                    "object": "option"
-                },
-                "owner": {
-                    "id": -1,
-                    "name": "GoGrid",
-                    "object": "customer"
-                },
-                "price": 0,
-                "state": {
-                    "description": "Image is available for adds",
-                    "id": 2,
-                    "name": "Available",
-                    "object": "option"
-                },
-                "type": {
-                    "description": "Web or Application Server",
-                    "id": 1,
-                    "name": "Web Server",
-                    "object": "option"
-                },
-                "updatedTime": 1257789046453
-            },
-            "ip": {
-                "id": 1659927,
-                "ip": "192.168.0.202",
-                "object": "ip",
-                "public": true,
-                "state": {
-                    "description": "IP is reserved or in use",
-                    "id": 2,
-                    "name": "Assigned",
-                    "object": "option"
-                },
-                "subnet": "192.168.0.192/255.255.255.240"
-            },
-            "isSandbox": false,
-            "name": "test1",
-            "object": "server",
-            "os": {
-                "description": "CentOS 5.3 (32-bit)",
-                "id": 16,
-                "name": "CentOS 5.3 (32-bit)",
-                "object": "option"
-            },
-            "ram": {
-                "description": "Server with 512MB RAM",
-                "id": 1,
-                "name": "512MB",
-                "object": "option"
-            },
-            "state": {
-                "description": "Server is in active state.",
-                "id": 1,
-                "name": "On",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            }
-        }
-    ],
-    "method": "/grid/server/add",
-    "status": "success",
-    "summary": {
-        "numpages": 0,
-        "returned": 1,
-        "start": 0,
-        "total": 1
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/server_delete.json b/libcloud/test/compute/fixtures/gogrid/server_delete.json
deleted file mode 100644
index 068ff83..0000000
--- a/libcloud/test/compute/fixtures/gogrid/server_delete.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
-    "list": [
-        {
-            "id": 90967,
-            "image": {
-                "billingtokens": [
-                    {
-                        "id": 46,
-                        "name": "CentOS 5.3 32bit",
-                        "price": 0
-                    }
-                ],
-                "description": "CentOS 5.3 (32-bit) w/ None",
-                "friendlyName": "CentOS 5.3 (32-bit) w/ None",
-                "id": 1531,
-                "isActive": true,
-                "isPublic": true,
-                "location": "gogrid/GSI-2c4c6672-69e1-4928-ac9d-a564521d55fe.img",
-                "name": "centos5.3_32_base",
-                "object": "serverimage",
-                "os": {
-                    "description": "CentOS 5.3 (32-bit)",
-                    "id": 16,
-                    "name": "CentOS 5.3 (32-bit)",
-                    "object": "option"
-                },
-                "owner": {
-                    "id": -1,
-                    "name": "GoGrid",
-                    "object": "customer"
-                },
-                "price": 0,
-                "state": {
-                    "description": "Image is available for adds",
-                    "id": 2,
-                    "name": "Available",
-                    "object": "option"
-                },
-                "type": {
-                    "description": "Web or Application Server",
-                    "id": 1,
-                    "name": "Web Server",
-                    "object": "option"
-                },
-                "updatedTime": 1257789046453
-            },
-            "ip": {
-                "id": 1659927,
-                "ip": "192.168.0.202",
-                "object": "ip",
-                "public": true,
-                "state": {
-                    "description": "IP is reserved or in use",
-                    "id": 2,
-                    "name": "Assigned",
-                    "object": "option"
-                },
-                "subnet": "192.168.0.192/255.255.255.240"
-            },
-            "isSandbox": false,
-            "name": "test1",
-            "object": "server",
-            "os": {
-                "description": "CentOS 5.3 (32-bit)",
-                "id": 16,
-                "name": "CentOS 5.3 (32-bit)",
-                "object": "option"
-            },
-            "ram": {
-                "description": "Server with 512MB RAM",
-                "id": 1,
-                "name": "512MB",
-                "object": "option"
-            },
-            "state": {
-                "description": "Server is in active state.",
-                "id": 1,
-                "name": "On",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            }
-        }
-    ],
-    "method": "/grid/server/delete",
-    "status": "success",
-    "summary": {
-        "numpages": 0,
-        "returned": 1,
-        "start": 0,
-        "total": 1
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/server_edit.json b/libcloud/test/compute/fixtures/gogrid/server_edit.json
deleted file mode 100644
index 0133a1b..0000000
--- a/libcloud/test/compute/fixtures/gogrid/server_edit.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
-    "list": [
-        {
-            "id": 90967,
-            "image": {
-                "billingtokens": [
-                    {
-                        "id": 46,
-                        "name": "CentOS 5.3 32bit",
-                        "price": 0
-                    }
-                ],
-                "description": "CentOS 5.3 (32-bit) w/ None",
-                "friendlyName": "CentOS 5.3 (32-bit) w/ None",
-                "id": 1531,
-                "isActive": true,
-                "isPublic": true,
-                "location": "gogrid/GSI-2c4c6672-69e1-4928-ac9d-a564521d55fe.img",
-                "name": "centos5.3_32_base",
-                "object": "serverimage",
-                "os": {
-                    "description": "CentOS 5.3 (32-bit)",
-                    "id": 16,
-                    "name": "CentOS 5.3 (32-bit)",
-                    "object": "option"
-                },
-                "owner": {
-                    "id": -1,
-                    "name": "GoGrid",
-                    "object": "customer"
-                },
-                "price": 0,
-                "state": {
-                    "description": "Image is available for adds",
-                    "id": 2,
-                    "name": "Available",
-                    "object": "option"
-                },
-                "type": {
-                    "description": "Web or Application Server",
-                    "id": 1,
-                    "name": "Web Server",
-                    "object": "option"
-                },
-                "updatedTime": 1257789046453
-            },
-            "ip": {
-                "id": 1659927,
-                "ip": "192.168.0.202",
-                "object": "ip",
-                "public": true,
-                "state": {
-                    "description": "IP is reserved or in use",
-                    "id": 2,
-                    "name": "Assigned",
-                    "object": "option"
-                },
-                "subnet": "192.168.0.192/255.255.255.240"
-            },
-            "isSandbox": false,
-            "name": "test1",
-            "object": "server",
-            "os": {
-                "description": "CentOS 5.3 (32-bit)",
-                "id": 16,
-                "name": "CentOS 5.3 (32-bit)",
-                "object": "option"
-            },
-            "ram": {
-                "description": "Server with 512MB RAM",
-                "id": 1,
-                "name": "512MB",
-                "object": "option"
-            },
-            "state": {
-                "description": "Server is in active state.",
-                "id": 1,
-                "name": "On",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            }
-        }
-    ],
-    "method": "/grid/server/edit",
-    "status": "success",
-    "summary": {
-        "numpages": 0,
-        "returned": 1,
-        "start": 0,
-        "total": 1
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/server_list.json b/libcloud/test/compute/fixtures/gogrid/server_list.json
deleted file mode 100644
index 23e43ff..0000000
--- a/libcloud/test/compute/fixtures/gogrid/server_list.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
-    "list": [
-        {
-            "id": 90967,
-            "image": {
-                "billingtokens": [
-                    {
-                        "id": 46,
-                        "name": "CentOS 5.3 32bit",
-                        "price": 0
-                    }
-                ],
-                "description": "CentOS 5.3 (32-bit) w/ None",
-                "friendlyName": "CentOS 5.3 (32-bit) w/ None",
-                "id": 1531,
-                "isActive": true,
-                "isPublic": true,
-                "location": "gogrid/GSI-2c4c6672-69e1-4928-ac9d-a564521d55fe.img",
-                "name": "centos5.3_32_base",
-                "object": "serverimage",
-                "os": {
-                    "description": "CentOS 5.3 (32-bit)",
-                    "id": 16,
-                    "name": "CentOS 5.3 (32-bit)",
-                    "object": "option"
-                },
-                "owner": {
-                    "id": -1,
-                    "name": "GoGrid",
-                    "object": "customer"
-                },
-                "price": 0,
-                "state": {
-                    "description": "Image is available for adds",
-                    "id": 2,
-                    "name": "Available",
-                    "object": "option"
-                },
-                "type": {
-                    "description": "Web or Application Server",
-                    "id": 1,
-                    "name": "Web Server",
-                    "object": "option"
-                },
-                "updatedTime": 1257789046453
-            },
-            "ip": {
-                "id": 1659927,
-                "ip": "192.168.0.202",
-                "object": "ip",
-                "public": true,
-                "state": {
-                    "description": "IP is reserved or in use",
-                    "id": 2,
-                    "name": "Assigned",
-                    "object": "option"
-                },
-                "subnet": "192.168.0.192/255.255.255.240"
-            },
-            "isSandbox": false,
-            "name": "test1",
-            "description": "test server",
-            "object": "server",
-            "os": {
-                "description": "CentOS 5.3 (32-bit)",
-                "id": 16,
-                "name": "CentOS 5.3 (32-bit)",
-                "object": "option"
-            },
-            "ram": {
-                "description": "Server with 512MB RAM",
-                "id": 1,
-                "name": "512MB",
-                "object": "option"
-            },
-            "state": {
-                "description": "Server is in active state.",
-                "id": 1,
-                "name": "On",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            }
-        }
-    ],
-    "method": "/grid/server/list",
-    "status": "success",
-    "summary": {
-        "numpages": 0,
-        "returned": 1,
-        "start": 0,
-        "total": 1
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/server_power.json b/libcloud/test/compute/fixtures/gogrid/server_power.json
deleted file mode 100644
index 71ba678..0000000
--- a/libcloud/test/compute/fixtures/gogrid/server_power.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
-    "list": [
-        {
-            "id": 90967,
-            "image": {
-                "billingtokens": [
-                    {
-                        "id": 46,
-                        "name": "CentOS 5.3 32bit",
-                        "price": 0
-                    }
-                ],
-                "description": "CentOS 5.3 (32-bit) w/ None",
-                "friendlyName": "CentOS 5.3 (32-bit) w/ None",
-                "id": 1531,
-                "isActive": true,
-                "isPublic": true,
-                "location": "gogrid/GSI-2c4c6672-69e1-4928-ac9d-a564521d55fe.img",
-                "name": "centos5.3_32_base",
-                "object": "serverimage",
-                "os": {
-                    "description": "CentOS 5.3 (32-bit)",
-                    "id": 16,
-                    "name": "CentOS 5.3 (32-bit)",
-                    "object": "option"
-                },
-                "owner": {
-                    "id": -1,
-                    "name": "GoGrid",
-                    "object": "customer"
-                },
-                "price": 0,
-                "state": {
-                    "description": "Image is available for adds",
-                    "id": 2,
-                    "name": "Available",
-                    "object": "option"
-                },
-                "type": {
-                    "description": "Web or Application Server",
-                    "id": 1,
-                    "name": "Web Server",
-                    "object": "option"
-                },
-                "updatedTime": 1257789046453
-            },
-            "ip": {
-                "id": 1659927,
-                "ip": "192.168.0.202",
-                "object": "ip",
-                "public": true,
-                "state": {
-                    "description": "IP is reserved or in use",
-                    "id": 2,
-                    "name": "Assigned",
-                    "object": "option"
-                },
-                "subnet": "192.168.0.192/255.255.255.240"
-            },
-            "isSandbox": false,
-            "name": "test1",
-            "object": "server",
-            "os": {
-                "description": "CentOS 5.3 (32-bit)",
-                "id": 16,
-                "name": "CentOS 5.3 (32-bit)",
-                "object": "option"
-            },
-            "ram": {
-                "description": "Server with 512MB RAM",
-                "id": 1,
-                "name": "512MB",
-                "object": "option"
-            },
-            "state": {
-                "description": "Server is in active state.",
-                "id": 1,
-                "name": "On",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            }
-        }
-    ],
-    "method": "/grid/server/power",
-    "status": "success",
-    "summary": {
-        "numpages": 0,
-        "returned": 1,
-        "start": 0,
-        "total": 1
-    }
-}
diff --git a/libcloud/test/compute/fixtures/gogrid/server_power_fail.json b/libcloud/test/compute/fixtures/gogrid/server_power_fail.json
deleted file mode 100644
index b938016..0000000
--- a/libcloud/test/compute/fixtures/gogrid/server_power_fail.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
-    "list": [
-        {
-            "id": 90967,
-            "image": {
-                "billingtokens": [
-                    {
-                        "id": 46,
-                        "name": "CentOS 5.3 32bit",
-                        "price": 0
-                    }
-                ],
-                "description": "CentOS 5.3 (32-bit) w/ None",
-                "friendlyName": "CentOS 5.3 (32-bit) w/ None",
-                "id": 1531,
-                "isActive": true,
-                "isPublic": true,
-                "location": "gogrid/GSI-2c4c6672-69e1-4928-ac9d-a564521d55fe.img",
-                "name": "centos5.3_32_base",
-                "object": "serverimage",
-                "os": {
-                    "description": "CentOS 5.3 (32-bit)",
-                    "id": 16,
-                    "name": "CentOS 5.3 (32-bit)",
-                    "object": "option"
-                },
-                "owner": {
-                    "id": -1,
-                    "name": "GoGrid",
-                    "object": "customer"
-                },
-                "price": 0,
-                "state": {
-                    "description": "Image is available for adds",
-                    "id": 2,
-                    "name": "Available",
-                    "object": "option"
-                },
-                "type": {
-                    "description": "Web or Application Server",
-                    "id": 1,
-                    "name": "Web Server",
-                    "object": "option"
-                },
-                "updatedTime": 1257789046453
-            },
-            "ip": {
-                "id": 1659927,
-                "ip": "192.168.0.202",
-                "object": "ip",
-                "public": true,
-                "state": {
-                    "description": "IP is reserved or in use",
-                    "id": 2,
-                    "name": "Assigned",
-                    "object": "option"
-                },
-                "subnet": "192.168.0.192/255.255.255.240"
-            },
-            "isSandbox": false,
-            "name": "test1",
-            "object": "server",
-            "os": {
-                "description": "CentOS 5.3 (32-bit)",
-                "id": 16,
-                "name": "CentOS 5.3 (32-bit)",
-                "object": "option"
-            },
-            "ram": {
-                "description": "Server with 512MB RAM",
-                "id": 1,
-                "name": "512MB",
-                "object": "option"
-            },
-            "state": {
-                "description": "Server is in active state.",
-                "id": 1,
-                "name": "On",
-                "object": "option"
-            },
-            "type": {
-                "description": "Web or Application Server",
-                "id": 1,
-                "name": "Web Server",
-                "object": "option"
-            }
-        }
-    ],
-    "method": "/grid/server/power",
-    "status": "failure",
-    "summary": {
-        "numpages": 0,
-        "returned": 1,
-        "start": 0,
-        "total": 1
-    }
-}
diff --git a/libcloud/test/compute/fixtures/joyent/my_datasets.json b/libcloud/test/compute/fixtures/joyent/my_datasets.json
deleted file mode 100644
index 75c6fe2..0000000
--- a/libcloud/test/compute/fixtures/joyent/my_datasets.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"id":"f953e97e-4991-11e1-9ea4-27c6e7e8afda","urn":"sdc:sdc:nodejs:1.3.3","name":"nodejs","os":"smartos","type":"smartmachine","description":"Node.js git-deploy PaaS dataset","default":false,"requirements":{},"version":"1.3.3","created":"2012-02-14T03:54:01+00:00"},{"id":"71101322-43a5-11e1-8f01-cf2a3031a7f4","urn":"sdc:sdc:ubuntu-10.04:1.0.1","name":"ubuntu-10.04","os":"linux","type":"virtualmachine","description":"Ubuntu 10.04 VM 1.0.1","default":false,"requirements":{},"version":"1.0.1","created":"2012-02-22T18:27:32+00:00"},{"id":"7a4f84be-df6d-11e0-a504-3f6609d83831","urn":"sdc:admin:windows2008r2:1.5.0","name":"windows2008r2","os":"windows","type":"virtualmachine","description":"Windows 2008r2 Enterprise Edition","default":false,"requirements":{"max_memory":32768,"min_memory":4096},"version":"1.5.0","created":"2012-02-16T19:31:01+00:00"},{"id":"e4cd7b9e-4330-11e1-81cf-3bb50a972bda","urn":"sdc:sdc:centos-6:1.0.1","name":"centos-6","os":"linux","type":"virtualmachine","description":"Centos 6 VM 1.0.1","default":false,"requirements":{},"version":"1.0.1","created":"2012-02-15T20:04:18+00:00"},{"id":"988c2f4e-4314-11e1-8dc3-2bc6d58f4be2","urn":"sdc:sdc:centos-5.7:1.2.1","name":"centos-5.7","os":"linux","type":"virtualmachine","description":"Centos 5.7 VM 1.2.1","default":false,"requirements":{},"version":"1.2.1","created":"2012-02-14T05:53:49+00:00"},{"id":"e6ac6784-44b3-11e1-8555-87c3dd87aafe","urn":"sdc:sdc:debian-6.03:1.0.0","name":"debian-6.03","os":"linux","type":"virtualmachine","description":"Debian 6.03 VM 1.0.0","default":false,"requirements":{},"version":"1.0.0","created":"2012-02-14T05:21:53+00:00"},{"id":"3f8a3d02-43e4-11e1-9565-7f82a075e289","urn":"sdc:sdc:fedora-14:1.0.1","name":"fedora-14","os":"linux","type":"virtualmachine","description":"Fedora 14 VM 1.0.1","default":false,"requirements":{},"version":"1.0.1","created":"2012-02-14T05:20:52+00:00"},{"id":"d239389c-7535-11e1-b60a-6f75edc139df","urn":"sdc:sdc:mongodb:1.2.4","name":"mongodb","os":"smartos","type":"smartmachine","description":"MongoDB SmartMachine","default":false,"requirements":{},"version":"1.2.4","created":"2012-03-23T22:33:31+00:00"},{"id":"98f38e14-6f83-11e1-bc32-2b9d0a8b6759","urn":"sdc:sdc:mongodb:1.1.1","name":"mongodb","os":"smartos","type":"smartmachine","description":"MongoDB SmartMachine","default":false,"requirements":{},"version":"1.1.1","created":"2012-03-16T16:54:14+00:00"},{"id":"64d81cee-689e-11e1-a130-232647306089","urn":"local:admin:stingray-standard-1gbps:1.2.0","name":"stingray-standard-1gbps","os":"smartos","type":"smartmachine","description":"Riverbed Stingray v8.1 (formerly Zeus) Traffic Manager Hi-Throughput SmartMachine","default":false,"requirements":{},"version":"1.2.0","created":"2012-03-09T01:49:40+00:00"},{"id":"29a2fb18-689d-11e1-a2a5-47b01f708bb0","urn":"local:admin:stingray-enterprise-1gbps:1.2.0","name":"stingray-enterprise-1gbps","os":"smartos","type":"smartmachine","description":"Riverbed Stingray v8.1 (formerly Zeus) Traffic Manager Enterprise Hi-Throughput SmartMachine","default":false,"requirements":{},"version":"1.2.0","created":"2012-03-09T01:49:12+00:00"},{"id":"27750b5c-689c-11e1-a67e-6331aba2c777","urn":"local:admin:stingray-enterprise-200mbps:1.2.0","name":"stingray-enterprise-200mbps","os":"smartos","type":"smartmachine","description":"Riverbed Stingray v8.1 (formerly Zeus) Traffic Manager Enterprise SmartMachine","default":false,"requirements":{},"version":"1.2.0","created":"2012-03-09T01:49:19+00:00"},{"id":"56ffd3bc-689b-11e1-837f-735e255247ac","urn":"local:admin:stingray-standard-200mbps:1.2.0","name":"stingray-standard-200mbps","os":"smartos","type":"smartmachine","description":"Riverbed Stingray v8.1 (formerly Zeus) Traffic Manager SmartMachine","default":false,"requirements":{},"version":"1.2.0","created":"2012-03-09T01:49:49+00:00"},{"id":"c79e581a-689a-11e1-91f3-932bbde56874","urn":"local:admin:stingray-lb-200mbps:1.2.0","name":"stingray-lb-200mbps","os":"smartos","type":"smartmachine","description":"Riverbed Stingray v8.1 (formerly Zeus) Load Balancer SmartMachine","default":false,"requirements":{},"version":"1.2.0","created":"2012-03-09T01:49:26+00:00"},{"id":"4ca85e3a-689a-11e1-a5df-1b5ffe7065e9","urn":"local:admin:stingray-simple-lb-200mbps:1.2.0","name":"stingray-simple-lb-200mbps","os":"smartos","type":"smartmachine","description":"Riverbed Stingray v8.1 (formerly Zeus) Simple Load Balancer SmartMachine","default":false,"requirements":{},"version":"1.2.0","created":"2012-03-09T01:49:33+00:00"},{"id":"8c4c0f30-66df-11e1-a3f4-0f8e0a382b60","urn":"sdc:sdc:percona:1.3.9","name":"percona","os":"smartos","type":"smartmachine","description":"Percona SmartMachine","default":false,"requirements":{},"version":"1.3.9","created":"2012-03-05T16:41:01+00:00"},{"id":"618d80f8-66d5-11e1-998e-e384c47940f0","urn":"sdc:sdc:mongodb:1.0.9","name":"mongodb","os":"smartos","type":"smartmachine","description":"MongoDB SmartMachine","default":false,"requirements":{},"version":"1.0.9","created":"2012-03-05T15:29:21+00:00"},{"id":"a54da3a0-6319-11e1-a3d9-9fdedd2f9e17","urn":"sdc:sdc:riak:1.5.6","name":"riak","os":"smartos","type":"smartmachine","description":"Riak SmartMachine template","default":false,"requirements":{},"version":"1.5.6","created":"2012-03-01T16:18:13+00:00"},{"id":"81641caa-6321-11e1-a79a-731161c6d519","urn":"local:admin:riakeds:1.5.6","name":"riakeds","os":"smartos","type":"smartmachine","description":"Riak EDS SmartMachine template","default":false,"requirements":{},"version":"1.5.6","created":"2012-03-01T19:52:37+00:00"},{"id":"f4bc70ca-5e2c-11e1-8380-fb28785857cb","urn":"sdc:sdc:smartosplus64:3.1.0","name":"smartosplus64","os":"smartos","type":"smartmachine","description":"Generic multi-purpose SmartMachine template","default":false,"requirements":{},"version":"3.1.0","created":"2012-03-02T15:30:58+00:00"},{"id":"a963d5d0-5e29-11e1-a4d7-a31977b1e6dd","urn":"sdc:sdc:smartosplus:3.1.0","name":"smartosplus","os":"smartos","type":"smartmachine","description":"Generic multi-purpose SmartMachine template","default":false,"requirements":{},"version":"3.1.0","created":"2012-03-02T15:24:10+00:00"},{"id":"31bc4dbe-5e06-11e1-907c-5bed6b255fd1","urn":"sdc:sdc:smartos64:1.5.4","name":"smartos64","os":"smartos","type":"smartmachine","description":"Base template to build other templates on","default":false,"requirements":{},"version":"1.5.4","created":"2012-03-02T15:20:17+00:00"},{"id":"489754f2-5e01-11e1-8ff8-f770c2116b0d","urn":"sdc:sdc:smartos:1.5.4","name":"smartos","os":"smartos","type":"smartmachine","description":"Base template to build other templates on","default":false,"requirements":{},"version":"1.5.4","created":"2012-03-02T15:16:12+00:00"},{"id":"e05dbcac-1d44-11e1-b8ab-bf1bc04c2d65","urn":"sdc:sdc:smartosplus64:3.0.7","name":"smartosplus64","os":"smartos","type":"smartmachine","description":"Generic multi-purpose SmartMachine template","default":false,"requirements":{},"version":"3.0.7","created":"2012-02-13T19:18:56+00:00"},{"id":"fcc5996a-1d34-11e1-899e-7bd98b87947a","urn":"sdc:sdc:smartosplus:3.0.7","name":"smartosplus","os":"smartos","type":"smartmachine","description":"Generic multi-purpose SmartMachine template","default":false,"requirements":{},"version":"3.0.7","created":"2012-02-13T19:22:05+00:00"},{"id":"5fef6eda-05f2-11e1-90fc-13dac5e4a347","urn":"sdc:sdc:percona:1.2.2","name":"percona","os":"smartos","type":"smartmachine","description":"Percona SmartMachine","default":false,"requirements":{},"version":"1.2.2","created":"2012-02-13T19:23:12+00:00"},{"id":"34359ccc-21d2-2e4e-87e8-69fb36412008","urn":"sdc:sdc:windows2008r2standard:1.5.1","name":"windows2008r2standard","os":"windows","type":"virtualmachine","description":"windows2008r2standard VM image","default":false,"requirements":{"max_memory":32768,"min_memory":4096},"version":"1.5.1","created":"2012-03-13T18:25:53+00:00"},{"id":"a9380908-ea0e-11e0-aeee-4ba794c83c33","urn":"sdc:sdc:percona:1.0.7","name":"percona","os":"smartos","type":"smartmachine","description":"Percona SmartMachine","default":false,"requirements":{},"version":"1.0.7","created":"2012-02-13T19:24:17+00:00"},{"id":"df3589dc-df9a-11e0-a3a3-07ceee3e7d54","urn":"sdc:sdc:smartosplus64:3.0.4","name":"smartosplus64","os":"smartos","type":"smartmachine","description":"Generic multi-purpose SmartMachine template","default":false,"requirements":{},"version":"3.0.4","created":"2012-02-13T19:27:27+00:00"},{"id":"aded640a-df98-11e0-b050-1f55ff3ddfa7","urn":"sdc:sdc:smartosplus:3.0.4","name":"smartosplus","os":"smartos","type":"smartmachine","description":"Generic multi-purpose SmartMachine template","default":false,"requirements":{},"version":"3.0.4","created":"2012-02-13T19:30:28+00:00"},{"id":"3fcf35d2-dd79-11e0-bdcd-b3c7ac8aeea6","urn":"sdc:sdc:mysql:1.4.1","name":"mysql","os":"smartos","type":"smartmachine","description":"MySQL SmartMachine","default":false,"requirements":{},"version":"1.4.1","created":"2012-02-13T19:32:51+00:00"},{"id":"141194fa-dd77-11e0-8539-27dd8d8264b8","urn":"sdc:sdc:smartos64:1.4.7","name":"smartos64","os":"smartos","type":"smartmachine","description":"Base template to build other templates on","default":false,"requirements":{},"version":"1.4.7","created":"2012-02-13T19:33:21+00:00"},{"id":"f8ea0bb8-dd75-11e0-87c3-af5352ad3bd6","urn":"sdc:sdc:smartos:1.4.7","name":"smartos","os":"smartos","type":"smartmachine","description":"Base template to build other templates on","default":false,"requirements":{},"version":"1.4.7","created":"2012-02-13T19:33:50+00:00"}]
diff --git a/libcloud/test/compute/fixtures/joyent/my_machines.json b/libcloud/test/compute/fixtures/joyent/my_machines.json
deleted file mode 100644
index 1446492..0000000
--- a/libcloud/test/compute/fixtures/joyent/my_machines.json
+++ /dev/null
@@ -1,2 +0,0 @@
-[{"id":"2fb67f5f-53f2-40ab-9d99-b9ff68cfb2ab","name":"testlc1","type":"virtualmachine","state":"running","dataset":"sdc:sdc:ubuntu-10.04:1.0.1","ips":["165.225.129.129","10.112.1.130"],"memory":1024,"disk":30720,"metadata":{"root_authorized_keys":"ssh-rsa abc== JoyentSSH\n"},"created":"2012-04-11T04:08:32+00:00","updated":"2012-04-11T04:08:42+00:00"},
-{"id":"2fb67f5f-53f2-40ab-9d99-b9ff68cfb2ab","name":"testlc2","type":"virtualmachine","state":"running","dataset":"sdc:sdc:ubuntu-10.04:1.0.1","ips":["165.225.129.128","10.112.1.131"],"memory":1024,"disk":30720,"metadata":{"root_authorized_keys":"ssh-rsa abc== Joyent SSH\n", "credentials": {"root": "abc"}},"created":"2012-04-11T04:08:32+00:00","updated":"2012-04-11T04:08:42+00:00"}]
diff --git a/libcloud/test/compute/fixtures/joyent/my_machines_create.json b/libcloud/test/compute/fixtures/joyent/my_machines_create.json
deleted file mode 100644
index 7565823..0000000
--- a/libcloud/test/compute/fixtures/joyent/my_machines_create.json
+++ /dev/null
@@ -1 +0,0 @@
-{"id":"2fb67f5f-53f2-40ab-9d99-b9ff68cfb2ab","name":"testlc","type":"virtualmachine","state":"provisioning","dataset":"sdc:sdc:ubuntu-10.04:1.0.1","ips":["165.225.129.129","10.112.1.130"],"memory":1024,"disk":30720,"metadata":{"root_authorized_keys":"ssh-rsa abcd== Joyent SSH\n"},"created":"2012-04-11T04:08:27+00:00","updated":"2012-04-11T04:08:27+00:00"}
diff --git a/libcloud/test/compute/fixtures/joyent/my_packages.json b/libcloud/test/compute/fixtures/joyent/my_packages.json
deleted file mode 100644
index a38acde..0000000
--- a/libcloud/test/compute/fixtures/joyent/my_packages.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"name":"Large 16GB","memory":16384,"disk":491520,"vcpus":3,"swap":32768,"default":false},{"name":"XL  8GB High CPU","memory":8192,"disk":245760,"vcpus":4,"swap":16384,"default":false},{"name":"XL 32GB","memory":32768,"disk":778240,"vcpus":4,"swap":65536,"default":false},{"name":"XXL 48GB","memory":49152,"disk":1048576,"vcpus":8,"swap":98304,"default":false},{"name":"XXXL 64GB ","memory":65536,"disk":1572864,"vcpus":12,"swap":131072,"default":false},{"name":"Medium 1GB High-CPU","memory":1024,"disk":61440,"vcpus":2,"swap":2048,"default":false},{"name":"Small 1GB","memory":1024,"disk":30720,"vcpus":1,"swap":2048,"default":true},{"name":"Medium 2GB","memory":2048,"disk":61440,"vcpus":1,"swap":4096,"default":false},{"name":"Medium 4GB","memory":4096,"disk":122880,"vcpus":1,"swap":8192,"default":false},{"name":"Large 8GB","memory":8192,"disk":245760,"vcpus":2,"swap":16384,"default":false}]
diff --git a/libcloud/test/compute/fixtures/nephoscale/list_images.json b/libcloud/test/compute/fixtures/nephoscale/list_images.json
deleted file mode 100644
index 1ede35d..0000000
--- a/libcloud/test/compute/fixtures/nephoscale/list_images.json
+++ /dev/null
@@ -1,243 +0,0 @@
-{
-    "success": true,
-    "total_count": 18,
-    "subcode": 0,
-    "message": "Your request was processed successfully.",
-    "data": [
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux CentOS 5.5 32-bit",
-            "uri": "https://api.nephoscale.com/image/server/3/",
-            "max_memory": 128,
-            "id": 3,
-            "is_default": true,
-            "create_time": "2010-12-20 14:25:36",
-            "architecture": "x86",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux CentOS 5.5 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/5/",
-            "max_memory": 128,
-            "id": 5,
-            "is_default": true,
-            "create_time": "2010-12-20 14:25:36",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Windows Server 2008 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/21/",
-            "max_memory": 128,
-            "id": 21,
-            "is_default": true,
-            "create_time": "2010-12-20 14:25:36",
-            "architecture": "x86_64",
-            "base_type": "windows"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux Debian Server 5.05 32-bit",
-            "uri": "https://api.nephoscale.com/image/server/23/",
-            "max_memory": 128,
-            "id": 23,
-            "is_default": true,
-            "create_time": "2010-12-20 16:51:20",
-            "architecture": "x86",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux Debian Server 5.05 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/25/",
-            "max_memory": 128,
-            "id": 25,
-            "is_default": true,
-            "create_time": "2010-12-20 16:55:42",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Windows Server 2003 Enterprise 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/33/",
-            "max_memory": 128,
-            "id": 33,
-            "is_default": true,
-            "create_time": "2011-03-02 14:20:49",
-            "architecture": "x86_64",
-            "base_type": "windows"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux CentOS 5.7 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/41/",
-            "max_memory": 128,
-            "id": 41,
-            "is_default": true,
-            "create_time": "2011-09-19 17:30:04",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux Ubuntu Server 10.04 LTS 32-bit",
-            "uri": "https://api.nephoscale.com/image/server/43/",
-            "max_memory": 128,
-            "id": 43,
-            "is_default": true,
-            "create_time": "2011-10-01 02:26:17",
-            "architecture": "x86",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux CentOS 5.7 32-bit",
-            "uri": "https://api.nephoscale.com/image/server/45/",
-            "max_memory": 128,
-            "id": 45,
-            "is_default": true,
-            "create_time": "2011-10-05 19:41:30",
-            "architecture": "x86",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux Ubuntu Server 10.04 LTS 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/49/",
-            "max_memory": 128,
-            "id": 49,
-            "is_default": true,
-            "create_time": "2011-10-08 05:01:10",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux Debian Server 6.0.3 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/51/",
-            "max_memory": 128,
-            "id": 51,
-            "is_default": true,
-            "create_time": "2011-10-08 19:54:41",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux Debian 5.0.9 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/55/",
-            "max_memory": 128,
-            "id": 55,
-            "is_default": false,
-            "create_time": "2011-10-13 12:53:36",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux Debian 5.0.9 32-bit",
-            "uri": "https://api.nephoscale.com/image/server/57/",
-            "max_memory": 128,
-            "id": 57,
-            "is_default": false,
-            "create_time": "2011-10-13 12:55:09",
-            "architecture": "x86",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux CentOS 6.2 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/59/",
-            "max_memory": 128,
-            "id": 59,
-            "is_default": true,
-            "create_time": "2011-10-15 17:11:34",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux CentOS 5.8 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/64/",
-            "max_memory": 128,
-            "id": 64,
-            "is_default": true,
-            "create_time": "2012-03-28 19:54:10",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Linux Ubuntu Server 12.04 LTS 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/75/",
-            "max_memory": 128,
-            "id": 75,
-            "is_default": true,
-            "create_time": "2012-05-18 08:41:03",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "cloud",
-            "is_active": true,
-            "friendly_name": "VOD Cloud Storage Proxy (FTP:HTTP)",
-            "uri": "https://api.nephoscale.com/image/server/101/",
-            "max_memory": 128,
-            "id": 101,
-            "is_default": false,
-            "create_time": "2012-08-30 08:49:55",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        },
-        {
-            "max_cpu": 64,
-            "deployable_type": "both",
-            "is_active": true,
-            "friendly_name": "Debian 7.1 64-bit",
-            "uri": "https://api.nephoscale.com/image/server/177/",
-            "max_memory": 128,
-            "id": 177,
-            "is_default": true,
-            "create_time": "2013-09-10 16:12:10",
-            "architecture": "x86_64",
-            "base_type": "linux"
-        }
-    ],
-    "response": 200
-}
diff --git a/libcloud/test/compute/fixtures/nephoscale/list_keys.json b/libcloud/test/compute/fixtures/nephoscale/list_keys.json
deleted file mode 100644
index f6f9205..0000000
--- a/libcloud/test/compute/fixtures/nephoscale/list_keys.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "success": true,
-    "total_count": 2,
-    "subcode": 0,
-    "message": "Your request was processed successfully.",
-    "data": [
-        {
-            "name": "mistio-ssh",
-            "key_group": 1,
-            "uri": "https://api.nephoscale.com/key/sshrsa/72209/",
-            "key_type": 2,
-            "create_time": "2013-10-02 07:24:37",
-            "id": 72209
-        },
-        {
-            "name": "mistio-testing",
-            "key_group": 4,
-            "uri": "https://api.nephoscale.com/key/password/72211/",
-            "key_type": 1,
-            "create_time": "2013-10-02 07:27:10",
-            "id": 72211
-        }
-    ],
-    "response": 200
-}
diff --git a/libcloud/test/compute/fixtures/nephoscale/list_locations.json b/libcloud/test/compute/fixtures/nephoscale/list_locations.json
deleted file mode 100644
index 952fac4..0000000
--- a/libcloud/test/compute/fixtures/nephoscale/list_locations.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-    "success": true,
-    "total_count": 2,
-    "subcode": 0,
-    "message": "Your request was processed successfully.",
-    "data": [
-        {
-            "datacenter": {
-                "airport_code": "SJC",
-                "name": "SJC-1",
-                "uri": "https://api.nephoscale.com/datacenter/1/",
-                "id": 1
-            },
-            "uri": "https://api.nephoscale.com/datacenter/zone/86945/",
-            "id": 86945,
-            "name": "SJC-1"
-        },
-        {
-            "datacenter": {
-                "airport_code": "RIC",
-                "name": "RIC-1",
-                "uri": "https://api.nephoscale.com/datacenter/3/",
-                "id": 3
-            },
-            "uri": "https://api.nephoscale.com/datacenter/zone/87729/",
-            "id": 87729,
-            "name": "RIC-1"
-        }
-    ],
-    "response": 200
-}
diff --git a/libcloud/test/compute/fixtures/nephoscale/list_nodes.json b/libcloud/test/compute/fixtures/nephoscale/list_nodes.json
deleted file mode 100644
index 7fdff6c..0000000
--- a/libcloud/test/compute/fixtures/nephoscale/list_nodes.json
+++ /dev/null
@@ -1,161 +0,0 @@
-{
-    "success": true,
-    "total_count": 2,
-    "subcode": 0,
-    "message": "Your request was processed successfully.",
-    "data": [
-        {
-            "server_keys": [
-                {
-                    "key_type": 2,
-                    "key_group": 1,
-                    "id": 71757,
-                    "uri": "https://api.nephoscale.com/key/sshrsa/71157/"
-                }
-            ],
-            "name": "mongodb-staging",
-            "zone": {
-                "uri": "https://api.nephoscale.com/datacenter/zone/88211/",
-                "id": 87729,
-                "name": "RIC-1"
-            },
-            "image": {
-                "max_cpu": 64,
-                "deployable_type": "both",
-                "is_active": true,
-                "friendly_name": "Linux Ubuntu Server 10.04 LTS 64-bit",
-                "uri": "https://api.nephoscale.com/image/server/49/",
-                "max_memory": 128,
-                "id": 49,
-                "is_default": true,
-                "create_time": "2011-10-08 05:01:10",
-                "architecture": "x86_64",
-                "has_agent": true,
-                "base_type": "linux"
-            },
-            "hostname": "mongodb-staging",
-            "podzone": "P1A2",
-            "uri": "https://api.nephoscale.com/server/cloud/87241/",
-            "ipaddresses": "198.89.117.16",
-            "power_status": "on",
-            "create_time": "2013-09-25 07:38:53",
-            "postinit_state": 1,
-            "console_keys": [
-                {
-                    "key_type": 1,
-                    "key_group": 4,
-                    "id": 71761,
-                    "uri": "https://api.nephoscale.com/key/password/71761/"
-                }
-            ],
-            "memory": 512,
-            "service_type": {
-                "sku": {
-                    "name": "CS05",
-                    "description": "Cloud Server 0.5 GB RAM, 1 Core"
-                },
-                "uri": "https://api.nephoscale.com/server/type/cloud/5/",
-                "friendly_name": "CS05 - 0.5GB, 1Core, 25GB",
-                "id": 5,
-                "billable_type": 1
-            },
-            "network_ports": [
-                {
-                    "macaddress": "00:16:3e:06:dc:41",
-                    "devname": "eth0",
-                    "network_domain": {
-                        "domain_type": 0,
-                        "name": "default_public_network_RIC"
-                    }
-                },
-                {
-                    "macaddress": "00:16:3e:06:dc:45",
-                    "devname": "eth1",
-                    "network_domain": {
-                        "domain_type": 1,
-                        "name": "default_private_network_RIC"
-                    }
-                }
-            ],
-            "id": 88241,
-            "is_console_enabled": true
-        },
-        {
-            "server_keys": [
-                {
-                    "key_type": 2,
-                    "key_group": 1,
-                    "id": 72049,
-                    "uri": "https://api.nephoscale.com/key/sshrsa/72049/"
-                }
-            ],
-            "name": "backup-server2",
-            "zone": {
-                "uri": "https://api.nephoscale.com/datacenter/zone/88751/",
-                "id": 87729,
-                "name": "RIC-1"
-            },
-            "image": {
-                "max_cpu": 64,
-                "deployable_type": "both",
-                "is_active": true,
-                "friendly_name": "Linux Debian Server 6.0.3 64-bit",
-                "uri": "https://api.nephoscale.com/image/server/51/",
-                "max_memory": 128,
-                "id": 51,
-                "is_default": true,
-                "create_time": "2011-10-08 19:54:41",
-                "architecture": "x86_64",
-                "has_agent": true,
-                "base_type": "linux"
-            },
-            "hostname": "backup-server2",
-            "podzone": "P1A2",
-            "uri": "https://api.nephoscale.com/server/cloud/88751/",
-            "ipaddresses": "198.89.112.115",
-            "power_status": "on",
-            "create_time": "2013-10-02 05:02:50",
-            "postinit_state": 1,
-            "console_keys": [
-                {
-                    "key_type": 1,
-                    "key_group": 4,
-                    "id": 72165,
-                    "uri": "https://api.nephoscale.com/key/password/72165/"
-                }
-            ],
-            "memory": 512,
-            "service_type": {
-                "sku": {
-                    "name": "CS05",
-                    "description": "Cloud Server 0.5 GB RAM, 1 Core"
-                },
-                "uri": "https://api.nephoscale.com/server/type/cloud/5/",
-                "friendly_name": "CS05 - 0.5GB, 1Core, 25GB",
-                "id": 5,
-                "billable_type": 1
-            },
-            "network_ports": [
-                {
-                    "macaddress": "00:16:3e:06:f5:2f",
-                    "devname": "eth0",
-                    "network_domain": {
-                        "domain_type": 0,
-                        "name": "default_public_network_RIC"
-                    }
-                },
-                {
-                    "macaddress": "00:16:3e:06:f5:33",
-                    "devname": "eth1",
-                    "network_domain": {
-                        "domain_type": 1,
-                        "name": "default_private_network_RIC"
-                    }
-                }
-            ],
-            "id": 88751,
-            "is_console_enabled": true
-        }
-    ],
-    "response": 200
-}
diff --git a/libcloud/test/compute/fixtures/nephoscale/list_password_keys.json b/libcloud/test/compute/fixtures/nephoscale/list_password_keys.json
deleted file mode 100644
index ca3c629..0000000
--- a/libcloud/test/compute/fixtures/nephoscale/list_password_keys.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-    "success": true,
-    "total_count": 1,
-    "subcode": 0,
-    "message": "Your request was processed successfully.",
-    "data": [
-        {
-            "name": "mistio-testing",
-            "key_group": 4,
-            "uri": "https://api.nephoscale.com/key/password/72211/",
-            "key_type": 1,
-            "create_time": "2013-10-02 07:27:10",
-            "password": "23d493j5",
-            "id": 72211
-        }
-    ],
-    "response": 200
-}
diff --git a/libcloud/test/compute/fixtures/nephoscale/list_sizes.json b/libcloud/test/compute/fixtures/nephoscale/list_sizes.json
deleted file mode 100644
index c6d89f3..0000000
--- a/libcloud/test/compute/fixtures/nephoscale/list_sizes.json
+++ /dev/null
@@ -1,178 +0,0 @@
-{
-    "success": true,
-    "total_count": 13,
-    "subcode": 0,
-    "message": "Your request was processed successfully.",
-    "data": [
-        {
-            "sku": {
-                "name": "CS16.16",
-                "description": "Cloud Server 16 GB RAM, 16 Cores"
-            },
-            "storage": 800,
-            "ram": 16384,
-            "friendly_name": "CS16.16 - 16GB, 16Core, 800GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/1/",
-            "vcpus": 16,
-            "id": 1,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS1",
-                "description": "Cloud Server 1 GB RAM, 1 Core"
-            },
-            "storage": 50,
-            "ram": 1024,
-            "friendly_name": "CS1 - 1GB, 1Core, 50GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/3/",
-            "vcpus": 1,
-            "id": 3,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS05",
-                "description": "Cloud Server 0.5 GB RAM, 1 Core"
-            },
-            "storage": 25,
-            "ram": 512,
-            "friendly_name": "CS05 - 0.5GB, 1Core, 25GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/5/",
-            "vcpus": 1,
-            "id": 5,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS2.2",
-                "description": "Cloud Server 2 GB RAM, 2 Cores"
-            },
-            "storage": 100,
-            "ram": 2048,
-            "friendly_name": "CS2.2 - 2GB, 2Core, 100GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/7/",
-            "vcpus": 2,
-            "id": 7,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS4.4",
-                "description": "Cloud Server 4 GB RAM, 4 Cores"
-            },
-            "storage": 200,
-            "ram": 4096,
-            "friendly_name": "CS4.4 - 4GB, 4Core, 200GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/9/",
-            "vcpus": 4,
-            "id": 9,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS8.8",
-                "description": "Cloud Server 8 GB RAM, 8 Cores"
-            },
-            "storage": 400,
-            "ram": 8192,
-            "friendly_name": "CS8.8 - 8GB, 8Core, 400GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/11/",
-            "vcpus": 8,
-            "id": 11,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS025",
-                "description": "Cloud Server 0.25 GB RAM"
-            },
-            "storage": 15,
-            "ram": 256,
-            "friendly_name": "CS025 - 0.25GB, 10GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/27/",
-            "vcpus": 1,
-            "id": 27,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS2.1",
-                "description": "Cloud Server 2 GB RAM, 1 Core"
-            },
-            "storage": 75,
-            "ram": 2048,
-            "friendly_name": "CS2.1 - 2GB, 1Core, 75GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/46/",
-            "vcpus": 1,
-            "id": 46,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS4.2",
-                "description": "Cloud Server 4 GB RAM, 2 Cores"
-            },
-            "storage": 150,
-            "ram": 4096,
-            "friendly_name": "CS4.2 - 4GB, 2Core, 150GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/48/",
-            "vcpus": 2,
-            "id": 48,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS8.4",
-                "description": "Cloud Server 8 GB RAM, 4 Cores"
-            },
-            "storage": 300,
-            "ram": 8192,
-            "friendly_name": "CS8.4 - 8GB, 4Core, 300GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/50/",
-            "vcpus": 4,
-            "id": 50,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS16.8",
-                "description": "Cloud Server 16 GB RAM, 8 Cores"
-            },
-            "storage": 600,
-            "ram": 16384,
-            "friendly_name": "CS16.8 - 16GB, 8Core, 600GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/52/",
-            "vcpus": 8,
-            "id": 52,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS32.16",
-                "description": "Cloud Server 32 GB RAM, 16 Cores"
-            },
-            "storage": 1200,
-            "ram": 32768,
-            "friendly_name": "CS32.16 - 32GB, 16Core, 1200GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/54/",
-            "vcpus": 16,
-            "id": 54,
-            "billable_type": 1
-        },
-        {
-            "sku": {
-                "name": "CS32.8",
-                "description": "Cloud Server 32 GB RAM, 8 Cores"
-            },
-            "storage": 1000,
-            "ram": 32768,
-            "friendly_name": "CS32.8 - 32GB, 8Core, 1000GB",
-            "uri": "https://api.nephoscale.com/server/type/cloud/56/",
-            "vcpus": 8,
-            "id": 56,
-            "billable_type": 1
-        }
-    ],
-    "response": 200
-}
diff --git a/libcloud/test/compute/fixtures/nephoscale/list_ssh_keys.json b/libcloud/test/compute/fixtures/nephoscale/list_ssh_keys.json
deleted file mode 100644
index dc83a8f..0000000
--- a/libcloud/test/compute/fixtures/nephoscale/list_ssh_keys.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-    "success": true,
-    "total_count": 1,
-    "subcode": 0,
-    "message": "Your request was processed successfully.",
-    "data": [
-        {
-            "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBs+gQwoeFNa+4pYz2AKz5Op7EqrzeP3YsyTKxx7P9gt4aSt5w8Z+lRn3p3CVG+th5i6lZqOxWgCZ1kp2KEKNbSsA2HWl3OwkY8IqHGSEeMrF+3A2Ncz88kUIAWzCswxPY4uqb/yA4EzEQDk7PJj7Q1DruObhOm7qyHT40n2KJ3TqHJQlV9XE3RcXSaQcwUt0YFXFMx8wkgy0NKqqSiQuH8RofyfnOABEzKAARGbcQjZWxh2ITzUmwMxUCBa0X5wvblgcE6/pRZN5Xq6NQr2XEU5Z48+mLy6asdasdwrM0v10Y7ojDL/TosK/8T5+d5yaRsvtBlBstDZhNWY31n5iCLxx user@mistio",
-            "name": "mistio-ssh",
-            "key_group": 1,
-            "uri": "https://api.nephoscale.com/key/sshrsa/72209/",
-            "key_type": 2,
-            "create_time": "2013-10-02 07:24:37",
-            "id": 72209
-        }
-    ],
-    "response": 200
-}
diff --git a/libcloud/test/compute/fixtures/nephoscale/success_action.json b/libcloud/test/compute/fixtures/nephoscale/success_action.json
deleted file mode 100644
index 62db155..0000000
--- a/libcloud/test/compute/fixtures/nephoscale/success_action.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-    "subcode": 0,
-    "message": "Your request was processed successfully.",
-    "data": {
-        "id": 141229,
-        "resource_type": "/job",
-        "uri": "https://api.nephoscale.com/job/141229/"
-    },
-    "response": 202,
-    "success": true
-}
diff --git a/libcloud/test/compute/fixtures/oneandone/auth_error.json b/libcloud/test/compute/fixtures/oneandone/auth_error.json
deleted file mode 100644
index 2049116..0000000
--- a/libcloud/test/compute/fixtures/oneandone/auth_error.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-   "type":"UNAUTHORIZED",
-   "message":"The Token you are using is not valid",
-   "errors":null
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/create_node.json b/libcloud/test/compute/fixtures/oneandone/create_node.json
deleted file mode 100644
index 8b53cdd..0000000
--- a/libcloud/test/compute/fixtures/oneandone/create_node.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "id": "E7D36EC025C73796035BF4F171379025",
-  "name": "Docs Content Test Server: CentOS 7-1",
-  "description": "My server description",
-  "status": {
-    "state": "POWERED_ON",
-    "percent": null
-  },
-  "datacenter": {
-    "id": "908DC2072407C94C8054610AD5A53B8C",
-    "country_code": "US",
-    "location": "United States of America"
-  },
-  "creation_date": "2016-05-05T17:39:50+00:00",
-  "image": {
-    "id": "B5F778B85C041347BCDCFC3172AB3F3C",
-    "name": "centos7-64std"
-  },
-  "hardware": {
-    "fixed_instance_size_id": "65929629F35BBFBA63022008F773F3EB",
-    "vcore": 1,
-    "cores_per_processor": 1,
-    "ram": 1,
-    "hdds": [
-      {
-        "id": "CDB278D95A92CB4C379A9CAAD6759F02",
-        "size": 40,
-        "is_main": true
-      }
-    ]
-  },
-  "ips": [
-    {
-      "id": "FDBE99EDD57F8596CBF71B6B64BD0A92",
-      "ip": "62.151.179.99"
-    }
-  ],
-  "dvd": null,
-  "snapshot": null,
-  "alerts": [],
-  "monitoring_policy": null,
-  "private_networks": null
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/describe_firewall_policy.json b/libcloud/test/compute/fixtures/oneandone/describe_firewall_policy.json
deleted file mode 100644
index 68d1960..0000000
--- a/libcloud/test/compute/fixtures/oneandone/describe_firewall_policy.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "id": "83522FC7DA9172F229E5352C587075BA",
-  "name": "My firewall policy test",
-  "description": "My firewall policy description",
-  "state": "CONFIGURING",
-  "creation_date": "2015-04-29T10:43:11+00:00",
-  "default": 0,
-  "rules": [
-    {
-      "id": "DA5CC179ED00079AE7DE595F0073D86E",
-      "protocol": "TCP",
-      "port_from": 80,
-      "port_to": 80,
-      "source": "0.0.0.0"
-    },
-    {
-      "id": "0766EC674A0CD9D4EC0FA0B07978A649",
-      "protocol": "TCP",
-      "port_from": 443,
-      "port_to": 443,
-      "source": "0.0.0.0"
-    }
-  ],
-  "server_ips": [],
-  "cloudpanel_id": "FW99AA4_7"
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/describe_id_firewall_policy.json b/libcloud/test/compute/fixtures/oneandone/describe_id_firewall_policy.json
deleted file mode 100644
index 19f1cf1..0000000
--- a/libcloud/test/compute/fixtures/oneandone/describe_id_firewall_policy.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "id": "3C4F21EDFEEDD6ABB728EA5CE684E1AF",
-  "name": "Windows"
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/describe_server.json b/libcloud/test/compute/fixtures/oneandone/describe_server.json
deleted file mode 100644
index 4b1f99f..0000000
--- a/libcloud/test/compute/fixtures/oneandone/describe_server.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
-  "id": "srv_1",
-  "cloudpanel_id": "958FA92",
-  "name": "My Server 1",
-  "description": "",
-  "datacenter": {
-    "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-    "location": "USA",
-    "country_code": "US"
-  },
-  "creation_date": "2015-05-04T06:32:15+00:00",
-  "first_password": "Fg52K21nz8",
-  "status": {
-    "state": "POWERED_OFF",
-    "percent": null
-  },
-  "hardware": {
-    "fixed_instance_size_id": 0,
-    "vcore": 1,
-    "cores_per_processor": 1,
-    "ram": 2,
-    "hdds": [
-    {
-      "id": "8C626C1A7005D0D1F527143C413D461E",
-      "size": 40,
-      "is_main": true
-    }
-    ]
-  },
-  "image": {
-    "id": "3C3B80327CBBD7F0023F793F666C24D0",
-    "name": "w2008r2datacenter64std"
-  },
-  "dvd": null,
-  "snapshot": null,
-  "ips": [
-  {
-    "id": "8D135204687B9CF9E79E7A93C096E336",
-    "ip": "10.4.140.213",
-    "type": "IPV4",
-    "reverse_dns": null,
-    "firewall_policy": null,
-    "load_balancers": []
-  }
-  ],
-  "alerts": [],
-  "monitoring_policy": null,
-  "private_networks": null
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/describe_shared_stoage.json b/libcloud/test/compute/fixtures/oneandone/describe_shared_stoage.json
deleted file mode 100644
index bd3dcc2..0000000
--- a/libcloud/test/compute/fixtures/oneandone/describe_shared_stoage.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "id": "6AD2F180B7B666539EF75A02FE227084",
-  "size": 200,
-  "state": "ACTIVE",
-  "description": "My shared storage description",
-  "datacenter": {
-    "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-    "location": "USA",
-    "country_code": "US"
-  },
-  "cloudpanel_id": "vid35780",
-  "size_used": "0.00",
-  "cifs_path": "\\vid50995.nas1.lan\vid50995",
-  "nfs_path": "vid50995.nas1.lan/:vid50995",
-  "name": "My shared storage test rename",
-  "creation_date": "2015-05-06T08:33:25+00:00",
-  "servers": [
-    {
-      "id": "638ED28205B1AFD7ADEF569C725DD85F",
-      "name": "Mi servidor 1",
-      "rights": "RW"
-    },
-    {
-      "id": "39AA65F5D5B02FA02D58173094EBAF95",
-      "name": "My Server remame",
-      "rights": "R"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/ex_list_datacenters.json b/libcloud/test/compute/fixtures/oneandone/ex_list_datacenters.json
deleted file mode 100644
index 8fc322a..0000000
--- a/libcloud/test/compute/fixtures/oneandone/ex_list_datacenters.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-   {
-      "id":"81DEF28500FBC2A973FC0C620DF5B721",
-      "location":"Spain",
-      "country_code":"ES",
-      "default":0
-   },
-   {
-      "id":"908DC2072407C94C8054610AD5A53B8C",
-      "location":"United States of America",
-      "country_code":"US",
-      "default":1
-   },
-   {
-      "id":"4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "location":"Germany",
-      "country_code":"DE",
-      "default":0
-   },
-   {
-      "id":"5091F6D8CBFEF9C26ACE957C652D5D49",
-      "location":"United Kingdom of Great Britain and Northern Ireland",
-      "country_code":"GB",
-      "default":0
-   }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/fixed_instance_sizes.json b/libcloud/test/compute/fixtures/oneandone/fixed_instance_sizes.json
deleted file mode 100644
index a9605dd..0000000
--- a/libcloud/test/compute/fixtures/oneandone/fixed_instance_sizes.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
-  {
-    "name": "M",
-    "id": "8C626C1A7005D0D1F527143C413D461E",
-    "hardware": {
-      "vcore": 1,
-      "cores_per_processor": 1,
-      "ram": 1,
-      "unit": "GB",
-      "hdds": [
-        {
-          "size": 40,
-          "unit": "GB",
-          "is_main": true
-        }
-      ]
-    }
-  },
-  {
-    "name": "L",
-    "id": "8C626C1A7005D0D1F527143C413D461F",
-    "hardware": {
-      "vcore": 2,
-      "cores_per_processor": 1,
-      "ram": 2,
-      "unit": "GB",
-      "hdds": [
-        {
-          "size": 80,
-          "unit": "GiB",
-          "is_main": true
-        }
-      ]
-    }
-  },
-  {
-    "name": "XL",
-    "id": "8C626C1A7005D0D1F527143C413D4620",
-    "hardware": {
-      "vcore": 2,
-      "cores_per_processor": 1,
-      "ram": 4,
-      "unit": "GB",
-      "hdds": [
-        {
-          "size": 120,
-          "unit": "GB",
-          "is_main": true
-        }
-      ]
-    }
-  },
-  {
-    "name": "XXL",
-    "id": "8C626C1A7005D0D1F527143C413D4621",
-    "hardware": {
-      "vcore": 4,
-      "cores_per_processor": 1,
-      "ram": 8,
-      "unit": "GB",
-      "hdds": [
-        {
-          "size": 160,
-          "unit": "GiB",
-          "is_main": true
-        }
-      ]
-    }
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/get_image.json b/libcloud/test/compute/fixtures/oneandone/get_image.json
deleted file mode 100644
index cb94129..0000000
--- a/libcloud/test/compute/fixtures/oneandone/get_image.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-  "id": "6E1F2C70CCD3EE44ED194F4FFC47C4C9",
-  "name": "w2012r2datacenter64min",
-  "available_datacenters": [
-    "81DEF28500FBC2A973FC0C620DF5B721",
-    "908DC2072407C94C8054610AD5A53B8C",
-    "4EFAD5836CE43ACA502FD5B99BEE44EF",
-    "5091F6D8CBFEF9C26ACE957C652D5D49"
-  ],
-  "os_family": "Windows",
-  "os": "Windows2012R2",
-  "os_version": "WindowsDatacenter",
-  "os_architecture": 64,
-  "os_image_type": "MINIMAL",
-  "type": "IMAGE",
-  "min_hdd_size": 40,
-  "licenses": [
-    {
-      "name": "Windows 2012 Standard"
-    }
-  ],
-  "version": null,
-  "categories": []
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/get_server_image.json b/libcloud/test/compute/fixtures/oneandone/get_server_image.json
deleted file mode 100644
index f1ad1ee..0000000
--- a/libcloud/test/compute/fixtures/oneandone/get_server_image.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "id": "76EBF29C1250167C8754B2B3D1C05F68",
-  "name": "centos7-64std"
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/list_firewall_policies.json b/libcloud/test/compute/fixtures/oneandone/list_firewall_policies.json
deleted file mode 100644
index 1889436..0000000
--- a/libcloud/test/compute/fixtures/oneandone/list_firewall_policies.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
-  {
-    "id": "83522FC7DA9172F229E5352C587075BA",
-    "name": "My firewall policy test",
-    "description": "My firewall policy description",
-    "state": "CONFIGURING",
-    "creation_date": "2015-04-29T10:43:11+00:00",
-    "default": 0,
-    "rules": [
-      {
-        "id": "DA5CC179ED00079AE7DE595F0073D86E",
-        "protocol": "TCP",
-        "port_from": 80,
-        "port_to": 80,
-        "source": "0.0.0.0"
-      },
-      {
-        "id": "0766EC674A0CD9D4EC0FA0B07978A649",
-        "protocol": "TCP",
-        "port_from": 443,
-        "port_to": 443,
-        "source": "0.0.0.0"
-      }
-    ],
-    "server_ips": [],
-    "cloudpanel_id": "FW99AA4_7"
-  },
-  {
-    "id": "83522FC7DA9172F229E5352C587075B9",
-    "name": "My firewall policy test 2",
-    "description": "My firewall policy description",
-    "state": "CONFIGURING",
-    "creation_date": "2015-04-29T10:43:11+00:00",
-    "default": 0,
-    "rules": [
-      {
-        "id": "DA5CC179ED00079AE7DE595F0073D86F",
-        "protocol": "TCP",
-        "port_from": 80,
-        "port_to": 80,
-        "source": "0.0.0.0"
-      },
-      {
-        "id": "0766EC674A0CD9D4EC0FA0B07978A64A",
-        "protocol": "TCP",
-        "port_from": 443,
-        "port_to": 443,
-        "source": "0.0.0.0"
-      }
-    ],
-    "server_ips": [],
-    "cloudpanel_id": "FW99AA4_7"
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/list_images.json b/libcloud/test/compute/fixtures/oneandone/list_images.json
deleted file mode 100644
index 86bc86e..0000000
--- a/libcloud/test/compute/fixtures/oneandone/list_images.json
+++ /dev/null
@@ -1,17941 +0,0 @@
-[
-  {
-    "id": "6E1F2C70CCD3EE44ED194F4FFC47C4C9",
-    "name": "w2012r2datacenter64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "B77E19E062D5818532EFF11C747BD104",
-    "name": "w2012r2datacenter64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "7C5FA1D21B98DE39D7516333AAB7DA54",
-    "name": "w2012r2datacenter64std+SQL2012express",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "D2127B1C773877A693D718C78181D430",
-    "name": "w2012r2datacenter64std+SQL2012web",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2012 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "EB2C91E2DC1BA405C5C648ED9B9A7118",
-    "name": "w2012r2datacenter64std+SQL2012std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2012 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "71653B14F25069950DD34AF6FE1AFEDD",
-    "name": "Ubuntu 14.04",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu14.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "C14988A9ABC34EA64CD5AAC0D33ABCAF",
-    "name": "ubuntu1404-64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu14.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "72A90ECC29F718404AC3093A3D78327C",
-    "name": "ubuntu1404-64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu14.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "8E3BAA98E3DFD37857810E0288DD8FBA",
-    "name": "centos6-32min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 32,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E949B8557A0D95E3425088C496FD93F8",
-    "name": "centos6-32std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "650D003D3FC8A8FE554330E869B39FC0",
-    "name": "centos6-64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "C598EAD5691CDADD1501A2AF29A2E91C",
-    "name": "centos6-64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "DCA5686F1FC5E8A6E0B32E5A68BBB499",
-    "name": "w2008r2datacenter64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E156EA0B6CE014FEAB8BEB8CC9E3BB77",
-    "name": "w2008r2datacenter64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "3A3752FFAEA4C4F53EE701D29172E332",
-    "name": "w2008r2datacenter64std+SQL2012express",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "295D0663A4868F920332DCDC15F395A7",
-    "name": "w2008r2datacenter64std+SQL2012web",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2012 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "00A1CE098B4C6121A77B23262EAD4D76",
-    "name": "w2008r2datacenter64std+SQL2012std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2012 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E4B7589997B1147CCC5764A204F49E94",
-    "name": "Red Hat 6",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "RedHat6",
-    "os_version": "RedHat",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "F89443811E6952AF6B15E87E647D781A",
-    "name": "w2012r2datacenter64min+SQL2012express",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "65F9A55A55A558F977CF55BDC70AF60E",
-    "name": "w2012r2datacenter64min+SQL2012web",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2012 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "20C66A769CFA8B98D9EDD509A6458641",
-    "name": "w2012r2datacenter64min+SQL2012std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2012 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "06E189B1C60CB0F46501E49049C43B05",
-    "name": "w2008r2datacenter64min+SQL2012express",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "9717A92E43E2350072A77B00F2DF8CF5",
-    "name": "w2008r2datacenter64min+SQL2012web",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2012 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "79AFC562A2541DD8F904F8CF918B6899",
-    "name": "w2008r2datacenter64min+SQL2012std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2012 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "087BB7F082A7DE2817100EAD53A3845D",
-    "name": "centos6-32std+Plesk12unlimited",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "EC5DCA17E7CF86D968F60C222948C83F",
-    "name": "centos6-64std+Plesk12unlimited",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "B5F778B85C041347BCDCFC3172AB3F3C",
-    "name": "centos7-64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "7B9067380CB74BBDFE7F473DEEA2AF5C",
-    "name": "centos7-64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "9B9A214D50A7EEE8D9E37295DF834F70",
-    "name": "debian7-32min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian7",
-    "os_version": "Debian",
-    "os_architecture": 32,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "0D5A4BCDC5B47A33593239C2553F5ADC",
-    "name": "debian7-32std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian7",
-    "os_version": "Debian",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "CF8318BDB7EFE797C9C769272AAA5F5C",
-    "name": "debian7-64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian7",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "EBA74A8ED3760AE376F1E26AC6744B3F",
-    "name": "debian7-64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian7",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "07324CD1A116A7D66B0F56B240F58CD2",
-    "name": "ubuntu1204-32min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu12.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 32,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "D86A31798B9D8EB7DFC28FF377EF7E42",
-    "name": "ubuntu1204-32std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu12.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "806447A8DC74E7FD56C743877B4A61CD",
-    "name": "ubuntu1204-64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu12.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "84E3B902821F911BE6B43FA36ADA8199",
-    "name": "ubuntu1204-64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu12.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "DBC37D7DF1726331AFC8A2153FC80EF0",
-    "name": "CentOS 7",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "61FA286137BD4E113DFEC6EE0BA5BEBD",
-    "name": "FreeBSD 10",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Others",
-    "os": "FreeBSD10",
-    "os_version": "FreeBSD",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "31CEEE904708A5354F0D119CA3E1C3D7",
-    "name": "FreeBSD 10",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Others",
-    "os": "FreeBSD10",
-    "os_version": "FreeBSD",
-    "os_architecture": 32,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "18AE0A62911AD1CC145DF6A4D92BD354",
-    "name": "Red Hat 7",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "RedHat7",
-    "os_version": "RedHat",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "9FB167C5495AC815C3A3CBF273123879",
-    "name": "w2012r2datacenter64std+SQL2014express",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "31433BA1341A3EEED81ACE7DDDFA37BD",
-    "name": "w2012r2datacenter64std+SQL2014web",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2014 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "1921A315152482071F4B36E4D141EC8A",
-    "name": "w2012r2datacenter64std+SQL2014std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2014 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "1B53FF641F19052859DA26CF799CC9D2",
-    "name": "w2008r2datacenter64std+SQL2014express",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "D5FA67DFD00DB9F4FBFC363374B93306",
-    "name": "w2008r2datacenter64std+SQL2014web",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2014 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "100E5AC8FA0690EBD9AE6937E5587991",
-    "name": "w2008r2datacenter64std+SQL2014std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2014 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "8B7DE48FF94B2407B7455B76F608F8CD",
-    "name": "w2012r2datacenter64min+SQL2014express",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "BCA00B58DD301EBC649FEAC96377E7DC",
-    "name": "w2012r2datacenter64min+SQL2014web",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2014 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "0398F06DE0FF331539842ADFB96279AB",
-    "name": "w2012r2datacenter64min+SQL2014std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2014 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "F61E08E34CA0B44904A331A83EED6AE2",
-    "name": "w2008r2datacenter64min+SQL2014express",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "729F1DB5BBB2EEC6EBC6651ABB19AE85",
-    "name": "w2008r2datacenter64min+SQL2014web",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2014 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "1EAFCF5E37C3331590AC7E3266ECF12E",
-    "name": "w2008r2datacenter64min+SQL2014std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2008R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2014 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Datacenter"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "0735AA79194B274179A8FADE62208FED",
-    "name": "Solaris 10",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Others",
-    "os": "Solaris10",
-    "os_version": "Solaris",
-    "os_architecture": 32,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E8F733BBB99D1313652F5690D87B0E77",
-    "name": "Solaris 10",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Others",
-    "os": "Solaris10",
-    "os_version": "Solaris",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "F7E14983198CDC318267A5D0DEA330D8",
-    "name": "centos7-64std+cpanel",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "cPanel 11"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "6C902E5899CC6F7ED18595EBEB542EE1",
-    "name": "Docker",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 30,
-    "licenses": [],
-    "version": null,
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "8ED1E267A9E1367F731B4AE624FDF1C0",
-    "name": "W2012R2DATACENTER64STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "35A31E95A968545236B2584771D3B8CA",
-    "name": "W2012R2DATACENTER64STD+SQL2012EXPRESS+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "698D35B35E01506574B4DA83A095C444",
-    "name": "W2012R2DATACENTER64STD+SQL2012WEB+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2012 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "2E79303E264846125F7AD6877AE155B5",
-    "name": "W2012R2DATACENTER64STD+SQL2012STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2012 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "F38F08898A742CF3046F8F825C9B199A",
-    "name": "UBUNTU1404-64STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu14.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "AAC4EF1852B735A52D8D531381B81500",
-    "name": "CENTOS7-64STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "051BC8159D2014F2B2D333E5D9BB671B",
-    "name": "DEBIAN7-32STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian7",
-    "os_version": "Debian",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "D04943D702F82A1FC29B42FD635ACB51",
-    "name": "DEBIAN7-64STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian7",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E5712C6F4ACFC3BCADFBBA2C0681E629",
-    "name": "UBUNTU1204-32STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu12.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E935C4BAA226D7179FF3EB753B4F9323",
-    "name": "UBUNTU1204-64STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu12.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "A94D4970684581C3CFC135AE80E1FC39",
-    "name": "W2012R2DATACENTER64STD+SQL2014EXPRESS+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "BD727924A1E53F7D3B9D7B811F339D6B",
-    "name": "W2012R2DATACENTER64STD+SQL2014WEB+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2014 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "95736E72DD3FFF9A825FF17ABBB96671",
-    "name": "W2012R2DATACENTER64STD+SQL2014STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2014 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "C572494C271ED64142E5FD93E084BBFC",
-    "name": "CentOS 6",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "2D593C41B3EB2BA345AFE806A5BA41A3",
-    "name": "CentOS 6",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 32,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "5EDF485861FB263DDBB7C04867346A6E",
-    "name": "Plesk",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "12.5",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "96D5CEB497043FD54E834DEC4B8FF70A",
-    "name": "cPanel",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "cPanel 11"
-      }
-    ],
-    "version": null,
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "EAB1D06D1B78654A6E391FAC48BAA4B1",
-    "name": "Sharelock",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.1.0pre-4-r04",
-    "categories": [
-      "APPLICATION SECURITY",
-      "PASSWORD MANAGEMENT"
-    ]
-  },
-  {
-    "id": "2D012C80C31413503F1E31355CAA0240",
-    "name": "WildFly",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "10.0.0-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "CACF27D3256071F13E471FCF5C25FCF7",
-    "name": "SimpleInvoices",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2013.1.beta.8-3",
-    "categories": [
-      "ACCOUNTING"
-    ]
-  },
-  {
-    "id": "A2302EA99E2A7E894277C4CF124F8951",
-    "name": "PROST",
-    "available_datacenters": [
-      "4EFAD5836CE43ACA502FD5B99BEE44EF"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu14.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "MY_IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "CA020E48664C63D5DBA879774B80632C",
-    "name": "KNOPPIX_7.6.1_32BITS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Knoppix 7.6.1",
-    "os_version": "Knoppix",
-    "os_architecture": 32,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E678D53FF49EA13026C8CAE565373858",
-    "name": "KNOPPIX_7.6.1_64BITS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Knoppix 7.6.1",
-    "os_version": "Knoppix",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "7BCAA13B5B5A9E11B496B3E2A7E49D7B",
-    "name": "Debian 8",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 32,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "590C67467416363FFA6DAEBA939CE9AA",
-    "name": "Debian 8",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "2193D3FE6136ECC25A2BCF5F506478A6",
-    "name": "debian8-32min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 32,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "C4DA59C0E4D5C63E89536ABF309DD942",
-    "name": "debian8-32std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E9783B668B3E3D3C46A47B68ECA49858",
-    "name": "DEBIAN8-32STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "FF696FFE6FB96FC54638DB47E9321E25",
-    "name": "debian8-64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "868B25F5DDC3E110ACDEF034B1B81863",
-    "name": "debian8-64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "74B24B20E8DC35548B3A11387C1B3BCD",
-    "name": "DEBIAN8-64STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "6D9435667B9BFC6583C9D052F0F1D48B",
-    "name": "ubuntu1604-32min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu16.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 32,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "4871EEE48030E0E5FAE813B780760BCD",
-    "name": "ubuntu1604-32std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu16.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "753E3C1F859874AA74EB63B3302601F5",
-    "name": "ubuntu1604-64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu16.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "4DBFA2D31B1A303A9CE0E4ECF8838FDE",
-    "name": "ubuntu1604-64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu16.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "5FEDF374F19FE3BFA536DBC0660DDB1E",
-    "name": "Publify",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.0-3",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "A66EC633504CE600B9D659EA28082732",
-    "name": "Squash",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20151209-4",
-    "categories": [
-      "CODE REVIEW"
-    ]
-  },
-  {
-    "id": "93DF6BD0351A6E1BF698896F95E8CFE4",
-    "name": "REFINERY CMS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.5-8",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "E08D613211F4CFC7367052614BA0E1E7",
-    "name": "Spree",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.7-2",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "3DEF9E1E82F8F14B7AC57595990E2E2E",
-    "name": "OPEN EDX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160414-2",
-    "categories": [
-      "COLLABORATION",
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "E8564D74944AC4F005E8CE951340D849",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.5.2.php56-0",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "49130A36E7961805F0F3494D47724625",
-    "name": "CANVAS LMS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2016.04.23.03-1",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "040FBEF43407931C74EE074CCEC759AF",
-    "name": "CENTOS6-64STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "FDB280E565E2CC9D210BBE0F7B688E45",
-    "name": "CENTOS6-32STD+PLESK12.5UNLIMITED",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 32,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "6044F1B4DCAAB9F877ED7BBE2B6F26BE",
-    "name": "TYPO3",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.1.2-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "7C48549F3DED9540B7CE75F761C96F62",
-    "name": "PostgreSQL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.5.3-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "D15BA431C4EBE5AAA454892309E69A44",
-    "name": "Redis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.1-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "274A1F47D79E07587939BF90A7845176",
-    "name": "Memcached",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.4.28-0",
-    "categories": [
-      "CACHE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "D1C6FCCBA91EDEA95B7F3EA3C4B0F91E",
-    "name": "RabbitMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.3-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "332AEAC8F58655EF5C6CFC18BDEAB5BB",
-    "name": "Redmine",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.0-1-r05",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "POPULAR",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "1DDB874AC504E01DF1357D961274BEAE",
-    "name": "OpenProject",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.19-1-r05",
-    "categories": [
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "F213BAD2BC86F2383656606D1800070E",
-    "name": "CHT1-GB-IMAGE",
-    "available_datacenters": [
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian7",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "MY_IMAGE",
-    "min_hdd_size": 30,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "1DC90B8D32CC6DB41FE2ABA027381AEA",
-    "name": "CHT1-DE-IMAGE_20160720",
-    "available_datacenters": [
-      "4EFAD5836CE43ACA502FD5B99BEE44EF"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu16.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "MY_IMAGE",
-    "min_hdd_size": 30,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "DA40BC2BC45E15117E723E07648AB74C",
-    "name": "CHT1-ES-IMAGE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "MY_IMAGE",
-    "min_hdd_size": 30,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "FD7D017C0BDD327F3DF206A85699FFF5",
-    "name": "ocPortal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.28-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "74FECE8CC262CB31A11F051499B1B30E",
-    "name": "NGINX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.1-1",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "F84262237686F207C9E961EEBF7F9A05",
-    "name": "MyBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.8.7-2",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "FB593AF3F89A8B26B0B6E78F2E232B39",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1.6-2",
-    "categories": [
-      "E-COMMERCE",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "DE91B3C9C152C3A9189F170F9F0A8CD0",
-    "name": "MediaWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.26.3-1",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "2C0D250864B6EA5D0898A20A950D35ED",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.50-2",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "BAA7787F8931D571A572192E3F663384",
-    "name": "Joomla!",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.0-1",
-    "categories": [
-      "CMS",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "CB7DE59A819E818711A9E339E7C9E618",
-    "name": "ownCloud",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.0-0",
-    "categories": [
-      "MEDIA SHARING",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "DA24D87F4772BFE5FAB3EB112CA66A90",
-    "name": "SugarCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5.24-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "C86A0850D804AEB0222E486BE3208983",
-    "name": "WORDPRESS MULTISITE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.5.3-1",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "64D9900D1EA66D4FE4479B8C34EBB88B",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.5.3-1",
-    "categories": [
-      "BLOG",
-      "CMS",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "6AF74675A2203B02E0E2D717CA9EF9B1",
-    "name": "phpBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.9-2",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "F6363C60A8D4C25107419C6DC9071FEE",
-    "name": "XOOPS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.7.2-3",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "D41BE971AC2EDC441F81972AA56BE301",
-    "name": "OrangeHRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.2-2",
-    "categories": [
-      "HUMAN RESOURCE MANAGEMENT"
-    ]
-  },
-  {
-    "id": "91AF83F9EA73478EEC2DA5D11480FD9C",
-    "name": "Mean",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.8-1",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "94118CB46246C958A542D5E21AE4098E",
-    "name": "ResourceSpace",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.8-3",
-    "categories": [
-      "MEDIA SHARING",
-      "PHOTO SHARING",
-      "VIDEO SHARING"
-    ]
-  },
-  {
-    "id": "D9A859F560AA227DD07488945459DDFF",
-    "name": "Odoo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.20160620-2",
-    "categories": [
-      "CRM",
-      "ERP",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "AC223698D543228BD97BB355112DC887",
-    "name": "LIVE HELPER CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.46v-1",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "41BA5BD5A162B87C5275854CBF3BC4D3",
-    "name": "Moodle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.1-1",
-    "categories": [
-      "ELEARNING",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "2C191B48E1B1E678951CA83C7F14BA01",
-    "name": "Ruby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.1-4",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "A20125D799D01E829AB996B73499501F",
-    "name": "Hadoop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.2-1",
-    "categories": [
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "C9C4E5912736CF2928BC412E8FD1DC1E",
-    "name": "EXO PLATFORM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.0-4",
-    "categories": [
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "F823CA021043AE2D08913ED689994F6A",
-    "name": "LET&#39;S CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.4.7-1",
-    "categories": [
-      "CHAT",
-      "COLLABORATION",
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "53133AE1EB34BBD576A17F345CD95467",
-    "name": "JRuby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.2.0-1",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "206A0FB72271162B051E7E6B61E0E3B9",
-    "name": "Liferay",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.0.1-2",
-    "categories": [
-      "PORTAL SERVER"
-    ]
-  },
-  {
-    "id": "3C54989CFAAC3866BA0D09595433B1DF",
-    "name": "Openfire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.0.2-2",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "704E8A5FAF76C2AFF2D6B747F2833E51",
-    "name": "Neos",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.6-3",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "169077A5C3977104306F38F8E5799D21",
-    "name": "Noalyss",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.9.0.0-4",
-    "categories": [
-      "ACCOUNTING"
-    ]
-  },
-  {
-    "id": "137727284539B72CB5CC594BDA11ACCA",
-    "name": "PROCESSMAKER OPEN SOURCE EDITION",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.1.8-3",
-    "categories": [
-      "BPM",
-      "COLLABORATION"
-    ]
-  },
-  {
-    "id": "54627DC0DBFBC1CAEAD9CB65B6335E14",
-    "name": "OpenCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.0.0-2",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "7E09821C352A16C055216BF337261172",
-    "name": "OPEN ATRIUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.54-3",
-    "categories": [
-      "CMS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "75E9BF70942168A9F2A184830AD52C1E",
-    "name": "Pootle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.3-1",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "EC1971DE44DDB26B228AAF7E3E09B0F9",
-    "name": "Pimcore",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.1-5",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "9583B74D82356958FA0ECC6919D90336",
-    "name": "phpList",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.5-1",
-    "categories": [
-      "NEWSLETTER MANAGER"
-    ]
-  },
-  {
-    "id": "FEB02845D85AA3CC2A044C34EF82990F",
-    "name": "OSQA",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "B1E51217B6EACE01AAD94DAD749DA7D7",
-    "name": "OXID ESHOP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.8-1",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "57DA7F9377430796E2B460A1AB06CA47",
-    "name": "Osclass",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.1-3",
-    "categories": [
-      "ONLINE CLASSIFIEDS"
-    ]
-  },
-  {
-    "id": "E0A1463DB2128078D70A1349AE588334",
-    "name": "REPORTSERVER COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.2-2",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "0D8E437D6AC523E1FC861573A02A7003",
-    "name": "RE:DASH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.10.1.1834-2",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "C38F0D74C3229E239CCD5ADBA8219D69",
-    "name": "ProcessWire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.2-3",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "007CB21D4E96A2CB9B793055480CCBCC",
-    "name": "SEO PANEL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.0-2",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "29CFB2921C4AABECE924C2BCBFF7529E",
-    "name": "Roundcube",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.1.4-4",
-    "categories": [
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "F60C3C16A160413FF80BD01141C3996A",
-    "name": "REVIEW BOARD",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.6.1-1",
-    "categories": [
-      "CODE REVIEW",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "41EFA3047599548686F49E8A703F9272",
-    "name": "SIMPLE MACHINES FORUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.0.12-1",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "8CB1E54FE149D174B1F74A4B997E5685",
-    "name": "Railo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.1.008-5",
-    "categories": [
-      "APPLICATION SERVER"
-    ]
-  },
-  {
-    "id": "A9CBCAD23493DCEABE71ED09AB31174D",
-    "name": "Roller",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.1.2-8",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "5EEAB74822AFF231207DDBDB11B92934",
-    "name": "SilverStripe",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.4.0-1",
-    "categories": [
-      "CMS",
-      "FRAMEWORK"
-    ]
-  },
-  {
-    "id": "0AE06ED19D4FA7BD7B41B799D4B96704",
-    "name": "Sitecake",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.9-4",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "B77B7AEA1DAE36A579A8D81F24E126D2",
-    "name": "Weblate",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5-1",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "2ECD76527ABD16DC6F2BED507912FFFD",
-    "name": "TestLink",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.9.14-4",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "TESTING"
-    ]
-  },
-  {
-    "id": "A29E35300D2D6B8DA10498DB8CB08074",
-    "name": "Tracks",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-9",
-    "categories": [
-      "PLANNING"
-    ]
-  },
-  {
-    "id": "9F4320B2D44D0FDDC883C4AA7B8F9EA0",
-    "name": "Zurmo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.5-2",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "0D8E3D1102587B91FD1596B9868021D6",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.0.36-2",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "49AB84DBAD6764D59B5111B7DDCF8EE4",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.3.1-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "9DC423C7DA8A0A4FBD1DE6FBA85C17E2",
-    "name": "Trac",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "A336C2CFE78C5156ADF556C2F666D1B1",
-    "name": "Mantis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.2.19-5",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "A9AAB71F0A765059E0D6D9274781724D",
-    "name": "Plone",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.2-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "C9D63C05556580FE1722776B8E5F48DB",
-    "name": "Magento",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.0-2",
-    "categories": [
-      "E-COMMERCE",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "294D6E256D749277BEF89D1AFEDDB193",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.17-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "MOBILE DEVELOPMENT",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "FDAF02F6061C87FD39102336F7625831",
-    "name": "LimeSurvey",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160728-0",
-    "categories": [
-      "POLL MANAGEMENT"
-    ]
-  },
-  {
-    "id": "232AF8315BCC0E8D9D626192D2BA64FE",
-    "name": "MODX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.1pl-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "36A45A12E9214B4DB6B5098A4BD1A451",
-    "name": "Phabricator",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160725-0",
-    "categories": [
-      "BUG TRACKING",
-      "CODE REVIEW",
-      "PROJECT MANAGEMENT",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "4639704650A3780F352738601C6989F7",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.16-0",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "04B99791EC464628DD6290698BC0F17C",
-    "name": "SuiteCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.7-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "26A7389A2DBDDED651EFAA4E3835F377",
-    "name": "Piwik",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.16.2-0",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "EC8EA218EC5089910C52D91F1E053F3F",
-    "name": "X2ENGINE SALES CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.0.3-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "7F3616E0B7610AF28BB4D1E617E6D19F",
-    "name": "NODE IMAGE_20160806",
-    "available_datacenters": [
-      "908DC2072407C94C8054610AD5A53B8C"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "MY_IMAGE",
-    "min_hdd_size": 60,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "003CE838ACDF71E5B2D43659A096291D",
-    "name": "IMAGE UPDATED NODEJS",
-    "available_datacenters": [
-      "908DC2072407C94C8054610AD5A53B8C"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "MY_IMAGE",
-    "min_hdd_size": 60,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "724F9387EB2A18A75E67C48FB046A173",
-    "name": "IMAGE UPDATED NODEJS",
-    "available_datacenters": [
-      "908DC2072407C94C8054610AD5A53B8C"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "MY_IMAGE",
-    "min_hdd_size": 60,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "CC714964F6A27F58A7E47485DE02E8AA",
-    "name": "ActiveMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.14.0-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "11B0EC5C951798C72F8DB7B625D196EA",
-    "name": "Akeneo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.4.20-3-r17",
-    "categories": [
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "1485D00FBCD691A400E6C43E88807FC7",
-    "name": "ALFRESCO COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "201605-1-r17",
-    "categories": [
-      "CMS",
-      "DOCUMENT MANAGEMENT",
-      "ECM"
-    ]
-  },
-  {
-    "id": "AA88C22D5C13568A240A04A3EE6D13C9",
-    "name": "Artifactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.0-1-r17",
-    "categories": [
-      "BINARY REPOSITORY",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "DFB6F45DE36E4E996D1C682811EF655D",
-    "name": "Ametys",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.7.3-2-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "7B92E60DEF5FF17E7CE4E73F1870ADD7",
-    "name": "Cassandra",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.7-0-r17",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "705518F8C86BCA65295AB7935801A5E8",
-    "name": "Chyrp",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.2-5-r17",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "2C4C84938FA20C26942E5A7989423307",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.10-0-r17",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "7C631E3D8043517A2BC2680415B1CC71",
-    "name": "Codiad",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.4-2-r17",
-    "categories": [
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "8ACF1E7FC5A48ABFBC72863A1A45CB8C",
-    "name": "CouchDB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1-5-r17",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "07B621A1D899DA27A7C18AAEACE74137",
-    "name": "Coppermine",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.5.42-1-r17",
-    "categories": [
-      "PHOTO SHARING"
-    ]
-  },
-  {
-    "id": "A81C74469B600C7628029547FFFAD4EA",
-    "name": "concrete5",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.7.5.9-0-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "7DB0DCB9B0769F2C1747F78362C4CA7A",
-    "name": "Discourse",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.5.3-0-r17",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "B5047C5C0BCBC106B1EBE1A66FE180F0",
-    "name": "DokuWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160626a-1-r17",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "430CAC94ED76DF72315F3F2F8F27F57D",
-    "name": "Dolibarr",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.3-0-r17",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "CD13429CD80B961B1ED99F51487E4B2B",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.1.8-0-r17",
-    "categories": [
-      "CMS",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "C2A1BCC54B015AFDDBF4CAE308CA8B8B",
-    "name": "Elasticsearch",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.5-1-r17",
-    "categories": [
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "ABE80BF96BB73D8C50D2C2E59F4E9EC7",
-    "name": "ERPNext",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.27.9-3-r17",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "63069668ED8B221957F77E0F55EB0BBE",
-    "name": "EZ PUBLISH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2014.11-4-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "84228C364024B3606C50A65DBE772C62",
-    "name": "Ghost",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.9.0-0-r17",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "9625D6507B627024369B71B3A53FC6A8",
-    "name": "FAT FREE CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.13.6-9-r17",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "AA7033295AC9D017B372ABE83A893326",
-    "name": "GitLab",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.9.6-0-r17",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "VERSION CONTROL"
-    ]
-  },
-  {
-    "id": "207189765354E2C7DDFDD2D3C38040DF",
-    "name": "Hadoop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.2-1-r17",
-    "categories": [
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "A21A106D20008D432878351CAE872A1D",
-    "name": "HORDE GROUPWARE WEBMAIL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.14-2-r17",
-    "categories": [
-      "COLLABORATION",
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "40A54EFAA7E4D2CA3A19D01AC90FCD28",
-    "name": "JasperReports",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.3.0-1-r17",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "4B9E22B093F62EF8FC51A0DC953F3EEE",
-    "name": "JBOSS AS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.2.0-4-r17",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "C38A935EED3E64FDA5E3139BC9DA19D3",
-    "name": "Kafka",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.10.0.1-0-r17",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "729DA11C172C2A6294E8C322486CF15A",
-    "name": "Joomla!",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.2-0-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "2F3714CC0E84CB99EB54CC2538F58172",
-    "name": "LET&#39;S CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.4.7-1-r17",
-    "categories": [
-      "CHAT",
-      "COLLABORATION",
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "1BDD83C2B2F0C31B17A04A01575E36BB",
-    "name": "LIVE HELPER CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.46v-1-r17",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "B0AD4786940840236B08C35EA90885AF",
-    "name": "MODX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.1pl-0-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "F7C18DC4E1B45C71FEC9C47E4A095982",
-    "name": "MyBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.8.7-2-r17",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "6C291BF1667016BE4A45E972F1760808",
-    "name": "Neos",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.6-3-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "096B56EBB3AF16E23644E97A9083DED6",
-    "name": "NGINX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.1-1-r17",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "06D8DDC170731E1E4D53A91D5EA2EA0D",
-    "name": "Noalyss",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.9.0.0-4-r17",
-    "categories": [
-      "ACCOUNTING"
-    ]
-  },
-  {
-    "id": "40AAA103CA41D486E20117C5DD66568A",
-    "name": "Odoo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.20160620-2-r17",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "854FD08E82BB00EB0097948AFFADBF13",
-    "name": "OrangeHRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.2-2-r17",
-    "categories": [
-      "HUMAN RESOURCE MANAGEMENT"
-    ]
-  },
-  {
-    "id": "D231E0C17032F67F2D8691CE1E726A24",
-    "name": "OpenProject",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.19-1-r17",
-    "categories": [
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "992E0B00B702ADEE9E3AE3B0E2C99868",
-    "name": "Osclass",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.1-3-r17",
-    "categories": [
-      "ONLINE CLASSIFIEDS"
-    ]
-  },
-  {
-    "id": "B5807A326C68B38FAA9362ACE08AFC40",
-    "name": "OSQA",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "3F5FCB4DD7923159B0FD3608E4306C42",
-    "name": "ownCloud",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.0-0-r17",
-    "categories": [
-      "MEDIA SHARING"
-    ]
-  },
-  {
-    "id": "D9A49296D136AA64C35001A9698B0052",
-    "name": "OXID ESHOP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.8-1-r17",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "E142BF5D5408569E9640A61C330B116C",
-    "name": "Phabricator",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160725-0-r17",
-    "categories": [
-      "BUG TRACKING",
-      "CODE REVIEW",
-      "PROJECT MANAGEMENT",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "DB1DC9F88E498BFCFC953A5151442756",
-    "name": "phpBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.9-2-r17",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "03440FD53C0E1FEB3D8540AA0BBED374",
-    "name": "Pimcore",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.1-5-r17",
-    "categories": [
-      "CMS",
-      "E-COMMERCE",
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "84ECBB02E2C800C16E2DC3D95FF6C34E",
-    "name": "Piwik",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.16.2-0-r17",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "E575B3B1D03A59548B46167757BFED5A",
-    "name": "Plone",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.2-1-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "B4BC4F8E0911B59BF5EE28493A1F0818",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1.6-2-r17",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "5A2C1381437270EBFEB5DA10C1F62E44",
-    "name": "PROCESSMAKER OPEN SOURCE EDITION",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.1.8-3-r17",
-    "categories": [
-      "BPM",
-      "COLLABORATION"
-    ]
-  },
-  {
-    "id": "75B3534710A5B853A6408CA4875DC06D",
-    "name": "ProcessWire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.2-3-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "BDA10DBDB712CCF46832DC1FB4D0A927",
-    "name": "Pootle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.3-1-r17",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "6FEECAD19E36735195BC43EC302A40F6",
-    "name": "phpList",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.5-1-r17",
-    "categories": [
-      "NEWSLETTER MANAGER"
-    ]
-  },
-  {
-    "id": "D82E69BE96A658CE9F20307621988AE9",
-    "name": "RabbitMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.5-0-r17",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "EC6CB19716E4C3815D6E381BD9DD48CC",
-    "name": "Publify",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.0-3-r17",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "8C7AC5833364516F6F658472CAA8B382",
-    "name": "Redis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.3-0-r17",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "DFB169364B2F5AC2D25D14E87E6CE216",
-    "name": "Railo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.1.008-5-r17",
-    "categories": [
-      "APPLICATION SERVER"
-    ]
-  },
-  {
-    "id": "CDD88DFFEFC7EE1D8B424EB65EAA0D8B",
-    "name": "Redmine",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.0-1-r17",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "0F01E141122CB410941492A47CF0B12D",
-    "name": "REPORTSERVER COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.2-2-r17",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "0157F81454776BFBB8D4F5F5839F6E69",
-    "name": "REFINERY CMS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.5-9-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "AB2EE4DB918B602164E3B359F5008346",
-    "name": "ResourceSpace",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.8-3-r17",
-    "categories": [
-      "MEDIA SHARING",
-      "PHOTO SHARING",
-      "VIDEO SHARING"
-    ]
-  },
-  {
-    "id": "6F55B7A1CB8165416E72FB4EC4B31E45",
-    "name": "Roller",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.1.2-8-r17",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "F2196ABDFD64B55573B9F0F926467547",
-    "name": "Roundcube",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.1.4-4-r17",
-    "categories": [
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "5E122541ADD7F8C46B90423E61F0CA37",
-    "name": "Ruby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.1-4-r17",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "FB7C9FDC9DE754EA14072278BA7B8034",
-    "name": "SEO PANEL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.0-2-r17",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "C1F702D004852D911D2FC8DD31777A24",
-    "name": "Sitecake",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.9-4-r17",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "808DCE112CB5608E2BB81586C0C2228F",
-    "name": "Spree",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.7-2-r17",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "110FED5DC89D9BFBCE7CA6D8375601D8",
-    "name": "Squash",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20151209-4-r17",
-    "categories": [
-      "CODE REVIEW"
-    ]
-  },
-  {
-    "id": "24518F1E3047C04B491B5333A712C9E6",
-    "name": "SugarCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5.24-0-r17",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "A518ECEC924E6F099BC4EB724C09277C",
-    "name": "TestLink",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.9.14-4-r17",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "TESTING"
-    ]
-  },
-  {
-    "id": "8380A0AAE041BB458FE78BF91018B7A4",
-    "name": "Trac",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "5899941FA66B700CC78EA06CEBFD7B28",
-    "name": "Tracks",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-9-r17",
-    "categories": [
-      "PLANNING"
-    ]
-  },
-  {
-    "id": "6C24674971A1FD051D0C6D2F6E5579B2",
-    "name": "Weblate",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5-1-r17",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "55D16D4D84902505BBCDDDEEFF9BAE17",
-    "name": "Zurmo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.5-2-r17",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "1E66A9D9EDEC0D9324DBF033280B6206",
-    "name": "X2ENGINE SALES CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.0.4-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "D0BF11D16DE12DBB2F03B769F997868E",
-    "name": "PostgreSQL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.5.4-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "05B9AE7CE2714F70A8854DADB923E697",
-    "name": "IMAGE UPDATED NODEJS",
-    "available_datacenters": [
-      "908DC2072407C94C8054610AD5A53B8C"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 32,
-    "os_image_type": null,
-    "type": "MY_IMAGE",
-    "min_hdd_size": 60,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "C85BD198EA9364778599592FF39FA049",
-    "name": "HHVM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.9-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "C09108DE96BEAA6184FF366A02E8DE46",
-    "name": "Mean",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.9-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "620FC561D9F94BB0B0146F168EB85136",
-    "name": "Liferay",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.0.2-0",
-    "categories": [
-      "PORTAL SERVER"
-    ]
-  },
-  {
-    "id": "379CAAB0ED5C4FAFACF9F034A69735CA",
-    "name": "EspoCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.4-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "17A060B98D6E7F25707BF6C71F6096A7",
-    "name": "SilverStripe",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.4.1-0",
-    "categories": [
-      "CMS",
-      "FRAMEWORK"
-    ]
-  },
-  {
-    "id": "837C3D8111893C0C9964E0DDE7971915",
-    "name": "ocPortal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.29-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "1373011804EF4A657035889D895226F6",
-    "name": "CMS MADE SIMPLE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.5-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "18378C6A39E088EE7932D07006A7D20C",
-    "name": "Diaspora",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.5.10.2-0",
-    "categories": [
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "12EC2D018628FDAB2ACCDA4D3FA55ADC",
-    "name": "OPEN ATRIUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.68-0",
-    "categories": [
-      "CMS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "69E015EC1808F640F1F31F3D3526F0A1",
-    "name": "MediaWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.27.1-0",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "606DBF39FA1D3E9B6FF7E3B7A39752F3",
-    "name": "AbanteCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.2.8-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "DF4F6AB724D6FB458716D651F7394B63",
-    "name": "Openfire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.0.3-0",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "409B5E9CCFCA214FC352C5808ABF96C1",
-    "name": "LimeSurvey",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160817-0",
-    "categories": [
-      "POLL MANAGEMENT"
-    ]
-  },
-  {
-    "id": "03DC6FF3F27796E757B203CFDF6BD5FE",
-    "name": "Memcached",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.4.31-0",
-    "categories": [
-      "CACHE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "5EE33F33187A783EFC9051B4DD9E074A",
-    "name": "XOOPS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.8-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "4C91108B31F5F77D709B33241148672D",
-    "name": "APACHE SOLR",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.2.0-0",
-    "categories": [
-      "INFRASTRUCTURE",
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "A80FF8BFAFD7A03866B197CE4FB1D486",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.18-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "DBE47B145016882FC946689C1BFF8079",
-    "name": "EXO PLATFORM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.0-8",
-    "categories": [
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "41B2AE576124D0747F53715B3A3E252D",
-    "name": "DreamFactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "CF684312E2D8ACD884ACE2263E2FD91E",
-    "name": "OPEN EDX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160414-4",
-    "categories": [
-      "COLLABORATION",
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "FB5FADC8EAB7F8560BA94699211EED2E",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "5EFEB640001CE1B7FDC6AEAEFD4F1C29",
-    "name": "TYPO3",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.3.0-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "30C78C33F5241ED6E0A30F8EAC650D7A",
-    "name": "OPENSUSE_LEAP-42.1_64BITS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "OpenSuse Leap-42.1",
-    "os_version": "OpenSuse",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "55BD7B087A069AAEE78D5FA36588A519",
-    "name": "ARCHLINUX_2016.06.01-DUAL_64BITS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "ArchLinux 2016.06.01-dual",
-    "os_version": "ArchLinux",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "39725DAAFD90265243241744C29B82F0",
-    "name": "OPENSUSE_LEAP-42.1_64MIN",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "OpenSuse Leap-42.1",
-    "os_version": "OpenSuse",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "FE87E4000FC94A6290599EA813431F9E",
-    "name": "ArchLinux_Rolling_Release_64min",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "ArchLinux Rolling Release",
-    "os_version": "ArchLinux",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "C5A349786169F140BCBC335675014C08",
-    "name": "CoreOS_Stable_64std",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "CoreOS Stable",
-    "os_version": "CoreOS",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "6AB60C7F28CF9D78191697BAA1A46C4F",
-    "name": "Magento",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.1-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "4A518A867FF37731FE64EF86AC98E3FA",
-    "name": "Pimcore",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.0-0",
-    "categories": [
-      "CMS",
-      "E-COMMERCE",
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "0A82F54809F6AFC04CA371936D5686AC",
-    "name": "SuiteCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.7.4-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "83C5B340E8227A5DA52DE1AD33369C9B",
-    "name": "Elasticsearch",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.4.0-0",
-    "categories": [
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "9DC8914F60D716DFE6733A761EA93828",
-    "name": "Moodle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.1-2",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "14C799C6DEE937B4317282D1AA126EFA",
-    "name": "Shopware",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.6-0",
-    "categories": [
-      "CMS",
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "9BC273C4C7E5980FBA0BA3CD4D55E783",
-    "name": "WORDPRESS MULTISITE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6-1",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "50E477771DC4AC8C1E93E0796EBC12C8",
-    "name": "RE:DASH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.11.1.2095-0",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "56521A4ED64DD88FA0AF56F086C07C43",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.1-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "99044CEE5F93573A653ACC5225431EB7",
-    "name": "REVIEW BOARD",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.6.1-2",
-    "categories": [
-      "CODE REVIEW",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "F1A014F8CF538A5262A1F5F8C4BD9FDB",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.0.37-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "0381C291860A658F775DE08A032E8C71",
-    "name": "Sharelock",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.1.0pre-5",
-    "categories": [
-      "APPLICATION SECURITY",
-      "PASSWORD MANAGEMENT"
-    ]
-  },
-  {
-    "id": "FFA938A78176DDF7AE790E0C9403741D",
-    "name": "Mantis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.3.1-1",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "A673C801E3A479A5D63EA44E49D397BB",
-    "name": "JRuby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.5.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "B1425A233077C5D769C19F8FFEA2DFB1",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1.7-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "B35BB7EA283240172B46A0BB31026D28",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-0",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "BF6461B167C7A61B012BF9010B1EA0B3",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.1.9-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "75192D547D0461CDC97253B8857C1F0C",
-    "name": "OpenCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0.2-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "F910CE211AD2BC859F41403B94C42EBF",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.11-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "90151B99F7AFDE6C4328F1950A3C3EC5",
-    "name": "WildFly",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "10.1.0-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "BBE7C30D9C5DDC1CD1BE1E4B309F38AA",
-    "name": "DreamFactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-1",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "CBD1BB22D10E960001A75C8BF3D1B768",
-    "name": "NGINX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.1-2",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "7BDABE3C41DD3E20D685D8AC36847880",
-    "name": "LIVE HELPER CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.47v-0",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "DAF026809CF1A91F428F9720CBDE4A61",
-    "name": "Moodle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.2-0",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "903AF4782C188C069C661D7FDAAE8227",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.19-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "B506755C5F48FA7D2A0D873DF0ED4493",
-    "name": "Ghost",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.10.1-0",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "F5E8B877B38E2B03BF7E0E47CF9A7EDE",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.22-0",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "35A4FD155BB90DDF64C463D7DD0011EA",
-    "name": "ECLIPSE CHE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.2-0",
-    "categories": [
-      "COLLABORATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "1F542168F6AEDEB8831A8F595C2079D0",
-    "name": "Pimcore",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.1-0",
-    "categories": [
-      "CMS",
-      "E-COMMERCE",
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "F60FC0CB8526EAD747972C5AFEC1718C",
-    "name": "EspoCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.5-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "FB7BCD8FDFEFD68F66EC95929CA2EFC6",
-    "name": "TYPO3",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.3.1-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "C8E4E0566D199E2E0F217E3ED8562F4C",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.21-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "87C89931FB3CE60F4D5A840471130622",
-    "name": "Codiad",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.5-0",
-    "categories": [
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "CC49145B6893DAC56DF387BD9CE35155",
-    "name": "DreamFactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-2",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "015E1594D0FC841719F59EE2B58C0A87",
-    "name": "ResourceSpace",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.9-0",
-    "categories": [
-      "MEDIA SHARING",
-      "PHOTO SHARING",
-      "VIDEO SHARING"
-    ]
-  },
-  {
-    "id": "4F7467E3860543E0A8C09CE5304A7354",
-    "name": "APACHE SOLR",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.2.1-0",
-    "categories": [
-      "INFRASTRUCTURE",
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "2A96D34A571CFB86E847F6AF6066383C",
-    "name": "OpenProject",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.20-0",
-    "categories": [
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "0DE02576F5118B72E621C4189C25A655",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.6.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "719124C209CE44E0FDD9704ADC24A16C",
-    "name": "Shopware",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.7-0",
-    "categories": [
-      "CMS",
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "3D68AF170B405DEF486951FDE9FC6B8B",
-    "name": "ocPortal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.30-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "FA88509561903CD244F4D719111930FB",
-    "name": "WP MULTISITE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-2",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "230F941F659C727882B23D86B0CEF2F3",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-2",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "F2F1C86F7DFA8D00D2F1DC4563A364F7",
-    "name": "Ghost",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.11.0-1",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "4D48C7B5DD466847F539E27BA02A8532",
-    "name": "Artifactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.0-2",
-    "categories": [
-      "BINARY REPOSITORY",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "66564263B7F1A8744DC488D185048333",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-3",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "66AB04CDBA615AA5F60CD6E0D7CB0A52",
-    "name": "WP MULTISITE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-3",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "0BBA2EA144128ADE93DA73580B734CB2",
-    "name": "HHVM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.9-1",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "FD27DA95E73982955F6BD7FC2CF3239A",
-    "name": "AbanteCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.2.8-1",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "32B0B16C9988E0DF89D8C214FAB2E2CB",
-    "name": "SugarCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5.24-1",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "AD9651BEA3F09D826BE1052FEBE83421",
-    "name": "SuiteCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.7.4-1",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "02F49EFE3E972965B0E3E8E0CE0ED1B2",
-    "name": "TestLink",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.9.15-1",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "TESTING"
-    ]
-  },
-  {
-    "id": "811336E891511883DCFB550C8D0A093C",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.0.M10-1",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6DB7B9C04829632AB95C790AE3EDE774",
-    "name": "TYPO3",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.3.1-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "F5FF86E8EEEC94DA1C40E420824F85A3",
-    "name": "HORDE GROUPWARE WEBMAIL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.14-3",
-    "categories": [
-      "COLLABORATION",
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "0EA15A9E181987F9A02E5748CD11AD95",
-    "name": "CouchDB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1-6",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6F09214E7C7A219901B3A5B9276B4E18",
-    "name": "Chyrp",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.2-6",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "485C6C5D96CE16A126599622C22E1F09",
-    "name": "Codiad",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.5-1",
-    "categories": [
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "2333D742F6CF201C3F6D9755F542838A",
-    "name": "Sharelock",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.1.0pre-6",
-    "categories": [
-      "APPLICATION SECURITY",
-      "PASSWORD MANAGEMENT"
-    ]
-  },
-  {
-    "id": "55C69556A332CCD70D0F869FBDA88E45",
-    "name": "concrete5",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.7.5.9-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "5A6E68A10ECEDA3F4B6553E48FE8D9CF",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.11-1",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "DF561A899416171BF4F41C2B4E2337FF",
-    "name": "Mantis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.3.1-2",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "C4338CA733DFCAA02916F6565D3C55E4",
-    "name": "ALFRESCO COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "201605-2",
-    "categories": [
-      "CMS",
-      "DOCUMENT MANAGEMENT",
-      "ECM"
-    ]
-  },
-  {
-    "id": "A3F640404604D33FD444C0E28250E605",
-    "name": "CANVAS LMS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2016.04.23.03-2",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "0BF1F3F154DAFD7634966A556BF8864C",
-    "name": "CMS MADE SIMPLE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.5-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "A3995BCEDC91E192E1EA71A4FB74205C",
-    "name": "w2012r2datacenter64min+SQL2016express_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "DD6004F008BEDF3A1313C8BF34CC6D6F",
-    "name": "w2012r2datacenter64min+SQL2016std_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2016 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "51E0E086634F8FC10FE14A5BE56480EB",
-    "name": "w2012r2datacenter64min+SQL2016web_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2016 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "59A47BD0E5B7FEC4428ACD618F59F4D8",
-    "name": "w2012r2datacenter64std+SQL2016express_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "8362DB3921707CD5A82E6785F94CC3FE",
-    "name": "W2012R2DATACENTER64STD+SQL2016EXPRESS+PLESK12.5UNLIMITED_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "D3F03F0A986E284EE694DAB115CCAF9E",
-    "name": "w2012r2datacenter64std+SQL2016std_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2016 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "E049BB25B951285385299614FD1B9D6B",
-    "name": "W2012R2DATACENTER64STD+SQL2016STD+PLESK12.5UNLIMITED_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2016 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "13C42897A0F47333F6F1614BC0F56E27",
-    "name": "w2012r2datacenter64std+SQL2016web_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia SQL Server 2016 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "CB5A3B438AB580B3DD01C535AA1C70D3",
-    "name": "W2012R2DATACENTER64STD+SQL2016WEB+PLESK12.5UNLIMITED_20160415",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2016 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "CF751676613E624750FCE6D9FBDB3DA5",
-    "name": "Trac",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.1.6-6",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "138D26AB67933F34FFF19F20D3F0CE08",
-    "name": "Roundcube",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.1.4-5",
-    "categories": [
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "25BDDF69B7E4AC14D8A9943006C98ED8",
-    "name": "SEO PANEL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.0-3",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "51FA4394401E6CC561421925FF406394",
-    "name": "Shopware",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.7-1",
-    "categories": [
-      "CMS",
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "2A1B4817980BA87BBB51535A850E40D6",
-    "name": "Roller",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.1.2-9",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "E6FCB501149C5F34447B7534B0620818",
-    "name": "DokuWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160626a-2",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "65DA533E7A371007F7CF3637F6EE488D",
-    "name": "SilverStripe",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.4.1-1",
-    "categories": [
-      "CMS",
-      "FRAMEWORK"
-    ]
-  },
-  {
-    "id": "36D10833D1269A4A0AAC5FAFC6878B1E",
-    "name": "SIMPLE MACHINES FORUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.0.12-2",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "9C8F83EDB6D2C2D7A8E62303B9914FFA",
-    "name": "Ghost",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.11.0-2",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "614B31410B6C25426C5532342079EE5F",
-    "name": "Publify",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.0-4",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "499D9B4912E9FE23B7412AD128A71904",
-    "name": "MODX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.1pl-1-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "9DCE0411BD55D64288C52041B13F4D42",
-    "name": "Phabricator",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2016.30-1",
-    "categories": [
-      "BUG TRACKING",
-      "CODE REVIEW",
-      "PROJECT MANAGEMENT",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "A19D5FAFB06D60C86D99DE7C9901FB6D",
-    "name": "Openfire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.0.3-1",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "6D45892CC3E9662983E58E3D87504E93",
-    "name": "OSQA",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "37C7CE879415DB34012A71E9C3DB8B12",
-    "name": "OpenCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0.2-1",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "024CA48EC98EA4288A61CF3A9FB88AC9",
-    "name": "PROCESSMAKER OPEN SOURCE EDITION",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.1.8-4",
-    "categories": [
-      "BPM",
-      "COLLABORATION"
-    ]
-  },
-  {
-    "id": "522E5B898051BB9036B020095E2C5BF6",
-    "name": "ActiveMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.14.0-0-r26",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6FC53E7FD6B0E87ABEECD2C4AC4913C5",
-    "name": "Kafka",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.10.0.1-0-r26",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "FAC87774AA195A103CE53B25C9F45C58",
-    "name": "EXO PLATFORM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.0-9",
-    "categories": [
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "109748035061094F268A221825EE0184",
-    "name": "AbanteCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.2.8-1-r26",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "7479B1BCD0B133279BBB046552F9CE41",
-    "name": "Akeneo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.4.20-3-r26",
-    "categories": [
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "E33A6C4BDACC80210CE75C906DC73912",
-    "name": "ALFRESCO COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "201605-2-r26",
-    "categories": [
-      "CMS",
-      "DOCUMENT MANAGEMENT",
-      "ECM"
-    ]
-  },
-  {
-    "id": "7C5C2FFA2BD26B29F4A3A8C7FEF9E51F",
-    "name": "Ametys",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.7.3-3-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "E7D04F791BCD79B9F181395E35136937",
-    "name": "Cassandra",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.7-0-r26",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "C01C0EBFB24718ACD7B6A6FC84E407C4",
-    "name": "Chyrp",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.2-6-r26",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "586E6422ACF06F7A9B2119DFF370C000",
-    "name": "Artifactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.0-2-r26",
-    "categories": [
-      "BINARY REPOSITORY",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "9E3166A434D011BFDFECF85D34FEC85D",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.11-1-r26",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "C894255F9F1F7BA5AA87DDE035A0E1E7",
-    "name": "CMS MADE SIMPLE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.5-1-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "B18FE1A1A217364CC9F650C91FB3D114",
-    "name": "Codiad",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.5-1-r26",
-    "categories": [
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "74A8367BAD5E3B9096B6C1C27229CACA",
-    "name": "concrete5",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.7.5.9-1-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "D2BA96404301AB7863C7D752726D4B09",
-    "name": "DokuWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160626a-2-r26",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "9CED418F14E2DDCF1DCDAB16F94C6E4E",
-    "name": "Coppermine",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.5.42-3-r26",
-    "categories": [
-      "PHOTO SHARING"
-    ]
-  },
-  {
-    "id": "BB4CE46CC533C736E75AE69DBECBFAB5",
-    "name": "CouchDB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1-6-r26",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "5FA77ECC752643CB469BBAFB42E1EA60",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.1-1-r26",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "4225740C3EE365674EBACC37577B5FBB",
-    "name": "Discourse",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.5.3-1-r26",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "F8E9CA0DB0B8131162DC57886C9B6FF8",
-    "name": "Diaspora",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.5.10.2-1-r26",
-    "categories": [
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "CAD84CE431231DDFF4B216433A3EFD84",
-    "name": "Dolibarr",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.3-1-r26",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "CCA2854F26E5B34BDB0AEE37B0E5AB32",
-    "name": "DreamFactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-4-r26",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "A0A955B6ACABC6A6F09B60F794A3FA07",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.1.10-0-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "0A2487C91D6692A1A088DB4B2A2F3FD2",
-    "name": "EspoCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.5-1-r26",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "450F03E34E1C15FE9CBA5E1D9042843B",
-    "name": "ERPNext",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.27.9-4-r26",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "7E870AB3935AB7A6BC338BF49FE362D2",
-    "name": "ECLIPSE CHE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.2-1-r26",
-    "categories": [
-      "COLLABORATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "40A0B882ED133494234A21C8027E7CA1",
-    "name": "FAT FREE CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.13.6-10-r26",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "28333E559F9400B4256B76821E3EE216",
-    "name": "EZ PUBLISH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2014.11-4-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "9C1B26C4858D2BF07A32C7988B2107C2",
-    "name": "HORDE GROUPWARE WEBMAIL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.14-3-r26",
-    "categories": [
-      "COLLABORATION",
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "A6B5EA365A6A0E5B1B3725C50645B7EA",
-    "name": "JBOSS AS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.2.0-5-r26",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "B647F54413F265AAA636C146E291D9C3",
-    "name": "GitLab",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.9.6-1-r26",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "VERSION CONTROL"
-    ]
-  },
-  {
-    "id": "2F2FF25BA9994A4EDE1DEC165524650E",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.658-3-r26",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "68AB5D93197F6F24ECA9457A8EEDAC44",
-    "name": "HHVM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.9-1-r26",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "B48FA6BB24F67D4EDAF7ABD099CFE3C3",
-    "name": "Joomla!",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.2-1-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "70835551BB3D77DA6438365AFFD64ABF",
-    "name": "JRuby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.5.0-1-r26",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "A825119DA06B32186F7719811C77C74B",
-    "name": "OPEN EDX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160414-5-r26",
-    "categories": [
-      "COLLABORATION",
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "190733566A7DD7C4870938BA72E12C57",
-    "name": "JasperReports",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.3.0-2-r26",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "FF2244A29705A4E259C61758B679ED0D",
-    "name": "LimeSurvey",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160817-1-r26",
-    "categories": [
-      "POLL MANAGEMENT"
-    ]
-  },
-  {
-    "id": "DA72CEFA97A80389E586BCEBFE1EFD41",
-    "name": "Liferay",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.0.2-1-r26",
-    "categories": [
-      "PORTAL SERVER"
-    ]
-  },
-  {
-    "id": "3B6523A857FE3B0D327D217EA1849017",
-    "name": "LET&#39;S CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.4.7-2-r26",
-    "categories": [
-      "CHAT",
-      "COLLABORATION",
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "C421D8AFCC4952A143BDE93B5CC63A23",
-    "name": "Magento",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.1-1-r26",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "8C57186CCCE916F3C63E498F77507680",
-    "name": "Memcached",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.4.31-1-r26",
-    "categories": [
-      "CACHE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "C2BADCD828DAFCD3BC8664BE43A8A87D",
-    "name": "Moodle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.2-1-r26",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "DAAC8D4718C161A80B722600A0440914",
-    "name": "MyBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.8.7-3-r26",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "CDBE5B21E22B6412580DC67664C72291",
-    "name": "Noalyss",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.9.0.0-5-r26",
-    "categories": [
-      "ACCOUNTING"
-    ]
-  },
-  {
-    "id": "A9EC52AC8F832E58A09460D2ED0A8DB6",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.7.0-0-r26",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "77AE451E1CB946E2627F5D5C885FB896",
-    "name": "NGINX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.1-3-r26",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "604B1B4978D7A968E89DFC7C8CB8CC15",
-    "name": "OPEN ATRIUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.68-1-r26",
-    "categories": [
-      "CMS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "5EE93FE704B1287A686FD91761D19FE0",
-    "name": "Neos",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.6-4-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "D2C77CFB66243427F1AF1EC8A97E9F5B",
-    "name": "ocPortal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.30-1-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "F8B64744559AF5E578325F0416D5D02F",
-    "name": "MediaWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.27.1-1-r26",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "1BAF3057A7D51F5357A38CEB3C2D8EC6",
-    "name": "OrangeHRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.2-3-r26",
-    "categories": [
-      "HUMAN RESOURCE MANAGEMENT"
-    ]
-  },
-  {
-    "id": "E48559090D8E7DD4B07D8CC7659BA40D",
-    "name": "Osclass",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.1-4-r26",
-    "categories": [
-      "ONLINE CLASSIFIEDS"
-    ]
-  },
-  {
-    "id": "4B9827C6362B5CFD1D7333B4944A707E",
-    "name": "OpenProject",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.20-0-r26",
-    "categories": [
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "CD04664F04CE734E4A7A416C1DA72827",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.22-0-r26",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "E25BD5D06B90B8DCE18C9A274878E98D",
-    "name": "OXID ESHOP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.8-2-r26",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "15FB054795A16876B439FAC22617DE5F",
-    "name": "phpBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.9-3-r26",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "C874DF05EB7963D3D8A108083D82450C",
-    "name": "phpList",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.5-2-r26",
-    "categories": [
-      "NEWSLETTER MANAGER"
-    ]
-  },
-  {
-    "id": "D622FF6671FC31C5A8BB6C2DA96F006F",
-    "name": "ownCloud",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.1-0-r26",
-    "categories": [
-      "MEDIA SHARING"
-    ]
-  },
-  {
-    "id": "A4412F4FBE84001FDB6C7C393F7D58AE",
-    "name": "Pimcore",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.1-1-r26",
-    "categories": [
-      "CMS",
-      "E-COMMERCE",
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "944573F3F14219FE74E262BEC37FF026",
-    "name": "Plone",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.2-2-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "6F8CFB4086E728B1C4CA4F61BDB6202A",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1.7-1-r26",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "5B92154253C2539E3DDC74647D59E342",
-    "name": "ProcessWire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.2-4-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "8C643C5C69FE463A2E27331452C9FF07",
-    "name": "Pootle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.3-2-r26",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "50131C55AE9E8AAFA4A42E3C1100CD55",
-    "name": "RE:DASH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.11.1.2095-1-r26",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "12C7C258B191F84783CC112B025516D3",
-    "name": "RabbitMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.5-1-r26",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "C870ADC95648D0519BF18997F00C4C18",
-    "name": "Redmine",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.0-2-r26",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "E576784F8E28096070D5E549A37C4566",
-    "name": "Railo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.1.008-6-r26",
-    "categories": [
-      "APPLICATION SERVER"
-    ]
-  },
-  {
-    "id": "2421422B9BD58E7AF09B3C8FB5311279",
-    "name": "REFINERY CMS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.5-10-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "BD72E2EC5BF93DE7E361B884BDC23F2E",
-    "name": "REPORTSERVER COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.2-3-r26",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "9BC57EEB364E74DF1914E4D64F99A973",
-    "name": "ResourceSpace",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.9-1-r26",
-    "categories": [
-      "MEDIA SHARING",
-      "PHOTO SHARING",
-      "VIDEO SHARING"
-    ]
-  },
-  {
-    "id": "20A7D9C7F5DD761858AD93A3AA33EE81",
-    "name": "REVIEW BOARD",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.6.1-3-r26",
-    "categories": [
-      "CODE REVIEW",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "8F3CE0757B455CE5FEA2ABA4B26567BF",
-    "name": "Roundcube",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.1.4-5-r26",
-    "categories": [
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "74EE53B233FF5917CC50F824D081FD00",
-    "name": "Sharelock",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.1.0pre-6-r26",
-    "categories": [
-      "APPLICATION SECURITY",
-      "PASSWORD MANAGEMENT"
-    ]
-  },
-  {
-    "id": "449E69D0978086679A33CC18D087E17E",
-    "name": "Ruby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.1-5-r26",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "DF88FD8F7444603D8FF3EFCE77A7935C",
-    "name": "Roller",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.1.2-9-r26",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "8475038A28FA128E4E9ED7F29A1292A1",
-    "name": "SilverStripe",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.4.1-1-r26",
-    "categories": [
-      "CMS",
-      "FRAMEWORK"
-    ]
-  },
-  {
-    "id": "89E75566C86760F7EAB776916441D8D2",
-    "name": "SEO PANEL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.0-3-r26",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "B87CDB8F374A62D1EA4BECBC7E135853",
-    "name": "Sitecake",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.9-5-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "6B2E9B6F3A78DE4EAFE6618D5B8D921D",
-    "name": "APACHE SOLR",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.2.1-1-r26",
-    "categories": [
-      "INFRASTRUCTURE",
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "09E3DB12384FB854754213FFC77DE482",
-    "name": "SugarCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5.24-1-r26",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "921F26DEF65CB786A7B2C8C485C62E1F",
-    "name": "SuiteCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.7.5-0-r26",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "CF272C4B3FFC034C64F9C738F2C63B7C",
-    "name": "Spree",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.7-2-r26",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "9978BB99D8F6544B980DB71A113F3F99",
-    "name": "Squash",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20151209-4-r26",
-    "categories": [
-      "CODE REVIEW"
-    ]
-  },
-  {
-    "id": "5588E8E57B717EC72263C14EF0E9D598",
-    "name": "TYPO3",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.3.1-1-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "7B578C5853BBE2D0665503AB117F7581",
-    "name": "Weblate",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5-2-r26",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "554DB66973A0E95243E328D7F5576127",
-    "name": "WildFly",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "10.1.0-1-r26",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "E49BED8A0D73E752152C85DC3C129B1F",
-    "name": "Tracks",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-10-r26",
-    "categories": [
-      "PLANNING"
-    ]
-  },
-  {
-    "id": "EA6C685C7D38CCDAC69F26575D6484C7",
-    "name": "X2ENGINE SALES CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.0.4-1-r26",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "33755C6E102CD1682E0699D2E7587AF3",
-    "name": "Zurmo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.5-3-r26",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "BAEE8A473FA43661825BA06AE51E00E2",
-    "name": "XOOPS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.8-1-r26",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "6631A1589A2CC87FEA9B99AB07399281",
-    "name": "Plesk",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "Onyx",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "85BD36869EC98AC0B07EE495D27EBF54",
-    "name": "Plesk",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "C937934FFFF33ED2E4F0439FE2B01074",
-    "name": "WP MULTISITE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-4",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "9E6E9411145EC35CF40923492BDBCE6D",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-4",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "50BE5047022F1FCD059BF2222D95C15A",
-    "name": "Redis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.4-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "F241D580B2955DC91865C87665AF3D4F",
-    "name": "LIVE HELPER CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.48v-0",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "21A470E06662A886405432183217B088",
-    "name": "Mantis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.3.2-0",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "62D6A1BD29DBECC7F753E64B95735075",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.24-0",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "8F6E8AE549F9D545CD0FA27AFCEF2E67",
-    "name": "Elasticsearch",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.4.1-0",
-    "categories": [
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "287F758A243DE44F2A1FFF0F942C133E",
-    "name": "Odoo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.20160620-3",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "A3916E8922C68CAF6F66DF6C055AC98D",
-    "name": "Dolibarr",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.0.1-0",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "C2A2E81D7E578FCE1CCC8A6168B674A1",
-    "name": "EZ PUBLISH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2014.11-5",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "DFE58E41D26BAE94FC4268C9066FE839",
-    "name": "Mean",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.10-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "0900040FB9B32C0CB2177DA83DE8C596",
-    "name": "OpenProject",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.0.4-0",
-    "categories": [
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "4B222A6379A5A394CD823165F2A18BC0",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.2-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "DB2814CA4DD9167D5758D8384ED32874",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.12-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "15BA7101912E24D4A23F2897ABA73323",
-    "name": "Kafka",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.10.0.1-1",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "FE4E2E7A6B8EA38A7B1839BEB767A67B",
-    "name": "ActiveMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.14.1-1",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "EF5ABBAB3F35D8F547F14620B023368C",
-    "name": "Shopware",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.8-0",
-    "categories": [
-      "CMS",
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "FF6FE275C0D0D3F408E37F4D1B19D496",
-    "name": "Piwik",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.16.5-0",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "439A6D7EC2D7A3ED853EACCC5866735A",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.51-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "BDFBD8E74D32C7DE68371E4D934F9018",
-    "name": "PostgreSQL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.6.0-1",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "E786E2D4A3DDF37A0AB43E653D8E07FF",
-    "name": "PROCESSMAKER OPEN SOURCE EDITION",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1-0",
-    "categories": [
-      "BPM",
-      "COLLABORATION"
-    ]
-  },
-  {
-    "id": "7A47E863F8E87F483AB514DE6CC2B887",
-    "name": "Akeneo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.3-0",
-    "categories": [
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "C5559C10A3F42C222F073678802BB8E7",
-    "name": "Squash",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20151209-5",
-    "categories": [
-      "CODE REVIEW"
-    ]
-  },
-  {
-    "id": "D2A60C479A551F5FF020FBDE925B0585",
-    "name": "DreamFactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-5",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "4555879BA095784F5041BB16FD85C7FB",
-    "name": "Cassandra",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "78C7F86CB11A65B3A2FFB4209BAA099A",
-    "name": "Elasticsearch",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.4.1-1",
-    "categories": [
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "4C3199325A7C8379069475AE9E806304",
-    "name": "NGINX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.1-4",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "DBB877489986CC2E9724AA0DAEFB5A1D",
-    "name": "Ghost",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.11.1-1",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "F3489789EE360F2E0DC7DD8A3FCC0B6B",
-    "name": "APACHE SOLR",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.2.1-2",
-    "categories": [
-      "INFRASTRUCTURE",
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "6EE79C7280841BFEF7025CE6C0B6DF69",
-    "name": "ownCloud",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.1-1",
-    "categories": [
-      "MEDIA SHARING"
-    ]
-  },
-  {
-    "id": "8CD76029C54B67DF75F4ECE45BF7EA2C",
-    "name": "Mean",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.10-1",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "EE60DD9CB8FC0C2BAAC38C137A7B8647",
-    "name": "Magento",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.1-2",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "BCC858E31C52BEAB5E128B27C2DDBDDD",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.0.37-2",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "4ED9CDACC24CF31F61B40BF2424929EC",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.658-4",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "03946C500881466B8E3A58CB58256088",
-    "name": "Moodle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.2-2",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "80EB2291B7A3060F610626B4EA2D9150",
-    "name": "LIVE HELPER CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.50v-0",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "5D01A0C474523730E86E53E3EB8F1AB2",
-    "name": "X2ENGINE SALES CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "36CE5BB8488C8324C2EA7A14B12B5E14",
-    "name": "Redmine",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.1-0",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "C1565D439CCB13BF213B463C050384A4",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.0.M11-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "8C1922EF80B8154B911E752D4B783F27",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.0.38-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "709C20286041E201EC7CBF9C500D9FC5",
-    "name": "GitLab",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.12.6-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "VERSION CONTROL"
-    ]
-  },
-  {
-    "id": "E73BED20AB0CBABFC0C8500CAF19F13A",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.26-0",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "790666C6069E1CB028BB168E81D44231",
-    "name": "Trac",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.2rc1-0",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "218C1354E4A57FFC7190B71F4A02152B",
-    "name": "debian8-64std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian8",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "CE6E8189E50A5CE8ABAA6A736B32C922",
-    "name": "debian7-64std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Debian7",
-    "os_version": "Debian",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "4963BBC25A4E297E59504D0D155E866A",
-    "name": "ubuntu1604-64std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu16.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "5EF10B5B04FF47B2C973E03C86C90146",
-    "name": "ubuntu1404-64std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu14.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "EA16F934113430299C192D18FB4A955F",
-    "name": "ubuntu1204-64std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Ubuntu12.04",
-    "os_version": "Ubuntu",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "C9E49D5ECFBE559B51D2AF4300F55B60",
-    "name": "centos6-64std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos6",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "ACA2989FEFD28042134170C39A593539",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-5",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "FE4A991E5E05C3F692DD7FED33BB54CC",
-    "name": "Joomla!",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.4-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "2D18E0FE584505D31A1B0B0ADC4D8E76",
-    "name": "Liferay",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.0.2-1-r27",
-    "categories": [
-      "PORTAL SERVER"
-    ]
-  },
-  {
-    "id": "D40845DB28FDF6DE554219E71C753FEC",
-    "name": "TYPO3",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.3.1-1-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "887ACA72848DEDC26AC2F533E116E9FD",
-    "name": "Akeneo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.4-0-r27",
-    "categories": [
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "1F647C54B53835475AB2F8B8984430D4",
-    "name": "ALFRESCO COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "201605-2-r27",
-    "categories": [
-      "CMS",
-      "DOCUMENT MANAGEMENT",
-      "ECM"
-    ]
-  },
-  {
-    "id": "D0C0316634C4BFC185756CB9618A498A",
-    "name": "Ametys",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.7.3-3-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "57DDAB5E1C180E9C518466CB5A4397CB",
-    "name": "Artifactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.0-2-r27",
-    "categories": [
-      "BINARY REPOSITORY",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "A8DA08CB599EB513B2B44248AFE7C805",
-    "name": "ActiveMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.14.1-1-r27",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "EA9000EEA297CC8A8D0A315937E683BB",
-    "name": "AbanteCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.2.8-1-r27",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "51D50EEFC90F9BDA2F46C38F74E45516",
-    "name": "Cassandra",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9-1-r27",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "FE7960BADDAD5492775FDC7DCCBA44C4",
-    "name": "CANVAS LMS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2016.04.23.03-2-r27",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "83EE5C89977B4ADE9929AD49CBC455FD",
-    "name": "Chyrp",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.2-6-r27",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "D0075666D41915899F45E2D68B8685C4",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.12-0-r27",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "913669D746B522935A52BBD1D6BE9EE1",
-    "name": "CMS MADE SIMPLE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.5-1-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "789B9F3C11425A29B741E41D14200614",
-    "name": "Codiad",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.5-1-r27",
-    "categories": [
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "6D1C69BD68472AA786ADDF050767C581",
-    "name": "concrete5",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.7.5.9-1-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "36059005F111DE5C274DFEAA1455F523",
-    "name": "Coppermine",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.5.44-0-r27",
-    "categories": [
-      "PHOTO SHARING"
-    ]
-  },
-  {
-    "id": "28CCD249C6E06994B2AD27AF3508C77B",
-    "name": "CouchDB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1-6-r27",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "F58291DF0E75F69A782CC133A54CBA1A",
-    "name": "Diaspora",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.5.10.2-1-r27",
-    "categories": [
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "D2FD5127D37D16B6A2BE642E26BEB21C",
-    "name": "Discourse",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.5.3-1-r27",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "93C18F17AAC1A1FC0846CB1E4FCC1A38",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.2-0-r27",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "36F4101089D6D56CA5F2BCE9F3D566A0",
-    "name": "DokuWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160626a-2-r27",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "BDA26ED7A0563704E0689AA9566EEA94",
-    "name": "Dolibarr",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.0.1-0-r27",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "BA390D602BCB8259245489D2073E0F70",
-    "name": "DreamFactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.1-0-r27",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "073E21D844CD8AE7D5E85A88E5B0ADA6",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.1-0-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "5F8D1EAE09CFE38D07E6F8A300F41944",
-    "name": "ECLIPSE CHE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.2-1-r27",
-    "categories": [
-      "COLLABORATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "B6482A7609A16457CC0128A9F593F402",
-    "name": "Elasticsearch",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.4.1-1-r27",
-    "categories": [
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "0A40E20C114748BCACA4122691EC5B01",
-    "name": "ELK",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.2-0-r27",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "A7542A75CCBA7EA033BD89C37C5EAFBA",
-    "name": "ERPNext",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.27.9-4-r27",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "D4D15CA145236B2D46676E06A69E46BC",
-    "name": "EspoCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.7-0-r27",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "1A30D003A8F9F136F2F7076BBB00A10A",
-    "name": "OPEN EDX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160414-5-r27",
-    "categories": [
-      "COLLABORATION",
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "75DEED57C5C9D54CDB04F8A59940FA60",
-    "name": "EXO PLATFORM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.0-9-r27",
-    "categories": [
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "F6C75E17378E8C27F277B5AE198BFD83",
-    "name": "EZ PUBLISH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2014.11-5-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "CB55CBAE27AFCFF6AC6873154E2AEA36",
-    "name": "FAT FREE CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.13.6-10-r27",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "1D54D070265F32E1EF7AD44BB078E71B",
-    "name": "Ghost",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.11.2-0-r27",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "F996523C2BDBBE81AD846E1369B91CED",
-    "name": "HHVM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.9-1-r27",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "0602B7ACDE1086E44DAA638B24BF906A",
-    "name": "GitLab",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.12.6-0-r27",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "VERSION CONTROL"
-    ]
-  },
-  {
-    "id": "F304396E14C579C7E36DB7A2E5120225",
-    "name": "HORDE GROUPWARE WEBMAIL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.14-3-r27",
-    "categories": [
-      "COLLABORATION",
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "0DCD6E50B4678FB3DB7E2DC3CD84FE64",
-    "name": "JasperReports",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.3.0-2-r27",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "932E95E4ADE7D2E31BB454B2463A206E",
-    "name": "JBOSS AS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.2.0-5-r27",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "A948D1958BDC57E6F6915FF33BA42183",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.658-4-r27",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "93BABCBC16771C224F1A306427A0B2CE",
-    "name": "JRuby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.5.0-1-r27",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "8730EDBE19F67FDF19D57DA4F1B8C41E",
-    "name": "Kafka",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.10.1.0-0-r27",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "22A2B2A1939E119F1B4AB25A818AD87E",
-    "name": "LET&#39;S CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.4.7-2-r27",
-    "categories": [
-      "CHAT",
-      "COLLABORATION",
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "E5ED3D517F9F5283E06ED16F8729565D",
-    "name": "LimeSurvey",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160817-1-r27",
-    "categories": [
-      "POLL MANAGEMENT"
-    ]
-  },
-  {
-    "id": "260EE6C3D433B76C494A040DC58530D6",
-    "name": "LIVE HELPER CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.50v-0-r27",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "2E992E333015B1078BCFAD091FFB4D7C",
-    "name": "Magento",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.2-0-r27",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "A391B4AFEC3240C19B79D143CC99299B",
-    "name": "Mantis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.3.2-0-r27",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "5B3C79385D2874E64982FF275824DB00",
-    "name": "Mean",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.10-1-r27",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "96D09B89D74EB4A4ECC16174B903AFCE",
-    "name": "MediaWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.27.1-1-r27",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "A45BE7259E8E8E1670654741A4EEF979",
-    "name": "Memcached",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.4.32-0-r27",
-    "categories": [
-      "CACHE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "8B0F9491AA8D04AC98DD39E09C34822E",
-    "name": "MODX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.1pl-1-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "135D8FC34657ADCF860A787F63A2D47C",
-    "name": "Moodle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.2-2-r27",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "86555DAC5EF148AC69D31F16AC965FEC",
-    "name": "MyBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.8.8-0-r27",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "ADAD28FE5E58081523C7BDC2793247D6",
-    "name": "Neos",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.6-4-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "999B2F775295460CEE9A7BCD837F264E",
-    "name": "NGINX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.2-0-r27",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "EE010A236F461D48D7AC694DFBE09600",
-    "name": "Noalyss",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.9.0.0-5-r27",
-    "categories": [
-      "ACCOUNTING"
-    ]
-  },
-  {
-    "id": "36846B86BA2C748CBEEB6842B0631743",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.9.1-0-r27",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "2A265DF040DD4C706847D20C5454EE06",
-    "name": "ocPortal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.31-0-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "A0DF3154DEBE85BF224EB4027ABA260A",
-    "name": "Odoo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.20160620-3-r27",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "E1F6187500C04E9271BDECEA3AEE43D1",
-    "name": "OpenCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0.2-1-r27",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "2CA5CA407EE4E09BCE78253D8DA1BC1B",
-    "name": "OPEN ATRIUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.68-1-r27",
-    "categories": [
-      "CMS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "98F17B3730FE36F6380C02DEA6F3FEA3",
-    "name": "Openfire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.0.3-1-r27",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "E2A891BE5CA77A9ED7ABBB119099FEF9",
-    "name": "OrangeHRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.2-3-r27",
-    "categories": [
-      "HUMAN RESOURCE MANAGEMENT"
-    ]
-  },
-  {
-    "id": "2DCC330AB48E2917373ABD965997EBB0",
-    "name": "OpenProject",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.0.4-0-r27",
-    "categories": [
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "7F2E2EF6CEE47AA376BE134E6107452E",
-    "name": "Osclass",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.1-4-r27",
-    "categories": [
-      "ONLINE CLASSIFIEDS"
-    ]
-  },
-  {
-    "id": "0B8EC318B2330E1FE631B891DEDA6E02",
-    "name": "OSQA",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "6A516CA2A26E77575A22B2C34A297AD4",
-    "name": "ownCloud",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.1-1-r27",
-    "categories": [
-      "MEDIA SHARING"
-    ]
-  },
-  {
-    "id": "643A0542807A33BE790DBA85318EAB4E",
-    "name": "OXID ESHOP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.8-2-r27",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "46CB70AFB69956F98785CEE2BC974B8C",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.22-0-r27",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "0C05E623FCDDBA29EA0A9510512899B9",
-    "name": "Phabricator",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160725-0-r27",
-    "categories": [
-      "BUG TRACKING",
-      "CODE REVIEW",
-      "PROJECT MANAGEMENT",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "FE62077CE6B94E79A64B7ECEC2D36D22",
-    "name": "phpBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.10-0-r27",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "6BE9421C734A3801D142C71D3D2F1810",
-    "name": "phpList",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.5-2-r27",
-    "categories": [
-      "NEWSLETTER MANAGER"
-    ]
-  },
-  {
-    "id": "A4759BD3D10D37A8B23010F49133CC74",
-    "name": "Pimcore",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.1-1-r27",
-    "categories": [
-      "CMS",
-      "E-COMMERCE",
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "E577C89B9A5A0D976B0131C2781483AE",
-    "name": "Piwik",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.16.5-0-r27",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "D96BB15FD6E866B9C82DFA34BB033422",
-    "name": "Plone",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.2-2-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "15E7ADAA193205BDD5F4D115340B0546",
-    "name": "PostgreSQL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.6.0-1-r27",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "FEB6268FA8334ABF3A9AB7784A613D2F",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1.7-1-r27",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "790DE3B60A9B7199C2EDB8CD6BD8AAF5",
-    "name": "Pootle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.3-2-r27",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "6BC770366E7763FDD918E9308ABD49DF",
-    "name": "PROCESSMAKER OPEN SOURCE EDITION",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1-0-r27",
-    "categories": [
-      "BPM",
-      "COLLABORATION"
-    ]
-  },
-  {
-    "id": "C8397CD4162746D83C3A0486E2CEEB53",
-    "name": "ProcessWire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.2-4-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "4B6CE5EAA7450E8D6B8351604E03FD3B",
-    "name": "RabbitMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.5-1-r27",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "B7047F2B421906363D72570D40094FB9",
-    "name": "Railo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.1.008-6-r27",
-    "categories": [
-      "APPLICATION SERVER"
-    ]
-  },
-  {
-    "id": "725461607AA2751F3D1FE5254EA26FBA",
-    "name": "RE:DASH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.11.1.2095-1-r27",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "9575916CB986942D48702C94152C1B84",
-    "name": "Redis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.4-0-r27",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "1F44BCE9F0673E7C93A201770E53B8A7",
-    "name": "Redmine",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.3.1-0-r27",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "85234119BEEC3A91D632F9D29863B1DE",
-    "name": "REFINERY CMS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.5-10-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "31F14B9551930C0279F5D2B11CFFF4CB",
-    "name": "ResourceSpace",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.9-1-r27",
-    "categories": [
-      "MEDIA SHARING",
-      "PHOTO SHARING",
-      "VIDEO SHARING"
-    ]
-  },
-  {
-    "id": "9E8E066BEE478C6619680A58F4B8F0DD",
-    "name": "REPORTSERVER COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.2-3-r27",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "A17C9E3597DC024BA811898C74BCF7FF",
-    "name": "REVIEW BOARD",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.7-0-r27",
-    "categories": [
-      "CODE REVIEW",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "BDB18F5D3C57A8E99168DAB13D7F483F",
-    "name": "Roller",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.1.2-9-r27",
-    "categories": [
-      "BLOG"
-    ]
-  },
-  {
-    "id": "8D2D7B64222176F365CB23CBF162AE9B",
-    "name": "Roundcube",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.1.4-5-r27",
-    "categories": [
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "92D2F75F76F98BC48DF90758FC0C0E48",
-    "name": "SEO PANEL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.9.0-3-r27",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "F44D63EF71896A6205A7E09C34E1F651",
-    "name": "Ruby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.1-6-r27",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "18FF8DF1B8427E513EBD32AB90493EF7",
-    "name": "Sharelock",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.1.0pre-6-r27",
-    "categories": [
-      "APPLICATION SECURITY",
-      "PASSWORD MANAGEMENT"
-    ]
-  },
-  {
-    "id": "EF83E8574E591EE3FF905C4AB570FB17",
-    "name": "Shopware",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.9-0-r27",
-    "categories": [
-      "CMS",
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "7DFED272C70ADC7300A22E098830F991",
-    "name": "SilverStripe",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.4.1-1-r27",
-    "categories": [
-      "CMS",
-      "FRAMEWORK"
-    ]
-  },
-  {
-    "id": "45A2FE7D8A9D935139FA3DF57AF8359E",
-    "name": "SIMPLE MACHINES FORUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.0.12-2-r27",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "1E75F8044B150AEFD3D0BDB43C38F552",
-    "name": "Sitecake",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.9-5-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "4CA88FAD5196FA4AF79CBBC148917E35",
-    "name": "APACHE SOLR",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.2.1-2-r27",
-    "categories": [
-      "INFRASTRUCTURE",
-      "SEARCH"
-    ]
-  },
-  {
-    "id": "81BE4F35DEF135EFB230B538F076121E",
-    "name": "Spree",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.7-3-r27",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "C3586557C1F379796E67F2693680A734",
-    "name": "Squash",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20151209-5-r27",
-    "categories": [
-      "CODE REVIEW"
-    ]
-  },
-  {
-    "id": "134A68AE4C2B139CA337D9456B7D37A2",
-    "name": "SugarCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5.24-1-r27",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "40A61D89ADF92DBDE26C60C8E2990B06",
-    "name": "SuiteCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.7.6-0-r27",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "80F15E41CC65E5CD93F40C34D684FE3D",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.0.38-0-r27",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "71E2388F94E9AC66ECA66B3AC8FF5C7A",
-    "name": "Trac",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "414FF7AFDE56BF4A4F3AD82F3983122A",
-    "name": "Weblate",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5-2-r27",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "60CFB9AB25B0A0A2146C09072CF1972E",
-    "name": "WildFly",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "10.1.0-1-r27",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "ED6BE262EECE9854D1B93CF817F52849",
-    "name": "Tracks",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.0-10-r27",
-    "categories": [
-      "PLANNING"
-    ]
-  },
-  {
-    "id": "3FA2DAA3F0F6055A34E0E79691BBCCDC",
-    "name": "WP MULTISITE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.1-5-r27",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "AF1AAECA3C6585302DF92087F07BEC7F",
-    "name": "X2ENGINE SALES CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.0.4-1-r27",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "3DD71526B5DCF8DC1A9E1520D60C478B",
-    "name": "Zurmo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.5-3-r27",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "622DDE4F402A18D3BBC24C037F2FD850",
-    "name": "XOOPS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.8-1-r27",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "E5C9972F3CB07E717421446F0EE70D3B",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.23-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "3C633FD3A6819B1930F576A361F716FE",
-    "name": "OPEN ATRIUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.69-0",
-    "categories": [
-      "CMS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "9762649FC3381B57AF9F374A0A24B446",
-    "name": "Hadoop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.3-3",
-    "categories": [
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "A0FE88B4423A950C7178E1E8FEE00544",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1.8-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "F0DF5BC92C095B06D0D5E007FDDE1211",
-    "name": "TYPO3",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.3.1-2",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "564C2FD4C376935BA280DA2ECAA9872F",
-    "name": "Mantis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.3.3-0",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "BCB1CE1B7EC5065B24496291271BE232",
-    "name": "Piwik",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.17.0-0",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "429A6D79872F5E04A79B19F5EB654961",
-    "name": "Dolibarr",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.0.2-0",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "D767E69D919A0E838822E15771279A37",
-    "name": "PostgreSQL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.6.1-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "F0C0DC4B55E0D421096C86A485C79A19",
-    "name": "Redis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.5-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "02FB040E4296670D8C7C3A6C111F011D",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.24-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "5BFDAA22D74B49B4531F97706E7ADE4B",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.3-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6A2ED08D58800058E230DB53552FA74F",
-    "name": "Phabricator",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2016.30-2",
-    "categories": [
-      "BUG TRACKING",
-      "CODE REVIEW",
-      "PROJECT MANAGEMENT",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "437F2F5DE57835301986B59BCF2970CF",
-    "name": "REVIEW BOARD",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.7-1",
-    "categories": [
-      "CODE REVIEW",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "619EF35946BE591CA126B440ABFDDFD9",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.2-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "B01C944993286A8B98983B196AA295CD",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.8.16-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "5CF6617FB2EFF1C707CABD28F5991282",
-    "name": "GitLab",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.13.3-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "VERSION CONTROL"
-    ]
-  },
-  {
-    "id": "C2EC23DFECCA8ADA9E32C6CDE42916BB",
-    "name": "Magento",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.9.3.0-1",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "2BB5AD25BCC62B759E62369E27D79F3D",
-    "name": "w2012r2datacenter64std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "F9F1BD7D594EEE31DE33B721BD9A38F9",
-    "name": "w2012r2datacenter64std+SQL2012express+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "15E803427F8EC58265DFB79B5123A903",
-    "name": "w2012r2datacenter64std+SQL2012std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2012 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "40B468FC2D33E617E976D806EE631AA5",
-    "name": "w2012r2datacenter64std+SQL2012web+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2012 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "8E889505BA5C41A6A2C0699D683517F2",
-    "name": "w2012r2datacenter64std+SQL2014express+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "212755161754FDCB16FE6DECE94D1414",
-    "name": "w2012r2datacenter64std+SQL2014std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2014 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "96EE4D855D8518A0F64AFC0988675555",
-    "name": "w2012r2datacenter64std+SQL2014web+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2014 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "0874EF09C70B5A8EBF1172AB8EB51ECA",
-    "name": "w2012r2datacenter64std+SQL2016express+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "98121579738901E3A1EF79418C3CE098",
-    "name": "w2012r2datacenter64std+SQL2016std+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2016 Standard Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "6095163347569A6C1CEBE4FB7867CA23",
-    "name": "w2012r2datacenter64std+SQL2016web+Plesk_Onyx",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Windows",
-    "os": "Windows2012R2",
-    "os_version": "WindowsDatacenter",
-    "os_architecture": 64,
-    "os_image_type": "STANDARD",
-    "type": "IMAGE",
-    "min_hdd_size": 40,
-    "licenses": [
-      {
-        "name": "Licencia Plesk 10.4 - Ilimitados dominios"
-      },
-      {
-        "name": "Licencia SQL Server 2016 Web Edition"
-      },
-      {
-        "name": "Windows 2012 Standard"
-      }
-    ],
-    "version": "Onyx",
-    "categories": []
-  },
-  {
-    "id": "5611A8434E9126B2DF9FC10BF8B53001",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.2-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "5D985C749783B1B5FC90113A13BEE119",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.19.2-0",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "A95FF22FE64778EAF451D6A36046A785",
-    "name": "REVIEW BOARD",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.7-2",
-    "categories": [
-      "CODE REVIEW",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "E5C1B4507CB1DB0430614D5A422604B0",
-    "name": "REPORTSERVER COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.2-4",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "E013D508FBA69633C375C8ECBC03E911",
-    "name": "Odoo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.20160620-5",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "93D5909615C950358980532840AD3E86",
-    "name": "SuiteCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.7.7-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "2114DEE9FEA37BC82AC663D82AE60DFA",
-    "name": "Railo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.2.1.008-7",
-    "categories": [
-      "APPLICATION SERVER"
-    ]
-  },
-  {
-    "id": "557B62C5316CDCF628982FBCC6F2D2C1",
-    "name": "ALFRESCO COMMUNITY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "201605-3",
-    "categories": [
-      "CMS",
-      "DOCUMENT MANAGEMENT",
-      "ECM"
-    ]
-  },
-  {
-    "id": "5FC292A268C4357CC6FBA2E62E700A35",
-    "name": "ocPortal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.32-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "06A0221F7548F4136DEBAADBB6A6F576",
-    "name": "phpList",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.6-0",
-    "categories": [
-      "NEWSLETTER MANAGER"
-    ]
-  },
-  {
-    "id": "9C926DA0F08D31F965F195CB1F94DBF4",
-    "name": "ELK",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.2-1",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "4C9BB43FD892ADF6DB385500FE87CFFF",
-    "name": "Memcached",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.4.33-0",
-    "categories": [
-      "CACHE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "B4650612AE04EA3DE7B2EE3546AC9C5B",
-    "name": "Moodle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.1.3-0",
-    "categories": [
-      "ELEARNING"
-    ]
-  },
-  {
-    "id": "E81504B51585B56D51C34D0ED38B10C1",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.0.M13-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "5ABBB00C180F72FCA4ECF14871C55F15",
-    "name": "LIVE HELPER CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.51v-0",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "489D5ACFC403D415BD3C97E71A3B7713",
-    "name": "Shopware",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.10-0",
-    "categories": [
-      "CMS",
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "F3F4112F6830DBB517A55A45549167E5",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.0.73-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "5A6AA19D95342B69FD046E7FF85487F4",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.0.39-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "2A41533352EF507986D2C8C3DE1A50D4",
-    "name": "JRuby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.6.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "50FE1ACC01FB7ED092944B054766AC6A",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.1.9-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "9189AA239BFE5077CAC5A922B1E30C72",
-    "name": "ELK",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.6.2-2",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "61DDF7A768E574910D59DDED450C0EEE",
-    "name": "Ruby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.2.6-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6A3271969FCAE8012759546259A0170C",
-    "name": "Ruby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.2-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "7718D4E06E480AF3287CDBA159638D6E",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.52-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "F9892920939E94485B133B8C65649C9C",
-    "name": "Artifactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.0-3",
-    "categories": [
-      "BINARY REPOSITORY",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "D5F2F4055037BAC658B095EFACB7CC92",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.3-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "48E49C57678DB18F168CE0447E780590",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.19.3-0",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "8F63B0C423FAABB9F56B9A226624DC58",
-    "name": "ResourceSpace",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.9-2",
-    "categories": [
-      "MEDIA SHARING",
-      "PHOTO SHARING",
-      "VIDEO SHARING"
-    ]
-  },
-  {
-    "id": "8243CF166147E2B2C97B69F03E19AEE6",
-    "name": "Piwik",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.17.1-0",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "5034C73770C4E17D069E60951601465E",
-    "name": "SuiteCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.7.8-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "28AE86716FF25A6656A2AF8D5F53981F",
-    "name": "X2ENGINE SALES CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5.1-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "7A03B4CEBA1FE6DE0B2F1D1148D84D06",
-    "name": "OXID ESHOP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.10.2-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "4AB0209B3237865B686B653A2921A87E",
-    "name": "LimeSurvey",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20161118-0",
-    "categories": [
-      "POLL MANAGEMENT"
-    ]
-  },
-  {
-    "id": "B08F1D394485A25976AE51DA9B69A3BE",
-    "name": "Mean",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.11-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "2FB8FBE70C10C1DD2A23F5B5D64BA7ED",
-    "name": "MODX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.2pl-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "4B48D90C05C00850288BC1F11103A9B3",
-    "name": "RabbitMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.6-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "761C0A51F741969EEEE854EA7DFE0465",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.13-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "444A9048EA382A5931AE5AADF99DBE35",
-    "name": "GitLab",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.14.0-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "VERSION CONTROL"
-    ]
-  },
-  {
-    "id": "41E3A00D9D8DCEB2FBA0A6F1D162D039",
-    "name": "Trac",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.2-0",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "B470B00FEC67D6C20A97EABD7BB38691",
-    "name": "Akeneo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.5-0",
-    "categories": [
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "4FBB834D9DCAC41FB8E86DA188CB406B",
-    "name": "Plone",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.0.6-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "3ACDE33A040B8192F0AAE12994D96079",
-    "name": "Mantis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.3.4-0",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "A0CEA9B96CEB399142012F5964933D7C",
-    "name": "Ruby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.3-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "38F0BFD9C3E66B3B55AD222222E297CC",
-    "name": "Shopware",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.12-0",
-    "categories": [
-      "CMS",
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "C97F46107C7A3ED0FFE54326E5B70624",
-    "name": "Noalyss",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.9.1.5-0",
-    "categories": [
-      "ACCOUNTING"
-    ]
-  },
-  {
-    "id": "9A4919E81B2381D475219C3B8D90CA8C",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.7.0.2-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "B51E94C9649C5AE7469EE6FD88D57CB5",
-    "name": "MongoDB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.4.0-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "3D7E41CEF8BB78A4A9EDDCF13E9E9053",
-    "name": "SilverStripe",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.5.0-0",
-    "categories": [
-      "CMS",
-      "FRAMEWORK"
-    ]
-  },
-  {
-    "id": "FCE352FFDAD90E07EE9CF870FF850691",
-    "name": "JFROG ARTIFACTORY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.9.0-4",
-    "categories": [
-      "BINARY REPOSITORY",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "D2B671B044ED0AB98C5DB7842212C11B",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.4-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "E301A548B015F640315033E956E16C7D",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.8.17-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "44734888C6F064D22F18ED86B1612E9F",
-    "name": "MediaWiki",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.28.0-0",
-    "categories": [
-      "WIKI"
-    ]
-  },
-  {
-    "id": "D626FF632CD8D805605CE7D527E00FF7",
-    "name": "ocPortal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.33-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "32255D1902F87D53FC91D2773E46B349",
-    "name": "Zurmo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.0-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "4273B081213D70DCE14E772017BF4908",
-    "name": "GitLab",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.14.3-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "VERSION CONTROL"
-    ]
-  },
-  {
-    "id": "E6B7469813798D0629F1FBA1A87466A0",
-    "name": "Openfire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.0.4-0",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "8E8F0CECA9A0F63428B65ABB1834F345",
-    "name": "Jenkins",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.19.4-0",
-    "categories": [
-      "CONTINUOUS INTEGRATION",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "85D225790B3348445F16801AA3FA9B48",
-    "name": "Redis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.6-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6F7CECDD1FC26A602118D4A64B118ECD",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.9.2-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "40A5C3FB1FA1B4A2F569844728E85DCF",
-    "name": "Squash",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20160301-0",
-    "categories": [
-      "CODE REVIEW"
-    ]
-  },
-  {
-    "id": "51833FE622E5C1D719E1688214D2890C",
-    "name": "DreamFactory",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.4.1-2",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "2FEA5ED118B06C8673F6A03E64BE03A5",
-    "name": "LimeSurvey",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20161205-0",
-    "categories": [
-      "POLL MANAGEMENT"
-    ]
-  },
-  {
-    "id": "5C19A6333F441B83FBC5184E605F35AD",
-    "name": "OPEN ATRIUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.611-0",
-    "categories": [
-      "CMS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "BB31325CCBC7B60400177BD20EF0919D",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.14-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "CF8050EDB22A91AFEF7F3CCD56F5EFB7",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.4-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "6E08092CC8B3BB8BA7B3696F962042F9",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.2.1-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6AC6A6FD6D09CCABA9D8495297984823",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.53-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "4518877E49A04BFEAC16BEE6B894F0E3",
-    "name": "EspoCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.0-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "BB210DCBE4A56B5146DF73FE036E5455",
-    "name": "Akeneo",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.6.6-0",
-    "categories": [
-      "PRODUCT INFORMATION MANAGEMENT"
-    ]
-  },
-  {
-    "id": "158308EF4AF66D9DF1810F3CBDE6F353",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "D4050B0ADDCFEA2D1C55E5E5AF22FB31",
-    "name": "REFINERY CMS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.5-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "5A59D0F511E8A3EA90D64CCB6D13428F",
-    "name": "ActiveMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.14.2-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "1C8A34EF47193DDDA4B6A816A6F11370",
-    "name": "WP MULTISITE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7-0",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "83D8DF2DAA6D865A0996AEE6129CF364",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7-0",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "EF11A41203805797DCD1974D7B9BEF7B",
-    "name": "WordPress",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.php56-0",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "32D0CA8B499940E5C5FECC91D798809C",
-    "name": "WP MULTISITE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.php56-0",
-    "categories": [
-      "BLOG",
-      "CMS"
-    ]
-  },
-  {
-    "id": "BFBB161F64F7FFCF65E92E9BA59D249F",
-    "name": "LAMP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.1.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "E07EDABD073B74A2120A19073B2AAF4E",
-    "name": "LAPP Stack",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.1.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "48EC401FE1E042D7ECF1E77E6E08A1EB",
-    "name": "TINY TINY RSS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20161213-0",
-    "categories": [
-      "NEWS AGGREGATOR"
-    ]
-  },
-  {
-    "id": "00D896BA4C60E0EE7DA29304784BD8AF",
-    "name": "Mautic",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.4.0-0",
-    "categories": [
-      "CRM",
-      "EMAIL",
-      "MARKETING AUTOMATION"
-    ]
-  },
-  {
-    "id": "2000FB68A23FF6946B357C33ABFFCF45",
-    "name": "PARSE SERVER",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.3.1-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "FRAMEWORK",
-      "Middleware",
-      "MOBILE DEVELOPMENT"
-    ]
-  },
-  {
-    "id": "148A577540578BBA1F4BC0FD87514266",
-    "name": "OroCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.12-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "7CAB3EC8A7B05E23A791F64898FB7339",
-    "name": "MySQL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.6.35-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "9F38B5A4EA5E1B047AC82A7DD5B071CA",
-    "name": "LAPP Stack",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.0.14-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "51D4F0C6DEB3548F7AF37E0FE89AF64A",
-    "name": "LAMP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.0.14-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "F452A101BD2D7BBC5B3C50C426BFFD01",
-    "name": "LAPP Stack",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.6.29-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "2B7F44F10F8FC43235545A20224BF956",
-    "name": "LAMP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.6.29-0",
-    "categories": [
-      "INFRASTRUCTURE",
-      "POPULAR"
-    ]
-  },
-  {
-    "id": "3F0573F8D78C7892A6E5B48A99DA4E1B",
-    "name": "Subversion",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.9.5-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "VERSION CONTROL"
-    ]
-  },
-  {
-    "id": "1A263D2EB4ED1660BF867AEF669B368D",
-    "name": "Mahara",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "16.10.1-0",
-    "categories": [
-      "COLLABORATION",
-      "ELEARNING",
-      "MEDIA SHARING",
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "89AA3CBFD6F4126FC49DD1E338779E24",
-    "name": "TIKI WIKI CMS GROUPWARE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "16.1-0",
-    "categories": [
-      "CMS",
-      "COLLABORATION",
-      "WIKI"
-    ]
-  },
-  {
-    "id": "457F2884B4C9325B61DD76D3066EE99B",
-    "name": "Joomla!",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.6.5-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "80FE9E61CDFD4478B61E05D45B1833F4",
-    "name": "AbanteCart",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.2.9-0",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "0B5BB1BBFB39C28F82DF9804DAF74E61",
-    "name": "Osclass",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.7.0-0",
-    "categories": [
-      "ONLINE CLASSIFIEDS"
-    ]
-  },
-  {
-    "id": "FBCDC34C894FAD01D674D32C7034F1BF",
-    "name": "HORDE GROUPWARE WEBMAIL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.2.17-0",
-    "categories": [
-      "COLLABORATION",
-      "EMAIL"
-    ]
-  },
-  {
-    "id": "5D0E751261760562752B5F2C2135F076",
-    "name": "SEO PANEL",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.10.0-0",
-    "categories": [
-      "ANALYTICS"
-    ]
-  },
-  {
-    "id": "0CB00AF85ACD62669FB67F979CD608C7",
-    "name": "SilverStripe",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.5.1-0",
-    "categories": [
-      "CMS",
-      "FRAMEWORK"
-    ]
-  },
-  {
-    "id": "7A28641A3FB33FE2A7FC5C1B45FC8970",
-    "name": "Ametys",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.8.1-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "E29812D5DDF322090E1C082CD5A7E7FE",
-    "name": "OPEN ATRIUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.612-0",
-    "categories": [
-      "CMS",
-      "PROJECT MANAGEMENT"
-    ]
-  },
-  {
-    "id": "B64AF1A8DC39615CC0E3F6E72FC612A8",
-    "name": "ActiveMQ",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.14.3-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6AACE44F36E2C8E021B3E3C7EAF81A47",
-    "name": "EspoCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.3.1-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "12DE0ED80AFC971C9A021D722A7C6B3A",
-    "name": "X2ENGINE SALES CRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "6.5.2-0",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "9F078FEB476BFE64504A7B14178A8EE1",
-    "name": "Kafka",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.10.1.1-0",
-    "categories": [
-      "DEVELOPER TOOLS",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "7B9A2EA0BDBBCDB5A652FE0D07CF2FBF",
-    "name": "OpenERP",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.0-25",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "848F2BB1B6B278B4025B3606598123C3",
-    "name": "SimpleInvoices",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2013.1.beta.8-6",
-    "categories": [
-      "ACCOUNTING"
-    ]
-  },
-  {
-    "id": "C01A9B6232FFC487039718DD17BE80D7",
-    "name": "Openfire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.1.1-0",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "C7F49E3713D9AE033539D628D737A577",
-    "name": "Django",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.5-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "5753041EAF625B748F5E73CAB8DFAAC7",
-    "name": "ERPNext",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.2.8-0",
-    "categories": [
-      "CRM",
-      "ERP"
-    ]
-  },
-  {
-    "id": "517DCE1A168888C1B2C4C90FF7DCDE62",
-    "name": "MyBB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.8.10-0",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "9D2C3D429B0D54F252A103E7AB6C7200",
-    "name": "SIMPLE MACHINES FORUM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.0.13-0",
-    "categories": [
-      "FORUM"
-    ]
-  },
-  {
-    "id": "2EE86FEC02DB90BC3119E5DA2CF7000A",
-    "name": "JRuby",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.7.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "1A079A22FEA69AF9F8E7C64EA75138E8",
-    "name": "concrete5",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "5.7.5.13-0",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "EEAB5D3832E8C49BBA49340532201FD9",
-    "name": "Memcached",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.4.34-0",
-    "categories": [
-      "CACHE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "6AF9F672FE5548FD26BCBFEFF9FD26F5",
-    "name": "MongoDB",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.4.1-0",
-    "categories": [
-      "DATABASE",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "68336B1D12E86FB7CEF51E99A2C74910",
-    "name": "NODE.JS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.4.0-0",
-    "categories": [
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "347F8594499DE0DCE50DF8510C29478A",
-    "name": "Tomcat",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.0.0.M17-0",
-    "categories": [
-      "APPLICATION SERVER",
-      "INFRASTRUCTURE"
-    ]
-  },
-  {
-    "id": "4A76701EC59D8F1604C34A16F98C12D9",
-    "name": "RE:DASH",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "0.12.0.2449-0",
-    "categories": [
-      "ANALYTICS",
-      "BUSINESS INTELLIGENCE"
-    ]
-  },
-  {
-    "id": "FB0F1B12B84912918C73FEB83FF2732E",
-    "name": "Pootle",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.7.6-0",
-    "categories": [
-      "TRANSLATION TOOLS"
-    ]
-  },
-  {
-    "id": "3E0D2DDAAA01CF64B46CA3DA2A9E9009",
-    "name": "COREOS_1185.3.0_64BITS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "CoreOS 1185.3.4",
-    "os_version": "CoreOS",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "37DBEACD9864AF6C874692DDBAB9693C",
-    "name": "SuiteCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "7.7.9-1",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "4F9916EAB74EB67E59FFBBFA8FC862A6",
-    "name": "PrestaShop",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.7.0.4-1",
-    "categories": [
-      "E-COMMERCE"
-    ]
-  },
-  {
-    "id": "47A1E0F445CF1B3EAF7AA37BFEC99765",
-    "name": "JFROG ARTIFACTORY",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.16.0-1",
-    "categories": [
-      "BINARY REPOSITORY",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "7254215DF4C13DDDB71ADA583A2559C9",
-    "name": "Mantis",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.0.0-1",
-    "categories": [
-      "BUG TRACKING",
-      "DEVELOPER TOOLS"
-    ]
-  },
-  {
-    "id": "6E60B13E6F1D73C2567F1B4B864D75FD",
-    "name": "CiviCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "4.7.15-1",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "A0AC3AB893615424CD2CE6E019EAA50A",
-    "name": "Mautic",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.1-1",
-    "categories": [
-      "CRM",
-      "EMAIL",
-      "MARKETING AUTOMATION"
-    ]
-  },
-  {
-    "id": "E3659A006A5181269F9FEBBC336DB1BD",
-    "name": "LIVE HELPER CHAT",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.52v-1",
-    "categories": [
-      "CHAT"
-    ]
-  },
-  {
-    "id": "FEFFFEBBDD0468090534DC4F40161EB5",
-    "name": "Mahara",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "16.10.2-1",
-    "categories": [
-      "COLLABORATION",
-      "ELEARNING",
-      "MEDIA SHARING",
-      "SOCIAL NETWORKING"
-    ]
-  },
-  {
-    "id": "46ED61EA8D92FAF6DC63EF89FCB2005F",
-    "name": "Drupal",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "8.2.5-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "BFB384CE8C41362CE7291CB4BC5AE3AA",
-    "name": "ProcessWire",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.0.42-2",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "64E1B8118643E5CF588E16A825674224",
-    "name": "phpList",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "3.2.7-1",
-    "categories": [
-      "NEWSLETTER MANAGER"
-    ]
-  },
-  {
-    "id": "C46867ACABEA255496F239853BB2D8F4",
-    "name": "XOOPS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.8.1-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "D5B67125994531E839E4EE7426734D44",
-    "name": "OroCRM",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "1.10.12-2",
-    "categories": [
-      "CRM"
-    ]
-  },
-  {
-    "id": "3E6F9D3607CC042AAC0424E3484C3A5E",
-    "name": "LimeSurvey",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "20170116-0",
-    "categories": [
-      "POLL MANAGEMENT"
-    ]
-  },
-  {
-    "id": "BBF529CD3F61C3774E80A9E2ECA8BBA8",
-    "name": "ownCloud",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "9.1.3-1",
-    "categories": [
-      "MEDIA SHARING"
-    ]
-  },
-  {
-    "id": "237298EF69A39DE18CF515FD9E1D28E8",
-    "name": "MODX",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.5.4pl-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "3D089CC7EBB7BAE63F54FDF38E0E6A92",
-    "name": "CMS MADE SIMPLE",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "Centos7",
-    "os_version": "Centos",
-    "os_architecture": 64,
-    "os_image_type": null,
-    "type": "APPLICATION",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": "2.1.6-1",
-    "categories": [
-      "CMS"
-    ]
-  },
-  {
-    "id": "64BDA5E918D983BF02CAD55C0E738080",
-    "name": "OPENSUSE_LEAP-42.2_64MIN",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "OpenSuse Leap-42.2",
-    "os_version": "OpenSuse",
-    "os_architecture": 64,
-    "os_image_type": "MINIMAL",
-    "type": "IMAGE",
-    "min_hdd_size": 20,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  },
-  {
-    "id": "34D8E058F1EE61D056BE1F6704EB18A7",
-    "name": "OPENSUSE_LEAP-42.2_64BITS",
-    "available_datacenters": [
-      "81DEF28500FBC2A973FC0C620DF5B721",
-      "908DC2072407C94C8054610AD5A53B8C",
-      "4EFAD5836CE43ACA502FD5B99BEE44EF",
-      "5091F6D8CBFEF9C26ACE957C652D5D49"
-    ],
-    "os_family": "Linux",
-    "os": "OpenSuse Leap-42.2",
-    "os_version": "OpenSuse",
-    "os_architecture": 64,
-    "os_image_type": "ISO_OS",
-    "type": "ISO",
-    "min_hdd_size": null,
-    "licenses": [],
-    "version": null,
-    "categories": []
-  }
-]
diff --git a/libcloud/test/compute/fixtures/oneandone/list_load_balancer.json b/libcloud/test/compute/fixtures/oneandone/list_load_balancer.json
deleted file mode 100644
index 93a542a..0000000
--- a/libcloud/test/compute/fixtures/oneandone/list_load_balancer.json
+++ /dev/null
@@ -1,78 +0,0 @@
-[
-  {
-    "id": "B23F1B4F84E983B4FEDD5459E877058A",
-    "name": "My load balancer",
-    "state": "CONFIGURING",
-    "creation_date": "2015-03-03T11:12:00+00:00",
-    "description": "My load balancer description",
-    "ip": "10.5.138.52",
-    "health_check_test": "TCP",
-    "health_check_interval": 40,
-    "health_check_path": null,
-    "health_check_path_parser": null,
-    "persistence": true,
-    "persistence_time": 1200,
-    "method": "ROUND_ROBIN",
-    "datacenter": {
-      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-      "location": "USA",
-      "country_code": "US"
-    },
-    "rules": [
-      {
-        "id": "D7A0A7C445D844848EBB439C28B46183",
-        "protocol": "TCP",
-        "port_balancer": 22,
-        "port_server": 22,
-        "source": "0.0.0.0"
-      },
-      {
-        "id": "9AE836CDE379EEB361287F07B3300F84",
-        "protocol": "TCP",
-        "port_balancer": 85,
-        "port_server": 85,
-        "source": "0.0.0.0"
-      }
-    ],
-    "server_ips": [],
-    "cloudpanel_id": "LB99AA4_1"
-  },
-  {
-    "id": "B23F1B4F84E983B4FEDD5459E877058B",
-    "name": "My Load Balancer II",
-    "state": "CONFIGURING",
-    "creation_date": "2015-03-03T11:12:00+00:00",
-    "description": "My load balancer II description",
-    "ip": "10.5.138.53",
-    "health_check_test": "TCP",
-    "health_check_interval": 40,
-    "health_check_path": null,
-    "health_check_path_parser": null,
-    "persistence": true,
-    "persistence_time": 1200,
-    "method": "ROUND_ROBIN",
-    "region": {
-      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-      "location": "USA",
-      "country_code": "US"
-    },
-    "rules": [
-      {
-        "id": "D7A0A7C445D844848EBB439C28B46184",
-        "protocol": "TCP",
-        "port_balancer": 22,
-        "port_server": 22,
-        "source": "0.0.0.0"
-      },
-      {
-        "id": "9AE836CDE379EEB361287F07B3300F85",
-        "protocol": "TCP",
-        "port_balancer": 9999,
-        "port_server": 9999,
-        "source": "0.0.0.0"
-      }
-    ],
-    "server_ips": [],
-    "cloudpanel_id": "LB99AA4_1"
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/list_monitoring_policies.json b/libcloud/test/compute/fixtures/oneandone/list_monitoring_policies.json
deleted file mode 100644
index 7d3c75b..0000000
--- a/libcloud/test/compute/fixtures/oneandone/list_monitoring_policies.json
+++ /dev/null
@@ -1,152 +0,0 @@
-[
-  {
-    "id": "0F9A1604FC80EB625FC6AEE7394893BE",
-    "name": "Default Policy",
-    "description": "Default Policy Description",
-    "default": 1,
-    "state": "ACTIVE",
-    "creation_date": "2014-10-29T07:52:46+00:00",
-    "email": "",
-    "agent": false,
-    "servers": [
-      {
-        "id": "E83777750130E1111AA89623B9557CAF",
-        "name": "My Server 1"
-      },
-      {
-        "id": "CB22C6E0428239348A6B70BAE0D67E66",
-        "name": "My Server 2"
-      },
-      {
-        "id": "6AAA2BD60813F419DEC8D69C6E4F6477",
-        "name": "My Server 3"
-      }
-    ],
-    "thresholds": {
-      "cpu": {
-        "warning": {
-          "value": 90,
-          "alert": false
-        },
-        "critical": {
-          "value": 95,
-          "alert": false
-        }
-      },
-      "ram": {
-        "warning": {
-          "value": 90,
-          "alert": false
-        },
-        "critical": {
-          "value": 95,
-          "alert": false
-        }
-      },
-      "transfer": {
-        "warning": {
-          "value": 1000,
-          "alert": false
-        },
-        "critical": {
-          "value": 2000,
-          "alert": false
-        }
-      },
-      "internal_ping": {
-        "warning": {
-          "value": 50,
-          "alert": false
-        },
-        "critical": {
-          "value": 100,
-          "alert": false
-        }
-      }
-    },
-    "ports": [],
-    "processes": [],
-    "cloudpanel_id": "mo99AA4_1"
-  },
-  {
-    "id": "C81F17AF6F6F6717372B79A882B25E92",
-    "name": "My monitoring policy",
-    "description": null,
-    "default": 0,
-    "state": "ACTIVE",
-    "creation_date": "2015-02-26T07:23:42+00:00",
-    "email": "",
-    "agent": true,
-    "servers": [],
-    "thresholds": {
-      "cpu": {
-        "warning": {
-          "value": 90,
-          "alert": false
-        },
-        "critical": {
-          "value": 95,
-          "alert": false
-        }
-      },
-      "ram": {
-        "warning": {
-          "value": 90,
-          "alert": false
-        },
-        "critical": {
-          "value": 95,
-          "alert": false
-        }
-      },
-      "disk": {
-        "warning": {
-          "value": 80,
-          "alert": false
-        },
-        "critical": {
-          "value": 90,
-          "alert": false
-        }
-      },
-      "transfer": {
-        "warning": {
-          "value": 1000,
-          "alert": false
-        },
-        "critical": {
-          "value": 2000,
-          "alert": false
-        }
-      },
-      "internal_ping": {
-        "warning": {
-          "value": 50,
-          "alert": false
-        },
-        "critical": {
-          "value": 100,
-          "alert": false
-        }
-      }
-    },
-    "ports": [
-      {
-        "id": "5F67F2706335AF34FFCDF71E5AF08B2B",
-        "protocol": "TCP",
-        "port": "22",
-        "alert_when": false,
-        "alert": true
-      }
-    ],
-    "processes": [
-      {
-        "id": "13CF2BEADA60230C6241C81C248F3C4B",
-        "process": "test",
-        "alert_when": false,
-        "alert": true
-      }
-    ],
-    "cloudpanel_id": "mo99AA4_2"
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/list_public_ips.json b/libcloud/test/compute/fixtures/oneandone/list_public_ips.json
deleted file mode 100644
index 6d4260e..0000000
--- a/libcloud/test/compute/fixtures/oneandone/list_public_ips.json
+++ /dev/null
@@ -1,59 +0,0 @@
-[
-  {
-    "id": "569FA2EC06DD48C9E8635F3384A018DB",
-    "ip": "10.5.138.52",
-    "type": "IPV4",
-    "datacenter": {
-      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-      "location": "USA",
-      "country_code": "US"
-    },
-    "assigned_to": {
-      "id": "B23F1B4F84E983B4FEDD5459E877058A",
-      "name": "My load balancer",
-      "type": "LOAD_BALANCER"
-    },
-    "reverse_dns": null,
-    "is_dhcp": false,
-    "state": "ACTIVE",
-    "creation_date": "2015-03-03T11:12:10+00:00"
-  },
-  {
-    "id": "6F033A13C3EFCE0FB60783280A118D63",
-    "ip": "10.5.133.191",
-    "type": "IPV4",
-    "datacenter": {
-      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-      "location": "USA",
-      "country_code": "US"
-    },
-    "assigned_to": {
-      "id": "BDAF0EC6A36E9E554B80B7E7365821F5",
-      "name": "My Server 1",
-      "type": "SERVER"
-    },
-    "reverse_dns": null,
-    "is_dhcp": true,
-    "state": "ACTIVE",
-    "creation_date": "2015-05-04T07:21:37+00:00"
-  },
-  {
-    "id": "39C73A57B33DAF2F9FA1EBEA4C301FCF",
-    "ip": "10.5.138.81",
-    "type": "IPV4",
-    "datacenter": {
-      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-      "location": "USA",
-      "country_code": "US"
-    },
-    "assigned_to": {
-      "id": "B23F1B4F84E983B4FEDD5459E877058A",
-      "name": "My load balancer",
-      "type": "LOAD_BALANCER"
-    },
-    "reverse_dns": null,
-    "is_dhcp": false,
-    "state": "ACTIVE",
-    "creation_date": "2015-03-03T11:13:16+00:00"
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/list_servers.json b/libcloud/test/compute/fixtures/oneandone/list_servers.json
deleted file mode 100644
index f9e05b2..0000000
--- a/libcloud/test/compute/fixtures/oneandone/list_servers.json
+++ /dev/null
@@ -1,197 +0,0 @@
-[
-   {
-      "id":"8A7D5122BDC173B6E52223878CEF2748",
-      "name":"Docs Content Ubuntu 16.04-1",
-      "description":"",
-      "status":{
-         "state":"POWERED_ON",
-         "percent":null
-      },
-      "datacenter":{
-         "id":"908DC2072407C94C8054610AD5A53B8C",
-         "country_code":"US",
-         "location":"United States of America"
-      },
-      "creation_date":"2016-10-03T16:44:34+00:00",
-      "image":{
-         "id":"4DBFA2D31B1A303A9CE0E4ECF8838FDE",
-         "name":"ubuntu1604-64std"
-      },
-      "hardware":{
-         "fixed_instance_size_id":"65929629F35BBFBA63022008F773F3EB",
-         "vcore":1,
-         "cores_per_processor":1,
-         "ram":1,
-         "hdds":[
-            {
-               "id":"F92B0519D2F9A7EFA961F956C4B381B4",
-               "size":40,
-               "is_main":true
-            }
-         ]
-      },
-      "ips":[
-         {
-            "id":"9774FB2A6DCC45733B115A98FCD59CC6",
-            "ip":"50.21.182.126"
-         }
-      ],
-      "alerts":null
-   },
-   {
-      "id":"E7D36EC025C73796035BF4F171379025",
-      "name":"Docs Content Test Server: CentOS 7-1",
-      "description":"",
-      "status":{
-         "state":"POWERED_ON",
-         "percent":null
-      },
-      "datacenter":{
-         "id":"908DC2072407C94C8054610AD5A53B8C",
-         "country_code":"US",
-         "location":"United States of America"
-      },
-      "creation_date":"2016-05-05T17:39:50+00:00",
-      "image":{
-         "id":"B5F778B85C041347BCDCFC3172AB3F3C",
-         "name":"centos7-64std"
-      },
-      "hardware":{
-         "fixed_instance_size_id":"65929629F35BBFBA63022008F773F3EB",
-         "vcore":1,
-         "cores_per_processor":1,
-         "ram":1,
-         "hdds":[
-            {
-               "id":"CDB278D95A92CB4C379A9CAAD6759F02",
-               "size":40,
-               "is_main":true
-            }
-         ]
-      },
-      "ips":[
-         {
-            "id":"FDBE99EDD57F8596CBF71B6B64BD0A92",
-            "ip":"62.151.179.99"
-         }
-      ],
-      "alerts":null
-   },
-   {
-      "id":"DDDC4CCA34AAB08132FA1E40F9FEAC25",
-      "name":"App Dev Server 5",
-      "description":"",
-      "status":{
-         "state":"POWERED_ON",
-         "percent":null
-      },
-      "datacenter":{
-         "id":"908DC2072407C94C8054610AD5A53B8C",
-         "country_code":"US",
-         "location":"United States of America"
-      },
-      "creation_date":"2016-03-04T21:29:00+00:00",
-      "image":{
-         "id":"96D5CEB497043FD54E834DEC4B8FF70A",
-         "name":"centos7-64cpanel"
-      },
-      "hardware":{
-         "fixed_instance_size_id":"65929629F35BBFBA63022008F773F3EB",
-         "vcore":1,
-         "cores_per_processor":1,
-         "ram":1,
-         "hdds":[
-            {
-               "id":"5E23F849DD3D6A47615D8EE441FE74CC",
-               "size":40,
-               "is_main":true
-            }
-         ]
-      },
-      "ips":[
-         {
-            "id":"E193E9D2213088B3CCE8AD69646CEF18",
-            "ip":"70.35.206.196"
-         }
-      ],
-      "alerts":null
-   },
-   {
-      "id":"D5C5C1D01249DE9B88BE3DAE973AA090",
-      "name":"Docs Test Server: CentOS 7-2",
-      "description":"",
-      "status":{
-         "state":"POWERED_ON",
-         "percent":null
-      },
-      "datacenter":{
-         "id":"908DC2072407C94C8054610AD5A53B8C",
-         "country_code":"US",
-         "location":"United States of America"
-      },
-      "creation_date":"2016-10-24T18:13:41+00:00",
-      "image":{
-         "id":"B5F778B85C041347BCDCFC3172AB3F3C",
-         "name":"centos7-64std"
-      },
-      "hardware":{
-         "fixed_instance_size_id":"3D4C49EAEDD42FBC23DB58FE3DEF464F",
-         "vcore":1,
-         "cores_per_processor":1,
-         "ram":0.5,
-         "hdds":[
-            {
-               "id":"35F875003212E7F083728E4072A188B0",
-               "size":30,
-               "is_main":true
-            }
-         ]
-      },
-      "ips":[
-         {
-            "id":"1C79CF2066A5AEEACCB97A68FF41DD00",
-            "ip":"74.208.88.88"
-         }
-      ],
-      "alerts":null
-   },
-   {
-      "id":"FB1765588A90364835782061CE48BA8E",
-      "name":"Docs Content Test Server Ubuntu 16.04-2",
-      "description":"",
-      "status":{
-         "state":"POWERED_ON",
-         "percent":null
-      },
-      "datacenter":{
-         "id":"908DC2072407C94C8054610AD5A53B8C",
-         "country_code":"US",
-         "location":"United States of America"
-      },
-      "creation_date":"2016-11-28T21:45:50+00:00",
-      "image":{
-         "id":"4DBFA2D31B1A303A9CE0E4ECF8838FDE",
-         "name":"ubuntu1604-64std"
-      },
-      "hardware":{
-         "fixed_instance_size_id":"65929629F35BBFBA63022008F773F3EB",
-         "vcore":1,
-         "cores_per_processor":1,
-         "ram":1,
-         "hdds":[
-            {
-               "id":"B45F054C54B5AAE9C45253C6D0A47E74",
-               "size":40,
-               "is_main":true
-            }
-         ]
-      },
-      "ips":[
-         {
-            "id":"7D8EA6722183DA82AEDFA09AECE243C4",
-            "ip":"70.35.206.233"
-         }
-      ],
-      "alerts":null
-   }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/list_shared_storages.json b/libcloud/test/compute/fixtures/oneandone/list_shared_storages.json
deleted file mode 100644
index fd059a4..0000000
--- a/libcloud/test/compute/fixtures/oneandone/list_shared_storages.json
+++ /dev/null
@@ -1,64 +0,0 @@
-[
-  {
-    "id": "6AD2F180B7B666539EF75A02FE227084",
-    "size": 200,
-    "state": "ACTIVE",
-    "description": "My shared storage test description",
-    "datacenter": {
-      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-      "location": "USA",
-      "country_code": "US"
-    },
-    "cloudpanel_id": "vid35780",
-    "size_used": "0.00",
-    "cifs_path": "vid50995.nas1.lanvid50995",
-    "nfs_path": "vid50995.nas1.lan/:vid50995",
-    "name": "My shared storage test",
-    "creation_date": "2015-05-06T08:33:25+00:00",
-    "servers": [
-      {
-        "id": "638ED28205B1AFD7ADEF569C725DD85F",
-        "name": "My server 1",
-        "rights": "RW"
-      }
-    ]
-  },
-  {
-    "id": "4406CE4723BB441C7956E25C51CE8C1B",
-    "size": 50,
-    "state": "ACTIVE",
-    "description": "My shared storage description",
-    "datacenter": {
-      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-      "location": "USA",
-      "country_code": "US"
-    },
-    "cloudpanel_id": "vid30534",
-    "size_used": "0.00",
-    "cifs_path": "vid50995.nas1.lanvid50995",
-    "nfs_path": "vid50995.nas1.lan/:vid50995",
-    "name": "My shared storage",
-    "creation_date": "2015-03-17T11:57:48+00:00",
-    "servers": [
-    ]
-  },
-  {
-    "id": "1A5418172DD3BD39F8010A6633F1018A",
-    "size": 250,
-    "state": "ACTIVE",
-    "description": null,
-    "cloudpanel_id": "vid19857",
-    "datacenter": {
-      "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-      "location": "USA",
-      "country_code": "US"
-    },
-    "size_used": "0.00",
-    "cifs_path": "vid50995.nas1.lanvid50995",
-    "nfs_path": "vid50995.nas1.lan/:vid50995",
-    "name": "My shared storage 2",
-    "creation_date": "2015-05-05T09:36:31+00:00",
-    "servers": [
-    ]
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer.json b/libcloud/test/compute/fixtures/oneandone/load_balancer.json
deleted file mode 100644
index c3d2e68..0000000
--- a/libcloud/test/compute/fixtures/oneandone/load_balancer.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-  "id": "BD8318616581A9C3C53F94402503230F",
-  "name": "My load balancer",
-  "state": "CONFIGURING",
-  "creation_date": "2015-05-04T07:26:24+00:00",
-  "description": "My load balancer description",
-  "ip": null,
-  "health_check_test": "TCP",
-  "health_check_interval": 40,
-  "health_check_path": null,
-  "health_check_path_parser": null,
-  "persistence": true,
-  "persistence_time": 1200,
-  "method": "ROUND_ROBIN",
-  "datacenter": {
-    "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-    "location": "USA",
-    "country_code": "US"
-  },
-  "rules": [
-    {
-      "id": "BCFAF421227674B2B324F779C1163ECB",
-      "protocol": "TCP",
-      "port_balancer": 80,
-      "port_server": 80,
-      "source": "0.0.0.0"
-    },
-    {
-      "id": "7390C04142800E006FF1B0132FFD8F9A",
-      "protocol": "TCP",
-      "port_balancer": 9999,
-      "port_server": 8888,
-      "source": "0.0.0.0"
-    }
-  ],
-  "server_ips": [],
-  "cloudpanel_id": "LB99AA4_1"
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer_rule.json b/libcloud/test/compute/fixtures/oneandone/load_balancer_rule.json
deleted file mode 100644
index a5c3d37..0000000
--- a/libcloud/test/compute/fixtures/oneandone/load_balancer_rule.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "id": "BCFAF421227674B2B324F779C1163ECB",
-  "protocol": "TCP",
-  "port_balancer": 80,
-  "port_server": 80,
-  "source": "0.0.0.0"
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer_rules.json b/libcloud/test/compute/fixtures/oneandone/load_balancer_rules.json
deleted file mode 100644
index 0f20841..0000000
--- a/libcloud/test/compute/fixtures/oneandone/load_balancer_rules.json
+++ /dev/null
@@ -1,16 +0,0 @@
-[
-  {
-    "id": "BCFAF421227674B2B324F779C1163ECB",
-    "protocol": "TCP",
-    "port_balancer": 80,
-    "port_server": 80,
-    "source": "0.0.0.0"
-  },
-  {
-    "id": "7390C04142800E006FF1B0132FFD8F9A",
-    "protocol": "TCP",
-    "port_balancer": 9999,
-    "port_server": 8888,
-    "source": "0.0.0.0"
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ip.json b/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ip.json
deleted file mode 100644
index fdc4a2a..0000000
--- a/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ip.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "id": "7C88E50FBC500A3D9D7F94E414255D6B",
-  "ip": "123.46.79.100",
-  "server_name": "My server 1"
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ips.json b/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ips.json
deleted file mode 100644
index 21c945b..0000000
--- a/libcloud/test/compute/fixtures/oneandone/load_balancer_server_ips.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "server_ips": [
-    "7C88E50FBC500A3D9D7F94E414255D6B",
-    "7288E50FBC500A3D9D7F94E414255D6B"
-  ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy.json
deleted file mode 100644
index 510c3c7..0000000
--- a/libcloud/test/compute/fixtures/oneandone/monitoring_policy.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
-  "name": "Monitoring Policy",
-  "description": "Monitoring Policy Description",
-  "email": "test@test.com",
-  "agent": false,
-  "thresholds": {
-    "disk": {
-      "warning": {
-        "value": 80,
-        "alert": false
-      },
-      "critical": {
-        "value": 90,
-        "alert": false
-      }
-    },
-    "transfer": {
-      "warning": {
-        "value": 1000,
-        "alert": false
-      },
-      "critical": {
-        "value": 2000,
-        "alert": false
-      }
-    },
-    "ram": {
-      "warning": {
-        "value": 90,
-        "alert": false
-      },
-      "critical": {
-        "value": 95,
-        "alert": false
-      }
-    },
-    "internal_ping": {
-      "warning": {
-        "value": 50,
-        "alert": false
-      },
-      "critical": {
-        "value": 100,
-        "alert": true
-      }
-    },
-    "cpu": {
-      "warning": {
-        "value": 90,
-        "alert": false
-      },
-      "critical": {
-        "value": 95,
-        "alert": false
-      }
-    }
-  },
-  "ports": [
-    {
-      "alert_if": "NOT_RESPONDING",
-      "email_notification": true,
-      "protocol": "TCP",
-      "port": 443
-    }
-  ],
-  "processes": [
-    {
-      "process": "httpdeamon",
-      "alert_if": "NOT_RUNNING",
-      "email_notification": false
-    }
-  ]
-}
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_port.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_port.json
deleted file mode 100644
index 909d587..0000000
--- a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_port.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "id": "663D21E232530D79E4E584104C400EE4",
-  "protocol": "TCP",
-  "port": 22,
-  "alert_if": "RESPONDING",
-  "email_notifications": true
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_ports.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_ports.json
deleted file mode 100644
index a3f1f89..0000000
--- a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_ports.json
+++ /dev/null
@@ -1,16 +0,0 @@
-[
-  {
-    "id": "663D21E232530D79E4E584104C400EE4",
-    "protocol": "TCP",
-    "port": 22,
-    "alert_if": "RESPONDING",
-    "email_notifications": true
-  },
-  {
-    "id": "663D21E232530D79E4E584104C400AAA",
-    "protocol": "TCP",
-    "port": 80,
-    "alert_if": "NOT_RESPONDING",
-    "email_notifications": true
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_process.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_process.json
deleted file mode 100644
index 9f49bfa..0000000
--- a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_process.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "id": "663D21E232530D79E4E584104C400EE4",
-  "process": "iexplorer",
-  "alert_if": "NOT_RUNNING",
-  "email_notifications": true
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_processes.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_processes.json
deleted file mode 100644
index a79b2f5..0000000
--- a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_processes.json
+++ /dev/null
@@ -1,14 +0,0 @@
-[
-  {
-    "id": "663D21E232530D79E4E584104C400EE4",
-    "process": "iexplorer",
-    "alert_if": "NOT_RUNNING",
-    "email_notifications": true
-  },
-  {
-    "id": "663D21E232530D79E4E584104C400EE4",
-    "process": "winword",
-    "alert_if": "NOT_RUNNING",
-    "email_notifications": true
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_servers.json b/libcloud/test/compute/fixtures/oneandone/monitoring_policy_servers.json
deleted file mode 100644
index 19dea3c..0000000
--- a/libcloud/test/compute/fixtures/oneandone/monitoring_policy_servers.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
-  {
-    "id": "C72CF0A681B0CCE7EC624DD194D585C6",
-    "name": "My server 1"
-  },
-  {
-    "id": "4ECD9D188EB457317B2CF8F07885E7B4",
-    "name": "My server 2"
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/public_ip.json b/libcloud/test/compute/fixtures/oneandone/public_ip.json
deleted file mode 100644
index 4bb51b0..0000000
--- a/libcloud/test/compute/fixtures/oneandone/public_ip.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "id": "44972922D045B9648118AA80FF2A51C9",
-  "ip": "10.4.140.155",
-  "type": "IPV4",
-  "datacenter": {
-    "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-    "location": "USA",
-    "country_code": "US"
-  },
-  "assigned_to": null,
-  "reverse_dns": "example.com",
-  "is_dhcp": false,
-  "state": "ACTIVE",
-  "creation_date": "2015-05-06T08:17:33+00:00"
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/server_hardware.json b/libcloud/test/compute/fixtures/oneandone/server_hardware.json
deleted file mode 100644
index 899e757..0000000
--- a/libcloud/test/compute/fixtures/oneandone/server_hardware.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "fixed_instance_size_id": 0,
-  "vcore": 1,
-  "cores_per_processor": 1,
-  "ram": 2,
-  "hdds": [
-  {
-    "id": "8C626C1A7005D0D1F527143C413D461E",
-    "size": 40,
-    "is_main": true
-  }
-  ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/server_ip.json b/libcloud/test/compute/fixtures/oneandone/server_ip.json
deleted file mode 100644
index 7cef3fc..0000000
--- a/libcloud/test/compute/fixtures/oneandone/server_ip.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "id": "01D4A802798AB77AA72DA2D05E1379E1",
-  "ip": "10.5.135.140",
-  "type": "IPV4",
-  "reverse_dns": null,
-  "firewall_policy": null,
-  "load_balancers": []
-}
diff --git a/libcloud/test/compute/fixtures/oneandone/server_ips.json b/libcloud/test/compute/fixtures/oneandone/server_ips.json
deleted file mode 100644
index 6d4f6e5..0000000
--- a/libcloud/test/compute/fixtures/oneandone/server_ips.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
-  {
-    "id": "01D4A802798AB77AA72DA2D05E1379E1",
-    "ip": "10.5.135.140",
-    "type": "IPV4",
-    "reverse_dns": null,
-    "firewall_policy": null,
-    "load_balancers": []
-  }
-]
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/shared_storage.json b/libcloud/test/compute/fixtures/oneandone/shared_storage.json
deleted file mode 100644
index 566b240..0000000
--- a/libcloud/test/compute/fixtures/oneandone/shared_storage.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-  "id": "6AD2F180B7B666539EF75A02FE227084",
-  "size": 200,
-  "state": "ACTIVE",
-  "description": "My shared storage test description",
-  "datacenter": {
-    "id": "D0F6D8C8ED29D3036F94C27BBB7BAD36",
-    "location": "USA",
-    "country_code": "US"
-  },
-  "cloudpanel_id": "vid35780",
-  "size_used": "0.00",
-  "cifs_path": "vid50995.nas1.lanvid50995",
-  "nfs_path": "vid50995.nas1.lan/:vid50995",
-  "name": "My shared storage test",
-  "creation_date": "2015-05-06T08:33:25+00:00",
-  "servers": [
-    {
-      "id": "638ED28205B1AFD7ADEF569C725DD85F",
-      "name": "My server 1",
-      "rights": "RW"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/oneandone/ttt.json b/libcloud/test/compute/fixtures/oneandone/ttt.json
deleted file mode 100644
index fd75651..0000000
--- a/libcloud/test/compute/fixtures/oneandone/ttt.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
-  "name": "MonitoringPolicy_674",
-  "description": "MonitoringPolicy_674 description",
-  "email": "test-go-sdk@oneandone.com",
-  "agent": true,
-  "thresholds": {
-    "cpu": {
-      "warning": {
-        "value": 90,
-        "alert": false
-      },
-      "critical": {
-        "value": 95,
-        "alert": false
-      }
-    },
-    "ram": {
-      "warning": {
-        "value": 90,
-        "alert": false
-      },
-      "critical": {
-        "value": 95,
-        "alert": false
-      }
-    },
-    "disk": {
-      "warning": {
-        "value": 80,
-        "alert": false
-      },
-      "critical": {
-        "value": 90,
-        "alert": false
-      }
-    },
-    "transfer": {
-      "warning": {
-        "value": 1000,
-        "alert": false
-      },
-      "critical": {
-        "value": 2000,
-        "alert": false
-      }
-    },
-    "internal_ping": {
-      "warning": {
-        "value": 50,
-        "alert": false
-      },
-      "critical": {
-        "value": 100,
-        "alert": true
-      }
-    }
-  },
-  "ports": [
-    {
-      "protocol": "TCP",
-      "port": 443,
-      "alert_if": "NOT_RESPONDING",
-      "email_notification": true
-    }
-  ],
-  "processes": [
-    {
-      "process": "httpdeamon",
-      "alert_if": "NOT_RUNNING",
-      "email_notification": false
-    }
-  ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/attach_volume.json b/libcloud/test/compute/fixtures/profitbricks/attach_volume.json
deleted file mode 100644
index 700aa0f..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/attach_volume.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "id" : "vol-2",
-    "type" : "volume",
-    "href" : "/cloudapi/v4/datacenters/dc-1/volumes/vol-2",
-    "metadata" : {
-        "createdDate" : "2016-10-17T13:13:36Z",
-        "createdBy" : "test@test.te",
-        "etag" : "c1800ce349033f9cd2c095ea1ea4976a",
-        "lastModifiedDate" : "2016-10-17T13:47:52Z",
-        "lastModifiedBy" : "test@test.te",
-        "state" : "BUSY"
-    },
-    "properties" : {
-        "name" : "libcloud Test",
-        "type" : "HDD",
-        "size" : 2,
-        "image" : "bvol-img",
-        "imagePassword" : null,
-        "sshKeys": null,
-        "bus" : "VIRTIO",
-        "licenceType" : "UNKNOWN",
-        "cpuHotPlug" : true,
-        "cpuHotUnplug" : false,
-        "ramHotPlug" : true,
-        "ramHotUnplug" : false,
-        "nicHotPlug" : true,
-        "nicHotUnplug" : true,
-        "discVirtioHotPlug" : true,
-        "discVirtioHotUnplug" : true,
-        "discScsiHotPlug" : false,
-        "discScsiHotUnplug" : false,
-        "deviceNumber" : 2
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/create_node.json b/libcloud/test/compute/fixtures/profitbricks/create_node.json
deleted file mode 100644
index 8a129f4..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/create_node.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-    "id": "srv-2",
-    "type": "server",
-    "href": "cloudapi/v4/datacenters/f3f7ca3c-6f3d-4a4d-b3d6-15853ae5ba78/servers/srv-2",
-    "metadata": {
-        "createdDate": "2016-10-19T13:25:19Z",
-        "createdBy": "test@test.te",
-        "etag": "9bea2412ac556b402a07260fc0d1603f",
-        "lastModifiedDate": "2016-10-19T13:25:19Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "cores": 1,
-        "ram": 1024,
-        "availabilityZone": "ZONE_1",
-        "vmState": null,
-        "bootCdrom": null,
-        "bootVolume": null,
-        "cpuFamily": "INTEL_XEON"
-    },
-    "entities": {
-        "volumes": {
-            "id": "srv-2/volumes",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/f3f7ca3c-6f3d-4a4d-b3d6-15853ae5ba78/servers/srv-2/volumes",
-            "items": [
-                {
-                    "id": "53abb4de-b37b-4025-b139-3e09141e20bb",
-                    "type": "volume",
-                    "href": "/cloudapi/v4/datacenters/srv-2/volumes/53abb4de-b37b-4025-b139-3e09141e20bb"
-                }
-            ]
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/create_volume.json b/libcloud/test/compute/fixtures/profitbricks/create_volume.json
deleted file mode 100644
index 5118cde..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/create_volume.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-    "id" : "vol-2",
-    "type" : "volume",
-    "href" : "/cloudapi/v4/datacenters/dc-1/volumes/vol-2",
-    "metadata" : {
-        "createdDate" : "2016-10-17T13:13:36Z",
-        "createdBy" : "test@test.te",
-        "etag" : "c1800ce349033f9cd2c095ea1ea4976a",
-        "lastModifiedDate" : "2016-10-17T13:47:52Z",
-        "lastModifiedBy" : "test@test.te",
-        "state" : "BUSY"
-    },
-    "properties" : {
-        "name": "libcloud Test",
-        "type": "HDD",
-        "size": 2,
-        "availabilityZone": "ZONE_3",
-        "image": "bvol-img",
-        "imagePassword": null,
-        "sshKeys": null,
-        "bus": "VIRTIO",
-        "licenceType": "LINUX",
-        "cpuHotPlug": true,
-        "cpuHotUnplug": false,
-        "ramHotPlug": true,
-        "ramHotUnplug": false,
-        "nicHotPlug": true,
-        "nicHotUnplug": true,
-        "discVirtioHotPlug": true,
-        "discVirtioHotUnplug": true,
-        "discScsiHotPlug": false,
-        "discScsiHotUnplug": false,
-        "deviceNumber": 3
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/create_volume_snapshot.json b/libcloud/test/compute/fixtures/profitbricks/create_volume_snapshot.json
deleted file mode 100644
index da1eec6..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/create_volume_snapshot.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-    "id": "sshot",
-    "type": "snapshot",
-    "href": "/cloudapi/v4/snapshots/sshot",
-    "metadata": {
-        "createdDate": "2016-10-26T11:38:45Z",
-        "createdBy": "test@test.te",
-        "etag": "01873262ac042b5f44ed33b4241225b4",
-        "lastModifiedDate": "2016-10-26T11:38:45Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "description": "libcloud test snapshot",
-        "location": "us/las",
-        "size": 10,
-        "cpuHotPlug": true,
-        "cpuHotUnplug": false,
-        "ramHotPlug": true,
-        "ramHotUnplug": false,
-        "nicHotPlug": true,
-        "nicHotUnplug": true,
-        "discVirtioHotPlug": true,
-        "discVirtioHotUnplug": true,
-        "discScsiHotPlug": false,
-        "discScsiHotUnplug": false,
-        "licenceType": "LINUX"
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/error_resource_not_found.json b/libcloud/test/compute/fixtures/profitbricks/error_resource_not_found.json
deleted file mode 100644
index d0ce3c3..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/error_resource_not_found.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "httpStatus": 404,
-    "messages": [{
-            "errorCode": "309",
-            "message": "Resource does not exist"
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_create_datacenter.json b/libcloud/test/compute/fixtures/profitbricks/ex_create_datacenter.json
deleted file mode 100644
index e819d8e..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_create_datacenter.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-    "id": "dc-1",
-    "type": "datacenter",
-    "href": "/cloudapi/v4/datacenters/dc-1",
-    "metadata": {
-        "createdDate": "2016-10-18T17:20:56Z",
-        "createdBy": "test@test.te",
-        "etag": "c2d3d4d9bbdc0fff7d3c5c3864a68a46",
-        "lastModifiedDate": "2016-10-18T17:20:56Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "description": "libcloud test datacenter",
-        "location": "us/las",
-        "version": null,
-        "features": []
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_create_firewall_rule.json b/libcloud/test/compute/fixtures/profitbricks/ex_create_firewall_rule.json
deleted file mode 100644
index fe1f685..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_create_firewall_rule.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "id": "fwr-1",
-    "type": "firewall-rule",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules/fwr-1",
-    "metadata": {
-        "createdDate": "2016-10-19T11:08:04Z",
-        "createdBy": "test@test.te",
-        "etag": "2a21551ba4adf85d9fb04b05a6938bcc",
-        "lastModifiedDate": "2016-10-19T11:08:04Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "SSH",
-        "protocol": "TCP",
-        "sourceMac": "01:23:45:67:89:00",
-        "sourceIp": null,
-        "targetIp": null,
-        "icmpCode": null,
-        "icmpType": null,
-        "portRangeStart": 22,
-        "portRangeEnd": 22
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_create_ip_block.json b/libcloud/test/compute/fixtures/profitbricks/ex_create_ip_block.json
deleted file mode 100644
index b561bb0..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_create_ip_block.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "id": "ipb-1",
-    "type": "ipblock",
-    "href": "/cloudapi/v4/ipblocks/ipb-1",
-    "metadata": {
-        "createdDate": "2016-10-26T15:05:36Z",
-        "createdBy": "test@test.te",
-        "etag": "acbf00bacf7ee48d4b8bc4e7413e1f30",
-        "lastModifiedDate": "2016-10-26T15:05:36Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "ips": [
-            "11.12.13.14",
-            "15.16.17.18"
-        ],
-        "location": "us/las",
-        "size": 2,
-        "name": "libcloud Test"
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_create_lan.json b/libcloud/test/compute/fixtures/profitbricks/ex_create_lan.json
deleted file mode 100644
index c76ed44..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_create_lan.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-    "id" : "10",
-    "type" : "lan",
-    "href" : "/cloudapi/v4/datacenters/dc-1/lans/10",
-    "metadata" : {
-        "createdDate": "2016-10-17T11:33:11Z",
-        "createdBy": "test@test.te",
-        "etag": "53b215b8ec0356a649955dab019845a4",
-        "lastModifiedDate": "2016-10-18T15:13:44Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties" : {
-        "name" : "libcloud Test",
-        "public" : true
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_create_load_balancer.json b/libcloud/test/compute/fixtures/profitbricks/ex_create_load_balancer.json
deleted file mode 100644
index 3f7761c..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_create_load_balancer.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    "id": "bal-1",
-    "type": "loadbalancer",
-    "href": "/cloudapi/v4/datacenters/dc-1/loadbalancers/bal-1",
-    "metadata": {
-        "createdDate": "2016-10-26T13:02:33Z",
-        "createdBy": "test@test.te",
-        "etag": "71e8df57a58615b9e15400ede4138b41",
-        "lastModifiedDate": "2016-10-26T13:02:33Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "ip": null,
-        "dhcp": true
-    },
-    "entities": {
-        "balancednics": {
-            "id": "bal-1/balancednics",
-            "type": "collection",
-            "href": "cloudapi/v4/datacenters/dc-1/loadbalancers/bal-1/balancednics",
-            "items": [{
-                    "id": "nic-1",
-                    "type": "nic",
-                    "href": "cloudapi/v4/datacenters/dc-1/servers/bal-1/nics/nic-1",
-                    "metadata": {
-                        "createdDate": "2016-10-17T15:46:38Z",
-                        "createdBy": "test@test.te",
-                        "etag": "dbd8216137cf0ec9951170f93fa8fa53",
-                        "lastModifiedDate": "2016-10-17T18:19:43Z",
-                        "lastModifiedBy": "test@test.te",
-                        "state": "BUSY"
-                    }
-                }
-            ]
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_create_network_interface.json b/libcloud/test/compute/fixtures/profitbricks/ex_create_network_interface.json
deleted file mode 100644
index 0210b83..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_create_network_interface.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "id": "nic-2",
-    "type": "nic",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/nics/nic-2",
-    "metadata": {
-        "createdDate": "2016-10-19T08:18:50Z",
-        "createdBy": "test@test.te",
-        "etag": "8679142b0b1b70c8b8c09a8b31e6ded9",
-        "lastModifiedDate": "2016-10-19T08:18:50Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "mac": null,
-        "ips": [ "10.0.0.1" ],
-        "dhcp": true,
-        "lan": 1,
-        "firewallActive": null,
-        "nat": null
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_datacenter.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_datacenter.json
deleted file mode 100644
index 36ba13d..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_datacenter.json
+++ /dev/null
@@ -1,401 +0,0 @@
-{
-    "id": "dc-1",
-    "type": "datacenter",
-    "href": "/cloudapi/v4/datacenters/dc-1",
-    "metadata": {
-        "createdDate": "2016-10-17T11:33:11Z",
-        "createdBy": "test@test.test",
-        "etag": "53b215b8ec0356a649955dab019845a4",
-        "lastModifiedDate": "2016-10-18T15:13:44Z",
-        "lastModifiedBy": "test@test.test",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "description": "libcloud test datacenter",
-        "location": "us/las",
-        "version": 35,
-        "features": [
-            "SSD",
-            "MULTIPLE_CPU"
-        ]
-    },
-    "entities": {
-        "servers": {
-            "id": "dc-1/servers",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers",
-            "items": [
-                {
-                    "id": "srv-1",
-                    "type": "server",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1",
-                    "metadata": {
-                        "createdDate": "2016-10-18T07:28:05Z",
-                        "createdBy": "test@test.test",
-                        "etag": "53b215b8ec0356a649955dab019845a4",
-                        "lastModifiedDate": "2016-10-18T15:13:44Z",
-                        "lastModifiedBy": "test@test.test",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "Made with a stray volume and included size.",
-                        "cores": 2,
-                        "ram": 4096,
-                        "availabilityZone": "AUTO",
-                        "vmState": "RUNNING",
-                        "bootCdrom": null,
-                        "bootVolume": {
-                            "id": "bvol-1",
-                            "type": "volume",
-                            "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1",
-                            "metadata": {
-                                "createdDate": "2016-10-18T07:20:41Z",
-                                "createdBy": "test@test.test",
-                                "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                                "lastModifiedDate": "2016-10-18T07:20:41Z",
-                                "lastModifiedBy": "test@test.test",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": "Bootable and linkable",
-                                "type": "HDD",
-                                "size": 10,
-                                "image": "bvol-img",
-                                "imagePassword": null,
-                                "bus": "VIRTIO",
-                                "licenceType": "LINUX",
-                                "cpuHotPlug": true,
-                                "cpuHotUnplug": false,
-                                "ramHotPlug": true,
-                                "ramHotUnplug": false,
-                                "nicHotPlug": true,
-                                "nicHotUnplug": true,
-                                "discVirtioHotPlug": true,
-                                "discVirtioHotUnplug": true,
-                                "discScsiHotPlug": false,
-                                "discScsiHotUnplug": false,
-                                "deviceNumber": 1
-                            }
-                        },
-                        "cpuFamily": "AMD_OPTERON"
-                    },
-                    "entities": {
-                        "cdroms": {
-                            "id": "srv-1/cdroms",
-                            "type": "collection",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/cdroms",
-                            "items": []
-                        },
-                        "volumes": {
-                            "id": "srv-1/volumes",
-                            "type": "collection",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/volumes",
-                            "items": [
-                                {
-                                    "id": "d6688ced-700d-4c9c-a3a7-9f7170c5edc3",
-                                    "type": "volume",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/d6688ced-700d-4c9c-a3a7-9f7170c5edc3"
-                                },
-                                {
-                                    "id": "vol-2",
-                                    "type": "volume",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/vol-2"
-                                },
-                                {
-                                    "id": "bvol-1",
-                                    "type": "volume",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1"
-                                }
-                            ]
-                        },
-                        "nics": {
-                            "id": "srv-1/nics",
-                            "type": "collection",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/nics",
-                            "items": []
-                        }
-                    }
-                },
-                {
-                    "id": "s-3",
-                    "type": "server",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3",
-                    "metadata": {
-                        "createdDate": "2016-10-17T11:33:20Z",
-                        "createdBy": "test@test.test",
-                        "etag": "f6c94daafaf8ef852e2dc4b82a903c7b",
-                        "lastModifiedDate": "2016-10-17T16:13:43Z",
-                        "lastModifiedBy": "test@test.test",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "Updated this node",
-                        "cores": 3,
-                        "ram": 3072,
-                        "availabilityZone": "AUTO",
-                        "vmState": "RUNNING",
-                        "bootCdrom": null,
-                        "bootVolume": {
-                            "id": "21d7e7de-5054-4041-b691-717aa8b3c799",
-                            "type": "volume",
-                            "href": "/cloudapi/v4/datacenters/dc-1/volumes/21d7e7de-5054-4041-b691-717aa8b3c799",
-                            "metadata": {
-                                "createdDate": "2016-10-17T11:33:20Z",
-                                "createdBy": "test@test.test",
-                                "etag": "a9d0b923527efae5e7071e9118e9eece",
-                                "lastModifiedDate": "2016-10-17T11:33:20Z",
-                                "lastModifiedBy": "test@test.test",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": "Image and location and size. - volume",
-                                "type": "HDD",
-                                "size": 50,
-                                "image": "bvol-img",
-                                "imagePassword": null,
-                                "bus": "VIRTIO",
-                                "licenceType": "LINUX",
-                                "cpuHotPlug": true,
-                                "cpuHotUnplug": false,
-                                "ramHotPlug": true,
-                                "ramHotUnplug": false,
-                                "nicHotPlug": true,
-                                "nicHotUnplug": true,
-                                "discVirtioHotPlug": true,
-                                "discVirtioHotUnplug": true,
-                                "discScsiHotPlug": false,
-                                "discScsiHotUnplug": false,
-                                "deviceNumber": 1
-                            }
-                        },
-                        "cpuFamily": "INTEL_XEON"
-                    },
-                    "entities": {
-                        "cdroms": {
-                            "id": "s-3/cdroms",
-                            "type": "collection",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/cdroms",
-                            "items": []
-                        },
-                        "volumes": {
-                            "id": "s-3/volumes",
-                            "type": "collection",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/volumes",
-                            "items": [
-                                {
-                                    "id": "21d7e7de-5054-4041-b691-717aa8b3c799",
-                                    "type": "volume",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/21d7e7de-5054-4041-b691-717aa8b3c799"
-                                }
-                            ]
-                        },
-                        "nics": {
-                            "id": "s-3/nics",
-                            "type": "collection",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics",
-                            "items": [
-                                {
-                                    "id": "nic-1",
-                                    "type": "nic",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-1"
-                                }
-                            ]
-                        }
-                    }
-                }
-            ]
-        },
-        "volumes": {
-            "id": "dc-1/volumes",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes",
-            "items": [
-                {
-                    "id": "vol-2",
-                    "type": "volume",
-                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/vol-2",
-                    "metadata": {
-                        "createdDate": "2016-10-18T15:13:44Z",
-                        "createdBy": "test@test.test",
-                        "etag": "a96f7781920c2890c25f967e66e6ee91",
-                        "lastModifiedDate": "2016-10-18T15:13:44Z",
-                        "lastModifiedBy": "test@test.test",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "Unnamed HDD Storage",
-                        "type": "HDD",
-                        "size": 10,
-                        "availabilityZone": "AUTO",
-                        "image": null,
-                        "imagePassword": null,
-                        "sshKeys": null,
-                        "bus": "VIRTIO",
-                        "licenceType": null,
-                        "cpuHotPlug": false,
-                        "cpuHotUnplug": false,
-                        "ramHotPlug": false,
-                        "ramHotUnplug": false,
-                        "nicHotPlug": false,
-                        "nicHotUnplug": false,
-                        "discVirtioHotPlug": false,
-                        "discVirtioHotUnplug": false,
-                        "discScsiHotPlug": false,
-                        "discScsiHotUnplug": false,
-                        "deviceNumber": 2
-                    }
-                },
-                {
-                    "id": "bvol-1",
-                    "type": "volume",
-                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1",
-                    "metadata": {
-                        "createdDate": "2016-10-18T07:20:41Z",
-                        "createdBy": "test@test.test",
-                        "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                        "lastModifiedDate": "2016-10-18T07:20:41Z",
-                        "lastModifiedBy": "test@test.test",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "Bootable and linkable",
-                        "type": "HDD",
-                        "size": 10,
-                        "availabilityZone": "AUTO",
-                        "image": "bvol-img",
-                        "imagePassword": null,
-                        "sshKeys": null,
-                        "bus": "VIRTIO",
-                        "licenceType": "LINUX",
-                        "cpuHotPlug": true,
-                        "cpuHotUnplug": false,
-                        "ramHotPlug": true,
-                        "ramHotUnplug": false,
-                        "nicHotPlug": true,
-                        "nicHotUnplug": true,
-                        "discVirtioHotPlug": true,
-                        "discVirtioHotUnplug": true,
-                        "discScsiHotPlug": false,
-                        "discScsiHotUnplug": false,
-                        "deviceNumber": 1
-                    }
-                },
-                {
-                    "id": "d6688ced-700d-4c9c-a3a7-9f7170c5edc3",
-                    "type": "volume",
-                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/d6688ced-700d-4c9c-a3a7-9f7170c5edc3",
-                    "metadata": {
-                        "createdDate": "2016-10-17T13:13:36Z",
-                        "createdBy": "test@test.test",
-                        "etag": "c1800ce349033f9cd2c095ea1ea4976a",
-                        "lastModifiedDate": "2016-10-17T13:47:52Z",
-                        "lastModifiedBy": "test@test.test",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "Updated storage name",
-                        "type": "HDD",
-                        "size": 40,
-                        "availabilityZone": "AUTO",
-                        "image": "bvol-img",
-                        "imagePassword": null,
-                        "sshKeys": null,
-                        "bus": "VIRTIO",
-                        "licenceType": "LINUX",
-                        "cpuHotPlug": true,
-                        "cpuHotUnplug": false,
-                        "ramHotPlug": true,
-                        "ramHotUnplug": false,
-                        "nicHotPlug": true,
-                        "nicHotUnplug": true,
-                        "discVirtioHotPlug": true,
-                        "discVirtioHotUnplug": true,
-                        "discScsiHotPlug": false,
-                        "discScsiHotUnplug": false,
-                        "deviceNumber": 3
-                    }
-                },
-                {
-                    "id": "21d7e7de-5054-4041-b691-717aa8b3c799",
-                    "type": "volume",
-                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/21d7e7de-5054-4041-b691-717aa8b3c799",
-                    "metadata": {
-                        "createdDate": "2016-10-17T11:33:20Z",
-                        "createdBy": "test@test.test",
-                        "etag": "a9d0b923527efae5e7071e9118e9eece",
-                        "lastModifiedDate": "2016-10-17T11:33:20Z",
-                        "lastModifiedBy": "test@test.test",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "Image and location and size. - volume",
-                        "type": "HDD",
-                        "size": 50,
-                        "availabilityZone": "AUTO",
-                        "image": "bvol-img",
-                        "imagePassword": null,
-                        "sshKeys": null,
-                        "bus": "VIRTIO",
-                        "licenceType": "LINUX",
-                        "cpuHotPlug": true,
-                        "cpuHotUnplug": false,
-                        "ramHotPlug": true,
-                        "ramHotUnplug": false,
-                        "nicHotPlug": true,
-                        "nicHotUnplug": true,
-                        "discVirtioHotPlug": true,
-                        "discVirtioHotUnplug": true,
-                        "discScsiHotPlug": false,
-                        "discScsiHotUnplug": false,
-                        "deviceNumber": 1
-                    }
-                }
-            ]
-        },
-        "loadbalancers": {
-            "id": "dc-1/loadbalancers",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/loadbalancers",
-            "items": []
-        },
-        "lans": {
-            "id": "dc-1/lans",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/lans",
-            "items": [
-                {
-                    "id": "2",
-                    "type": "lan",
-                    "href": "/cloudapi/v4/datacenters/dc-1/lans/2",
-                    "metadata": {
-                        "createdDate": "2016-10-17T18:19:43Z",
-                        "createdBy": "test@test.test",
-                        "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                        "lastModifiedDate": "2016-10-18T07:20:41Z",
-                        "lastModifiedBy": "test@test.test",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "Switch for LAN 2",
-                        "public": false
-                    },
-                    "entities": {
-                        "nics": {
-                            "id": "2/nics",
-                            "type": "collection",
-                            "href": "/cloudapi/v4/datacenters/dc-1/lans/2/nics",
-                            "items": [
-                                {
-                                    "id": "nic-1",
-                                    "type": "nic",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-1"
-                                }
-                            ]
-                        }
-                    }
-                }
-            ]
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_firewall_rule.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_firewall_rule.json
deleted file mode 100644
index 5573809..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_firewall_rule.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "id": "fw2",
-    "type": "firewall-rule",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules/fw2",
-    "metadata": {
-        "createdDate": "2016-10-19T09:55:10Z",
-        "createdBy": "test@test.te",
-        "etag": "00bb5b86562db1ed19ca38697e485160",
-        "lastModifiedDate": "2016-10-19T09:55:10Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "SSH",
-        "protocol": "TCP",
-        "sourceMac": "01:23:45:67:89:00",
-        "sourceIp": null,
-        "targetIp": null,
-        "icmpCode": null,
-        "icmpType": null,
-        "portRangeStart": 22,
-        "portRangeEnd": 22
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_image.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_image.json
deleted file mode 100644
index bf3faf4..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_image.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "id": "img-2",
-    "type": "image",
-    "href": "/cloudapi/v4/images/img-2",
-    "metadata": {
-        "createdDate": "2015-10-09T12:06:34Z",
-        "createdBy": "test@test.te",
-        "etag": "bbf76112358af2fc5dd1bf21de8988db",
-        "lastModifiedDate": "2015-11-11T15:23:20Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "vivid-server-cloudimg-amd64-disk1.img",
-        "description": null,
-        "location": "us/las",
-        "size": 2,
-        "cpuHotPlug": false,
-        "cpuHotUnplug": false,
-        "ramHotPlug": false,
-        "ramHotUnplug": false,
-        "nicHotPlug": false,
-        "nicHotUnplug": false,
-        "discVirtioHotPlug": false,
-        "discVirtioHotUnplug": false,
-        "discScsiHotPlug": false,
-        "discScsiHotUnplug": false,
-        "licenceType": "UNKNOWN",
-        "imageType": "HDD",
-        "imageAliases": [ ],
-        "public": false
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_ip_block.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_ip_block.json
deleted file mode 100644
index 1abab89..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_ip_block.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "id": "ipb-2",
-    "type": "ipblock",
-    "href": "/cloudapi/v4/ipblocks/ipb-2",
-    "metadata": {
-        "createdDate": "2016-10-26T15:05:12Z",
-        "createdBy": "test@test.te",
-        "etag": "43e05b766899950bc8a5aeee0fd89b05",
-        "lastModifiedDate": "2016-10-26T15:05:12Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "ips": [
-            "208.94.36.101",
-            "192.152.28.137"
-        ],
-        "location": "us/las",
-        "size": 2,
-        "name": "libcloud Test"
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_lan.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_lan.json
deleted file mode 100644
index f761295..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_lan.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "id" : "10",
-    "type" : "lan",
-    "href" : "/cloudapi/v4/datacenters/dc-1/lans/10",
-    "metadata" : {
-        "createdDate": "2016-10-17T11:33:11Z",
-        "createdBy": "test@test.te",
-        "etag": "53b215b8ec0356a649955dab019845a4",
-        "lastModifiedDate": "2016-10-18T15:13:44Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties" : {
-        "name" : "libcloud Test",
-        "public" : true
-    },
-    "entities": {
-        "nics": {
-            "id": "10/nics",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/lans/10/nics"
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_load_balancer.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_load_balancer.json
deleted file mode 100644
index 2ddd7d6..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_load_balancer.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "id": "bal-1",
-    "type": "loadbalancer",
-    "href": "/cloudapi/v4/datacenters/dc-2/loadbalancers/bal-1",
-    "metadata": {
-        "createdDate": "2016-10-26T13:02:33Z",
-        "createdBy": "test@test.te",
-        "etag": "71e8df57a58615b9e15400ede4138b41",
-        "lastModifiedDate": "2016-10-26T13:02:33Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "ip": "111.112.113.114",
-        "dhcp": true
-    },
-    "entities": {
-        "balancednics": {
-            "id": "bal-1/balancednics",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-2/loadbalancers/bal-1/balancednics"
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_location.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_location.json
deleted file mode 100644
index 845c7ef..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_location.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "id": "us/las",
-    "type": "location",
-    "href": "/cloudapi/v4/locations/us/las",
-    "properties": {
-        "name": "lasvegas",
-        "features": [
-            "SSD",
-            "MULTIPLE_CPU"
-        ]
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_network_interface.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_network_interface.json
deleted file mode 100644
index 3ff6585..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_network_interface.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-    "id": "nic-2",
-    "type": "nic",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2",
-    "metadata": {
-        "createdDate": "2016-10-17T15:46:38Z",
-        "createdBy": "test@test.te",
-        "etag": "dbd8216137cf0ec9951170f93fa8fa53",
-        "lastModifiedDate": "2016-10-17T18:19:43Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "mac": "02:01:0b:9d:4d:ce",
-        "ips": [
-            "10.15.124.11"
-        ],
-        "dhcp": true,
-        "lan": 2,
-        "firewallActive": true,
-        "nat": false
-    },
-    "entities": {
-        "firewallrules": {
-            "id": "nic-1/firewallrules",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules"
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_node.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_node.json
deleted file mode 100644
index 88e2b5f..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_node.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
-    "id": "srv-1",
-    "type": "server",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1",
-    "metadata": {
-        "createdDate": "2016-10-18T07:28:05Z",
-        "createdBy": "test@test.test",
-        "etag": "e7cf186125f51f3d9511754a40dcd12c",
-        "lastModifiedDate": "2016-10-18T07:28:05Z",
-        "lastModifiedBy": "test@test.test",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "cores": 1,
-        "ram": 1024,
-        "availabilityZone": "ZONE_1",
-        "vmState": "RUNNING",
-        "bootCdrom": null,
-        "bootVolume": {
-            "id": "bvol-1",
-            "type": "volume",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1",
-            "metadata": {
-                "createdDate": "2016-10-18T07:20:41Z",
-                "createdBy": "test@test.test",
-                "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                "lastModifiedDate": "2016-10-18T07:20:41Z",
-                "lastModifiedBy": "test@test.test",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "type": "HDD",
-                "size": 2,
-                "image": "bvol-img",
-                "imagePassword": null,
-                "bus": "VIRTIO",
-                "licenceType": "LINUX",
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "deviceNumber": 1
-            }
-        },
-        "cpuFamily": "AMD_OPTERON"
-    },
-    "entities": {
-        "cdroms": {
-            "id": "srv-1/cdroms",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/cdroms",
-            "items": []
-        },
-        "volumes": {
-            "id": "srv-1/volumes",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/volumes",
-            "items": [
-                {
-                    "id": "bvol-1",
-                    "type": "volume",
-                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1",
-                    "metadata": {
-                        "createdDate": "2016-10-18T07:20:41Z",
-                        "createdBy": "test@test.test",
-                        "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                        "lastModifiedDate": "2016-10-18T07:20:41Z",
-                        "lastModifiedBy": "test@test.test",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "libcloud Test",
-                        "type": "HDD",
-                        "size": 2,
-                        "availabilityZone": "AUTO",
-                        "image": "bvol-img",
-                        "imagePassword": null,
-                        "sshKeys": null,
-                        "bus": "VIRTIO",
-                        "licenceType": "LINUX",
-                        "cpuHotPlug": true,
-                        "cpuHotUnplug": false,
-                        "ramHotPlug": true,
-                        "ramHotUnplug": false,
-                        "nicHotPlug": true,
-                        "nicHotUnplug": true,
-                        "discVirtioHotPlug": true,
-                        "discVirtioHotUnplug": true,
-                        "discScsiHotPlug": false,
-                        "discScsiHotUnplug": false,
-                        "deviceNumber": 1
-                    }
-                }
-            ]
-        },
-        "nics": {
-            "id": "srv-1/nics",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/nics",
-            "items": []
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_snapshot.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_snapshot.json
deleted file mode 100644
index 10a2f1c..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_snapshot.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-    "id": "sshot",
-    "type": "snapshot",
-    "href": "/cloudapi/v4/snapshots/sshot",
-    "metadata": {
-        "createdDate": "2016-10-26T11:38:45Z",
-        "createdBy": "test@test.te",
-        "etag": "01873262ac042b5f44ed33b4241225b4",
-        "lastModifiedDate": "2016-10-26T11:38:45Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "description": "libcloud test snapshot",
-        "location": "us/las",
-        "size": 10,
-        "cpuHotPlug": true,
-        "cpuHotUnplug": false,
-        "ramHotPlug": true,
-        "ramHotUnplug": false,
-        "nicHotPlug": true,
-        "nicHotUnplug": true,
-        "discVirtioHotPlug": true,
-        "discVirtioHotUnplug": true,
-        "discScsiHotPlug": false,
-        "discScsiHotUnplug": false,
-        "licenceType": "LINUX"
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_describe_volume.json b/libcloud/test/compute/fixtures/profitbricks/ex_describe_volume.json
deleted file mode 100644
index 732d8f9..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_describe_volume.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-    "id": "vol-2",
-    "type": "volume",
-    "href": "/cloudapi/v4/datacenters/dc-1/volumes/vol-2",
-    "metadata": {
-        "createdDate": "2016-10-17T13:13:36Z",
-        "createdBy": "test@test.te",
-        "etag": "c1800ce349033f9cd2c095ea1ea4976a",
-        "lastModifiedDate": "2016-10-17T13:47:52Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "libcloud Test",
-        "type": "HDD",
-        "size": 2,
-        "availabilityZone": "ZONE_3",
-        "image": "bvol-img",
-        "imagePassword": null,
-        "sshKeys": null,
-        "bus": "VIRTIO",
-        "licenceType": "UNKNOWN",
-        "cpuHotPlug": true,
-        "cpuHotUnplug": false,
-        "ramHotPlug": true,
-        "ramHotUnplug": false,
-        "nicHotPlug": true,
-        "nicHotUnplug": true,
-        "discVirtioHotPlug": true,
-        "discVirtioHotUnplug": true,
-        "discScsiHotPlug": false,
-        "discScsiHotUnplug": false,
-        "deviceNumber": 3
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_list_attached_volumes.json b/libcloud/test/compute/fixtures/profitbricks/ex_list_attached_volumes.json
deleted file mode 100644
index c422c00..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_list_attached_volumes.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-    "id": "srv-1/volumes",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/volumes",
-    "items": [
-        {
-            "id": "d6688ced-700d-4c9c-a3a7-9f7170c5edc3",
-            "type": "volume",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes/d6688ced-700d-4c9c-a3a7-9f7170c5edc3",
-            "metadata": {
-                "createdDate": "2016-10-17T13:13:36Z",
-                "createdBy": "test@test.test",
-                "etag": "c1800ce349033f9cd2c095ea1ea4976a",
-                "lastModifiedDate": "2016-10-17T13:47:52Z",
-                "lastModifiedBy": "test@test.test",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "type": "HDD",
-                "size": 2,
-                "availabilityZone": "AUTO",
-                "image": "bvol-img",
-                "imagePassword": null,
-                "sshKeys": null,
-                "bus": "VIRTIO",
-                "licenceType": "UNKNOWN",
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "deviceNumber": 2
-            }
-        },
-        {
-            "id": "bvol-1",
-            "type": "volume",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1",
-            "metadata": {
-                "createdDate": "2016-10-18T07:20:41Z",
-                "createdBy": "test@test.test",
-                "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                "lastModifiedDate": "2016-10-18T07:20:41Z",
-                "lastModifiedBy": "test@test.test",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "type": "HDD",
-                "size": 10,
-                "availabilityZone": "AUTO",
-                "image": "bvol-img",
-                "imagePassword": null,
-                "sshKeys": null,
-                "bus": "VIRTIO",
-                "licenceType": "LINUX",
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "deviceNumber": 1
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_list_datacenters.json b/libcloud/test/compute/fixtures/profitbricks/ex_list_datacenters.json
deleted file mode 100644
index d13ff6b..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_list_datacenters.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-    "id": "datacenters",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/",
-    "items": [
-        {
-            "id": "dc-1",
-            "type": "datacenter",
-            "href": "/cloudapi/v4/datacenters/dc-1",
-            "metadata": {
-                "createdDate": "2016-10-14T07:24:59Z",
-                "createdBy": "test@test.test",
-                "etag": "bdddec2287cb7723e86ac088bf644606",
-                "lastModifiedDate": "2016-10-17T15:27:25Z",
-                "lastModifiedBy": "test@test.test",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "description": "libcloud test datacenter",
-                "location": "us/las",
-                "version": 3,
-                "features": [
-                    "SSD",
-                    "MULTIPLE_CPU"
-                ]
-            },
-            "entities": {
-                "servers": {
-                    "id": "983a45be-a9aa-427a-8117-271ce9f392bb/servers",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers"
-                },
-                "volumes": {
-                    "id": "983a45be-a9aa-427a-8117-271ce9f392bb/volumes",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/volumes"
-                },
-                "loadbalancers": {
-                    "id": "983a45be-a9aa-427a-8117-271ce9f392bb/loadbalancers",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/loadbalancers"
-                },
-                "lans": {
-                    "id": "983a45be-a9aa-427a-8117-271ce9f392bb/lans",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/lans"
-                }
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_list_firewall_rules.json b/libcloud/test/compute/fixtures/profitbricks/ex_list_firewall_rules.json
deleted file mode 100644
index bd31786..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_list_firewall_rules.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
-    "id": "nic-2/firewallrules",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules",
-    "items": [
-        {
-            "id": "fwr-1",
-            "type": "firewall-rule",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules/fwr-1",
-            "metadata": {
-                "createdDate": "2016-10-19T11:08:10Z",
-                "createdBy": "test@test.te",
-                "etag": "b91a2e082a7422dafb79d84a07fb2a28",
-                "lastModifiedDate": "2016-10-19T11:19:04Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test updated firewall rule",
-                "protocol": "TCP",
-                "sourceMac": null,
-                "sourceIp": null,
-                "targetIp": null,
-                "icmpCode": null,
-                "icmpType": null,
-                "portRangeStart": 80,
-                "portRangeEnd": 80
-            }
-        },
-        {
-            "id": "fw2",
-            "type": "firewall-rule",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules/fw2",
-            "metadata": {
-                "createdDate": "2016-10-19T09:55:10Z",
-                "createdBy": "test@test.te",
-                "etag": "00bb5b86562db1ed19ca38697e485160",
-                "lastModifiedDate": "2016-10-19T09:55:10Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "HTTPs (SSL)",
-                "protocol": "TCP",
-                "sourceMac": null,
-                "sourceIp": null,
-                "targetIp": null,
-                "icmpCode": null,
-                "icmpType": null,
-                "portRangeStart": 443,
-                "portRangeEnd": 443
-            }
-        },
-        {
-            "id": "6238b1e2-c706-4dc9-80a9-307fa0bd4287",
-            "type": "firewall-rule",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules/6238b1e2-c706-4dc9-80a9-307fa0bd4287",
-            "metadata": {
-                "createdDate": "2016-10-19T09:55:10Z",
-                "createdBy": "test@test.te",
-                "etag": "00bb5b86562db1ed19ca38697e485160",
-                "lastModifiedDate": "2016-10-19T09:55:10Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "HTTP Webserver",
-                "protocol": "TCP",
-                "sourceMac": null,
-                "sourceIp": null,
-                "targetIp": null,
-                "icmpCode": null,
-                "icmpType": null,
-                "portRangeStart": 80,
-                "portRangeEnd": 80
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_list_ip_blocks.json b/libcloud/test/compute/fixtures/profitbricks/ex_list_ip_blocks.json
deleted file mode 100644
index a935adb..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_list_ip_blocks.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-    "id": "ipblocks",
-    "type": "collection",
-    "href": "/cloudapi/v4/ipblocks",
-    "items": [
-        {
-            "id": "ipb-1",
-            "type": "ipblock",
-            "href": "/cloudapi/v4/ipblocks/ipb-1",
-            "metadata": {
-                "createdDate": "2016-10-26T15:05:36Z",
-                "createdBy": "test@test.te",
-                "etag": "acbf00bacf7ee48d4b8bc4e7413e1f30",
-                "lastModifiedDate": "2016-10-26T15:05:36Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "ips": [
-                    "78.137.101.252",
-                    "78.137.101.251"
-                ],
-                "location": "us/las",
-                "size": 2,
-                "name": "Test IP Block One"
-            }
-        },
-        {
-            "id": "ipb-2",
-            "type": "ipblock",
-            "href": "/cloudapi/v4/ipblocks/ipb-2",
-            "metadata": {
-                "createdDate": "2016-10-26T15:05:12Z",
-                "createdBy": "test@test.te",
-                "etag": "43e05b766899950bc8a5aeee0fd89b05",
-                "lastModifiedDate": "2016-10-26T15:05:12Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "ips": [
-                    "78.137.101.250"
-                ],
-                "location": "us/las",
-                "size": 1,
-                "name": "Test IP Block One"
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_list_lans.json b/libcloud/test/compute/fixtures/profitbricks/ex_list_lans.json
deleted file mode 100644
index 5695388..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_list_lans.json
+++ /dev/null
@@ -1,157 +0,0 @@
-{
-    "id": "dc-1/lans",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/dc-1/lans",
-    "items": [
-        {
-            "id": "1",
-            "type": "lan",
-            "href": "/cloudapi/v4/datacenters/dc-1/lans/1",
-            "metadata": {
-                "createdDate": "2016-10-24T08:03:22Z",
-                "createdBy": "test@test.te",
-                "etag": "1c30221454228d239f0610b6eb3f41d7",
-                "lastModifiedDate": "2016-10-24T08:03:22Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "public": false
-            },
-            "entities": {
-                "nics": {
-                    "id": "1/nics",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/lans/1/nics",
-                    "items": [
-                        {
-                            "id": "dc5e1c66-7280-4a5c-8e13-51ce030e0980",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/d37abf6b-0980-4bf8-813b-b69863cf7b9e/nics/dc5e1c66-7280-4a5c-8e13-51ce030e0980",
-                            "metadata": {
-                                "createdDate": "2016-10-21T13:00:02Z",
-                                "createdBy": "test@test.te",
-                                "etag": "d8177b9c38b0366d26c28df0066ade9e",
-                                "lastModifiedDate": "2016-10-24T08:03:22Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": "Three",
-                                "mac": "02:01:49:87:3e:5f",
-                                "ips": [
-                                    "10.15.104.14"
-                                ],
-                                "dhcp": true,
-                                "lan": 1,
-                                "firewallActive": true,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "dc5e1c66-7280-4a5c-8e13-51ce030e0980/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/servers/d37abf6b-0980-4bf8-813b-b69863cf7b9e/nics/dc5e1c66-7280-4a5c-8e13-51ce030e0980/firewallrules"
-                                }
-                            }
-                        },
-                        {
-                            "id": "912324a6-c057-445d-84dd-8fea82dfa719",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/811ab72b-f7f3-427b-8220-f031eae34f63/nics/912324a6-c057-445d-84dd-8fea82dfa719",
-                            "metadata": {
-                                "createdDate": "2016-10-21T13:00:02Z",
-                                "createdBy": "test@test.te",
-                                "etag": "d8177b9c38b0366d26c28df0066ade9e",
-                                "lastModifiedDate": "2016-10-24T08:03:22Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": "Two",
-                                "mac": "02:01:af:48:34:06",
-                                "ips": [
-                                    "10.15.104.13"
-                                ],
-                                "dhcp": true,
-                                "lan": 1,
-                                "firewallActive": false,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "912324a6-c057-445d-84dd-8fea82dfa719/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/servers/811ab72b-f7f3-427b-8220-f031eae34f63/nics/912324a6-c057-445d-84dd-8fea82dfa719/firewallrules"
-                                }
-                            }
-                        },
-                        {
-                            "id": "8d9fb87c-79f7-4c3c-8f7b-e2050a881b16",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/b1a64861-5819-498a-899a-a57126050952/nics/8d9fb87c-79f7-4c3c-8f7b-e2050a881b16",
-                            "metadata": {
-                                "createdDate": "2016-10-21T13:00:02Z",
-                                "createdBy": "test@test.te",
-                                "etag": "d8177b9c38b0366d26c28df0066ade9e",
-                                "lastModifiedDate": "2016-10-24T08:03:22Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": "Four",
-                                "mac": "02:01:7c:7b:0b:5a",
-                                "ips": [
-                                    "10.15.104.12"
-                                ],
-                                "dhcp": true,
-                                "lan": 1,
-                                "firewallActive": false,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "8d9fb87c-79f7-4c3c-8f7b-e2050a881b16/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/servers/b1a64861-5819-498a-899a-a57126050952/nics/8d9fb87c-79f7-4c3c-8f7b-e2050a881b16/firewallrules"
-                                }
-                            }
-                        },
-                        {
-                            "id": "76d7965d-19e5-491f-8b2f-1c4a3ef127b5",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-1/servers/77ef2301-b4df-46aa-8544-2dae76c9d7b5/nics/76d7965d-19e5-491f-8b2f-1c4a3ef127b5",
-                            "metadata": {
-                                "createdDate": "2016-10-21T13:00:02Z",
-                                "createdBy": "test@test.te",
-                                "etag": "eb2031a5e259fcb4f714646aca0282c6",
-                                "lastModifiedDate": "2016-10-24T08:03:22Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": "Five",
-                                "mac": "02:01:bb:ad:7d:58",
-                                "ips": [
-                                    "10.15.104.11"
-                                ],
-                                "dhcp": true,
-                                "lan": 1,
-                                "firewallActive": false,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "76d7965d-19e5-491f-8b2f-1c4a3ef127b5/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-1/servers/77ef2301-b4df-46aa-8544-2dae76c9d7b5/nics/76d7965d-19e5-491f-8b2f-1c4a3ef127b5/firewallrules"
-                                }
-                            }
-                        }
-                    ]
-                }
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_list_load_balanced_nics.json b/libcloud/test/compute/fixtures/profitbricks/ex_list_load_balanced_nics.json
deleted file mode 100644
index 348b521..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_list_load_balanced_nics.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
-    "id": "s-3/nics",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics",
-    "items": [
-        {
-            "id": "nic-1",
-            "type": "nic",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-1",
-            "metadata": {
-                "createdDate": "2016-10-17T15:46:38Z",
-                "createdBy": "test@test.te",
-                "etag": "dbd8216137cf0ec9951170f93fa8fa53",
-                "lastModifiedDate": "2016-10-17T18:19:43Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "mac": "02:01:0b:9d:4d:ce",
-                "ips": [
-                    "10.15.124.11"
-                ],
-                "dhcp": false,
-                "lan": 2,
-                "firewallActive": true,
-                "nat": false
-            },
-            "entities": {
-                "firewallrules": {
-                    "id": "nic-1/firewallrules",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-1/firewallrules"
-                }
-            }
-        },
-        {
-            "id": "8f7ea845-cf40-49c8-9e93-68366f31d605",
-            "type": "nic",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/8f7ea845-cf40-49c8-9e93-68366f31d605",
-            "metadata": {
-                "createdDate": "2016-10-17T16:46:38Z",
-                "createdBy": "test@test.te",
-                "etag": "dbd8216137cf0ec9951170f93fa8fa54",
-                "lastModifiedDate": "2016-10-17T19:19:43Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Another test network interface",
-                "mac": "02:01:0b:9d:4d:dd",
-                "ips": [
-                    "10.15.124.12"
-                ],
-                "dhcp": false,
-                "lan": 2,
-                "firewallActive": true,
-                "nat": false
-            },
-            "entities": {
-                "firewallrules": {
-                    "id": "8f7ea845-cf40-49c8-9e93-68366f31d605/firewallrules",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-1/firewallrules"
-                }
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_list_load_balancers.json b/libcloud/test/compute/fixtures/profitbricks/ex_list_load_balancers.json
deleted file mode 100644
index f1d0cd1..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_list_load_balancers.json
+++ /dev/null
@@ -1,216 +0,0 @@
-{
-    "id": "dc-2/loadbalancers",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/dc-2/loadbalancers",
-    "items": [
-        {
-            "id": "bal-1",
-            "type": "loadbalancer",
-            "href": "/cloudapi/v4/datacenters/dc-2/loadbalancers/bal-1",
-            "metadata": {
-                "createdDate": "2016-10-26T13:02:33Z",
-                "createdBy": "test@test.te",
-                "etag": "71e8df57a58615b9e15400ede4138b41",
-                "lastModifiedDate": "2016-10-26T13:02:33Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test One",
-                "ip": "111.112.113.114",
-                "dhcp": true
-            },
-            "entities": {
-                "balancednics": {
-                    "id": "bal-1/balancednics",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-2/loadbalancers/bal-1/balancednics",
-                    "items": [
-                        {
-                            "id": "68e3bd55-55a1-4fa0-8903-8c3cf23ee30a",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-2/servers/92445f57-5378-4a5b-8b53-f0f36fb8e6ad/nics/68e3bd55-55a1-4fa0-8903-8c3cf23ee30a",
-                            "metadata": {
-                                "createdDate": "2016-10-26T13:02:33Z",
-                                "createdBy": "test@test.te",
-                                "etag": "20e915cf08106b7576f6b25b5c0a2bd6",
-                                "lastModifiedDate": "2016-10-26T13:02:33Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": null,
-                                "mac": "02:01:33:58:8d:e1",
-                                "ips": [
-                                    "162.254.25.6"
-                                ],
-                                "dhcp": true,
-                                "lan": 3,
-                                "firewallActive": false,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "68e3bd55-55a1-4fa0-8903-8c3cf23ee30a/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-2/servers/92445f57-5378-4a5b-8b53-f0f36fb8e6ad/nics/68e3bd55-55a1-4fa0-8903-8c3cf23ee30a/firewallrules"
-                                }
-                            }
-                        }
-                    ]
-                }
-            }
-        },
-        {
-            "id": "24d24a20-1161-4870-8b49-434622a18875",
-            "type": "loadbalancer",
-            "href": "/cloudapi/v4/datacenters/dc-2/loadbalancers/24d24a20-1161-4870-8b49-434622a18875",
-            "metadata": {
-                "createdDate": "2016-10-26T13:02:33Z",
-                "createdBy": "test@test.te",
-                "etag": "71e8df57a58615b9e15400ede4138b41",
-                "lastModifiedDate": "2016-10-26T13:02:33Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test Two",
-                "ip": "162.254.25.225",
-                "dhcp": true
-            },
-            "entities": {
-                "balancednics": {
-                    "id": "24d24a20-1161-4870-8b49-434622a18875/balancednics",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-2/loadbalancers/24d24a20-1161-4870-8b49-434622a18875/balancednics",
-                    "items": [
-                        {
-                            "id": "0485e083-3461-447a-8c5a-392be3c76473",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-2/servers/7571b2d9-312a-45be-8d68-58c269c3911c/nics/0485e083-3461-447a-8c5a-392be3c76473",
-                            "metadata": {
-                                "createdDate": "2016-10-25T08:49:48Z",
-                                "createdBy": "test@test.te",
-                                "etag": "20e915cf08106b7576f6b25b5c0a2bd6",
-                                "lastModifiedDate": "2016-10-26T13:02:33Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": null,
-                                "mac": "02:01:6f:92:d0:63",
-                                "ips": [
-                                    "162.254.25.225"
-                                ],
-                                "dhcp": true,
-                                "lan": 5,
-                                "firewallActive": false,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "0485e083-3461-447a-8c5a-392be3c76473/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-2/servers/7571b2d9-312a-45be-8d68-58c269c3911c/nics/0485e083-3461-447a-8c5a-392be3c76473/firewallrules"
-                                }
-                            }
-                        },
-                        {
-                            "id": "2e9c54f4-85c0-4d10-8369-cf5e3a6e7b68",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-2/servers/ff3b523c-21bd-453d-80a3-c2bcdae1f509/nics/2e9c54f4-85c0-4d10-8369-cf5e3a6e7b68",
-                            "metadata": {
-                                "createdDate": "2016-10-25T14:01:03Z",
-                                "createdBy": "test@test.te",
-                                "etag": "20e915cf08106b7576f6b25b5c0a2bd6",
-                                "lastModifiedDate": "2016-10-26T13:02:33Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": null,
-                                "mac": "02:01:ce:53:f1:1a",
-                                "ips": [
-                                    "162.254.25.225"
-                                ],
-                                "dhcp": true,
-                                "lan": 5,
-                                "firewallActive": false,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "2e9c54f4-85c0-4d10-8369-cf5e3a6e7b68/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-2/servers/ff3b523c-21bd-453d-80a3-c2bcdae1f509/nics/2e9c54f4-85c0-4d10-8369-cf5e3a6e7b68/firewallrules"
-                                }
-                            }
-                        },
-                        {
-                            "id": "707d7aa4-8311-4a61-82a4-a80333e9ecc2",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-2/servers/2e77a9cc-2338-43e6-84bf-e4c2ff9be265/nics/707d7aa4-8311-4a61-82a4-a80333e9ecc2",
-                            "metadata": {
-                                "createdDate": "2016-10-25T15:36:06Z",
-                                "createdBy": "test@test.te",
-                                "etag": "20e915cf08106b7576f6b25b5c0a2bd6",
-                                "lastModifiedDate": "2016-10-26T13:02:33Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": null,
-                                "mac": "02:01:8b:77:cd:b6",
-                                "ips": [
-                                    "162.254.25.225"
-                                ],
-                                "dhcp": true,
-                                "lan": 5,
-                                "firewallActive": false,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "707d7aa4-8311-4a61-82a4-a80333e9ecc2/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-2/servers/2e77a9cc-2338-43e6-84bf-e4c2ff9be265/nics/707d7aa4-8311-4a61-82a4-a80333e9ecc2/firewallrules"
-                                }
-                            }
-                        },
-                        {
-                            "id": "710f6842-440d-4fdc-878e-0c329037d4a9",
-                            "type": "nic",
-                            "href": "/cloudapi/v4/datacenters/dc-2/servers/fc0f7e86-a7de-4cee-84b5-409cc8b89ad2/nics/710f6842-440d-4fdc-878e-0c329037d4a9",
-                            "metadata": {
-                                "createdDate": "2016-10-25T14:01:03Z",
-                                "createdBy": "test@test.te",
-                                "etag": "20e915cf08106b7576f6b25b5c0a2bd6",
-                                "lastModifiedDate": "2016-10-26T13:02:33Z",
-                                "lastModifiedBy": "test@test.te",
-                                "state": "AVAILABLE"
-                            },
-                            "properties": {
-                                "name": null,
-                                "mac": "02:01:00:65:da:a9",
-                                "ips": [
-                                    "162.254.25.225"
-                                ],
-                                "dhcp": true,
-                                "lan": 5,
-                                "firewallActive": false,
-                                "nat": false
-                            },
-                            "entities": {
-                                "firewallrules": {
-                                    "id": "710f6842-440d-4fdc-878e-0c329037d4a9/firewallrules",
-                                    "type": "collection",
-                                    "href": "/cloudapi/v4/datacenters/dc-2/servers/fc0f7e86-a7de-4cee-84b5-409cc8b89ad2/nics/710f6842-440d-4fdc-878e-0c329037d4a9/firewallrules"
-                                }
-                            }
-                        }
-                    ]
-                }
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_list_network_interfaces.json b/libcloud/test/compute/fixtures/profitbricks/ex_list_network_interfaces.json
deleted file mode 100644
index d183111..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_list_network_interfaces.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
-    "id": "s-3/nics",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics",
-    "items": [
-        {
-            "id": "nic-1",
-            "type": "nic",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-1",
-            "metadata": {
-                "createdDate": "2016-10-17T15:46:38Z",
-                "createdBy": "test@test.te",
-                "etag": "dbd8216137cf0ec9951170f93fa8fa53",
-                "lastModifiedDate": "2016-10-17T18:19:43Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "mac": "02:01:0b:9d:4d:ce",
-                "ips": [
-                    "10.15.124.11"
-                ],
-                "dhcp": false,
-                "lan": 2,
-                "firewallActive": true,
-                "nat": false
-            },
-            "entities": {
-                "firewallrules": {
-                    "id": "nic-1/firewallrules",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-1/firewallrules"
-                }
-            }
-        },
-        {
-            "id": "8f7ea845-cf40-49c8-9e93-68366f31d605",
-            "type": "nic",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/8f7ea845-cf40-49c8-9e93-68366f31d605",
-            "metadata": {
-                "createdDate": "2016-10-17T16:46:38Z",
-                "createdBy": "test@test.te",
-                "etag": "dbd8216137cf0ec9951170f93fa8fa54",
-                "lastModifiedDate": "2016-10-17T19:19:43Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "mac": "02:01:0b:9d:4d:dd",
-                "ips": [
-                    "10.15.124.12"
-                ],
-                "dhcp": false,
-                "lan": 2,
-                "firewallActive": true,
-                "nat": false
-            },
-            "entities": {
-                "firewallrules": {
-                    "id": "8f7ea845-cf40-49c8-9e93-68366f31d605/firewallrules",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-1/firewallrules"
-                }
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_rename_datacenter.json b/libcloud/test/compute/fixtures/profitbricks/ex_rename_datacenter.json
deleted file mode 100644
index 75d625e..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_rename_datacenter.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-    "id": "dc-1",
-    "type": "datacenter",
-    "href": "/cloudapi/v4/datacenters/dc-1",
-    "metadata" : {
-        "createdDate": "2016-10-17T11:33:11Z",
-        "createdBy": "test@test.test",
-        "etag": "53b215b8ec0356a649955dab019845a4",
-        "lastModifiedDate": "2016-10-18T15:13:44Z",
-        "lastModifiedBy": "test@test.test",
-        "state" : "BUSY"
-    },
-    "properties" : {
-        "name": "libcloud Test - RENAME",
-        "description": "libcloud test datacenter",
-        "location": "us/las",
-        "version": 35,
-        "features": [
-            "SSD",
-            "MULTIPLE_CPU"
-        ]
-    },
-    "entities" : {
-        "servers" : {
-            "id": "dc-1/servers",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers"
-        },
-        "volumes" : {
-            "id": "dc-1/volumes",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes"
-        },
-        "loadbalancers" : {
-            "id": "dc-1/loadbalancers",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/loadbalancers",
-            "items": []
-        },
-        "lans" : {
-            "id": "dc-1/lans",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/lans"
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_update_firewall_rule.json b/libcloud/test/compute/fixtures/profitbricks/ex_update_firewall_rule.json
deleted file mode 100644
index 4deeaa2..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_update_firewall_rule.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "id": "fw2",
-    "type": "firewall-rule",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules/fw2",
-    "metadata": {
-        "createdDate": "2016-10-19T09:55:10Z",
-        "createdBy": "test@test.te",
-        "etag": "00bb5b86562db1ed19ca38697e485160",
-        "lastModifiedDate": "2016-10-19T09:55:10Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "SSH - RENAME",
-        "protocol": "TCP",
-        "sourceMac": "01:23:45:67:89:00",
-        "sourceIp": null,
-        "targetIp": null,
-        "icmpCode": null,
-        "icmpType": null,
-        "portRangeStart": 22,
-        "portRangeEnd": 22
-    }
-}
-
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_update_image.json b/libcloud/test/compute/fixtures/profitbricks/ex_update_image.json
deleted file mode 100644
index 38eda31..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_update_image.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "id": "img-2",
-    "type": "image",
-    "href": "/cloudapi/v4/images/img-2",
-    "metadata": {
-        "createdDate": "2015-10-09T12:06:34Z",
-        "createdBy": "test@test.te",
-        "etag": "bbf76112358af2fc5dd1bf21de8988db",
-        "lastModifiedDate": "2016-11-11T15:23:20Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "my-updated-image.img",
-        "description": null,
-        "location": "us/las",
-        "size": 2,
-        "cpuHotPlug": false,
-        "cpuHotUnplug": false,
-        "ramHotPlug": false,
-        "ramHotUnplug": false,
-        "nicHotPlug": false,
-        "nicHotUnplug": false,
-        "discVirtioHotPlug": false,
-        "discVirtioHotUnplug": false,
-        "discScsiHotPlug": false,
-        "discScsiHotUnplug": false,
-        "licenceType": "UNKNOWN",
-        "imageType": "HDD",
-        "imageAliases": [ ],
-        "public": false
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_update_lan.json b/libcloud/test/compute/fixtures/profitbricks/ex_update_lan.json
deleted file mode 100644
index eb8421b..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_update_lan.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "id" : "10",
-    "type" : "lan",
-    "href" : "/cloudapi/v4/datacenters/dc-1/lans/10",
-    "metadata" : {
-        "createdDate": "2016-10-17T11:33:11Z",
-        "createdBy": "test@test.te",
-        "etag": "53b215b8ec0356a649955dab019845a4",
-        "lastModifiedDate": "2016-10-18T15:13:44Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties" : {
-        "name" : "libcloud Test - RENAME",
-        "public" : false
-    },
-    "entities": {
-        "nics": {
-            "id": "10/nics",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/lans/10/nics"
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_update_load_balancer.json b/libcloud/test/compute/fixtures/profitbricks/ex_update_load_balancer.json
deleted file mode 100644
index c4b4a24..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_update_load_balancer.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-    "id": "bal-1",
-    "type": "loadbalancer",
-    "href": "/cloudapi/v4/datacenters/dc-1/loadbalancers/bal-1",
-    "metadata": {
-        "createdDate": "2019-10-26T13:02:33Z",
-        "createdBy": "test@test.te",
-        "etag": "71e8df57a58615b9e15400ede4138b41",
-        "lastModifiedDate": "2019-10-26T13:02:33Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "libcloud Test - RENAME",
-        "ip": "123.124.125.126",
-        "dhcp": true
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_update_network_interface.json b/libcloud/test/compute/fixtures/profitbricks/ex_update_network_interface.json
deleted file mode 100644
index 12f0d57..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_update_network_interface.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-    "id": "nic-2",
-    "type": "nic",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2",
-    "metadata": {
-        "createdDate": "2016-10-19T08:18:55Z",
-        "createdBy": "test@test.te",
-        "etag": "56f8d8bbdc84faad4188f647a49a565b",
-        "lastModifiedDate": "2016-10-19T09:44:59Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "BUSY"
-    },
-    "properties": {
-        "name": "libcloud Test - RENAME",
-        "mac": "02:01:68:c1:e8:88",
-        "ips": [
-            "11.12.13.14"
-        ],
-        "dhcp": true,
-        "lan": 1,
-        "firewallActive": false,
-        "nat": false
-    },
-    "entities": {
-        "firewallrules": {
-            "id": "nic-2/firewallrules",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/s-3/nics/nic-2/firewallrules"
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_update_node.json b/libcloud/test/compute/fixtures/profitbricks/ex_update_node.json
deleted file mode 100644
index 1bc932f..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_update_node.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-    "id": "srv-1",
-    "type": "server",
-    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1",
-    "metadata" : {
-        "createdDate": "2016-10-18T07:28:05Z",
-        "createdBy": "test@test.test",
-        "etag": "e7cf186125f51f3d9511754a40dcd12c",
-        "lastModifiedDate": "2016-10-18T07:28:05Z",
-        "lastModifiedBy": "test@test.test",
-        "state" : "BUSY"
-    },
-    "properties" : {
-        "name" : "libcloud Test RENAME",
-        "cores" : 1,
-        "ram" : 1024,
-        "bootCdrom" : null,
-        "availabilityZone": "ZONE_1",
-        "vmState": "RUNNING",
-        "bootVolume": {
-            "id": "bvol-1",
-            "type": "volume",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1"
-        },
-        "cpuFamily" : "AMD_OPTERON"
-    },
-    "entities" : {
-        "cdroms": {
-            "id": "srv-1/cdroms",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/cdroms"
-        },
-        "volumes": {
-            "id": "srv-1/volumes",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/volumes"
-        },
-        "nics": {
-            "id": "srv-1/nics",
-            "type": "collection",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/nics"
-        }
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_update_snapshot.json b/libcloud/test/compute/fixtures/profitbricks/ex_update_snapshot.json
deleted file mode 100644
index 829825a..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_update_snapshot.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-    "id": "sshot",
-    "type": "snapshot",
-    "href": "/cloudapi/v4/snapshots/sshot",
-    "metadata": {
-        "createdDate": "2016-10-26T11:38:45Z",
-        "createdBy": "test@test.te",
-        "etag": "01873262ac042b5f44ed33b4241225b4",
-        "lastModifiedDate": "2016-10-26T11:38:45Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "libcloud Test - RENAME",
-        "description": "libcloud test snapshot - RENAME",
-        "location": "us/las",
-        "size": 10,
-        "cpuHotPlug": true,
-        "cpuHotUnplug": true,
-        "ramHotPlug": true,
-        "ramHotUnplug": false,
-        "nicHotPlug": true,
-        "nicHotUnplug": true,
-        "discVirtioHotPlug": true,
-        "discVirtioHotUnplug": true,
-        "discScsiHotPlug": false,
-        "discScsiHotUnplug": false,
-        "licenceType": "LINUX"
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/ex_update_volume.json b/libcloud/test/compute/fixtures/profitbricks/ex_update_volume.json
deleted file mode 100644
index 19753b1..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/ex_update_volume.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-    "id": "vol-2",
-    "type": "volume",
-    "href": "/cloudapi/v4/datacenters/dc-1/volumes/vol-2",
-    "metadata": {
-        "createdDate": "2016-10-17T13:13:36Z",
-        "createdBy": "test@test.te",
-        "etag": "c1800ce349033f9cd2c095ea1ea4976a",
-        "lastModifiedDate": "2016-10-17T13:47:52Z",
-        "lastModifiedBy": "test@test.te",
-        "state": "AVAILABLE"
-    },
-    "properties": {
-        "name": "libcloud Test - RENAME",
-        "type": "HDD",
-        "size": 5,
-        "availabilityZone": "ZONE_3",
-        "image": "bvol-img",
-        "imagePassword": null,
-        "sshKeys": null,
-        "bus": "VIRTIO",
-        "licenceType": "UNKNOWN",
-        "cpuHotPlug": true,
-        "cpuHotUnplug": false,
-        "ramHotPlug": true,
-        "ramHotUnplug": false,
-        "nicHotPlug": true,
-        "nicHotUnplug": true,
-        "discVirtioHotPlug": true,
-        "discVirtioHotUnplug": true,
-        "discScsiHotPlug": false,
-        "discScsiHotUnplug": false,
-        "deviceNumber": 3
-    }
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/list_images.json b/libcloud/test/compute/fixtures/profitbricks/list_images.json
deleted file mode 100644
index 997beed..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/list_images.json
+++ /dev/null
@@ -1,205 +0,0 @@
-{
-    "id": "images",
-    "type": "collection",
-    "href": "/cloudapi/v4/images",
-    "items": [
-        {
-            "id": "img-2",
-            "type": "image",
-            "href": "/cloudapi/v4/images/img-2",
-            "metadata": {
-                "createdDate": "2016-06-02T11:33:49Z",
-                "createdBy": "System",
-                "etag": "9909709d99655c6f31aca789998d7d89",
-                "lastModifiedDate": "2016-06-02T11:33:49Z",
-                "lastModifiedBy": "System",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test-Image-One-CDROM",
-                "description": "",
-                "location": "us/las",
-                "size": 0.23,
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "licenceType": "LINUX",
-                "imageType": "CDROM",
-                "imageAliases": [ ],
-                "public": false
-            }
-        },
-        {
-            "id": "img-1",
-            "type": "image",
-            "href": "/cloudapi/v4/images/img-1",
-            "metadata": {
-                "createdDate": "2014-11-14T15:22:19Z",
-                "createdBy": "System",
-                "etag": "957e0eac7456fa7554e73bf0d18860eb",
-                "lastModifiedDate": "2014-11-14T15:22:19Z",
-                "lastModifiedBy": "System",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test-Image-Two-CDROM",
-                "description": "",
-                "location": "us/las",
-                "size": 4,
-                "cpuHotPlug": false,
-                "cpuHotUnplug": false,
-                "ramHotPlug": false,
-                "ramHotUnplug": false,
-                "nicHotPlug": false,
-                "nicHotUnplug": false,
-                "discVirtioHotPlug": false,
-                "discVirtioHotUnplug": false,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "licenceType": "OTHER",
-                "imageType": "CDROM",
-                "imageAliases": [ ],
-                "public": true
-            }
-        },
-        {
-            "id": "62c525d9-b2cf-11e5-afa0-52540066fee9",
-            "type": "image",
-            "href": "/cloudapi/v4/images/62c525d9-b2cf-11e5-afa0-52540066fee9",
-            "metadata": {
-                "createdDate": "2016-01-04T10:39:08Z",
-                "createdBy": "System",
-                "etag": "28cb3e31d2ef98d37b367fe15d40373e",
-                "lastModifiedDate": "2016-01-04T10:39:08Z",
-                "lastModifiedBy": "System",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test-Image-Three-CDROM",
-                "description": "",
-                "location": "us/las",
-                "size": 0.37,
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "licenceType": "LINUX",
-                "imageType": "CDROM",
-                "imageAliases": [ ],
-                "public": true
-            }
-        },
-        {
-            "id": "e2c323ba-3c6d-11e6-9336-52540005ab80",
-            "type": "image",
-            "href": "/cloudapi/v4/images/e2c323ba-3c6d-11e6-9336-52540005ab80",
-            "metadata": {
-                "createdDate": "2016-06-27T13:48:53Z",
-                "createdBy": "System",
-                "etag": "216e2beb5e9bb5f7c3233ca3d0c4e9b2",
-                "lastModifiedDate": "2016-06-27T13:48:53Z",
-                "lastModifiedBy": "System",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test-Image-Four-HDD",
-                "description": "",
-                "location": "us/las",
-                "size": 0.28,
-                "cpuHotPlug": false,
-                "cpuHotUnplug": false,
-                "ramHotPlug": false,
-                "ramHotUnplug": false,
-                "nicHotPlug": false,
-                "nicHotUnplug": false,
-                "discVirtioHotPlug": false,
-                "discVirtioHotUnplug": false,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "licenceType": "OTHER",
-                "imageType": "HDD",
-                "imageAliases": [ ],
-                "public": false
-            }
-        },
-        {
-            "id": "f1d2be4a-7937-11e4-8053-52540066fee9",
-            "type": "image",
-            "href": "/cloudapi/v4/images/f1d2be4a-7937-11e4-8053-52540066fee9",
-            "metadata": {
-                "createdDate": "2014-12-01T08:56:31Z",
-                "createdBy": "System",
-                "etag": "fd23753bfae52a11bbdfdd478296cb2a",
-                "lastModifiedDate": "2014-12-01T08:56:31Z",
-                "lastModifiedBy": "System",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test-Image-Two-HDD",
-                "description": "",
-                "location": "us/las",
-                "size": 0.45,
-                "cpuHotPlug": false,
-                "cpuHotUnplug": false,
-                "ramHotPlug": false,
-                "ramHotUnplug": false,
-                "nicHotPlug": false,
-                "nicHotUnplug": false,
-                "discVirtioHotPlug": false,
-                "discVirtioHotUnplug": false,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "licenceType": "LINUX",
-                "imageType": "HDD",
-                "imageAliases": [ ],
-                "public": true
-            }
-        },
-        {
-            "id": "dfa08a48-7937-11e4-8053-52540066fee9",
-            "type": "image",
-            "href": "/cloudapi/v4/images/dfa08a48-7937-11e4-8053-52540066fee9",
-            "metadata": {
-                "createdDate": "2014-12-01T08:56:00Z",
-                "createdBy": "System",
-                "etag": "66da22f2893f1de8945c27e11bbc7ebf",
-                "lastModifiedDate": "2014-12-01T08:56:00Z",
-                "lastModifiedBy": "System",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test-Image-Three-HDD",
-                "description": "",
-                "location": "de/fra",
-                "size": 0.08,
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "licenceType": "LINUX",
-                "imageType": "HDD",
-                "imageAliases": [ ],
-                "public": true
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/list_locations.json b/libcloud/test/compute/fixtures/profitbricks/list_locations.json
deleted file mode 100644
index 0e1fdde..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/list_locations.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "id" : "locations",
-  "type" : "collection",
-  "href" : "https://api.profitbricks.com/cloudapi/v4/locations",
-  "items" : [ {
-    "id" : "us/las",
-    "type" : "location",
-    "href" : "https://api.profitbricks.com/cloudapi/v4/locations/de/fkb",
-    "properties" : {
-      "name" : "karlsruhe",
-      "features" : [ "SSD", "MULTIPLE_CPU" ],
-      "imageAliases" : [ "centos:6_iso", "opensuse:latest", "opensuse:42.3_iso", "centos:7_iso", "clearos:latest_iso", "debian:8_iso", "clonezilla:latest_iso", "windows:latest", "centos:7", "debian:7", "fedora:25_iso", "gparted:latest_iso", "grml:latest_iso", "opensuse:13.2_iso", "opensuse:42.1_iso", "opensuse:42.2_iso", "ubuntu:14.04_iso", "ubuntu:16.04_iso", "ubuntu:17.04_iso", "zenloadbalancer:latest_iso", "mssql:2012_trial_iso", "windows:virtiodriver_iso", "windows:2008r2_iso", "windows:2012r2_iso", "windows:2013_recovery_iso", "windows:2016_iso", "windows:2008r2", "windows:2012r2", "centos:6", "debian:9", "debian:latest", "ubuntu:16.04", "windows:2016", "centos:latest", "debian:8", "debian:testing", "fedora:25", "fedora:latest", "ubuntu:14.04", "ubuntu:latest", "debian:9_iso", "fedora:26_iso", "opensuse:13.2" ]
-    }
-  }, {
-    "id" : "de/fra",
-    "type" : "location",
-    "href" : "https://api.profitbricks.com/cloudapi/v4/locations/de/fra",
-    "properties" : {
-      "name" : "frankfurt",
-      "features" : [ "SSD", "MULTIPLE_CPU" ],
-      "imageAliases" : [ "centos:6_iso", "opensuse:42.3_iso", "windows:2012r2", "centos:7_iso", "clearos:latest_iso", "windows:latest", "clonezilla:latest_iso", "debian:7", "debian:9", "fedora:25_iso", "gparted:latest_iso", "grml:latest_iso", "opensuse:13.2_iso", "ubuntu:16.04", "opensuse:42.1_iso", "opensuse:42.2_iso", "windows:2016", "ubuntu:14.04_iso", "ubuntu:16.04_iso", "ubuntu:17.04_iso", "zenloadbalancer:latest_iso", "mssql:2012_trial_iso", "windows:virtiodriver_iso", "windows:2008r2_iso", "windows:2012r2_iso", "windows:2013_recovery_iso", "windows:2016_iso", "centos:6", "debian:latest", "fedora:latest", "ubuntu:14.04", "windows:2008r2", "centos:7", "centos:latest", "debian:8", "debian:testing", "fedora:25", "ubuntu:latest", "debian:8_iso", "debian:9_iso", "fedora:26_iso", "opensuse:13.2", "opensuse:latest" ]
-    }
-  }, {
-    "id" : "us/las",
-    "type" : "location",
-    "href" : "https://api.profitbricks.com/cloudapi/v4/locations/us/las",
-    "properties" : {
-      "name" : "lasvegas",
-      "features" : [ "SSD", "MULTIPLE_CPU" ],
-      "imageAliases" : [ "centos:6_iso", "opensuse:latest", "opensuse:42.3_iso", "windows:2016", "centos:7_iso", "clearos:latest_iso", "windows:latest", "clonezilla:latest_iso", "centos:7", "centos:latest", "debian:latest", "fedora:25_iso", "gparted:latest_iso", "grml:latest_iso", "opensuse:13.2_iso", "ubuntu:latest", "opensuse:42.1_iso", "opensuse:42.2_iso", "windows:2008r2", "opensuse:13.2", "ubuntu:14.04_iso", "ubuntu:16.04_iso", "ubuntu:17.04_iso", "zenloadbalancer:latest_iso", "mssql:2012_trial_iso", "windows:virtiodriver_iso", "windows:2008r2_iso", "windows:2012r2_iso", "windows:2013_recovery_iso", "windows:2016_iso", "debian:9", "debian:testing", "ubuntu:16.04", "windows:2012r2", "centos:6", "debian:7", "debian:8", "fedora:25", "fedora:latest", "ubuntu:14.04", "debian:8_iso", "debian:9_iso", "fedora:26_iso" ]
-    }
-  }, {
-    "id" : "us/ewr",
-    "type" : "location",
-    "href" : "https://api.profitbricks.com/cloudapi/v4/locations/us/ewr",
-    "properties" : {
-      "name" : "newark",
-      "features" : [ "SSD", "MULTIPLE_CPU" ],
-      "imageAliases" : [ "centos:6_iso", "opensuse:13.2", "opensuse:latest", "opensuse:42.3_iso", "windows:2008r2", "centos:7_iso", "clearos:latest_iso", "debian:9_iso", "fedora:26_iso", "clonezilla:latest_iso", "windows:2012r2", "windows:2016", "windows:latest", "centos:6", "centos:7", "centos:latest", "debian:latest", "fedora:25_iso", "gparted:latest_iso", "grml:latest_iso", "opensuse:13.2_iso", "fedora:latest", "ubuntu:14.04", "ubuntu:16.04", "opensuse:42.1_iso", "opensuse:42.2_iso", "ubuntu:14.04_iso", "ubuntu:16.04_iso", "ubuntu:17.04_iso", "zenloadbalancer:latest_iso", "mssql:2012_trial_iso", "windows:virtiodriver_iso", "windows:2008r2_iso", "windows:2012r2_iso", "windows:2013_recovery_iso", "windows:2016_iso", "debian:testing", "fedora:25", "debian:7", "debian:8", "debian:9", "ubuntu:latest", "debian:8_iso" ]
-    }
-  } ]
-}
diff --git a/libcloud/test/compute/fixtures/profitbricks/list_nodes.json b/libcloud/test/compute/fixtures/profitbricks/list_nodes.json
deleted file mode 100644
index 553b2f5..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/list_nodes.json
+++ /dev/null
@@ -1,169 +0,0 @@
-{
-    "id": "dc-1/servers",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/9e9cb896-e8e7-4f52-a808-ac808baac814/servers",
-    "items": [
-        {
-            "id": "srv-1",
-            "type": "server",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1",
-            "metadata": {
-                "createdDate": "2016-10-18T07:28:05Z",
-                "createdBy": "test@test.te",
-                "etag": "e7cf186125f51f3d9511754a40dcd12c",
-                "lastModifiedDate": "2016-10-18T07:28:05Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "cores": 1,
-                "ram": 1024,
-                "availabilityZone": "AUTO",
-                "vmState": "RUNNING",
-                "bootCdrom": null,
-                "bootVolume": {
-                    "id": "bvol-1",
-                    "type": "volume",
-                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1",
-                    "metadata": {
-                        "createdDate": "2016-10-18T07:20:41Z",
-                        "createdBy": "matfin@stackpointcloud.com",
-                        "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                        "lastModifiedDate": "2016-10-18T07:20:41Z",
-                        "lastModifiedBy": "test@test.te",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "libcloud Test",
-                        "type": "HDD",
-                        "size": 2,
-                        "image": "bvol-img",
-                        "imagePassword": null,
-                        "bus": "VIRTIO",
-                        "licenceType": "LINUX",
-                        "cpuHotPlug": true,
-                        "cpuHotUnplug": false,
-                        "ramHotPlug": true,
-                        "ramHotUnplug": false,
-                        "nicHotPlug": true,
-                        "nicHotUnplug": true,
-                        "discVirtioHotPlug": true,
-                        "discVirtioHotUnplug": true,
-                        "discScsiHotPlug": false,
-                        "discScsiHotUnplug": false,
-                        "deviceNumber": 1
-                    }
-                },
-                "cpuFamily": "AMD_OPTERON"
-            },
-            "entities": {
-                "cdroms": {
-                    "id": "srv-1/cdroms",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/cdroms",
-                    "items": []
-                },
-                "volumes": {
-                    "id": "srv-1/volumes",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/volumes",
-                    "items": [
-                        {
-                            "id": "bvol-1",
-                            "type": "volume",
-                            "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1"
-                        }
-                    ]
-                },
-                "nics": {
-                    "id": "srv-1/nics",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/nics",
-                    "items": []
-                }
-            }
-        },
-        {
-            "id": "srv-1",
-            "type": "server",
-            "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1",
-            "metadata": {
-                "createdDate": "2016-10-18T07:28:05Z",
-                "createdBy": "test@test.te",
-                "etag": "e7cf186125f51f3d9511754a40dcd12c",
-                "lastModifiedDate": "2016-10-18T07:28:05Z",
-                "lastModifiedBy": "matfin@stackpointcloud.com",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "libcloud Test",
-                "cores": 1,
-                "ram": 1024,
-                "availabilityZone": "AUTO",
-                "vmState": "RUNNING",
-                "bootCdrom": null,
-                "bootVolume": {
-                    "id": "bvol-1",
-                    "type": "volume",
-                    "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1",
-                    "metadata": {
-                        "createdDate": "2016-10-18T07:20:41Z",
-                        "createdBy": "matfin@stackpointcloud.com",
-                        "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                        "lastModifiedDate": "2016-10-18T07:20:41Z",
-                        "lastModifiedBy": "test@test.te",
-                        "state": "AVAILABLE"
-                    },
-                    "properties": {
-                        "name": "libcloud Test",
-                        "type": "HDD",
-                        "size": 2,
-                        "image": "bvol-img",
-                        "imagePassword": null,
-                        "bus": "VIRTIO",
-                        "licenceType": "LINUX",
-                        "cpuHotPlug": true,
-                        "cpuHotUnplug": false,
-                        "ramHotPlug": true,
-                        "ramHotUnplug": false,
-                        "nicHotPlug": true,
-                        "nicHotUnplug": true,
-                        "discVirtioHotPlug": true,
-                        "discVirtioHotUnplug": true,
-                        "discScsiHotPlug": false,
-                        "discScsiHotUnplug": false,
-                        "deviceNumber": 1
-                    }
-                },
-                "cpuFamily": "AMD_OPTERON"
-            },
-            "entities": {
-                "cdroms": {
-                    "id": "srv-1/cdroms",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/cdroms",
-                    "items": []
-                },
-                "volumes": {
-                    "id": "srv-1/volumes",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/volumes",
-                    "items": [
-                        {
-                            "id": "bvol-1",
-                            "type": "volume",
-                            "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1"
-                        }
-                    ]
-                },
-                "nics": {
-                    "id": "srv-1/nics",
-                    "type": "collection",
-                    "href": "/cloudapi/v4/datacenters/dc-1/servers/srv-1/nics",
-                    "items": []
-                }
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/list_snapshots.json b/libcloud/test/compute/fixtures/profitbricks/list_snapshots.json
deleted file mode 100644
index 6902477..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/list_snapshots.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-    "id": "snapshots",
-    "type": "collection",
-    "href": "/cloudapi/v4/snapshots",
-    "items": [
-        {
-            "id": "sshot",
-            "type": "snapshot",
-            "href": "/cloudapi/v4/snapshots/sshot",
-            "metadata": {
-                "createdDate": "2016-10-26T11:38:45Z",
-                "createdBy": "test@test.te",
-                "etag": "01873262ac042b5f44ed33b4241225b4",
-                "lastModifiedDate": "2016-10-26T11:38:45Z",
-                "lastModifiedBy": "test@test.te",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Balancer Testing 1 Storage-Snapshot-10/26/2016",
-                "description": "Created from \"Balancer Testing 1 Storage\" in Data Center \"Snapshot\"",
-                "location": "us/las",
-                "size": 10,
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "licenceType": "LINUX"
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/profitbricks/list_volumes.json b/libcloud/test/compute/fixtures/profitbricks/list_volumes.json
deleted file mode 100644
index 7866ed8..0000000
--- a/libcloud/test/compute/fixtures/profitbricks/list_volumes.json
+++ /dev/null
@@ -1,112 +0,0 @@
-{
-    "id": "dc-1/volumes",
-    "type": "collection",
-    "href": "/cloudapi/v4/datacenters/dc-1/volumes",
-    "items": [
-        {
-            "id": "bvol-1",
-            "type": "volume",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes/bvol-1",
-            "metadata": {
-                "createdDate": "2016-10-18T07:20:41Z",
-                "createdBy": "test@test.test",
-                "etag": "33f6b8d506e7ad756e8554b915f29c61",
-                "lastModifiedDate": "2016-10-18T07:20:41Z",
-                "lastModifiedBy": "test@test.test",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Test",
-                "type": "HDD",
-                "size": 10,
-                "availabilityZone": "AUTO",
-                "image": "bvol-img",
-                "imagePassword": null,
-                "sshKeys": null,
-                "bus": "VIRTIO",
-                "licenceType": "LINUX",
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "deviceNumber": 1
-            }
-        },
-        {
-            "id": "d6688ced-700d-4c9c-a3a7-9f7170c5edc3",
-            "type": "volume",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes/d6688ced-700d-4c9c-a3a7-9f7170c5edc3",
-            "metadata": {
-                "createdDate": "2016-10-17T13:13:36Z",
-                "createdBy": "test@test.test",
-                "etag": "c1800ce349033f9cd2c095ea1ea4976a",
-                "lastModifiedDate": "2016-10-17T13:47:52Z",
-                "lastModifiedBy": "test@test.test",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Updated storage name",
-                "type": "HDD",
-                "size": 40,
-                "availabilityZone": "AUTO",
-                "image": "bvol-img",
-                "imagePassword": null,
-                "sshKeys": null,
-                "bus": null,
-                "licenceType": "LINUX",
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "deviceNumber": null
-            }
-        },
-        {
-            "id": "21d7e7de-5054-4041-b691-717aa8b3c799",
-            "type": "volume",
-            "href": "/cloudapi/v4/datacenters/dc-1/volumes/21d7e7de-5054-4041-b691-717aa8b3c799",
-            "metadata": {
-                "createdDate": "2016-10-17T11:33:20Z",
-                "createdBy": "test@test.test",
-                "etag": "a9d0b923527efae5e7071e9118e9eece",
-                "lastModifiedDate": "2016-10-17T11:33:20Z",
-                "lastModifiedBy": "test@test.test",
-                "state": "AVAILABLE"
-            },
-            "properties": {
-                "name": "Image and location and size. - volume",
-                "type": "HDD",
-                "size": 50,
-                "availabilityZone": "AUTO",
-                "image": "bvol-img",
-                "imagePassword": null,
-                "sshKeys": null,
-                "bus": "VIRTIO",
-                "licenceType": "LINUX",
-                "cpuHotPlug": true,
-                "cpuHotUnplug": false,
-                "ramHotPlug": true,
-                "ramHotUnplug": false,
-                "nicHotPlug": true,
-                "nicHotUnplug": true,
-                "discVirtioHotPlug": true,
-                "discVirtioHotUnplug": true,
-                "discScsiHotPlug": false,
-                "discScsiHotUnplug": false,
-                "deviceNumber": 1
-            }
-        }
-    ]
-}
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/softlayer/SoftLayer_Account.xml b/libcloud/test/compute/fixtures/softlayer/SoftLayer_Account.xml
deleted file mode 100644
index 0f38ef0..0000000
--- a/libcloud/test/compute/fixtures/softlayer/SoftLayer_Account.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version='1.0'?>
-<methodResponse>
-  <fault>
-    <value>
-      <struct>
-        <member>
-          <name>faultCode</name>
-          <value><string>SoftLayer_Account</string></value>
-        </member>
-        <member>
-          <name>faultString</name>
-          <value><string>Failed Call</string></value>
-        </member>
-      </struct>
-    </value>
-  </fault>
-</methodResponse>
diff --git a/libcloud/test/compute/fixtures/softlayer/empty.xml b/libcloud/test/compute/fixtures/softlayer/empty.xml
deleted file mode 100644
index 1acdcc9..0000000
--- a/libcloud/test/compute/fixtures/softlayer/empty.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params/>
\ No newline at end of file
diff --git a/libcloud/test/compute/fixtures/softlayer/fail.xml b/libcloud/test/compute/fixtures/softlayer/fail.xml
deleted file mode 100644
index 4cd0162..0000000
--- a/libcloud/test/compute/fixtures/softlayer/fail.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version='1.0'?>
-<methodResponse>
-  <fault>
-    <value>
-      <struct>
-        <member>
-          <name>faultCode</name>
-          <value><string>fail</string></value>
-        </member>
-        <member>
-          <name>faultString</name>
-          <value><string>Failed Call</string></value>
-        </member>
-      </struct>
-    </value>
-  </fault>
-</methodResponse>
diff --git a/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml b/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml
deleted file mode 100644
index b37dc47..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml
+++ /dev/null
@@ -1,1538 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <array>
-   <data>
-    <value>
-     <struct>
-      <member>
-       <name>accountId</name>
-       <value>
-        <int>282402</int>
-       </value>
-      </member>
-      <member>
-       <name>createDate</name>
-       <value>
-        <string>2013-11-06T14:38:36+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>dedicatedAccountHostOnlyFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>domain</name>
-       <value>
-        <string>example.com</string>
-       </value>
-      </member>
-      <member>
-       <name>fullyQualifiedDomainName</name>
-       <value>
-        <string>libcloud-testing1.example.com</string>
-       </value>
-      </member>
-      <member>
-       <name>hostname</name>
-       <value>
-        <string>libcloud-testing1</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>2875152</int>
-       </value>
-      </member>
-      <member>
-       <name>lastPowerStateId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>lastVerifiedDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>maxCpu</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>maxCpuUnits</name>
-       <value>
-        <string>CORE</string>
-       </value>
-      </member>
-      <member>
-       <name>maxMemory</name>
-       <value>
-        <int>2048</int>
-       </value>
-      </member>
-      <member>
-       <name>metricPollDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>modifyDate</name>
-       <value>
-        <string>2013-11-06T14:41:25+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>startCpus</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>1001</int>
-       </value>
-      </member>
-      <member>
-       <name>uuid</name>
-       <value>
-        <string>ab98fc82-9d74-bc34-6701-f88957ebbba8</string>
-       </value>
-      </member>
-      <member>
-       <name>billingItem</name>
-       <value>
-        <struct>
-         <member>
-          <name>allowCancellationFlag</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>cancellationDate</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>categoryCode</name>
-          <value>
-           <string>guest_core</string>
-          </value>
-         </member>
-         <member>
-          <name>createDate</name>
-          <value>
-           <string>2013-11-06T14:38:38+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>currentHourlyCharge</name>
-          <value>
-           <string>.112</string>
-          </value>
-         </member>
-         <member>
-          <name>cycleStartDate</name>
-          <value>
-           <string>2013-11-06T14:43:20+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>description</name>
-          <value>
-           <string>1 x 2.0 GHz Core</string>
-          </value>
-         </member>
-         <member>
-          <name>domainName</name>
-          <value>
-           <string>example.com</string>
-          </value>
-         </member>
-         <member>
-          <name>hostName</name>
-          <value>
-           <string>libcloud-testing1</string>
-          </value>
-         </member>
-         <member>
-          <name>hourlyRecurringFee</name>
-          <value>
-           <string>.056</string>
-          </value>
-         </member>
-         <member>
-          <name>hoursUsed</name>
-          <value>
-           <string>2</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>16447700</int>
-          </value>
-         </member>
-         <member>
-          <name>laborFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>laborFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>lastBillDate</name>
-          <value>
-           <string>2013-11-06T14:43:20+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>modifyDate</name>
-          <value>
-           <string>2013-11-06T14:43:20+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>nextBillDate</name>
-          <value>
-           <string>2013-11-28T07:00:00+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>oneTimeFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>oneTimeFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>orderItemId</name>
-          <value>
-           <int>22662589</int>
-          </value>
-         </member>
-         <member>
-          <name>parentId</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>recurringFee</name>
-          <value>
-           <string>.112</string>
-          </value>
-         </member>
-         <member>
-          <name>recurringFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>recurringMonths</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>serviceProviderId</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>setupFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>setupFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>resourceTableId</name>
-          <value>
-           <int>2875152</int>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>datacenter</name>
-       <value>
-        <struct>
-         <member>
-          <name>id</name>
-          <value>
-           <int>168642</int>
-          </value>
-         </member>
-         <member>
-          <name>longName</name>
-          <value>
-           <string>San Jose 1</string>
-          </value>
-         </member>
-         <member>
-          <name>name</name>
-          <value>
-           <string>sjc01</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>globalIdentifier</name>
-       <value>
-        <string>9ee84f87-e558-4548-9b89-fe7d997706b8</string>
-       </value>
-      </member>
-      <member>
-       <name>operatingSystem</name>
-       <value>
-        <struct>
-         <member>
-          <name>hardwareId</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>2200995</int>
-          </value>
-         </member>
-         <member>
-          <name>manufacturerLicenseInstance</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>passwords</name>
-          <value>
-           <array>
-            <data>
-             <value>
-              <struct>
-               <member>
-                <name>createDate</name>
-                <value>
-                 <string>2013-11-06T14:38:56+01:00</string>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>1856975</int>
-                </value>
-               </member>
-               <member>
-                <name>modifyDate</name>
-                <value>
-                 <string>2013-11-06T14:38:56+01:00</string>
-                </value>
-               </member>
-               <member>
-                <name>password</name>
-                <value>
-                 <string>L3TJVubf</string>
-                </value>
-               </member>
-               <member>
-                <name>port</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>softwareId</name>
-                <value>
-                 <int>2200995</int>
-                </value>
-               </member>
-               <member>
-                <name>username</name>
-                <value>
-                 <string>root</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </data>
-           </array>
-          </value>
-         </member>
-         <member>
-          <name>softwareLicense</name>
-          <value>
-           <struct>
-            <member>
-             <name>id</name>
-             <value>
-              <int>1523</int>
-             </value>
-            </member>
-            <member>
-             <name>softwareDescriptionId</name>
-             <value>
-              <int>1163</int>
-             </value>
-            </member>
-            <member>
-             <name>softwareDescription</name>
-             <value>
-              <struct>
-               <member>
-                <name>controlPanel</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>1163</int>
-                </value>
-               </member>
-               <member>
-                <name>longDescription</name>
-                <value>
-                 <string>Debian / Debian / 7.0.0-64 Minimal for CCI</string>
-                </value>
-               </member>
-               <member>
-                <name>manufacturer</name>
-                <value>
-                 <string>Debian</string>
-                </value>
-               </member>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>Debian</string>
-                </value>
-               </member>
-               <member>
-                <name>operatingSystem</name>
-                <value>
-                 <int>1</int>
-                </value>
-               </member>
-               <member>
-                <name>referenceCode</name>
-                <value>
-                 <string>DEBIAN_7_64</string>
-                </value>
-               </member>
-               <member>
-                <name>upgradeSoftwareDescriptionId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>upgradeSwDescId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>version</name>
-                <value>
-                 <string>7.0.0-64 Minimal for CCI</string>
-                </value>
-               </member>
-               <member>
-                <name>virtualLicense</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>virtualizationPlatform</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>requiredUser</name>
-                <value>
-                 <string>root</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>powerState</name>
-       <value>
-        <struct>
-         <member>
-          <name>keyName</name>
-          <value>
-           <string>RUNNING</string>
-          </value>
-         </member>
-         <member>
-          <name>name</name>
-          <value>
-           <string>Running</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>primaryBackendIpAddress</name>
-       <value>
-        <string>10.55.43.130</string>
-       </value>
-      </member>
-      <member>
-       <name>primaryIpAddress</name>
-       <value>
-        <string>50.23.95.202</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>accountId</name>
-       <value>
-        <int>282402</int>
-       </value>
-      </member>
-      <member>
-       <name>createDate</name>
-       <value>
-        <string>2013-11-06T15:14:52+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>dedicatedAccountHostOnlyFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>domain</name>
-       <value>
-        <string>example.com</string>
-       </value>
-      </member>
-      <member>
-       <name>fullyQualifiedDomainName</name>
-       <value>
-        <string>libcloud-testing2.example.com</string>
-       </value>
-      </member>
-      <member>
-       <name>hostname</name>
-       <value>
-        <string>libcloud-testing2</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>2875213</int>
-       </value>
-      </member>
-      <member>
-       <name>lastPowerStateId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>lastVerifiedDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>maxCpu</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>maxCpuUnits</name>
-       <value>
-        <string>CORE</string>
-       </value>
-      </member>
-      <member>
-       <name>maxMemory</name>
-       <value>
-        <int>2048</int>
-       </value>
-      </member>
-      <member>
-       <name>metricPollDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>modifyDate</name>
-       <value>
-        <string>2013-11-06T15:17:56+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>startCpus</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>1001</int>
-       </value>
-      </member>
-      <member>
-       <name>uuid</name>
-       <value>
-        <string>8f10bea1-3e26-70d7-d581-0d9e820eae0c</string>
-       </value>
-      </member>
-      <member>
-       <name>billingItem</name>
-       <value>
-        <struct>
-         <member>
-          <name>allowCancellationFlag</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>cancellationDate</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>categoryCode</name>
-          <value>
-           <string>guest_core</string>
-          </value>
-         </member>
-         <member>
-          <name>createDate</name>
-          <value>
-           <string>2013-11-06T15:14:55+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>currentHourlyCharge</name>
-          <value>
-           <string>.056</string>
-          </value>
-         </member>
-         <member>
-          <name>cycleStartDate</name>
-          <value>
-           <string>2013-11-06T15:19:50+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>description</name>
-          <value>
-           <string>1 x 2.0 GHz Core</string>
-          </value>
-         </member>
-         <member>
-          <name>domainName</name>
-          <value>
-           <string>example.com</string>
-          </value>
-         </member>
-         <member>
-          <name>hostName</name>
-          <value>
-           <string>libcloud-testing2</string>
-          </value>
-         </member>
-         <member>
-          <name>hourlyRecurringFee</name>
-          <value>
-           <string>.056</string>
-          </value>
-         </member>
-         <member>
-          <name>hoursUsed</name>
-          <value>
-           <string>1</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>16447908</int>
-          </value>
-         </member>
-         <member>
-          <name>laborFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>laborFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>lastBillDate</name>
-          <value>
-           <string>2013-11-06T15:19:50+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>modifyDate</name>
-          <value>
-           <string>2013-11-06T15:19:50+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>nextBillDate</name>
-          <value>
-           <string>2013-11-28T07:00:00+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>oneTimeFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>oneTimeFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>orderItemId</name>
-          <value>
-           <int>22663091</int>
-          </value>
-         </member>
-         <member>
-          <name>parentId</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>recurringFee</name>
-          <value>
-           <string>.056</string>
-          </value>
-         </member>
-         <member>
-          <name>recurringFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>recurringMonths</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>serviceProviderId</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>setupFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>setupFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>resourceTableId</name>
-          <value>
-           <int>2875213</int>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>datacenter</name>
-       <value>
-        <struct>
-         <member>
-          <name>id</name>
-          <value>
-           <int>168642</int>
-          </value>
-         </member>
-         <member>
-          <name>longName</name>
-          <value>
-           <string>San Jose 1</string>
-          </value>
-         </member>
-         <member>
-          <name>name</name>
-          <value>
-           <string>sjc01</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>globalIdentifier</name>
-       <value>
-        <string>5c704e34-6ee7-4efe-9722-af9d406fa930</string>
-       </value>
-      </member>
-      <member>
-       <name>operatingSystem</name>
-       <value>
-        <struct>
-         <member>
-          <name>hardwareId</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>2201027</int>
-          </value>
-         </member>
-         <member>
-          <name>manufacturerLicenseInstance</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>softwareLicense</name>
-          <value>
-           <struct>
-            <member>
-             <name>id</name>
-             <value>
-              <int>1523</int>
-             </value>
-            </member>
-            <member>
-             <name>softwareDescriptionId</name>
-             <value>
-              <int>1163</int>
-             </value>
-            </member>
-            <member>
-             <name>softwareDescription</name>
-             <value>
-              <struct>
-               <member>
-                <name>controlPanel</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>1163</int>
-                </value>
-               </member>
-               <member>
-                <name>longDescription</name>
-                <value>
-                 <string>Debian / Debian / 7.0.0-64 Minimal for CCI</string>
-                </value>
-               </member>
-               <member>
-                <name>manufacturer</name>
-                <value>
-                 <string>Debian</string>
-                </value>
-               </member>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>Debian</string>
-                </value>
-               </member>
-               <member>
-                <name>operatingSystem</name>
-                <value>
-                 <int>1</int>
-                </value>
-               </member>
-               <member>
-                <name>referenceCode</name>
-                <value>
-                 <string>DEBIAN_7_64</string>
-                </value>
-               </member>
-               <member>
-                <name>upgradeSoftwareDescriptionId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>upgradeSwDescId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>version</name>
-                <value>
-                 <string>7.0.0-64 Minimal for CCI</string>
-                </value>
-               </member>
-               <member>
-                <name>virtualLicense</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>virtualizationPlatform</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>requiredUser</name>
-                <value>
-                 <string>root</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>powerState</name>
-       <value>
-        <struct>
-         <member>
-          <name>keyName</name>
-          <value>
-           <string>INITIATING</string>
-          </value>
-         </member>
-         <member>
-          <name>name</name>
-          <value>
-           <string>Running</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>primaryBackendIpAddress</name>
-       <value>
-        <string>10.55.43.131</string>
-       </value>
-      </member>
-      <member>
-       <name>primaryIpAddress</name>
-       <value>
-        <string>50.23.95.203</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>accountId</name>
-       <value>
-        <int>282402</int>
-       </value>
-      </member>
-      <member>
-       <name>createDate</name>
-       <value>
-        <string>2013-11-06T15:36:53+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>dedicatedAccountHostOnlyFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>domain</name>
-       <value>
-        <string>example.com</string>
-       </value>
-      </member>
-      <member>
-       <name>fullyQualifiedDomainName</name>
-       <value>
-        <string>libcloud-testing.example.com</string>
-       </value>
-      </member>
-      <member>
-       <name>hostname</name>
-       <value>
-        <string>libcloud-testing</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>2875273</int>
-       </value>
-      </member>
-      <member>
-       <name>lastPowerStateId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>lastVerifiedDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>maxCpu</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>maxCpuUnits</name>
-       <value>
-        <string>CORE</string>
-       </value>
-      </member>
-      <member>
-       <name>maxMemory</name>
-       <value>
-        <int>2048</int>
-       </value>
-      </member>
-      <member>
-       <name>metricPollDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>modifyDate</name>
-       <value>
-        <string>2013-11-06T15:39:35+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>startCpus</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>1001</int>
-       </value>
-      </member>
-      <member>
-       <name>uuid</name>
-       <value>
-        <string>f86371c5-103b-34d3-ae27-e4dafa1c4718</string>
-       </value>
-      </member>
-      <member>
-       <name>billingItem</name>
-       <value>
-        <struct>
-         <member>
-          <name>allowCancellationFlag</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>cancellationDate</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>categoryCode</name>
-          <value>
-           <string>guest_core</string>
-          </value>
-         </member>
-         <member>
-          <name>createDate</name>
-          <value>
-           <string>2013-11-06T15:36:55+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>currentHourlyCharge</name>
-          <value>
-           <string>.056</string>
-          </value>
-         </member>
-         <member>
-          <name>cycleStartDate</name>
-          <value>
-           <string>2013-11-06T15:41:31+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>description</name>
-          <value>
-           <string>1 x 2.0 GHz Core</string>
-          </value>
-         </member>
-         <member>
-          <name>domainName</name>
-          <value>
-           <string>example.com</string>
-          </value>
-         </member>
-         <member>
-          <name>hostName</name>
-          <value>
-           <string>libcloud-testing</string>
-          </value>
-         </member>
-         <member>
-          <name>hourlyRecurringFee</name>
-          <value>
-           <string>.056</string>
-          </value>
-         </member>
-         <member>
-          <name>hoursUsed</name>
-          <value>
-           <string>1</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>16448162</int>
-          </value>
-         </member>
-         <member>
-          <name>laborFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>laborFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>lastBillDate</name>
-          <value>
-           <string>2013-11-06T15:41:31+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>modifyDate</name>
-          <value>
-           <string>2013-11-06T15:41:31+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>nextBillDate</name>
-          <value>
-           <string>2013-11-28T07:00:00+01:00</string>
-          </value>
-         </member>
-         <member>
-          <name>oneTimeFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>oneTimeFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>orderItemId</name>
-          <value>
-           <int>22663578</int>
-          </value>
-         </member>
-         <member>
-          <name>parentId</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>recurringFee</name>
-          <value>
-           <string>.056</string>
-          </value>
-         </member>
-         <member>
-          <name>recurringFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>recurringMonths</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>serviceProviderId</name>
-          <value>
-           <int>1</int>
-          </value>
-         </member>
-         <member>
-          <name>setupFee</name>
-          <value>
-           <string>0</string>
-          </value>
-         </member>
-         <member>
-          <name>setupFeeTaxRate</name>
-          <value>
-           <string>.21</string>
-          </value>
-         </member>
-         <member>
-          <name>resourceTableId</name>
-          <value>
-           <int>2875273</int>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>datacenter</name>
-       <value>
-        <struct>
-         <member>
-          <name>id</name>
-          <value>
-           <int>168642</int>
-          </value>
-         </member>
-         <member>
-          <name>longName</name>
-          <value>
-           <string>San Jose 1</string>
-          </value>
-         </member>
-         <member>
-          <name>name</name>
-          <value>
-           <string>sjc01</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>globalIdentifier</name>
-       <value>
-        <string>e8ab9d1c-edd8-4a1a-a13c-ff74838b5ab6</string>
-       </value>
-      </member>
-      <member>
-       <name>operatingSystem</name>
-       <value>
-        <struct>
-         <member>
-          <name>hardwareId</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>2201049</int>
-          </value>
-         </member>
-         <member>
-          <name>manufacturerLicenseInstance</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>passwords</name>
-          <value>
-           <array>
-            <data>
-             <value>
-              <struct>
-               <member>
-                <name>createDate</name>
-                <value>
-                 <string>2013-11-06T15:37:10+01:00</string>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>1857066</int>
-                </value>
-               </member>
-               <member>
-                <name>modifyDate</name>
-                <value>
-                 <string>2013-11-06T15:37:10+01:00</string>
-                </value>
-               </member>
-               <member>
-                <name>password</name>
-                <value>
-                 <string>HmyHw89J</string>
-                </value>
-               </member>
-               <member>
-                <name>port</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>softwareId</name>
-                <value>
-                 <int>2201049</int>
-                </value>
-               </member>
-               <member>
-                <name>username</name>
-                <value>
-                 <string>root</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </data>
-           </array>
-          </value>
-         </member>
-         <member>
-          <name>softwareLicense</name>
-          <value>
-           <struct>
-            <member>
-             <name>id</name>
-             <value>
-              <int>1523</int>
-             </value>
-            </member>
-            <member>
-             <name>softwareDescriptionId</name>
-             <value>
-              <int>1163</int>
-             </value>
-            </member>
-            <member>
-             <name>softwareDescription</name>
-             <value>
-              <struct>
-               <member>
-                <name>controlPanel</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>1163</int>
-                </value>
-               </member>
-               <member>
-                <name>longDescription</name>
-                <value>
-                 <string>Debian / Debian / 7.0.0-64 Minimal for CCI</string>
-                </value>
-               </member>
-               <member>
-                <name>manufacturer</name>
-                <value>
-                 <string>Debian</string>
-                </value>
-               </member>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>Debian</string>
-                </value>
-               </member>
-               <member>
-                <name>operatingSystem</name>
-                <value>
-                 <int>1</int>
-                </value>
-               </member>
-               <member>
-                <name>referenceCode</name>
-                <value>
-                 <string>DEBIAN_7_64</string>
-                </value>
-               </member>
-               <member>
-                <name>upgradeSoftwareDescriptionId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>upgradeSwDescId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>version</name>
-                <value>
-                 <string>7.0.0-64 Minimal for CCI</string>
-                </value>
-               </member>
-               <member>
-                <name>virtualLicense</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>virtualizationPlatform</name>
-                <value>
-                 <int>0</int>
-                </value>
-               </member>
-               <member>
-                <name>requiredUser</name>
-                <value>
-                 <string>root</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>powerState</name>
-       <value>
-        <struct>
-         <member>
-          <name>keyName</name>
-          <value>
-           <string>RUNNING</string>
-          </value>
-         </member>
-         <member>
-          <name>name</name>
-          <value>
-           <string>Running</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>primaryBackendIpAddress</name>
-       <value>
-        <string>10.55.43.132</string>
-       </value>
-      </member>
-      <member>
-       <name>primaryIpAddress</name>
-       <value>
-        <string>50.23.95.204</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </data>
-  </array>
- </value>
-</param>
-</params>
-
diff --git a/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Location_Datacenter_getDatacenters.xml b/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Location_Datacenter_getDatacenters.xml
deleted file mode 100644
index b704194..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Location_Datacenter_getDatacenters.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <array>
-   <data>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal05</string>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas 5</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>3</int>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal01</string>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>18171</int>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>sea01</string>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Seattle</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>37473</int>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>wdc01</string>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Washington, DC</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>12345</int>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>newcity01</string>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>New City</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </data>
-  </array>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Account_getSshKeys.xml b/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Account_getSshKeys.xml
deleted file mode 100644
index a06952c..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Account_getSshKeys.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-    <param>
-        <value>
-            <struct>
-                <member>
-                    <name>id</name>
-                    <value>
-                        <int>1</int>
-                    </value>
-                </member>
-                <member>
-                    <name>key</name>
-                    <value>
-                        <string>ssh-key</string>
-                    </value>
-                </member>
-                <member>
-                    <name>label</name>
-                    <value>
-                        <string>test1</string>
-                    </value>
-                </member>
-                <member>
-                    <name>fingerprint</name>
-                    <value>
-                        <string>00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00</string>
-                    </value>
-                </member>
-            </struct>
-        </value>
-    </param>
-    <param>
-        <value>
-            <struct>
-                <member>
-                    <name>id</name>
-                    <value>
-                        <int>2</int>
-                    </value>
-                </member>
-                <member>
-                    <name>key</name>
-                    <value>
-                        <string>ssh-key</string>
-                    </value>
-                </member>
-                <member>
-                    <name>label</name>
-                    <value>
-                        <string>test2</string>
-                    </value>
-                </member>
-                <member>
-                    <name>fingerprint</name>
-                    <value>
-                        <string>00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00</string>
-                    </value>
-                </member>
-            </struct>
-        </value>
-    </param>
-</params>
diff --git a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_createObject.xml b/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_createObject.xml
deleted file mode 100644
index 716832e..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_createObject.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-    <param>
-        <value>
-            <struct>
-                <member>
-                    <name>id</name>
-                    <value>
-                        <int>1</int>
-                    </value>
-                </member>
-                <member>
-                    <name>key</name>
-                    <value>
-                        <string>ssh-key</string>
-                    </value>
-                </member>
-                <member>
-                    <name>label</name>
-                    <value>
-                        <string>my-key-pair</string>
-                    </value>
-                </member>
-                 <member>
-                    <name>label</name>
-                    <value>
-                        <string>my-key-pair</string>
-                    </value>
-                </member>
-                <member>
-                    <name>fingerprint</name>
-                    <value>
-                        <string>1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f</string>
-                    </value>
-                </member>
-            </struct>
-        </value>
-    </param>
-</params>
diff --git a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_deleteObject.xml b/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_deleteObject.xml
deleted file mode 100644
index 119680e..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_deleteObject.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-    <param>
-        <value>
-            <struct>
-                <member>
-                    <name>status</name>
-                    <value>
-                        <string>success</string>
-                    </value>
-                </member>
-            </struct>
-        </value>
-    </param>
-</params>
diff --git a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_getObject.xml b/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_getObject.xml
deleted file mode 100644
index cf96523..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Security_Ssh_Key_getObject.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-    <param>
-        <value>
-            <struct>
-                <member>
-                    <name>id</name>
-                    <value>
-                        <int>1</int>
-                    </value>
-                </member>
-                <member>
-                    <name>key</name>
-                    <value>
-                        <string>ssh-key</string>
-                    </value>
-                </member>
-                <member>
-                    <name>label</name>
-                    <value>
-                        <string>test1</string>
-                    </value>
-                </member>
-                <member>
-                    <name>fingerprint</name>
-                    <value>
-                        <string>00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00</string>
-                    </value>
-                </member>
-            </struct>
-        </value>
-    </param>
-</params>
diff --git a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_createObject.xml b/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_createObject.xml
deleted file mode 100644
index 09659cd..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_createObject.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>accountId</name>
-    <value>
-     <int>12345</int>
-    </value>
-   </member>
-   <member>
-    <name>createDate</name>
-    <value>
-     <string>2013-01-01T19:31:22-06:00</string>
-    </value>
-   </member>
-   <member>
-    <name>dedicatedAccountHostOnlyFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>domain</name>
-    <value>
-     <string>domain.com</string>
-    </value>
-   </member>
-   <member>
-    <name>fullyQualifiedDomainName</name>
-    <value>
-     <string>hostname.domain.com</string>
-    </value>
-   </member>
-   <member>
-    <name>hostname</name>
-    <value>
-     <string>hostname</string>
-    </value>
-   </member>
-   <member>
-    <name>id</name>
-    <value>
-     <int>123456</int>
-    </value>
-   </member>
-   <member>
-    <name>lastPowerStateId</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>lastVerifiedDate</name>
-    <value>
-  	  <string/>
-    </value>
-   </member>
-   <member>
-    <name>maxCpu</name>
-    <value>
-     <int>2</int>
-    </value>
-   </member>
-   <member>
-    <name>maxCpuUnits</name>
-    <value>
-     <string>CORE</string>
-    </value>
-   </member>
-   <member>
-    <name>maxMemory</name>
-    <value>
-     <int>2048</int>
-    </value>
-   </member>
-   <member>
-    <name>metricPollDate</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>modifyDate</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>privateNetworkOnlyFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>startCpus</name>
-    <value>
-     <int>2</int>
-    </value>
-   </member>
-   <member>
-    <name>statusId</name>
-    <value>
-     <int>1001</int>
-    </value>
-   </member>
-   <member>
-    <name>globalIdentifier</name>
-    <value>
-     <string>f47ac10b-58cc-4372-a567-0e02b2c3d479</string>
-    </value>
-   </member>
-   <member>
-    <name>managedResourceFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>powerState</name>
-    <value>
-     <struct>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>HALTED</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>Halted</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-  </struct>
- </value>
- </param>
-</params>
diff --git a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_getCreateObjectOptions.xml b/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_getCreateObjectOptions.xml
deleted file mode 100644
index a6d94a6..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_getCreateObjectOptions.xml
+++ /dev/null
@@ -1,12527 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>blockDevices</name>
-    <value>
-     <array>
-      <data>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>25 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>0</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>25</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.025</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>18</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>100 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>0</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>100</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.012</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>8</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>10 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>10</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.015</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>10</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>20 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>20</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.016</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>11</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>25 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>25</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.017</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>12</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>30 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>30</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.019</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>14</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>40 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>40</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.021</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>16</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>50 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>50</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.023</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>17</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>75 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>75</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.025</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>18</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>100 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>100</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.028</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>19</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>125 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>125</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.03</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>150 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>150</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.035</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>21</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>175 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>175</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.04</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>22</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>200 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>200</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>25</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>250 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>250</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.06</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>32.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>300 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>300</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.07</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>40</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>350 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>350</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.08</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>45</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>400 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>400</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.1</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>500 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>500</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.15</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>75</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>750 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>750</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.2</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>100</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1,000 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>1000</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.25</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>150</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1,500 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>1500</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.3</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>200</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>2,000 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>2000</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.012</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>8</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>10 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>10</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.015</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>10</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>20 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>20</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.016</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>11</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>25 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>25</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.017</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>12</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>30 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>30</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.019</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>14</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>40 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>40</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.021</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>16</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>50 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>50</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.023</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>17</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>75 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>75</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.025</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>18</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>100 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>100</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.028</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>19</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>125 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>125</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.03</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>150 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>150</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.035</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>21</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>175 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>175</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.04</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>22</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>200 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>200</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>25</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>250 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>250</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.06</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>32.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>300 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>300</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.07</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>40</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>350 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>350</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.08</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>45</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>400 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>400</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.1</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>500 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>500</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.15</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>75</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>750 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>750</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.2</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>100</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1,000 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>1000</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.25</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>150</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1,500 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>1500</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.3</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>200</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>2,000 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>3</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>2000</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.012</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>8</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>10 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>10</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.015</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>10</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>20 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>20</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.016</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>11</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>25 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>25</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.017</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>12</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>30 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>30</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.019</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>14</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>40 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>40</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.021</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>16</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>50 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>50</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.023</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>17</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>75 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>75</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.025</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>18</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>100 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>100</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.028</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>19</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>125 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>125</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.03</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>150 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>150</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.035</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>21</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>175 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>175</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.04</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>22</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>200 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>200</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>25</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>250 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>250</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.06</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>32.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>300 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>300</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.07</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>40</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>350 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>350</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.08</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>45</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>400 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>400</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.1</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>500 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>500</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.15</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>75</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>750 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>750</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.2</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>100</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1,000 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>1000</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.25</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>150</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1,500 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>1500</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.3</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>200</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>2,000 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>4</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>2000</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.012</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>8</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>10 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>10</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.015</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>10</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>20 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>20</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.016</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>11</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>25 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>25</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.017</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>12</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>30 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>30</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.019</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>14</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>40 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>40</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.021</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>16</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>50 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>50</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.023</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>17</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>75 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>75</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.025</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>18</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>100 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>100</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.028</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>19</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>125 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>125</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.03</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>150 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>150</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.035</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>21</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>175 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>175</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.04</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>22</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>200 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>200</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>25</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>250 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>250</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.06</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>32.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>300 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>300</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.07</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>40</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>350 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>350</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.08</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>45</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>400 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>400</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.1</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>500 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>500</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.15</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>75</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>750 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>750</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.2</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>100</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1,000 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>1000</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.25</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>150</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1,500 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>1500</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.3</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>200</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>2,000 GB (SAN)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>5</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>2000</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>0</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>25 GB (LOCAL)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>0</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>25</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.01</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>7</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>100 GB (LOCAL)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>0</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>100</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.005</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>3.25</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>25 GB (LOCAL)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>25</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.01</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>7</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>100 GB (LOCAL)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>100</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.015</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>9</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>150 GB (LOCAL)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>150</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.02</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>14</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>200 GB (LOCAL)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>200</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.03</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>21</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>300 GB (LOCAL)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>blockDevices</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>device</name>
-                   <value>
-                    <string>2</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>diskImage</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>capacity</name>
-                      <value>
-                       <int>300</int>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>localDiskFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </data>
-     </array>
-    </value>
-   </member>
-   <member>
-    <name>datacenters</name>
-    <value>
-     <array>
-      <data>
-       <value>
-        <struct>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>ams01</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>dal05</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>dal06</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>sea01</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>sjc01</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>sng01</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>wdc01</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </data>
-     </array>
-    </value>
-   </member>
-   <member>
-    <name>memory</name>
-    <value>
-     <array>
-      <data>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.03</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>21</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>1024</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.06</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>42</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>2 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>2048</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.085</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>59.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>3 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>3072</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.11</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>77</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>4 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>4096</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.14</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>98</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>5 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>5120</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.165</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>115.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>6 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>6144</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.195</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>136.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>7 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>7168</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.215</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>150.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>8 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>8192</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.245</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>171.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>9 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>9216</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.265</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>185.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>10 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>10240</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.29</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>203</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>11 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>11264</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.31</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>217</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>12 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>12288</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.33</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>231</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>13 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>13312</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.345</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>241.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>14 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>14336</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.36</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>252</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>15 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>15360</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.375</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>262.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>16 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>16384</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.76</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>525</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>32 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>32768</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>3.5</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>2500</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>48 GB</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>maxMemory</name>
-             <value>
-              <int>49152</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </data>
-     </array>
-    </value>
-   </member>
-   <member>
-    <name>networkComponents</name>
-    <value>
-     <array>
-      <data>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>10 Mbps Public &#38; Private Networks</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>networkComponents</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>maxSpeed</name>
-                   <value>
-                    <int>10</int>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>100 Mbps Private Network</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>networkComponents</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>maxSpeed</name>
-                   <value>
-                    <int>100</int>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.04</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1 Gbps Public &#38; Private Networks</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>networkComponents</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>maxSpeed</name>
-                   <value>
-                    <int>1000</int>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </data>
-     </array>
-    </value>
-   </member>
-   <member>
-    <name>operatingSystems</name>
-    <value>
-     <array>
-      <data>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>CentOS 6.0 - Minimal Install (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>CENTOS_6_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>CentOS 6.0 - Minimal Install (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>CENTOS_6_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>CentOS 5 - Minimal Install (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>CENTOS_5_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>CentOS 5 - Minimal Install (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>CENTOS_5_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>12</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>CloudLinux 6 (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>CLOUDLINUX_6_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>12</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>CloudLinux 6 (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>CLOUDLINUX_6_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>12</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>CloudLinux 5 (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>CLOUDLINUX_5_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>12</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>CloudLinux 5 (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>CLOUDLINUX_5_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Debian GNU/Linux 7.0 Wheezy/Stable - Minimal Install (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>DEBIAN_7_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Debian GNU/Linux 7.0 Wheezy/Stable - Minimal Install (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>DEBIAN_7_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Debian GNU/Linux 6.0 Squeeze/Stable - Minimal Install (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>DEBIAN_6_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Debian GNU/Linux 6.0 Squeeze/Stable - Minimal Install (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>DEBIAN_6_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Debian GNU/Linux 5.0 Lenny/Stable - Minimal Install (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>DEBIAN_5_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Debian GNU/Linux 5.0 Lenny/Stable - Minimal Install (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>DEBIAN_5_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.08</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>45</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Red Hat Enterprise Linux 6 - Minimal Install (64 bit) (1 - 4 Core)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>REDHAT_6_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.12</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>100</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Red Hat Enterprise Linux 6 - Minimal Install (64 bit) (5 - 100 Core)</string>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>-3839</int>
-                </value>
-               </member>
-               <member>
-                <name>softwareDescriptionId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>upgradeItemId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>softwareDescription</name>
-                <value>
-                 <struct>
-                  <member>
-                   <name>controlPanel</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>795</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>longDescription</name>
-                   <value>
-                    <string>Redhat / EL / 6.0-64 Minimal for CCI</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>manufacturer</name>
-                   <value>
-                    <string>Redhat</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>name</name>
-                   <value>
-                    <string>EL</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>operatingSystem</name>
-                   <value>
-                    <int>1</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>referenceCode</name>
-                   <value>
-                    <string>REDHAT_6_64</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>upgradeSoftwareDescriptionId</name>
-                   <value>
-                    <string/>
-                   </value>
-                  </member>
-                  <member>
-                   <name>upgradeSwDescId</name>
-                   <value>
-                    <string/>
-                   </value>
-                  </member>
-                  <member>
-                   <name>version</name>
-                   <value>
-                    <string>6.0-64 Minimal for CCI</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>virtualLicense</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>virtualizationPlatform</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>requiredUser</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>REDHAT_6_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.08</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>45</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Red Hat Enterprise Linux 6 - Minimal Install (32 bit) (1 - 4 Core)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>REDHAT_6_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.12</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>100</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Red Hat Enterprise Linux 6 - Minimal Install (32 bit) (5 - 100 Core)</string>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>-3837</int>
-                </value>
-               </member>
-               <member>
-                <name>softwareDescriptionId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>upgradeItemId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>softwareDescription</name>
-                <value>
-                 <struct>
-                  <member>
-                   <name>controlPanel</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>796</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>longDescription</name>
-                   <value>
-                    <string>Redhat / EL / 6.0-32 Minimal for CCI</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>manufacturer</name>
-                   <value>
-                    <string>Redhat</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>name</name>
-                   <value>
-                    <string>EL</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>operatingSystem</name>
-                   <value>
-                    <int>1</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>referenceCode</name>
-                   <value>
-                    <string>REDHAT_6_32</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>upgradeSoftwareDescriptionId</name>
-                   <value>
-                    <string/>
-                   </value>
-                  </member>
-                  <member>
-                   <name>upgradeSwDescId</name>
-                   <value>
-                    <string/>
-                   </value>
-                  </member>
-                  <member>
-                   <name>version</name>
-                   <value>
-                    <string>6.0-32 Minimal for CCI</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>virtualLicense</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>virtualizationPlatform</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>requiredUser</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>REDHAT_6_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.08</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>45</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Red Hat Enterprise Linux 5 - Minimal Install (64 bit) (1 - 4 Core)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>REDHAT_5_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.12</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>100</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Red Hat Enterprise Linux 5 - Minimal Install (64 bit) (5 - 100 Core)</string>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>-880</int>
-                </value>
-               </member>
-               <member>
-                <name>softwareDescriptionId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>upgradeItemId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>softwareDescription</name>
-                <value>
-                 <struct>
-                  <member>
-                   <name>controlPanel</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>664</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>longDescription</name>
-                   <value>
-                    <string>Redhat / EL / 5.5-64 Minimal for CCI</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>manufacturer</name>
-                   <value>
-                    <string>Redhat</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>name</name>
-                   <value>
-                    <string>EL</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>operatingSystem</name>
-                   <value>
-                    <int>1</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>referenceCode</name>
-                   <value>
-                    <string>REDHAT_5_64</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>upgradeSoftwareDescriptionId</name>
-                   <value>
-                    <string/>
-                   </value>
-                  </member>
-                  <member>
-                   <name>upgradeSwDescId</name>
-                   <value>
-                    <string/>
-                   </value>
-                  </member>
-                  <member>
-                   <name>version</name>
-                   <value>
-                    <string>5.5-64 Minimal for CCI</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>virtualLicense</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>virtualizationPlatform</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>requiredUser</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>REDHAT_5_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.08</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>45</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Red Hat Enterprise Linux 5 - Minimal Install (32 bit) (1 - 4 Core)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>REDHAT_5_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.12</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>100</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Red Hat Enterprise Linux 5 - Minimal Install (32 bit) (5 - 100 Core)</string>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>-879</int>
-                </value>
-               </member>
-               <member>
-                <name>softwareDescriptionId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>upgradeItemId</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>softwareDescription</name>
-                <value>
-                 <struct>
-                  <member>
-                   <name>controlPanel</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>662</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>longDescription</name>
-                   <value>
-                    <string>Redhat / EL / 5.5-32 Minimal for CCI</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>manufacturer</name>
-                   <value>
-                    <string>Redhat</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>name</name>
-                   <value>
-                    <string>EL</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>operatingSystem</name>
-                   <value>
-                    <int>1</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>referenceCode</name>
-                   <value>
-                    <string>REDHAT_5_32</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>upgradeSoftwareDescriptionId</name>
-                   <value>
-                    <int>927</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>upgradeSwDescId</name>
-                   <value>
-                    <int>927</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>version</name>
-                   <value>
-                    <string>5.5-32 Minimal for CCI</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>virtualLicense</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>virtualizationPlatform</name>
-                   <value>
-                    <int>0</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>requiredUser</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>REDHAT_5_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Ubuntu Linux 12.04 LTS Precise Pangolin - Minimal Install (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>UBUNTU_12_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Ubuntu Linux 12.04 LTS Precise Pangolin - Minimal Install (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>UBUNTU_12_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Ubuntu Linux 10.04 LTS Lucid Lynx - Minimal Install (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>UBUNTU_10_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Ubuntu Linux 10.04 LTS Lucid Lynx - Minimal Install (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>UBUNTU_10_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Ubuntu Linux 8 LTS Hardy Heron - Minimal Install (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>UBUNTU_8_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Ubuntu Linux 8 LTS Hardy Heron - Minimal Install (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>UBUNTU_8_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Vyatta 6.6 Community Edition (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>VYATTACE_6.6_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Vyatta 6.5 Community Edition (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>VYATTACE_6.5_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2012 Standard Edition (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2012-STD_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2012 Datacenter Edition (64bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2012-DC_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 Standard Edition SP2 (64bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-STD-SP2_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 Standard Edition SP2 (32bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-STD-SP2_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 Standard SP1 with R2 (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-STD-R2-SP1_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 R2 Standard Edition (64bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-STD-R2_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.1</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 Enterprise Edition SP2 (64bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-ENT-SP2_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.1</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 Enterprise Edition SP2 (32bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-ENT-SP2_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.1</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 R2 Enterprise Edition (64bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-ENT-R2_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 Datacenter Edition SP2 (64bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-DC-SP2_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2008 R2 Datacenter Edition (64bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2008-DC-R2_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2003 Standard SP2 with R2 (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2003-STD-SP2-5_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2003 Standard SP2 with R2 (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2003-STD-SP2-5_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2003 Enterprise SP2 with R2 (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2003-ENT-SP2-5_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>50</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2003 Enterprise SP2 with R2 (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2003-ENT-SP2-5_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2003 Datacenter SP2 with R2 (64 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2003-DC-SP2-1_64</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.05</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Windows Server 2003 Datacenter SP2 with R2 (32 bit)</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>operatingSystemReferenceCode</name>
-             <value>
-              <string>WIN_2003-DC-SP2-1_32</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </data>
-     </array>
-    </value>
-   </member>
-   <member>
-    <name>processors</name>
-    <value>
-     <array>
-      <data>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.07</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>29</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>1 x 2.0 GHz Core</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.14</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>78</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>2 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>2</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.205</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>123.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>3 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>3</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.265</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>165.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>4 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>4</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.325</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>207.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>5 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>5</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.39</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>253</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>6 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>6</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.445</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>291.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>7 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>7</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.495</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>326.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>8 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>8</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.54</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>358</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>9 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>9</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.59</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>393</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>10 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>10</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.635</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>424.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>11 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>11</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.66</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>442</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>12 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>12</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.695</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>466.5</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>13 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>13</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.72</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>484</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>14 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>14</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.74</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>498</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>15 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>15</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.75</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>505</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>16 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>16</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.22</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>159</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Private 1 x 2.0 GHz Core</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>dedicatedAccountHostOnlyFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.3</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>199</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Private 2 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>dedicatedAccountHostOnlyFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>2</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.44</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>299</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Private 4 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>dedicatedAccountHostOnlyFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>4</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>itemPrice</name>
-          <value>
-           <struct>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.58</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>399</string>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Private 8 x 2.0 GHz Cores</string>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-         <member>
-          <name>template</name>
-          <value>
-           <struct>
-            <member>
-             <name>dedicatedAccountHostOnlyFlag</name>
-             <value>
-              <boolean>1</boolean>
-             </value>
-            </member>
-            <member>
-             <name>startCpus</name>
-             <value>
-              <int>8</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </data>
-     </array>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_getObject.xml b/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_getObject.xml
deleted file mode 100644
index cf84f2a..0000000
--- a/libcloud/test/compute/fixtures/softlayer/v3__SoftLayer_Virtual_Guest_getObject.xml
+++ /dev/null
@@ -1,519 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>accountId</name>
-    <value>
-     <int>282402</int>
-    </value>
-   </member>
-   <member>
-    <name>createDate</name>
-    <value>
-     <string>2013-11-12T19:33:57+01:00</string>
-    </value>
-   </member>
-   <member>
-    <name>dedicatedAccountHostOnlyFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>domain</name>
-    <value>
-     <string>example.com</string>
-    </value>
-   </member>
-   <member>
-    <name>fullyQualifiedDomainName</name>
-    <value>
-     <string>libcloud-testing.example.com</string>
-    </value>
-   </member>
-   <member>
-    <name>hostname</name>
-    <value>
-     <string>libcloud-testing</string>
-    </value>
-   </member>
-   <member>
-    <name>id</name>
-    <value>
-     <int>2905761</int>
-    </value>
-   </member>
-   <member>
-    <name>lastPowerStateId</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>lastVerifiedDate</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>maxCpu</name>
-    <value>
-     <int>1</int>
-    </value>
-   </member>
-   <member>
-    <name>maxCpuUnits</name>
-    <value>
-     <string>CORE</string>
-    </value>
-   </member>
-   <member>
-    <name>maxMemory</name>
-    <value>
-     <int>2048</int>
-    </value>
-   </member>
-   <member>
-    <name>metricPollDate</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>modifyDate</name>
-    <value>
-     <string>2013-11-12T19:36:55+01:00</string>
-    </value>
-   </member>
-   <member>
-    <name>startCpus</name>
-    <value>
-     <int>1</int>
-    </value>
-   </member>
-   <member>
-    <name>statusId</name>
-    <value>
-     <int>1001</int>
-    </value>
-   </member>
-   <member>
-    <name>uuid</name>
-    <value>
-     <string>cbc33604-afd0-4820-57c3-6c68ae7c5fe0</string>
-    </value>
-   </member>
-   <member>
-    <name>billingItem</name>
-    <value>
-     <struct>
-      <member>
-       <name>allowCancellationFlag</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>cancellationDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>categoryCode</name>
-       <value>
-        <string>guest_core</string>
-       </value>
-      </member>
-      <member>
-       <name>createDate</name>
-       <value>
-        <string>2013-11-12T19:33:59+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>currentHourlyCharge</name>
-       <value>
-        <string>.056</string>
-       </value>
-      </member>
-      <member>
-       <name>cycleStartDate</name>
-       <value>
-        <string>2013-11-12T19:39:03+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>1 x 2.0 GHz Core</string>
-       </value>
-      </member>
-      <member>
-       <name>domainName</name>
-       <value>
-        <string>example.com</string>
-       </value>
-      </member>
-      <member>
-       <name>hostName</name>
-       <value>
-        <string>libcloud-testing</string>
-       </value>
-      </member>
-      <member>
-       <name>hourlyRecurringFee</name>
-       <value>
-        <string>.056</string>
-       </value>
-      </member>
-      <member>
-       <name>hoursUsed</name>
-       <value>
-        <string>1</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>16538495</int>
-       </value>
-      </member>
-      <member>
-       <name>laborFee</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>laborFeeTaxRate</name>
-       <value>
-        <string>.21</string>
-       </value>
-      </member>
-      <member>
-       <name>lastBillDate</name>
-       <value>
-        <string>2013-11-12T19:39:03+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>modifyDate</name>
-       <value>
-        <string>2013-11-12T19:39:03+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>nextBillDate</name>
-       <value>
-        <string>2013-11-28T07:00:00+01:00</string>
-       </value>
-      </member>
-      <member>
-       <name>oneTimeFee</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>oneTimeFeeTaxRate</name>
-       <value>
-        <string>.21</string>
-       </value>
-      </member>
-      <member>
-       <name>orderItemId</name>
-       <value>
-        <int>22774406</int>
-       </value>
-      </member>
-      <member>
-       <name>parentId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>recurringFee</name>
-       <value>
-        <string>.056</string>
-       </value>
-      </member>
-      <member>
-       <name>recurringFeeTaxRate</name>
-       <value>
-        <string>.21</string>
-       </value>
-      </member>
-      <member>
-       <name>recurringMonths</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>serviceProviderId</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>setupFee</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>setupFeeTaxRate</name>
-       <value>
-        <string>.21</string>
-       </value>
-      </member>
-      <member>
-       <name>resourceTableId</name>
-       <value>
-        <int>2905761</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-   <member>
-    <name>globalIdentifier</name>
-    <value>
-     <string>633fd9e3-4cf7-4c78-b746-c2b76e2c8b88</string>
-    </value>
-   </member>
-   <member>
-    <name>managedResourceFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>operatingSystem</name>
-    <value>
-     <struct>
-      <member>
-       <name>hardwareId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>2211183</int>
-       </value>
-      </member>
-      <member>
-       <name>manufacturerLicenseInstance</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>passwords</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>createDate</name>
-             <value>
-              <string>2013-11-12T19:34:16+01:00</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>1867597</int>
-             </value>
-            </member>
-            <member>
-             <name>modifyDate</name>
-             <value>
-              <string>2013-11-12T19:34:16+01:00</string>
-             </value>
-            </member>
-            <member>
-             <name>password</name>
-             <value>
-              <string>LTSp4cpJ</string>
-             </value>
-            </member>
-            <member>
-             <name>port</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>softwareId</name>
-             <value>
-              <int>2211183</int>
-             </value>
-            </member>
-            <member>
-             <name>username</name>
-             <value>
-              <string>root</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>softwareLicense</name>
-       <value>
-        <struct>
-         <member>
-          <name>id</name>
-          <value>
-           <int>1523</int>
-          </value>
-         </member>
-         <member>
-          <name>softwareDescriptionId</name>
-          <value>
-           <int>1163</int>
-          </value>
-         </member>
-         <member>
-          <name>softwareDescription</name>
-          <value>
-           <struct>
-            <member>
-             <name>controlPanel</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>1163</int>
-             </value>
-            </member>
-            <member>
-             <name>longDescription</name>
-             <value>
-              <string>Debian / Debian / 7.0.0-64 Minimal for CCI</string>
-             </value>
-            </member>
-            <member>
-             <name>manufacturer</name>
-             <value>
-              <string>Debian</string>
-             </value>
-            </member>
-            <member>
-             <name>name</name>
-             <value>
-              <string>Debian</string>
-             </value>
-            </member>
-            <member>
-             <name>operatingSystem</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-            <member>
-             <name>referenceCode</name>
-             <value>
-              <string>DEBIAN_7_64</string>
-             </value>
-            </member>
-            <member>
-             <name>upgradeSoftwareDescriptionId</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>upgradeSwDescId</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>version</name>
-             <value>
-              <string>7.0.0-64 Minimal for CCI</string>
-             </value>
-            </member>
-            <member>
-             <name>virtualLicense</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-            <member>
-             <name>virtualizationPlatform</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-            <member>
-             <name>requiredUser</name>
-             <value>
-              <string>root</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-   <member>
-    <name>powerState</name>
-    <value>
-     <struct>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>RUNNING</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>Running</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-   <member>
-    <name>primaryBackendIpAddress</name>
-    <value>
-     <string>10.55.62.124</string>
-    </value>
-   </member>
-   <member>
-    <name>primaryIpAddress</name>
-    <value>
-     <string>50.97.215.202</string>
-    </value>
-   </member>
-   <member>
-    <name>provisionDate</name>
-    <value>
-     <string>2013-11-12T19:39:03+01:00</string>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/compute/fixtures/voxel/create_node.xml b/libcloud/test/compute/fixtures/voxel/create_node.xml
deleted file mode 100644
index e33bdd6..0000000
--- a/libcloud/test/compute/fixtures/voxel/create_node.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<rsp stat="ok">
-  <device>
-     <id>1234</id>
-     <last_update>1235386846</last_update>
-     <status>QUEUED</status>
-  </device>
-</rsp>
diff --git a/libcloud/test/compute/fixtures/voxel/failure.xml b/libcloud/test/compute/fixtures/voxel/failure.xml
deleted file mode 100644
index 1424e81..0000000
--- a/libcloud/test/compute/fixtures/voxel/failure.xml
+++ /dev/null
@@ -1 +0,0 @@
-<rsp stat="fail"/>
diff --git a/libcloud/test/compute/fixtures/voxel/images.xml b/libcloud/test/compute/fixtures/voxel/images.xml
deleted file mode 100644
index 7d83ea6..0000000
--- a/libcloud/test/compute/fixtures/voxel/images.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<rsp stat="ok">
-    <images>
-      <image id="3" summary="CentOS 5, 32-bit, base install">
-        <operating_system>
-          <architecture>32</architecture>
-          <family>Linux</family>
-          <version>2.6.18</version>
-          <product_family>CentOS</product_family>
-          <product_version>5.1</product_version>
-          <admin_username>root</admin_username>
-        </operating_system>
-        <filesystem>
-          <type>ext3</type>
-          <size units="MB">880</size>
-        </filesystem>
-        <description>Base install of CentOS 5.1 i386.</description>
-      </image>
-    </images>
-</rsp>
diff --git a/libcloud/test/compute/fixtures/voxel/locations.xml b/libcloud/test/compute/fixtures/voxel/locations.xml
deleted file mode 100644
index a8b81b1..0000000
--- a/libcloud/test/compute/fixtures/voxel/locations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<rsp stat="ok">
-    <facilities>
-        <facility label="AMS2" available="true">
-            <description>Amsterdam</description>
-        </facility>
-        <facility label="LGA6" available="true">
-            <description>New York</description>
-        </facility>
-    </facilities>
-</rsp>
diff --git a/libcloud/test/compute/fixtures/voxel/nodes.xml b/libcloud/test/compute/fixtures/voxel/nodes.xml
deleted file mode 100644
index f9a3117..0000000
--- a/libcloud/test/compute/fixtures/voxel/nodes.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<rsp stat="ok">
-  <devices>
-	<device id="200776" label="www.voxel.net">
-		<description>Z100.12</description>
-		<type id="2">Virtual Server</type>
-		<model id="56">Voxrox Intel Platform</model>
-		<location>
-			<facility id="19" code="lga7">LGA7 - XO / 12th Floor</facility>
-			<zone id="26">Private cage</zone>
-			<cage id="29">primary</cage>
-			<row id="49">Row Z</row>
-			<rack id="224">Rack 100</rack>
-			<position>12</position>
-		</location>
-		<ipassignments>
-			<ipassignment type="backend"
-				description="lga6 backend network; vlan 000">
-					172.x.x.x
-			</ipassignment>
-		</ipassignments>
-		<accessmethods>
-			<accessmethod type="ssh">
-				<username>user</username>
-			</accessmethod>
-			<accessmethod type="admin">
-				<username>root</username>
-			</accessmethod>
-			<accessmethod type="remoteconsole">
-				<address>zz.zz.us.voxel.net</address>
-				<port>55555</port>
-				<username>user</username>
-			</accessmethod>
-		</accessmethods>
-		<service id="777616">Voxel TruManaged Server Configuration 1</service>
-	</device>
-    ...
-  </devices>
-</rsp>
diff --git a/libcloud/test/compute/fixtures/voxel/success.xml b/libcloud/test/compute/fixtures/voxel/success.xml
deleted file mode 100644
index c2d0c8d..0000000
--- a/libcloud/test/compute/fixtures/voxel/success.xml
+++ /dev/null
@@ -1 +0,0 @@
-<rsp stat="ok"/>
diff --git a/libcloud/test/compute/fixtures/voxel/unauthorized.xml b/libcloud/test/compute/fixtures/voxel/unauthorized.xml
deleted file mode 100644
index 89d7df0..0000000
--- a/libcloud/test/compute/fixtures/voxel/unauthorized.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0"?>
-<rsp stat="fail">
-  <err code="1" msg="Invalid login or password"/>
-  <method>voxel.devices.list</method>
-  <parameters>
-    <param name="timestamp">2010-02-10T23:39:25.808107+0000</param>
-    <param name="key">authshouldfail</param>
-    <param name="api_sig">ae069bb835e998622caaddaeff8c98e0</param>
-  </parameters>
-  <string_to_sign>YOUR_SECRETtimestamp2010-02-10T23:39:25.808107+0000methodvoxel.devices.listkeyauthshouldfail</string_to_sign>
-</rsp>
diff --git a/libcloud/test/compute/test_bluebox.py b/libcloud/test/compute/test_bluebox.py
deleted file mode 100644
index 02805b8..0000000
--- a/libcloud/test/compute/test_bluebox.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.utils.py3 import httplib
-from libcloud.compute.base import Node, NodeAuthPassword
-from libcloud.test.secrets import BLUEBOX_PARAMS
-from libcloud.compute.types import NodeState
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.compute.drivers.bluebox import BlueboxNodeDriver as Bluebox
-
-
-class BlueboxTest(unittest.TestCase):
-    def setUp(self):
-        Bluebox.connectionCls.conn_class = BlueboxMockHttp
-        self.driver = Bluebox(*BLUEBOX_PARAMS)
-
-    def test_create_node(self):
-        node = self.driver.create_node(
-            name="foo",
-            size=self.driver.list_sizes()[0],
-            image=self.driver.list_images()[0],
-            auth=NodeAuthPassword("test123"),
-        )
-        self.assertTrue(isinstance(node, Node))
-        self.assertEqual(node.state, NodeState.PENDING)
-        self.assertEqual(node.name, "foo.apitest.blueboxgrid.com")
-
-    def test_list_nodes(self):
-        node = self.driver.list_nodes()[0]
-        self.assertEqual(node.name, "foo.apitest.blueboxgrid.com")
-        self.assertEqual(node.state, NodeState.RUNNING)
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-        self.assertEqual(len(sizes), 4)
-
-        ids = [s.id for s in sizes]
-
-        for size in sizes:
-            self.assertTrue(size.price > 0)
-
-        self.assertTrue("94fd37a7-2606-47f7-84d5-9000deda52ae" in ids)
-        self.assertTrue("b412f354-5056-4bf0-a42f-6ddd998aa092" in ids)
-        self.assertTrue("0cd183d3-0287-4b1a-8288-b3ea8302ed58" in ids)
-        self.assertTrue("b9b87a5b-2885-4a2e-b434-44a163ca6251" in ids)
-
-    def test_list_images(self):
-        images = self.driver.list_images()
-        image = images[0]
-        self.assertEqual(len(images), 10)
-        self.assertEqual(image.name, "CentOS 5 (Latest Release)")
-        self.assertEqual(image.id, "c66b8145-f768-45ef-9878-395bf8b1b7ff")
-
-    def test_reboot_node(self):
-        node = self.driver.list_nodes()[0]
-        ret = self.driver.reboot_node(node)
-        self.assertTrue(ret)
-
-    def test_destroy_node(self):
-        node = self.driver.list_nodes()[0]
-        ret = self.driver.destroy_node(node)
-        self.assertTrue(ret)
-
-
-class BlueboxMockHttp(MockHttp):
-
-    fixtures = ComputeFileFixtures("bluebox")
-
-    def _api_blocks_json(self, method, url, body, headers):
-        if method == "POST":
-            body = self.fixtures.load("api_blocks_json_post.json")
-        else:
-            body = self.fixtures.load("api_blocks_json.json")
-        return (httplib.OK, body, headers, httplib.responses[httplib.OK])
-
-    def _api_block_products_json(self, method, url, body, headers):
-        body = self.fixtures.load("api_block_products_json.json")
-        return (httplib.OK, body, headers, httplib.responses[httplib.OK])
-
-    def _api_block_templates_json(self, method, url, body, headers):
-        body = self.fixtures.load("api_block_templates_json.json")
-        return (httplib.OK, body, headers, httplib.responses[httplib.OK])
-
-    def _api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json(self, method, url, body, headers):
-        if method == "DELETE":
-            body = self.fixtures.load(
-                "api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json_delete.json"
-            )
-        else:
-            body = self.fixtures.load("api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_json.json")
-        return (httplib.OK, body, headers, httplib.responses[httplib.OK])
-
-    def _api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_reboot_json(
-        self, method, url, body, headers
-    ):
-        body = self.fixtures.load(
-            "api_blocks_99df878c_6e5c_4945_a635_d94da9fd3146_reboot_json.json"
-        )
-        return (httplib.OK, body, headers, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_bsnl.py b/libcloud/test/compute/test_bsnl.py
deleted file mode 100644
index 1c72a5b..0000000
--- a/libcloud/test/compute/test_bsnl.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import unittest
-
-from libcloud.compute.drivers.bsnl import BSNLNodeDriver
-from libcloud.test.compute.test_dimensiondata_v2_3 import (
-    DimensionDataMockHttp,
-    DimensionData_v2_3_Tests,
-)
-
-
-class BSNLTests(DimensionData_v2_3_Tests, unittest.TestCase):
-    def setUp(self):
-        BSNLNodeDriver.connectionCls.conn_class = DimensionDataMockHttp
-        BSNLNodeDriver.connectionCls.active_api_version = "2.3"
-        DimensionDataMockHttp.type = None
-        self.driver = BSNLNodeDriver("user", "password")
diff --git a/libcloud/test/compute/test_cloudwatt.py b/libcloud/test/compute/test_cloudwatt.py
deleted file mode 100644
index 7105c07..0000000
--- a/libcloud/test/compute/test_cloudwatt.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import unittest
-
-from libcloud.compute.drivers.cloudwatt import CloudwattNodeDriver
-from libcloud.test.compute.test_openstack import OpenStack_1_1_Tests
-
-
-class CloudwattNodeDriverTests(OpenStack_1_1_Tests, unittest.TestCase):
-    driver_klass = CloudwattNodeDriver
-    driver_type = CloudwattNodeDriver
-
-    # These tests dont work because cloudwatt doesn't pass,
-    # auth tokens- hide them from the base class
-    def test_ex_force_auth_token_passed_to_connection(self):
-        pass
-
-    def test_auth_token_without_base_url_raises_exception(self):
-        pass
-
-    def test_ex_auth_cache_passed_to_identity_connection(self):
-        pass
-
-    def test_unauthorized_clears_cached_auth_context(self):
-        pass
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_ecp.py b/libcloud/test/compute/test_ecp.py
deleted file mode 100644
index 90aaa1f..0000000
--- a/libcloud/test/compute/test_ecp.py
+++ /dev/null
@@ -1,128 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.utils.py3 import httplib
-from libcloud.test.compute import TestCaseMixin
-from libcloud.test.secrets import ECP_PARAMS
-from libcloud.compute.types import NodeState
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.compute.drivers.ecp import ECPNodeDriver
-
-
-class ECPTests(unittest.TestCase, TestCaseMixin):
-    def setUp(self):
-        ECPNodeDriver.connectionCls.conn_class = ECPMockHttp
-        self.driver = ECPNodeDriver(*ECP_PARAMS, host="dummy")
-
-    def test_list_nodes(self):
-        nodes = self.driver.list_nodes()
-        self.assertEqual(len(nodes), 2)
-        node = nodes[0]
-        self.assertEqual(node.id, "1")
-        self.assertEqual(node.name, "dummy-1")
-        self.assertEqual(node.public_ips[0], "42.78.124.75")
-        self.assertEqual(node.state, NodeState.RUNNING)
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-        self.assertEqual(len(sizes), 3)
-        size = sizes[0]
-        self.assertEqual(size.id, "1")
-        self.assertEqual(size.ram, 512)
-        self.assertEqual(size.disk, 0)
-        self.assertEqual(size.bandwidth, 0)
-        self.assertEqual(size.price, 0)
-
-    def test_list_images(self):
-        images = self.driver.list_images()
-        self.assertEqual(len(images), 2)
-        self.assertEqual(
-            images[0].name,
-            "centos54: AUTO import from /opt/enomalism2/repo/5d407a68-c76c-11de-86e5-000475cb7577.xvm2",
-        )
-        self.assertEqual(images[0].id, "1")
-
-        name = "centos54 two: AUTO import from /opt/enomalism2/repo/5d407a68-c76c-11de-86e5-000475cb7577.xvm2"
-        self.assertEqual(images[1].name, name)
-        self.assertEqual(images[1].id, "2")
-
-    def test_reboot_node(self):
-        # Raises exception on failure
-        node = self.driver.list_nodes()[0]
-        self.driver.reboot_node(node)
-
-    def test_destroy_node(self):
-        # Raises exception on failure
-        node = self.driver.list_nodes()[0]
-        self.driver.destroy_node(node)
-
-    def test_create_node(self):
-        # Raises exception on failure
-        size = self.driver.list_sizes()[0]
-        image = self.driver.list_images()[0]
-        node = self.driver.create_node(name="api.ivan.net.nz", image=image, size=size)
-        self.assertEqual(node.name, "api.ivan.net.nz")
-        self.assertEqual(node.id, "1234")
-
-
-class ECPMockHttp(MockHttp):
-
-    fixtures = ComputeFileFixtures("ecp")
-
-    def _modules_hosting(self, method, url, body, headers):
-        headers = {}
-        headers["set-cookie"] = "vcloud-token=testtoken"
-        body = "Anything"
-        return (httplib.OK, body, headers, httplib.responses[httplib.OK])
-
-    def _rest_hosting_vm_1(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("vm_1_get.json")
-        if method == "POST":
-            if body.find("delete", 0):
-                body = self.fixtures.load("vm_1_action_delete.json")
-            if body.find("stop", 0):
-                body = self.fixtures.load("vm_1_action_stop.json")
-            if body.find("start", 0):
-                body = self.fixtures.load("vm_1_action_start.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _rest_hosting_vm(self, method, url, body, headers):
-        if method == "PUT":
-            body = self.fixtures.load("vm_put.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _rest_hosting_vm_list(self, method, url, body, headers):
-        body = self.fixtures.load("vm_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _rest_hosting_htemplate_list(self, method, url, body, headers):
-        body = self.fixtures.load("htemplate_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _rest_hosting_network_list(self, method, url, body, headers):
-        body = self.fixtures.load("network_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _rest_hosting_ptemplate_list(self, method, url, body, headers):
-        body = self.fixtures.load("ptemplate_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_elasticstack.py b/libcloud/test/compute/test_elasticstack.py
deleted file mode 100644
index 4696c9b..0000000
--- a/libcloud/test/compute/test_elasticstack.py
+++ /dev/null
@@ -1,257 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-
-from libcloud.test import MockHttp, unittest
-from libcloud.utils.py3 import httplib, assertRaisesRegex
-from libcloud.common.types import InvalidCredsError, MalformedResponseError
-from libcloud.compute.base import Node
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.compute.drivers.serverlove import ServerLoveNodeDriver as ServerLove
-from libcloud.compute.drivers.skalicloud import SkaliCloudNodeDriver as SkaliCloud
-from libcloud.compute.drivers.elastichosts import ElasticHostsNodeDriver as ElasticHosts
-from libcloud.compute.drivers.elasticstack import ElasticStackException
-
-
-class ElasticStackTestCase:
-    def setUp(self):
-        # Re-use ElasticHosts fixtures for the base ElasticStack platform tests
-        self.mockHttp = ElasticStackMockHttp
-        self.mockHttp.type = None
-
-        self.node = Node(
-            id=72258,
-            name=None,
-            state=None,
-            public_ips=None,
-            private_ips=None,
-            driver=self.driver,
-        )
-
-    def test_invalid_creds(self):
-        self.mockHttp.type = "UNAUTHORIZED"
-        try:
-            self.driver.list_nodes()
-        except InvalidCredsError as e:
-            self.assertEqual(True, isinstance(e, InvalidCredsError))
-        else:
-            self.fail("test should have thrown")
-
-    def test_malformed_response(self):
-        self.mockHttp.type = "MALFORMED"
-        try:
-            self.driver.list_nodes()
-        except MalformedResponseError:
-            pass
-        else:
-            self.fail("test should have thrown")
-
-    def test_parse_error(self):
-        self.mockHttp.type = "PARSE_ERROR"
-        try:
-            self.driver.list_nodes()
-        except Exception as e:
-            self.assertTrue(str(e).find("X-Elastic-Error") != -1)
-        else:
-            self.fail("test should have thrown")
-
-    def test_ex_set_node_configuration(self):
-        success = self.driver.ex_set_node_configuration(node=self.node, name="name", cpu="2")
-        self.assertTrue(success)
-
-    def test_ex_set_node_configuration_invalid_keys(self):
-        try:
-            self.driver.ex_set_node_configuration(node=self.node, foo="bar")
-        except ElasticStackException:
-            pass
-        else:
-            self.fail("Invalid option specified, but an exception was not thrown")
-
-    def test_list_nodes(self):
-        nodes = self.driver.list_nodes()
-        self.assertTrue(isinstance(nodes, list))
-        self.assertEqual(len(nodes), 1)
-
-        node = nodes[0]
-        self.assertEqual(node.public_ips[0], "1.2.3.4")
-        self.assertEqual(node.public_ips[1], "1.2.3.5")
-        self.assertEqual(node.extra["smp"], 1)
-        self.assertEqual(node.extra["ide:0:0"], "b6049e7a-aa1b-47f9-b21d-cdf2354e28d3")
-
-    def test_list_offline_node(self):
-        self.mockHttp.type = "OFFLINE"
-
-        nodes = self.driver.list_nodes()
-        self.assertTrue(isinstance(nodes, list))
-        self.assertEqual(len(nodes), 1)
-
-        node = nodes[0]
-        self.assertEqual(len(node.public_ips), 0, "Public IPs was not empty")
-        self.assertNotIn("smp", node.extra)
-        self.assertNotIn("started", node.extra)
-        self.assertEqual(node.extra["ide:0:0"], "b6049e7a-aa1b-47f9-b21d-cdf2354e28d3")
-
-    def test_list_sizes(self):
-        images = self.driver.list_sizes()
-        self.assertEqual(len(images), 6)
-        image = [i for i in images if i.id == "small"][0]
-        self.assertEqual(image.id, "small")
-        self.assertEqual(image.name, "Small instance")
-        self.assertEqual(image.cpu, 2000)
-        self.assertEqual(image.ram, 1700)
-        self.assertEqual(image.disk, 160)
-        self.assertTrue(isinstance(image.price, float))
-
-    def test_list_images(self):
-        images = self.driver.list_images()
-        self.assertEqual(len(images), len(self.driver._standard_drives))
-
-        for uuid, values in list(self.driver._standard_drives.items()):
-            self.assertEqual(len([image for image in images if image.id == uuid]), 1)
-
-    def test_reboot_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.reboot_node(node))
-
-    def test_destroy_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.destroy_node(node))
-
-    def test_create_node(self):
-        sizes = self.driver.list_sizes()
-        size = [s for s in sizes if s.id == "large"][0]
-        image = self.image
-
-        self.assertTrue(self.driver.create_node(name="api.ivan.net.nz", image=image, size=size))
-
-
-class ElasticHostsTestCase(ElasticStackTestCase, unittest.TestCase):
-    def setUp(self):
-        ElasticHosts.connectionCls.conn_class = ElasticStackMockHttp
-
-        self.driver = ElasticHosts("foo", "bar")
-        images = self.driver.list_images()
-        self.image = [i for i in images if i.id == "38df0986-4d85-4b76-b502-3878ffc80161"][0]
-        super().setUp()
-
-    def test_multiple_drivers_with_different_regions(self):
-        driver1 = ElasticHosts("foo", "bar", region="lon-p")
-        driver2 = ElasticHosts("foo", "bar", region="sat-p")
-
-        self.assertTrue(driver1.connection.host.startswith("api-lon-p"))
-        self.assertTrue(driver2.connection.host.startswith("api-sat-p"))
-
-        driver1.list_nodes()
-        driver2.list_nodes()
-        driver1.list_nodes()
-
-        self.assertTrue(driver1.connection.host.startswith("api-lon-p"))
-        self.assertTrue(driver2.connection.host.startswith("api-sat-p"))
-
-    def test_invalid_region(self):
-        expected_msg = r"Invalid region.+"
-        assertRaisesRegex(
-            self, ValueError, expected_msg, ElasticHosts, "foo", "bar", region="invalid"
-        )
-
-
-class SkaliCloudTestCase(ElasticStackTestCase, unittest.TestCase):
-    def setUp(self):
-        SkaliCloud.connectionCls.conn_class = ElasticStackMockHttp
-
-        self.driver = SkaliCloud("foo", "bar")
-
-        images = self.driver.list_images()
-        self.image = [i for i in images if i.id == "90aa51f2-15c0-4cff-81ee-e93aa20b9468"][0]
-        super().setUp()
-
-
-class ServerLoveTestCase(ElasticStackTestCase, unittest.TestCase):
-    def setUp(self):
-        ServerLove.connectionCls.conn_class = ElasticStackMockHttp
-
-        self.driver = ServerLove("foo", "bar")
-
-        images = self.driver.list_images()
-        self.image = [i for i in images if i.id == "679f5f44-0be7-4745-a658-cccd4334c1aa"][0]
-        super().setUp()
-
-
-class ElasticStackMockHttp(MockHttp):
-
-    fixtures = ComputeFileFixtures("elastichosts")
-
-    def _servers_info_UNAUTHORIZED(self, method, url, body, headers):
-        return (httplib.UNAUTHORIZED, body, {}, httplib.responses[httplib.NO_CONTENT])
-
-    def _servers_info_MALFORMED(self, method, url, body, headers):
-        body = "{malformed: '"
-        return (httplib.OK, body, {}, httplib.responses[httplib.NO_CONTENT])
-
-    def _servers_info_PARSE_ERROR(self, method, url, body, headers):
-        return (505, body, {}, httplib.responses[httplib.NO_CONTENT])
-
-    def _servers_b605ca90_c3e6_4cee_85f8_a8ebdf8f9903_reset(self, method, url, body, headers):
-        return (httplib.NO_CONTENT, body, {}, httplib.responses[httplib.NO_CONTENT])
-
-    def _servers_b605ca90_c3e6_4cee_85f8_a8ebdf8f9903_destroy(self, method, url, body, headers):
-        return (httplib.NO_CONTENT, body, {}, httplib.responses[httplib.NO_CONTENT])
-
-    def _drives_create(self, method, url, body, headers):
-        body = self.fixtures.load("drives_create.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _drives_0012e24a_6eae_4279_9912_3432f698cec8_image_38df0986_4d85_4b76_b502_3878ffc80161_gunzip(
-        self, method, url, body, headers
-    ):
-        # ElasticHosts image
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _drives_0012e24a_6eae_4279_9912_3432f698cec8_image_90aa51f2_15c0_4cff_81ee_e93aa20b9468_gunzip(
-        self, method, url, body, headers
-    ):
-        # Skalikloud image
-        return (httplib.NO_CONTENT, body, {}, httplib.responses[httplib.NO_CONTENT])
-
-    def _drives_0012e24a_6eae_4279_9912_3432f698cec8_image_679f5f44_0be7_4745_a658_cccd4334c1aa_gunzip(
-        self, method, url, body, headers
-    ):
-        # ServerLove image
-        return (httplib.NO_CONTENT, body, {}, httplib.responses[httplib.NO_CONTENT])
-
-    def _drives_0012e24a_6eae_4279_9912_3432f698cec8_info(self, method, url, body, headers):
-        body = self.fixtures.load("drives_info.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _servers_create(self, method, url, body, headers):
-        body = self.fixtures.load("servers_create.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _servers_info(self, method, url, body, headers):
-        body = self.fixtures.load("servers_info.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _servers_info_OFFLINE(self, method, url, body, headers):
-        body = self.fixtures.load("offline_servers_info.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _servers_72258_set(self, method, url, body, headers):
-        body = "{}"
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_gogrid.py b/libcloud/test/compute/test_gogrid.py
deleted file mode 100644
index e473610..0000000
--- a/libcloud/test/compute/test_gogrid.py
+++ /dev/null
@@ -1,299 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-import sys
-import unittest
-
-from libcloud.test import MockHttp  # pylint: disable-msg=E0611
-from libcloud.utils.py3 import httplib, parse_qs, urlparse
-from libcloud.common.types import LibcloudError, InvalidCredsError
-from libcloud.compute.base import Node, NodeSize, NodeImage, NodeState, NodeLocation
-from libcloud.test.compute import TestCaseMixin  # pylint: disable-msg=E0611
-from libcloud.common.gogrid import GoGridIpAddress
-from libcloud.test.file_fixtures import ComputeFileFixtures  # pylint: disable-msg=E0611
-from libcloud.compute.drivers.gogrid import GoGridNodeDriver
-
-
-class GoGridTests(unittest.TestCase, TestCaseMixin):
-    def setUp(self):
-        GoGridNodeDriver.connectionCls.conn_class = GoGridMockHttp
-        GoGridMockHttp.type = None
-        self.driver = GoGridNodeDriver("foo", "bar")
-
-    def _get_test_512Mb_node_size(self):
-        return NodeSize(
-            id="512Mb",
-            name=None,
-            ram=None,
-            disk=None,
-            bandwidth=None,
-            price=None,
-            driver=self.driver,
-        )
-
-    def test_create_node(self):
-        image = NodeImage(1531, None, self.driver)
-        node = self.driver.create_node(
-            name="test1", image=image, size=self._get_test_512Mb_node_size()
-        )
-        self.assertEqual(node.name, "test1")
-        self.assertTrue(node.id is not None)
-        self.assertEqual(node.extra["password"], "bebebe")
-
-    def test_list_nodes(self):
-        node = self.driver.list_nodes()[0]
-
-        self.assertEqual(node.id, "90967")
-        self.assertEqual(node.extra["password"], "bebebe")
-        self.assertEqual(node.extra["description"], "test server")
-
-    def test_reboot_node(self):
-        node = Node(90967, None, None, None, None, self.driver)
-        ret = self.driver.reboot_node(node)
-        self.assertTrue(ret)
-
-    def test_reboot_node_not_successful(self):
-        GoGridMockHttp.type = "FAIL"
-        node = Node(90967, None, None, None, None, self.driver)
-
-        try:
-            self.driver.reboot_node(node)
-        except Exception:
-            pass
-        else:
-            self.fail("Exception was not thrown")
-
-    def test_destroy_node(self):
-        node = Node(90967, None, None, None, None, self.driver)
-        ret = self.driver.destroy_node(node)
-        self.assertTrue(ret)
-
-    def test_list_images(self):
-        images = self.driver.list_images()
-        image = images[0]
-        self.assertEqual(len(images), 4)
-        self.assertEqual(image.name, "CentOS 5.3 (32-bit) w/ None")
-        self.assertEqual(image.id, "1531")
-
-        location = NodeLocation(
-            id="gogrid/GSI-939ef909-84b8-4a2f-ad56-02ccd7da05ff.img",
-            name="test location",
-            country="Slovenia",
-            driver=self.driver,
-        )
-        images = self.driver.list_images(location=location)
-        image = images[0]
-        self.assertEqual(len(images), 4)
-        self.assertEqual(image.name, "CentOS 5.3 (32-bit) w/ None")
-        self.assertEqual(image.id, "1531")
-
-    def test_malformed_reply(self):
-        GoGridMockHttp.type = "FAIL"
-        try:
-            self.driver.list_images()
-        except LibcloudError as e:
-            self.assertTrue(isinstance(e, LibcloudError))
-        else:
-            self.fail("test should have thrown")
-
-    def test_invalid_creds(self):
-        GoGridMockHttp.type = "FAIL"
-        try:
-            self.driver.list_nodes()
-        except InvalidCredsError as e:
-            self.assertTrue(e.driver is not None)
-            self.assertEqual(e.driver.name, self.driver.name)
-        else:
-            self.fail("test should have thrown")
-
-    def test_node_creation_without_free_public_ips(self):
-        GoGridMockHttp.type = "NOPUBIPS"
-        try:
-            image = NodeImage(1531, None, self.driver)
-            self.driver.create_node(
-                name="test1", image=image, size=self._get_test_512Mb_node_size()
-            )
-        except LibcloudError as e:
-            self.assertTrue(isinstance(e, LibcloudError))
-            self.assertTrue(e.driver is not None)
-            self.assertEqual(e.driver.name, self.driver.name)
-        else:
-            self.fail("test should have thrown")
-
-    def test_list_locations(self):
-        locations = self.driver.list_locations()
-        location_names = [location.name for location in locations]
-
-        self.assertEqual(len(locations), 2)
-        for i in 0, 1:
-            self.assertTrue(isinstance(locations[i], NodeLocation))
-        self.assertTrue("US-West-1" in location_names)
-        self.assertTrue("US-East-1" in location_names)
-
-    def test_ex_save_image(self):
-        node = self.driver.list_nodes()[0]
-        image = self.driver.ex_save_image(node, "testimage")
-        self.assertEqual(image.name, "testimage")
-
-    def test_ex_edit_image(self):
-        image = self.driver.list_images()[0]
-        ret = self.driver.ex_edit_image(
-            image=image, public=False, ex_description="test", name="testname"
-        )
-
-        self.assertTrue(isinstance(ret, NodeImage))
-
-    def test_ex_edit_node(self):
-        node = Node(
-            id=90967,
-            name=None,
-            state=None,
-            public_ips=None,
-            private_ips=None,
-            driver=self.driver,
-        )
-        ret = self.driver.ex_edit_node(node=node, size=self._get_test_512Mb_node_size())
-
-        self.assertTrue(isinstance(ret, Node))
-
-    def test_ex_list_ips(self):
-        ips = self.driver.ex_list_ips()
-
-        expected_ips = {
-            "192.168.75.66": GoGridIpAddress(
-                id="5348099",
-                ip="192.168.75.66",
-                public=True,
-                state="Unassigned",
-                subnet="192.168.75.64/255.255.255.240",
-            ),
-            "192.168.75.67": GoGridIpAddress(
-                id="5348100",
-                ip="192.168.75.67",
-                public=True,
-                state="Assigned",
-                subnet="192.168.75.64/255.255.255.240",
-            ),
-            "192.168.75.68": GoGridIpAddress(
-                id="5348101",
-                ip="192.168.75.68",
-                public=False,
-                state="Unassigned",
-                subnet="192.168.75.64/255.255.255.240",
-            ),
-        }
-
-        self.assertEqual(len(expected_ips), 3)
-
-        for ip in ips:
-            self.assertTrue(ip.ip in expected_ips)
-            self.assertEqual(ip.public, expected_ips[ip.ip].public)
-            self.assertEqual(ip.state, expected_ips[ip.ip].state)
-            self.assertEqual(ip.subnet, expected_ips[ip.ip].subnet)
-
-            del expected_ips[ip.ip]
-
-        self.assertEqual(len(expected_ips), 0)
-
-    def test_get_state_invalid(self):
-        state = self.driver._get_state("invalid")
-        self.assertEqual(state, NodeState.UNKNOWN)
-
-
-class GoGridMockHttp(MockHttp):
-
-    fixtures = ComputeFileFixtures("gogrid")
-
-    def _api_grid_image_list(self, method, url, body, headers):
-        body = self.fixtures.load("image_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_image_list_FAIL(self, method, url, body, headers):
-        body = "<h3>some non valid json here</h3>"
-        return (
-            httplib.SERVICE_UNAVAILABLE,
-            body,
-            {},
-            httplib.responses[httplib.SERVICE_UNAVAILABLE],
-        )
-
-    def _api_grid_server_list(self, method, url, body, headers):
-        body = self.fixtures.load("server_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    _api_grid_server_list_NOPUBIPS = _api_grid_server_list
-
-    def _api_grid_server_list_FAIL(self, method, url, body, headers):
-        return (httplib.FORBIDDEN, "123", {}, httplib.responses[httplib.FORBIDDEN])
-
-    def _api_grid_ip_list(self, method, url, body, headers):
-        body = self.fixtures.load("ip_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_ip_list_NOPUBIPS(self, method, url, body, headers):
-        body = self.fixtures.load("ip_list_empty.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_server_power(self, method, url, body, headers):
-        body = self.fixtures.load("server_power.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_server_power_FAIL(self, method, url, body, headers):
-        body = self.fixtures.load("server_power_fail.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_server_add(self, method, url, body, headers):
-        body = self.fixtures.load("server_add.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    _api_grid_server_add_NOPUBIPS = _api_grid_server_add
-
-    def _api_grid_server_delete(self, method, url, body, headers):
-        body = self.fixtures.load("server_delete.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_server_edit(self, method, url, body, headers):
-        body = self.fixtures.load("server_edit.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_support_password_list(self, method, url, body, headers):
-        body = self.fixtures.load("password_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    _api_support_password_list_NOPUBIPS = _api_support_password_list
-
-    def _api_grid_image_save(self, method, url, body, headers):
-        body = self.fixtures.load("image_save.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_image_edit(self, method, url, body, headers):
-        # edit method is quite similar to save method from the response
-        # perspective
-        body = self.fixtures.load("image_save.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_common_lookup_list(self, method, url, body, headers):
-        _valid_lookups = ("ip.datacenter",)
-
-        lookup = parse_qs(urlparse.urlparse(url).query)["lookup"][0]
-        if lookup in _valid_lookups:
-            fixture_path = "lookup_list_%s.json" % (lookup.replace(".", "_"))
-        else:
-            raise NotImplementedError
-        body = self.fixtures.load(fixture_path)
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_gridspot.py b/libcloud/test/compute/test_gridspot.py
deleted file mode 100644
index 40a6f0e..0000000
--- a/libcloud/test/compute/test_gridspot.py
+++ /dev/null
@@ -1,222 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.utils.py3 import httplib
-from libcloud.common.types import InvalidCredsError
-from libcloud.test.compute import TestCaseMixin
-from libcloud.test.secrets import GRIDSPOT_PARAMS
-from libcloud.compute.types import NodeState
-from libcloud.compute.drivers.gridspot import GridspotNodeDriver
-
-try:
-    import simplejson as json
-except ImportError:
-    import json
-
-
-class GridspotTest(unittest.TestCase, TestCaseMixin):
-    def setUp(self):
-        GridspotNodeDriver.connectionCls.conn_class = GridspotMockHttp
-        GridspotMockHttp.type = None
-        self.driver = GridspotNodeDriver(*GRIDSPOT_PARAMS)
-
-    def test_invalid_creds(self):
-        """
-        Tests the error-handling for passing a bad API Key to the Gridspot API
-        """
-        GridspotMockHttp.type = "BAD_AUTH"
-        self.assertRaises(InvalidCredsError, self.driver.list_nodes)
-
-    def test_list_nodes(self):
-        nodes = self.driver.list_nodes()
-        self.assertEqual(len(nodes), 2)
-
-        running_node = nodes[0]
-        starting_node = nodes[1]
-
-        self.assertEqual(running_node.id, "inst_CP2WrQi2WIS4iheyAVkQYw")
-        self.assertEqual(running_node.state, NodeState.RUNNING)
-        self.assertTrue("69.4.239.74" in running_node.public_ips)
-        self.assertEqual(running_node.extra["port"], 62394)
-        self.assertEqual(running_node.extra["vm_ram"], 1429436743)
-        self.assertEqual(running_node.extra["start_state_time"], 1342108905)
-        self.assertEqual(running_node.extra["vm_num_logical_cores"], 8)
-        self.assertEqual(running_node.extra["vm_num_physical_cores"], 4)
-        self.assertEqual(running_node.extra["winning_bid_id"], "bid_X5xhotGYiGUk7_RmIqVafA")
-        self.assertFalse("ended_state_time" in running_node.extra)
-        self.assertEqual(running_node.extra["running_state_time"], 1342108989)
-
-        self.assertEqual(starting_node.id, "inst_CP2WrQi2WIS4iheyAVkQYw2")
-        self.assertEqual(starting_node.state, NodeState.PENDING)
-        self.assertTrue("69.4.239.74" in starting_node.public_ips)
-        self.assertEqual(starting_node.extra["port"], 62395)
-        self.assertEqual(starting_node.extra["vm_ram"], 1429436744)
-        self.assertEqual(starting_node.extra["start_state_time"], 1342108906)
-        self.assertEqual(starting_node.extra["vm_num_logical_cores"], 7)
-        self.assertEqual(starting_node.extra["vm_num_physical_cores"], 5)
-        self.assertEqual(starting_node.extra["winning_bid_id"], "bid_X5xhotGYiGUk7_RmIqVafA1")
-        self.assertFalse("ended_state_time" in starting_node.extra)
-        self.assertEqual(starting_node.extra["running_state_time"], 1342108990)
-
-    def test_create_node(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_destroy_node(self):
-        """
-        Test destroy_node for Gridspot driver
-        """
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.destroy_node(node))
-
-    def test_destroy_node_failure(self):
-        """
-        Gridspot does not fail a destroy node unless the parameters are bad, in
-        which case it 404s
-        """
-        pass
-
-    def test_reboot_node(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_reboot_node_failure(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_resize_node(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_reboot_node_response(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_list_images_response(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_create_node_response(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_destroy_node_response(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_list_sizes_response(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_resize_node_failure(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_list_images(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_list_sizes(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_list_locations(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-    def test_list_locations_response(self):
-        """
-        Gridspot does not implement this functionality
-        """
-        pass
-
-
-class GridspotMockHttp(MockHttp):
-    def _compute_api_v1_list_instances_BAD_AUTH(self, method, url, body, headers):
-        return (httplib.NOT_FOUND, "", {}, httplib.responses[httplib.NOT_FOUND])
-
-    def _compute_api_v1_list_instances(self, method, url, body, headers):
-        body = json.dumps(
-            {
-                "instances": [
-                    {
-                        "instance_id": "inst_CP2WrQi2WIS4iheyAVkQYw",
-                        "vm_num_logical_cores": 8,
-                        "vm_num_physical_cores": 4,
-                        "winning_bid_id": "bid_X5xhotGYiGUk7_RmIqVafA",
-                        "vm_ram": 1429436743,
-                        "start_state_time": 1342108905,
-                        "vm_ssh_wan_ip_endpoint": "69.4.239.74:62394",
-                        "current_state": "Running",
-                        "ended_state_time": "null",
-                        "running_state_time": 1342108989,
-                    },
-                    {
-                        "instance_id": "inst_CP2WrQi2WIS4iheyAVkQYw2",
-                        "vm_num_logical_cores": 7,
-                        "vm_num_physical_cores": 5,
-                        "winning_bid_id": "bid_X5xhotGYiGUk7_RmIqVafA1",
-                        "vm_ram": 1429436744,
-                        "start_state_time": 1342108906,
-                        "vm_ssh_wan_ip_endpoint": "69.4.239.74:62395",
-                        "current_state": "Starting",
-                        "ended_state_time": "null",
-                        "running_state_time": 1342108990,
-                    },
-                ],
-                "exception_name": "",
-            }
-        )
-
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _compute_api_v1_stop_instance(self, method, url, body, headers):
-        body = json.dumps({"exception_name": ""})
-
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_hostvirtual.py b/libcloud/test/compute/test_hostvirtual.py
deleted file mode 100644
index a8b9db2..0000000
--- a/libcloud/test/compute/test_hostvirtual.py
+++ /dev/null
@@ -1,203 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.utils.py3 import httplib
-from libcloud.compute.base import NodeAuthPassword
-from libcloud.test.secrets import HOSTVIRTUAL_PARAMS
-from libcloud.compute.types import NodeState
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.compute.drivers.hostvirtual import HostVirtualNodeDriver
-
-
-class HostVirtualTest(unittest.TestCase):
-    def setUp(self):
-        HostVirtualNodeDriver.connectionCls.conn_class = HostVirtualMockHttp
-        self.driver = HostVirtualNodeDriver(*HOSTVIRTUAL_PARAMS)
-
-    def test_list_nodes(self):
-        nodes = self.driver.list_nodes()
-        self.assertEqual(len(nodes), 4)
-        self.assertEqual(len(nodes[0].public_ips), 1)
-        self.assertEqual(len(nodes[1].public_ips), 1)
-        self.assertEqual(len(nodes[0].private_ips), 0)
-        self.assertEqual(len(nodes[1].private_ips), 0)
-        self.assertTrue("208.111.39.118" in nodes[1].public_ips)
-        self.assertTrue("208.111.45.250" in nodes[0].public_ips)
-        self.assertEqual(nodes[3].state, NodeState.RUNNING)
-        self.assertEqual(nodes[1].state, NodeState.TERMINATED)
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-        self.assertEqual(len(sizes), 14)
-        self.assertEqual(sizes[0].id, "31")
-        self.assertEqual(sizes[4].id, "71")
-        self.assertEqual(sizes[2].ram, "512MB")
-        self.assertEqual(sizes[2].disk, "20GB")
-        self.assertEqual(sizes[3].bandwidth, "600GB")
-        self.assertEqual(sizes[1].price, "15.00")
-
-    def test_list_images(self):
-        images = self.driver.list_images()
-        self.assertEqual(len(images), 8)
-        self.assertEqual(images[0].id, "1739")
-        self.assertEqual(images[0].name, "Gentoo 2012 (0619) i386")
-
-    def test_list_locations(self):
-        locations = self.driver.list_locations()
-        self.assertEqual(locations[0].id, "3")
-        self.assertEqual(locations[0].name, "SJC - San Jose, CA")
-        self.assertEqual(locations[1].id, "13")
-        self.assertEqual(locations[1].name, "IAD - Reston, VA")
-
-    def test_reboot_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.reboot_node(node))
-
-    def test_ex_get_node(self):
-        node = self.driver.ex_get_node(node_id="62291")
-        self.assertEqual(node.id, "62291")
-        self.assertEqual(node.name, "server1.vr-cluster.org")
-        self.assertEqual(node.state, NodeState.TERMINATED)
-        self.assertTrue("208.111.45.250" in node.public_ips)
-
-    def test_ex_list_packages(self):
-        pkgs = self.driver.ex_list_packages()
-        self.assertEqual(len(pkgs), 3)
-        self.assertEqual(pkgs[1]["mbpkgid"], "176018")
-        self.assertEqual(pkgs[2]["package_status"], "Suspended")
-
-    def test_ex_order_package(self):
-        sizes = self.driver.list_sizes()
-        pkg = self.driver.ex_order_package(sizes[0])
-        self.assertEqual(pkg["id"], "62291")
-
-    def test_ex_cancel_package(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.ex_cancel_package(node)
-        self.assertEqual(result["status"], "success")
-
-    def test_ex_unlink_package(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.ex_unlink_package(node)
-        self.assertEqual(result["status"], "success")
-
-    def test_ex_stop_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.ex_stop_node(node))
-
-    def test_ex_start_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.ex_start_node(node))
-
-    def test_destroy_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.destroy_node(node))
-
-    def test_ex_delete_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.ex_delete_node(node))
-
-    def test_create_node(self):
-        auth = NodeAuthPassword("vr!@#hosted#@!")
-        size = self.driver.list_sizes()[0]
-        image = self.driver.list_images()[0]
-        node = self.driver.create_node(name="test.com", image=image, size=size, auth=auth)
-        self.assertEqual("62291", node.id)
-        self.assertEqual("server1.vr-cluster.org", node.name)
-
-    def test_ex_provision_node(self):
-        node = self.driver.list_nodes()[0]
-        auth = NodeAuthPassword("vr!@#hosted#@!")
-        self.assertTrue(self.driver.ex_provision_node(node=node, auth=auth))
-
-    def test_create_node_in_location(self):
-        auth = NodeAuthPassword("vr!@#hosted#@!")
-        size = self.driver.list_sizes()[0]
-        image = self.driver.list_images()[0]
-        location = self.driver.list_locations()[1]
-        node = self.driver.create_node(
-            name="test.com", image=image, size=size, auth=auth, location=location
-        )
-        self.assertEqual("62291", node.id)
-        self.assertEqual("server1.vr-cluster.org", node.name)
-
-
-class HostVirtualMockHttp(MockHttp):
-    fixtures = ComputeFileFixtures("hostvirtual")
-
-    def _cloud_servers(self, method, url, body, headers):
-        body = self.fixtures.load("list_nodes.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_server(self, method, url, body, headers):
-        body = self.fixtures.load("get_node.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_packages(self, method, url, body, headers):
-        body = self.fixtures.load("list_packages.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_sizes(self, method, url, body, headers):
-        body = self.fixtures.load("list_sizes.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_images(self, method, url, body, headers):
-        body = self.fixtures.load("list_images.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_locations(self, method, url, body, headers):
-        body = self.fixtures.load("list_locations.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_server_delete(self, method, url, body, headers):
-        body = self.fixtures.load("cancel_package.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_server_reboot(self, method, url, body, headers):
-        body = self.fixtures.load("node_reboot.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_server_shutdown(self, method, url, body, headers):
-        body = self.fixtures.load("node_stop.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_server_start(self, method, url, body, headers):
-        body = self.fixtures.load("node_start.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_server_build(self, method, url, body, headers):
-        body = self.fixtures.load("order_package.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_buy(self, method, url, body, headers):
-        body = self.fixtures.load("order_package.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_cancel(self, method, url, body, headers):
-        body = self.fixtures.load("cancel_package.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloud_unlink(self, method, url, body, headers):
-        body = self.fixtures.load("unlink_package.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
-
-# vim:autoindent tabstop=4 shiftwidth=4 expandtab softtabstop=4 filetype=python
diff --git a/libcloud/test/compute/test_indosat.py b/libcloud/test/compute/test_indosat.py
deleted file mode 100644
index db26ff3..0000000
--- a/libcloud/test/compute/test_indosat.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import unittest
-
-from libcloud.compute.drivers.indosat import IndosatNodeDriver
-from libcloud.test.compute.test_dimensiondata_v2_3 import (
-    DimensionDataMockHttp,
-    DimensionData_v2_3_Tests,
-)
-
-
-class IndosatNodeDriverTests(DimensionData_v2_3_Tests, unittest.TestCase):
-    def setUp(self):
-        IndosatNodeDriver.connectionCls.conn_class = DimensionDataMockHttp
-        IndosatNodeDriver.connectionCls.active_api_version = "2.3"
-        DimensionDataMockHttp.type = None
-        self.driver = IndosatNodeDriver("user", "password")
diff --git a/libcloud/test/compute/test_joyent.py b/libcloud/test/compute/test_joyent.py
deleted file mode 100644
index 7544872..0000000
--- a/libcloud/test/compute/test_joyent.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-
-from libcloud.test import MockHttp, unittest
-from libcloud.utils.py3 import httplib, assertRaisesRegex
-from libcloud.common.types import LibcloudError
-from libcloud.compute.base import NodeState
-from libcloud.test.secrets import JOYENT_PARAMS
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.compute.drivers.joyent import JoyentNodeDriver
-
-
-class JoyentTestCase(unittest.TestCase):
-    def setUp(self):
-        JoyentNodeDriver.connectionCls.conn_class = JoyentHttp
-        self.driver = JoyentNodeDriver(*JOYENT_PARAMS)
-
-    def test_instantiate_multiple_drivers_with_different_region(self):
-        kwargs1 = {"region": "us-east-1"}
-        kwargs2 = {"region": "us-west-1"}
-        driver1 = JoyentNodeDriver(*JOYENT_PARAMS, **kwargs1)
-        driver2 = JoyentNodeDriver(*JOYENT_PARAMS, **kwargs2)
-
-        self.assertTrue(driver1.connection.host.startswith(kwargs1["region"]))
-        self.assertTrue(driver2.connection.host.startswith(kwargs2["region"]))
-
-        driver1.list_nodes()
-        driver2.list_nodes()
-        driver1.list_nodes()
-
-        self.assertTrue(driver1.connection.host.startswith(kwargs1["region"]))
-        self.assertTrue(driver2.connection.host.startswith(kwargs2["region"]))
-
-    def test_location_backward_compatibility(self):
-        kwargs = {"location": "us-west-1"}
-        driver = JoyentNodeDriver(*JOYENT_PARAMS, **kwargs)
-        self.assertTrue(driver.connection.host.startswith(kwargs["location"]))
-
-    def test_instantiate_invalid_region(self):
-        expected_msg = "Invalid region.+"
-
-        assertRaisesRegex(
-            self,
-            LibcloudError,
-            expected_msg,
-            JoyentNodeDriver,
-            "user",
-            "key",
-            location="invalid",
-        )
-        assertRaisesRegex(
-            self,
-            LibcloudError,
-            expected_msg,
-            JoyentNodeDriver,
-            "user",
-            "key",
-            region="invalid",
-        )
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-
-        self.assertEqual(sizes[0].ram, 16384)
-
-    def test_list_images(self):
-        images = self.driver.list_images()
-
-        self.assertEqual(images[0].name, "nodejs")
-
-    def test_list_nodes_with_and_without_credentials(self):
-        nodes = self.driver.list_nodes()
-        self.assertEqual(len(nodes), 2)
-
-        node = nodes[0]
-        self.assertEqual(node.public_ips[0], "165.225.129.129")
-        self.assertEqual(node.private_ips[0], "10.112.1.130")
-        self.assertEqual(node.state, NodeState.RUNNING)
-
-        node = nodes[1]
-        self.assertEqual(node.public_ips[0], "165.225.129.128")
-        self.assertEqual(node.private_ips[0], "10.112.1.131")
-        self.assertEqual(node.state, NodeState.RUNNING)
-        self.assertEqual(node.extra["password"], "abc")
-
-    def test_create_node(self):
-        image = self.driver.list_images()[0]
-        size = self.driver.list_sizes()[0]
-        node = self.driver.create_node(image=image, size=size, name="testlc")
-
-        self.assertEqual(node.name, "testlc")
-
-    def test_ex_stop_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.ex_stop_node(node))
-
-    def test_ex_start_node(self):
-        node = self.driver.list_nodes()[0]
-        self.assertTrue(self.driver.ex_start_node(node))
-
-    def test_ex_get_node(self):
-        node_id = "2fb67f5f-53f2-40ab-9d99-b9ff68cfb2ab"
-        node = self.driver.ex_get_node(node_id)
-        self.assertEqual(node.name, "testlc")
-
-        missing_node = "dummy-node"
-        self.assertRaises(Exception, self.driver.ex_get_node, missing_node, "all")
-
-
-class JoyentHttp(MockHttp):
-    fixtures = ComputeFileFixtures("joyent")
-
-    def _my_packages(self, method, url, body, headers):
-        body = self.fixtures.load("my_packages.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _my_datasets(self, method, url, body, headers):
-        body = self.fixtures.load("my_datasets.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _my_machines(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("my_machines.json")
-        elif method == "POST":
-            body = self.fixtures.load("my_machines_create.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _my_machines_2fb67f5f_53f2_40ab_9d99_b9ff68cfb2ab(self, method, url, body, headers):
-        body = self.fixtures.load("my_machines_create.json")
-        return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_kili.py b/libcloud/test/compute/test_kili.py
deleted file mode 100644
index 67a01ba..0000000
--- a/libcloud/test/compute/test_kili.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import unittest
-
-from libcloud.compute.drivers.kili import ENDPOINT_ARGS, KiliCloudNodeDriver
-from libcloud.test.compute.test_openstack import OpenStack_1_1_Tests
-
-
-def _ex_connection_class_kwargs(self):
-    kwargs = self.openstack_connection_kwargs()
-    kwargs["get_endpoint_args"] = ENDPOINT_ARGS
-    # Remove keystone from the URL path so that the openstack base tests work
-    kwargs["ex_force_auth_url"] = "https://api.kili.io/"
-    kwargs["ex_tenant_name"] = self.tenant_name
-
-    return kwargs
-
-
-KiliCloudNodeDriver._ex_connection_class_kwargs = _ex_connection_class_kwargs
-
-
-class KiliCloudNodeDriverTests(OpenStack_1_1_Tests, unittest.TestCase):
-    driver_klass = KiliCloudNodeDriver
-    driver_type = KiliCloudNodeDriver
diff --git a/libcloud/test/compute/test_medone.py b/libcloud/test/compute/test_medone.py
deleted file mode 100644
index 8639f95..0000000
--- a/libcloud/test/compute/test_medone.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import unittest
-
-from libcloud.compute.drivers.medone import MedOneNodeDriver
-from libcloud.test.compute.test_dimensiondata_v2_3 import (
-    DimensionDataMockHttp,
-    DimensionData_v2_3_Tests,
-)
-
-
-class MedOneTests(DimensionData_v2_3_Tests, unittest.TestCase):
-    def setUp(self):
-        MedOneNodeDriver.connectionCls.conn_class = DimensionDataMockHttp
-        MedOneNodeDriver.connectionCls.active_api_version = "2.3"
-        DimensionDataMockHttp.type = None
-        self.driver = MedOneNodeDriver("user", "password")
diff --git a/libcloud/test/compute/test_nephoscale.py b/libcloud/test/compute/test_nephoscale.py
deleted file mode 100644
index 468ac42..0000000
--- a/libcloud/test/compute/test_nephoscale.py
+++ /dev/null
@@ -1,179 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Created by Markos Gogoulos (https://mist.io)
-#
-
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.utils.py3 import httplib
-from libcloud.test.compute import TestCaseMixin
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.compute.drivers.nephoscale import NephoscaleNodeDriver
-
-
-class NephoScaleTest(unittest.TestCase, TestCaseMixin):
-    def setUp(self):
-        NephoscaleNodeDriver.connectionCls.conn_class = NephoscaleMockHttp
-        self.driver = NephoscaleNodeDriver("user", "password")
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-        self.assertEqual(len(sizes), 13)
-        for size in sizes:
-            self.assertEqual(type(size.disk), int)
-            self.assertEqual(type(size.ram), int)
-
-    def test_list_images(self):
-        images = self.driver.list_images()
-        self.assertEqual(len(images), 18)
-        for image in images:
-            arch = image.extra.get("architecture")
-            self.assertTrue(arch.startswith("x86"))
-
-    def test_list_locations(self):
-        locations = self.driver.list_locations()
-        self.assertEqual(len(locations), 2)
-        self.assertEqual(locations[0].name, "SJC-1")
-
-    def test_list_nodes(self):
-        nodes = self.driver.list_nodes()
-        self.assertEqual(len(nodes), 2)
-        self.assertEqual(nodes[0].extra.get("zone"), "RIC-1")
-        self.assertEqual(nodes[0].name, "mongodb-staging")
-        self.assertEqual(nodes[0].extra.get("service_type"), "CS05 - 0.5GB, 1Core, 25GB")
-
-    def test_list_keys(self):
-        keys = self.driver.ex_list_keypairs()
-        self.assertEqual(len(keys), 2)
-        self.assertEqual(keys[0].name, "mistio-ssh")
-
-    def test_list_ssh_keys(self):
-        ssh_keys = self.driver.ex_list_keypairs(ssh=True)
-        self.assertEqual(len(ssh_keys), 1)
-        self.assertTrue(ssh_keys[0].public_key.startswith("ssh-rsa"))
-
-    def test_list_password_keys(self):
-        password_keys = self.driver.ex_list_keypairs(password=True)
-        self.assertEqual(len(password_keys), 1)
-        self.assertEqual(password_keys[0].password, "23d493j5")
-
-    def test_reboot_node(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.reboot_node(node)
-        self.assertTrue(result)
-
-    def test_destroy_node(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.destroy_node(node)
-        self.assertTrue(result)
-
-    def test_stop_node(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.ex_stop_node(node)
-        self.assertTrue(result)
-
-    def test_start_node(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.ex_start_node(node)
-        self.assertTrue(result)
-
-    def test_rename_node(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.rename_node(node, "new-name")
-        self.assertTrue(result)
-
-    def test_create_node(self):
-        name = "mongodb-staging"
-        size = self.driver.list_sizes()[0]
-        image = self.driver.list_images()[3]
-        node = self.driver.create_node(name=name, size=size, nowait=True, image=image)
-        self.assertEqual(node.name, "mongodb-staging")
-
-    def test_create_node_no_name(self):
-        size = self.driver.list_sizes()[0]
-        image = self.driver.list_images()[3]
-        self.assertRaises(TypeError, self.driver.create_node, size=size, image=image)
-
-    def test_delete_ssh_keys(self):
-        self.assertTrue(self.driver.ex_delete_keypair(key_id=72209, ssh=True))
-
-    def test_delete_password_keys(self):
-        self.assertTrue(self.driver.ex_delete_keypair(key_id=72211))
-
-
-class NephoscaleMockHttp(MockHttp):
-    fixtures = ComputeFileFixtures("nephoscale")
-
-    def _server_type_cloud(self, method, url, body, headers):
-        body = self.fixtures.load("list_sizes.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _server_cloud(self, method, url, body, headers):
-        if method == "POST":
-            body = self.fixtures.load("success_action.json")
-        else:
-            body = self.fixtures.load("list_nodes.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _image_server(self, method, url, body, headers):
-        body = self.fixtures.load("list_images.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _datacenter_zone(self, method, url, body, headers):
-        body = self.fixtures.load("list_locations.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _key(self, method, url, body, headers):
-        body = self.fixtures.load("list_keys.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _key_sshrsa(self, method, url, body, headers):
-        body = self.fixtures.load("list_ssh_keys.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _key_password(self, method, url, body, headers):
-        body = self.fixtures.load("list_password_keys.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _server_cloud_88241(self, method, url, body, headers):
-        body = self.fixtures.load("success_action.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _server_cloud_88241_initiator_restart(self, method, url, body, headers):
-        body = self.fixtures.load("success_action.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _server_cloud_88241_initiator_start(self, method, url, body, headers):
-        body = self.fixtures.load("success_action.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _server_cloud_88241_initiator_stop(self, method, url, body, headers):
-        body = self.fixtures.load("success_action.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _key_password_72211(self, method, url, body, headers):
-        body = self.fixtures.load("success_action.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _key_sshrsa_72209(self, method, url, body, headers):
-        body = self.fixtures.load("success_action.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_oneandone.py b/libcloud/test/compute/test_oneandone.py
deleted file mode 100644
index efcd80c..0000000
--- a/libcloud/test/compute/test_oneandone.py
+++ /dev/null
@@ -1,831 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-import sys
-
-from libcloud.test import MockHttp, unittest
-from libcloud.utils.py3 import httplib
-from libcloud.compute.base import NodeImage, NodeLocation, NodeAuthPassword
-from libcloud.test.secrets import ONEANDONE_PARAMS
-from libcloud.compute.types import Provider, NodeState
-from libcloud.compute.providers import get_driver
-from libcloud.test.file_fixtures import ComputeFileFixtures
-
-
-class OneAndOneTests(unittest.TestCase):
-    def setUp(self):
-        oneAndOne = get_driver(Provider.ONEANDONE)
-        oneAndOne.connectionCls.conn_class = OneAndOneMockHttp
-        self.driver = oneAndOne(ONEANDONE_PARAMS)
-
-    """
-    Function tests for listing items
-    """
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-        self.assertEqual(len(sizes), 4)
-
-    def test_list_locations(self):
-        sizes = self.driver.list_locations()
-        self.assertEqual(len(sizes), 4)
-
-    def test_list_images(self):
-        appliances = self.driver.list_images("IMAGE")
-        self.assertEqual(len(appliances), 102)
-
-    def test_get_image(self):
-        appliance = self.driver.get_image("img_1")
-        self.assertNotEqual(appliance, None)
-
-    def test_list_nodes(self):
-        nodes = self.driver.list_nodes()
-        self.assertEqual(len(nodes), 5)
-
-        counter = 0
-
-        for node in nodes:
-            if counter == 0:
-                self.assertEqual(node.id, "8A7D5122BDC173B6E52223878CEF2748")
-                self.assertEqual(node.name, "Docs Content Ubuntu 16.04-1")
-                self.assertEqual(node.state, NodeState.RUNNING)
-                self.assertEqual(node.public_ips, ["50.21.182.126"])
-                self.assertEqual(node.private_ips, [])
-            if counter == 1:
-                self.assertEqual(node.id, "E7D36EC025C73796035BF4F171379025")
-                self.assertEqual(node.name, "Docs Content Test Server: CentOS 7-1")
-                self.assertEqual(node.state, NodeState.RUNNING)
-                self.assertEqual(node.public_ips, ["62.151.179.99"])
-                self.assertEqual(node.private_ips, [])
-            if counter == 2:
-                self.assertEqual(node.id, "DDDC4CCA34AAB08132FA1E40F9FEAC25")
-                self.assertEqual(node.name, "App Dev Server 5")
-                self.assertEqual(node.state, NodeState.RUNNING)
-                self.assertEqual(node.public_ips, ["70.35.206.196"])
-                self.assertEqual(node.private_ips, [])
-            if counter == 3:
-                self.assertEqual(node.id, "D5C5C1D01249DE9B88BE3DAE973AA090")
-                self.assertEqual(node.name, "Docs Test Server: CentOS 7-2")
-                self.assertEqual(node.state, NodeState.RUNNING)
-                self.assertEqual(node.public_ips, ["74.208.88.88"])
-                self.assertEqual(node.private_ips, [])
-            if counter == 4:
-                self.assertEqual(node.id, "FB1765588A90364835782061CE48BA8E")
-                self.assertEqual(node.name, "Docs Content Test Server Ubuntu 16.04-2")
-                self.assertEqual(node.state, NodeState.RUNNING)
-                self.assertEqual(node.public_ips, ["70.35.206.233"])
-                self.assertEqual(node.private_ips, [])
-            counter += 1
-
-    def test_create_node(self):
-        node = self.driver.create_node(
-            name="name",
-            image=NodeImage(id="image_id", name=None, driver=self.driver),
-            ex_fixed_instance_size_id="instance_id",
-            location=NodeLocation("datacenter_id", name="name", country="GB", driver=self.driver),
-            auth=NodeAuthPassword("password"),
-            ex_ip="1.1.1.1",
-            ex_monitoring_policy_id="mp_id",
-            ex_firewall_policy_id="fw_id",
-            ex_loadbalancer_id="lb_id",
-            ex_description="description",
-            ex_power_on="SHUTDOWN",
-        )
-
-        self.assertEqual(node.id, "E7D36EC025C73796035BF4F171379025")
-        self.assertEqual(node.name, "Docs Content Test Server: CentOS 7-1")
-        self.assertEqual(node.extra["description"], "My server description")
-
-        self.assertIsNone(node.extra["status"]["percent"])
-        self.assertEqual(node.extra["status"]["state"], "POWERED_ON")
-
-        self.assertEqual(node.extra["image"]["id"], "B5F778B85C041347BCDCFC3172AB3F3C")
-        self.assertEqual(node.extra["image"]["name"], "centos7-64std")
-
-        self.assertEqual(node.extra["datacenter"]["id"], "908DC2072407C94C8054610AD5A53B8C")
-        self.assertEqual(node.extra["datacenter"]["country_code"], "US")
-        self.assertEqual(node.extra["datacenter"]["location"], "United States of America")
-
-        self.assertEqual(
-            node.extra["hardware"]["fixed_instance_size_id"],
-            "65929629F35BBFBA63022008F773F3EB",
-        )
-        self.assertEqual(node.extra["hardware"]["vcore"], 1)
-        self.assertEqual(
-            node.extra["hardware"]["hdds"][0]["id"], "CDB278D95A92CB4C379A9CAAD6759F02"
-        )
-        self.assertEqual(node.extra["hardware"]["hdds"][0]["size"], 40)
-        self.assertEqual(node.extra["hardware"]["hdds"][0]["is_main"], True)
-        self.assertEqual(node.extra["hardware"]["cores_per_processor"], 1)
-        self.assertEqual(node.extra["hardware"]["vcore"], 1)
-        self.assertEqual(node.extra["hardware"]["ram"], 1)
-
-        self.assertEqual(node.extra["ips"][0]["id"], "FDBE99EDD57F8596CBF71B6B64BD0A92")
-        self.assertEqual(node.extra["ips"][0]["ip"], "62.151.179.99")
-
-        self.assertIsNone(node.extra["monitoring_policy"])
-        self.assertEqual(node.extra["alerts"], [])
-        self.assertIsNone(node.extra["snapshot"])
-        self.assertIsNone(node.extra["dvd"])
-        self.assertIsNone(node.extra["private_networks"])
-
-    def test_ex_list_datacenters(self):
-        datacenters = self.driver.ex_list_datacenters()
-
-        self.assertEqual(len(datacenters), 4)
-
-    def test_ex_shutdown_server(self):
-        server = self.driver.ex_shutdown_server("srv_1")
-        self.assertNotEqual(server, None)
-
-    def test_reboot_node(self):
-        node = self.driver.ex_get_server("srv_1")
-        node = self.driver.reboot_node(node)
-        self.assertNotEqual(node, None)
-
-    def test_ex_get_server(self):
-        server = self.driver.ex_get_server("srv_1")
-        self.assertNotEqual(server, None)
-
-    def test_destroy_node(self):
-        server = self.driver.ex_get_server("srv_1")
-
-        node = self.driver.destroy_node(server)
-        self.assertNotEqual(node, None)
-
-    def test_get_server_hardware(self):
-        hardware = self.driver.ex_get_server_hardware("srv_1")
-        self.assertNotEqual(hardware, None)
-        self.assertEqual(hardware["vcore"], 1)
-        self.assertEqual(hardware["cores_per_processor"], 1)
-        self.assertEqual(hardware["ram"], 2)
-        self.assertEqual(hardware["fixed_instance_size_id"], 0)
-        self.assertNotEqual(hardware["hdds"], None)
-        self.assertEqual(hardware["hdds"][0]["id"], "8C626C1A7005D0D1F527143C413D461E")
-        self.assertEqual(hardware["hdds"][0]["is_main"], True)
-        self.assertEqual(hardware["hdds"][0]["size"], 40)
-
-    def test_rename_server(self):
-        server = self.driver.ex_rename_server("srv_1", "name")
-        self.assertNotEqual(server, None)
-
-    def test_ex_modify_server_hardware(self):
-        node = self.driver.ex_modify_server_hardware("srv_1", vcore=1)
-        self.assertNotEqual(node, None)
-
-    def test_add_hdd(self):
-        node = self.driver.ex_add_hdd("srv_1", 1, True)
-        self.assertNotEqual(node, None)
-
-    def test_modify_hdd(self):
-        node = self.driver.ex_modify_server_hardware("srv_1", "hdd_id", 50)
-        self.assertNotEqual(node, None)
-
-    def test_remove_hdd(self):
-        node = self.driver.ex_remove_hdd("srv_1", "hdd_id")
-        self.assertNotEqual(node, None)
-
-    def test_ex_get_server_image(self):
-        image = self.driver.ex_get_server_image("srv_1")
-        self.assertNotEqual(image, None)
-        self.assertEqual(image["id"], "76EBF29C1250167C8754B2B3D1C05F68")
-        self.assertEqual(image["name"], "centos7-64std")
-
-    def test_ex_reinstall_server_image(self):
-        node = self.driver.ex_reinstall_server_image("srv_1", "img_id", "password")
-        self.assertNotEqual(node, None)
-
-    def test_ex_list_server_ips(self):
-        ips = self.driver.ex_list_server_ips("srv_1")
-        self.assertEqual(len(ips), 1)
-
-    def test_ex_get_server_ip(self):
-        ip = self.driver.ex_get_server_ip("srv_1", "ip_id")
-        self.assertNotEqual(ip, None)
-
-    def test_ex_assign_server(self):
-        node = self.driver.ex_assign_server_ip("srv_1", "IPV$")
-        self.assertNotEqual(node, None)
-
-    def test_ex_remove_server_ip(self):
-        node = self.driver.ex_remove_server_ip("srv_1", "ip_id", keep_ip=True)
-        self.assertNotEqual(node, None)
-
-    def test_ex_create_firewall_policy(self):
-        rules = [
-            {"protocol": "TCP", "port_from": 80, "port_to": 80, "source": "0.0.0.0"},
-            {"protocol": "TCP", "port_from": 443, "port_to": 443, "source": "0.0.0.0"},
-        ]
-        firewall = self.driver.ex_create_firewall_policy("name", rules, description="desc")
-
-        self.assertNotEqual(firewall, None)
-
-    def test_ex_list_firewall_policies(self):
-        firewall = self.driver.ex_list_firewall_policies()
-        self.assertNotEqual(firewall, None)
-        self.assertEqual(len(firewall), 2)
-
-    def test_ex_get_firewall_policy(self):
-        firewall = self.driver.ex_get_firewall_policy("fw_id")
-        self.assertNotEqual(firewall, None)
-
-    def test_ex_delete_firewall_policy(self):
-        firewall = self.driver.ex_delete_firewall_policy("fw_id")
-        self.assertNotEqual(firewall, None)
-
-    def test_ex_get_server_firewall_policies(self):
-        firewall = self.driver.ex_get_server_firewall_policies("srv_id", "ip_id")
-        self.assertNotEqual(firewall, None)
-
-    def test_ex_add_server_firewall_policy(self):
-        node = self.driver.ex_add_server_firewall_policy("srv_id", "ip_id", "fw_id")
-        self.assertNotEqual(node, None)
-
-    def test_ex_list_shared_storages(self):
-        storages = self.driver.ex_list_shared_storages()
-        self.assertEqual(len(storages), 3)
-
-    def test_ex_get_shared_storage(self):
-        storage = self.driver.ex_get_shared_storage("storage_1")
-
-        self.assertNotEqual(storage, None)
-        self.assertEqual(storage["id"], "6AD2F180B7B666539EF75A02FE227084")
-        self.assertEqual(storage["size"], 200)
-        self.assertEqual(storage["state"], "ACTIVE")
-        self.assertEqual(storage["description"], "My shared storage test description")
-        self.assertEqual(storage["datacenter"]["id"], "D0F6D8C8ED29D3036F94C27BBB7BAD36")
-        self.assertEqual(storage["datacenter"]["location"], "USA")
-        self.assertEqual(storage["datacenter"]["country_code"], "US")
-        self.assertEqual(storage["cloudpanel_id"], "vid35780")
-        self.assertEqual(storage["size_used"], "0.00")
-        self.assertEqual(storage["cifs_path"], "vid50995.nas1.lanvid50995")
-        self.assertEqual(storage["nfs_path"], "vid50995.nas1.lan/:vid50995")
-        self.assertEqual(storage["name"], "My shared storage test")
-        self.assertEqual(storage["creation_date"], "2015-05-06T08:33:25+00:00")
-        self.assertEqual(storage["servers"][0]["id"], "638ED28205B1AFD7ADEF569C725DD85F")
-        self.assertEqual(storage["servers"][0]["name"], "My server 1")
-        self.assertEqual(storage["servers"][0]["rights"], "RW")
-
-    def test_ex_create_shared_storage(self):
-        storage = self.driver.ex_create_shared_storage(name="TEST", size=2, datacenter_id="dc_id")
-        self.assertNotEqual(storage, None)
-
-    def test_ex_delete_shared_storage(self):
-        storage = self.driver.ex_delete_shared_storage("storage_1")
-        self.assertNotEqual(storage, None)
-
-    def test_ex_attach_server_to_shared_storage(self):
-        storage = self.driver.ex_attach_server_to_shared_storage("storage_1", "srv_1", "RW")
-        self.assertNotEqual(storage, None)
-
-    def test_ex_get_shared_storage_server(self):
-        storage = self.driver.ex_get_shared_storage_server("storage_1", "srv_1")
-        self.assertNotEqual(storage, None)
-
-    def test_ex_detach_server_from_shared_storage(self):
-        storage = self.driver.ex_detach_server_from_shared_storage("storage_1", "srv_1")
-        self.assertNotEqual(storage, None)
-
-    def test_ex_create_load_balancers(self):
-        rules = [
-            {
-                "protocol": "TCP",
-                "port_balancer": 80,
-                "port_server": 80,
-                "source": "0.0.0.0",
-            },
-            {
-                "protocol": "TCP",
-                "port_balancer": 9999,
-                "port_server": 8888,
-                "source": "0.0.0.0",
-            },
-        ]
-        load_balancer = self.driver.ex_create_load_balancer(
-            name="name",
-            method="ROUNDROBIN",
-            rules=rules,
-            persistence=True,
-            persistence_time=1,
-        )
-
-        self.assertNotEqual(load_balancer, None)
-
-    def test_ex_list_load_balancers(self):
-        load_balancers = self.driver.ex_list_load_balancers()
-        self.assertEqual(len(load_balancers), 2)
-
-    def test_update_load_balancer(self):
-        load_balancer = self.driver.ex_update_load_balancer("lb_1", name="new name")
-        self.assertNotEqual(load_balancer, None)
-
-    def test_ex_add_servers_to_load_balancer(self):
-        load_balancer = self.driver.ex_add_servers_to_load_balancer("lb_1", server_ips=["1.1.1.1"])
-        self.assertNotEqual(load_balancer, None)
-
-    def test_ex_remove_server_from_load_balancer(self):
-        load_balancer = self.driver.ex_remove_server_from_load_balancer("lb_1", server_ip="srv_1")
-        self.assertNotEqual(load_balancer, None)
-
-    def test_ex_add_load_balancer_rule(self):
-        load_balancer = self.driver.ex_add_load_balancer_rule(
-            "lb_1", protocol="TCP", port_balancer=82, port_server=81, source="0.0.0.0"
-        )
-        self.assertNotEqual(load_balancer, None)
-
-    def test_ex_remove_load_balancer_rule(self):
-        load_balancer = self.driver.ex_remove_load_balancer_rule("lb_1", "rule_1")
-        self.assertNotEqual(load_balancer, None)
-
-    def test_ex_get_load_balancer(self):
-        load_balancer = self.driver.ex_get_load_balancer("lb_1")
-        self.assertNotEqual(load_balancer, None)
-
-    def test_ex_get_load_balancer_server_ip(self):
-        server_ip = self.driver.ex_get_load_balancer_server_ip("lb_1", "srv_1")
-        self.assertNotEqual(server_ip, None)
-
-    def test_ex_list_load_balancer_rules(self):
-        rules = self.driver.ex_list_load_balancer_rules("lb_1")
-        self.assertNotEqual(rules, None)
-        self.assertEqual(len(rules), 2)
-
-    def test_ex_get_load_balancer_rule(self):
-        rule = self.driver.ex_get_load_balancer_rule("lb_1", "rule_1")
-        self.assertNotEqual(rule, None)
-
-    def test_ex_delete_load_balancer(self):
-        load_balancer = self.driver.ex_delete_load_balancer("lb_1")
-        self.assertNotEqual(load_balancer, None)
-
-    def test_ex_list_public_ips(self):
-        ips = self.driver.ex_list_public_ips()
-        self.assertNotEqual(ips, None)
-        self.assertEqual(len(ips), 3)
-
-    def test_ex_create_public_ip(self):
-        ip = self.driver.ex_create_public_ip("IPv4")
-        self.assertNotEqual(ip, None)
-
-    def test_ex_get_public_ip(self):
-        ip = self.driver.ex_get_public_ip("ip_1")
-        self.assertNotEqual(ip, None)
-
-    def test_ex_delete_public_ip(self):
-        ip = self.driver.ex_delete_public_ip("ip_1")
-        self.assertNotEqual(ip, None)
-
-    def test_ex_update_public_ip(self):
-        ip = self.driver.ex_update_public_ip("ip_1", "reverse.dns")
-        self.assertNotEqual(ip, None)
-
-    def test_ex_create_monitoring_policy(self):
-        thresholds = {
-            "cpu": {
-                "warning": {"value": 90, "alert": False},
-                "critical": {"value": 95, "alert": False},
-            },
-            "ram": {
-                "warning": {"value": 90, "alert": False},
-                "critical": {"value": 95, "alert": False},
-            },
-            "disk": {
-                "warning": {"value": 80, "alert": False},
-                "critical": {"value": 90, "alert": False},
-            },
-            "transfer": {
-                "warning": {"value": 1000, "alert": False},
-                "critical": {"value": 2000, "alert": False},
-            },
-            "internal_ping": {
-                "warning": {"value": 50, "alert": False},
-                "critical": {"value": 100, "alert": False},
-            },
-        }
-
-        ports = [
-            {
-                "protocol": "TCP",
-                "port": "22",
-                "alert_if": "RESPONDING",
-                "email_notification": True,
-            }
-        ]
-
-        processes = [{"process": "test", "alert_if": "NOT_RUNNING", "email_notification": True}]
-
-        policy = self.driver.ex_create_monitoring_policy(
-            name="test_name",
-            thresholds=thresholds,
-            ports=ports,
-            processes=processes,
-            description="description",
-            email="test@domain.com",
-            agent=True,
-        )
-        self.assertNotEqual(policy, None)
-
-    def test_ex_list_monitoring_policies(self):
-        policies = self.driver.ex_list_monitoring_policies()
-        self.assertNotEqual(policies, None)
-        self.assertEqual(len(policies), 2)
-
-    def test_ex_get_monitoring_policy(self):
-        policy = self.driver.ex_get_monitoring_policy("pol_1")
-        self.assertNotEqual(policy, None)
-
-    def test_ex_update_monitoring_policy(self):
-        thresholds = {
-            "cpu": {
-                "warning": {"value": 90, "alert": False},
-                "critical": {"value": 95, "alert": False},
-            },
-            "ram": {
-                "warning": {"value": 90, "alert": False},
-                "critical": {"value": 95, "alert": False},
-            },
-            "disk": {
-                "warning": {"value": 80, "alert": False},
-                "critical": {"value": 90, "alert": False},
-            },
-            "transfer": {
-                "warning": {"value": 1000, "alert": False},
-                "critical": {"value": 2000, "alert": False},
-            },
-            "internal_ping": {
-                "warning": {"value": 50, "alert": False},
-                "critical": {"value": 100, "alert": False},
-            },
-        }
-
-        policy = self.driver.ex_update_monitoring_policy(
-            "pol_1",
-            email="test@domain.com",
-            thresholds=thresholds,
-            name="new name",
-            description="new description",
-        )
-        self.assertNotEqual(policy, None)
-
-    def test_ex_get_monitoring_policy_ports(self):
-        ports = self.driver.ex_get_monitoring_policy_ports("pol_1")
-        self.assertNotEqual(ports, None)
-        self.assertEqual(len(ports), 2)
-
-    def test_ex_get_monitoring_policy_port(self):
-        port = self.driver.ex_get_monitoring_policy_port("pol_1", "port_1")
-        self.assertNotEqual(port, None)
-
-    def test_ex_remove_monitoring_policy_port(self):
-        port = self.driver.ex_remove_monitoring_policy_port("pol_1", "port_1")
-        self.assertNotEqual(port, None)
-
-    def test_ex_add_monitoring_policy_ports(self):
-        new_ports = [
-            {
-                "protocol": "TCP",
-                "port": "80",
-                "alert_if": "RESPONDING",
-                "email_notification": True,
-            }
-        ]
-        ports = self.driver.ex_add_monitoring_policy_ports("pol_1", new_ports)
-        self.assertNotEqual(ports, None)
-        self.assertEqual(len(ports), 2)
-
-    def test_ex_get_monitoring_policy_processes(self):
-        processes = self.driver.ex_get_monitoring_policy_processes("pol_1")
-        self.assertNotEqual(processes, None)
-
-    def test_ex_get_monitoring_policy_process(self):
-        process = self.driver.ex_get_monitoring_policy_process("pol_1", "proc_1")
-        self.assertNotEqual(process, None)
-
-    def test_ex_remove_monitoring_policy_process(self):
-        policy = self.driver.ex_remove_monitoring_policy_process("pol_1", "proc_1")
-        self.assertNotEqual(policy, None)
-
-    def test_ex_add_monitoring_policy_processes(self):
-        processes = {
-            "processes": [
-                {
-                    "process": "taskmmgr",
-                    "alert_if": "RUNNING",
-                    "email_notification": True,
-                }
-            ]
-        }
-        processes = self.driver.ex_add_monitoring_policy_processes(
-            policy_id="pol_1", processes=processes
-        )
-        self.assertNotEqual(processes, None)
-        self.assertEqual(len(processes), 2)
-
-    def test_ex_list_monitoring_policy_servers(self):
-        servers = self.driver.ex_list_monitoring_policy_servers("pol_1")
-        self.assertNotEqual(servers, None)
-        self.assertEqual(len(servers), 2)
-
-    def test_ex_add_servers_to_monitoring_policy(self):
-        servers = self.driver.ex_add_servers_to_monitoring_policy("pol_1", "serv_1")
-        self.assertNotEqual(servers, None)
-        self.assertEqual(len(servers), 2)
-
-    def test_ex_remove_server_from_monitoring_policy(self):
-        policy = self.driver.ex_remove_server_from_monitoring_policy("pol_1", "serv_1")
-        self.assertNotEqual(policy, None)
-
-
-class OneAndOneMockHttp(MockHttp):
-    fixtures = ComputeFileFixtures("oneandone")
-
-    """
-    Operation on Server Appliances
-
-    GET - Fetches Server Appliances
-    """
-
-    def _v1_server_appliances(self, method, url, body, headers):
-        body = self.fixtures.load("list_images.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_server_appliances_img_1(self, method, url, body, headers):
-        body = self.fixtures.load("get_image.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_servers(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("list_servers.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "POST":
-            body = self.fixtures.load("create_node.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _v1_create_node(self, method, url, body_headers):
-
-        body = self.fixtures.load("list_servers.json")
-
-        return (httplib.ACCEPTED, {}, body, httplib.responses[httplib.ACCEPTED])
-
-    def _v1_datacenters(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_datacenters.json")
-            return (
-                httplib.OK,
-                body,
-                {"content-type": "application/json"},
-                httplib.responses[httplib.OK],
-            )
-
-    def _v1_servers_srv_1(self, method, url, body, headers):
-        pass
-
-        if method == "PUT":
-            body = self.fixtures.load("describe_server.json")
-            return (
-                httplib.OK,
-                body,
-                {"content-type": "application/json"},
-                httplib.responses[httplib.OK],
-            )
-        if method == "GET":
-            body = self.fixtures.load("describe_server.json")
-            return (
-                httplib.OK,
-                body,
-                {"content-type": "application/json"},
-                httplib.responses[httplib.OK],
-            )
-        if method == "DELETE":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_servers_srv_1_status_action(self, method, url, body_headers, id):
-        body = self.fixtures.load("describe_server.json")
-
-        return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _v1_servers_srv_1_hardware(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("server_hardware.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "PUT":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _v1_servers_srv_1_hardware_hdds(self, method, url, body, headers):
-        if method == "POST":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "PUT":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _v1_servers_srv_1_hardware_hdds_hdd_id(self, method, url, body, headers):
-        if method == "DELETE":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "PUT":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _v1_servers_srv_1_image(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("get_server_image.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "PUT":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_servers_srv_1_ips(self, method, url, body, headers):
-
-        if method == "GET":
-            body = self.fixtures.load("server_ips.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "POST":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_servers_srv_1_ips_ip_id(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("server_ip.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "DELETE":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_firewall_policies(self, method, url, body, headers):
-
-        if method == "POST":
-            body = self.fixtures.load("describe_firewall_policy.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        if method == "GET":
-            body = self.fixtures.load("list_firewall_policies.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_firewall_policy_fw_id(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("describe_firewall_policy.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        if method == "DELETE":
-            body = self.fixtures.load("describe_firewall_policy.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_servers_srv_id_ips_ip_id_firewall_policy(self, method, url, body, header):
-        if method == "GET":
-            body = self.fixtures.load("describe_id_firewall_policy.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "DELETE":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "POST":
-            body = self.fixtures.load("describe_server.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_shared_storages(self, method, url, body, header):
-        if method == "GET" or method == "POST":
-            body = self.fixtures.load("list_shared_storages.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_shared_storages_storage_1(self, method, url, body, header):
-        if method == "GET" or method == "DELETE":
-            body = self.fixtures.load("shared_storage.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_shared_storages_storage_1_servers(self, method, url, body, header):
-        if method == "POST" or method == "DELETE":
-            body = self.fixtures.load("shared_storage.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_shared_storages_storage_1_servers_srv_1(self, method, url, body, header):
-        if method == "GET" or method == "DELETE":
-            body = self.fixtures.load("shared_storage.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_load_balancers(self, method, url, body, header):
-        if method == "POST":
-            body = self.fixtures.load("load_balancer.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "GET":
-            body = self.fixtures.load("list_load_balancer.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_load_balancers_lb_1(self, method, url, body, header):
-
-        body = self.fixtures.load("load_balancer.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_load_balancers_lb_1_server_ips(self, method, url, body, header):
-        if method == "GET":
-            body = self.fixtures.load("load_balancer_server_ips.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        if method == "POST":
-            body = self.fixtures.load("load_balancer.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_load_balancers_lb_1_rules(self, method, url, body, header):
-        if method == "POST":
-            body = self.fixtures.load("load_balancer.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "GET":
-            body = self.fixtures.load("load_balancer_rules.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_load_balancers_lb_1_server_ips_srv_1(self, method, url, body, header):
-        if method == "DELETE":
-            body = self.fixtures.load("load_balancer.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        if method == "GET":
-            body = self.fixtures.load("load_balancer_server_ip.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_load_balancers_lb_1_rules_rule_1(self, method, url, body, header):
-        if method == "DELETE":
-            body = self.fixtures.load("load_balancer.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "GET":
-            body = self.fixtures.load("load_balancer_rule.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_public_ips(self, method, url, body, header):
-        if method == "GET":
-            body = self.fixtures.load("list_public_ips.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "POST":
-            body = self.fixtures.load("public_ip.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_public_ips_ip_1(self, method, url, body, header):
-        body = self.fixtures.load("public_ip.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_monitoring_policies(self, method, url, body, header):
-        if method == "POST":
-            body = self.fixtures.load("monitoring_policy.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-        if method == "GET":
-            body = self.fixtures.load("list_monitoring_policies.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_monitoring_policies_pol_1(self, method, url, body, header):
-        body = self.fixtures.load("monitoring_policy.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_monitoring_policies_pol_1_ports(self, method, url, body, header):
-        body = self.fixtures.load("monitoring_policy_ports.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_monitoring_policies_pol_1_ports_port_1(self, method, url, body, header):
-        if method == "GET":
-            body = self.fixtures.load("monitoring_policy_port.json")
-        elif method == "POST":
-            body = self.fixtures.load("monitoring_policy.json")
-
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_monitoring_policies_pol_1_processes(self, method, url, body, header):
-        body = self.fixtures.load("monitoring_policy_processes.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_monitoring_policies_pol_1_processes_proc_1(self, method, url, body, header):
-        if method == "GET":
-            body = self.fixtures.load("monitoring_policy_process.json")
-        elif method == "POST":
-            body = self.fixtures.load("monitoring_policy.json")
-
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_monitoring_policies_pol_1_servers(self, method, url, body, header):
-        body = self.fixtures.load("monitoring_policy_servers.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_monitoring_policies_pol_1_servers_serv_1(self, method, url, body, header):
-        if method == "GET":
-            body = self.fixtures.load("monitoring_policy_servers.json")
-        elif method == "POST":
-            body = self.fixtures.load("monitoring_policy.json")
-
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_servers_fixed_instance_sizes(self, method, url, body, header):
-        body = self.fixtures.load("fixed_instance_sizes.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_profitbricks.py b/libcloud/test/compute/test_profitbricks.py
deleted file mode 100644
index c587a14..0000000
--- a/libcloud/test/compute/test_profitbricks.py
+++ /dev/null
@@ -1,2442 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-
-from libcloud.test import MockHttp, unittest
-from libcloud.utils.py3 import httplib
-from libcloud.compute.base import NodeAuthSSHKey, NodeAuthPassword
-from libcloud.test.secrets import PROFIT_BRICKS_PARAMS
-from libcloud.compute.types import Provider, NodeState
-from libcloud.common.exceptions import BaseHTTPError
-from libcloud.compute.providers import get_driver
-from libcloud.test.file_fixtures import ComputeFileFixtures
-
-
-class ProfitBricksTests(unittest.TestCase):
-    def setUp(self):
-        ProfitBricks = get_driver(Provider.PROFIT_BRICKS)
-        ProfitBricks.connectionCls.conn_class = ProfitBricksMockHttp
-        self.driver = ProfitBricks(*PROFIT_BRICKS_PARAMS)
-
-    """
-    Function tests for listing items
-    """
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-        self.assertEqual(len(sizes), 7)
-
-    def test_list_images(self):
-
-        """
-        Fetch all images and then fetch with filters
-        """
-        all_images = self.driver.list_images()
-        hdd_images = self.driver.list_images("HDD")
-        cdd_images = self.driver.list_images("CDROM")
-        private_images = self.driver.list_images(is_public=False)
-
-        self.assertEqual(len(all_images), 4)
-        self.assertEqual(len(hdd_images), 2)
-        self.assertEqual(len(cdd_images), 2)
-        self.assertEqual(len(private_images), 2)
-
-        image = all_images[0]
-        extra = image.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(image.id, "img-1")
-        self.assertEqual(image.name, "Test-Image-Two-CDROM")
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2014-11-14T15:22:19Z")
-        self.assertEqual(extra["created_by"], "System")
-        self.assertEqual(extra["etag"], "957e0eac7456fa7554e73bf0d18860eb")
-        self.assertEqual(extra["last_modified_date"], "2014-11-14T15:22:19Z")
-        self.assertEqual(extra["last_modified_by"], "System")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "Test-Image-Two-CDROM")
-        self.assertEqual(extra["description"], "")
-        self.assertEqual(extra["location"], "us/las")
-        self.assertEqual(extra["size"], 4)
-        self.assertEqual(extra["cpu_hot_plug"], False)
-
-        self.assertEqual(extra["cpu_hot_unplug"], False)
-        self.assertEqual(extra["ram_hot_plug"], False)
-        self.assertEqual(extra["ram_hot_unplug"], False)
-        self.assertEqual(extra["nic_hot_plug"], False)
-        self.assertEqual(extra["nic_hot_unplug"], False)
-
-        self.assertEqual(extra["disc_virtio_hot_plug"], False)
-        self.assertEqual(extra["disc_virtio_hot_unplug"], False)
-        self.assertEqual(extra["disc_scsi_hot_plug"], False)
-        self.assertEqual(extra["disc_scsi_hot_unplug"], False)
-        self.assertEqual(extra["licence_type"], "OTHER")
-
-        self.assertEqual(extra["image_type"], "CDROM")
-        self.assertEqual(extra["public"], True)
-        self.assertIsInstance(extra["image_aliases"], list)
-
-    def test_list_locations(self):
-
-        locations = self.driver.list_locations()
-
-        self.assertTrue(len(locations) > 0)
-
-        """
-        Standard properties
-        """
-        location = locations[2]
-        self.assertEqual(location.id, "us/las")
-        self.assertEqual(location.name, "lasvegas")
-        self.assertEqual(location.country, "us")
-
-    def test_list_nodes(self):
-
-        nodes = self.driver.list_nodes()
-
-        self.assertEqual(len(nodes), 2)
-
-        node = nodes[0]
-        extra = node.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(node.id, "srv-1")
-        self.assertEqual(node.name, "libcloud Test")
-        self.assertEqual(node.state, NodeState.RUNNING)
-        self.assertEqual(node.public_ips, [])
-        self.assertEqual(node.private_ips, [])
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-18T07:28:05Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "e7cf186125f51f3d9511754a40dcd12c")
-        self.assertEqual(extra["last_modified_date"], "2016-10-18T07:28:05Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["availability_zone"], "AUTO")
-        self.assertEqual(extra["boot_cdrom"], None)
-        self.assertEqual(extra["boot_volume"]["id"], "bvol-1")
-        self.assertEqual(
-            extra["boot_volume"]["href"],
-            ("/cloudapi/v4/datacenters/dc-1" "/volumes/bvol-1"),
-        )
-        self.assertEqual(extra["boot_volume"]["properties"]["name"], "libcloud Test")
-        self.assertEqual(extra["boot_volume"]["properties"]["type"], "HDD")
-        self.assertEqual(extra["boot_volume"]["properties"]["size"], 2)
-        self.assertEqual(extra["boot_volume"]["properties"]["image"], "bvol-img")
-        self.assertEqual(extra["cpu_family"], "AMD_OPTERON")
-
-        """
-        Other miscellaneous
-        """
-        self.assertEqual(len(extra["entities"]), 3)
-        self.assertNotIn("status_url", extra)
-
-    def test_ex_list_availability_zones(self):
-
-        zones = self.driver.ex_list_availability_zones()
-        self.assertEqual(len(zones), 3)
-
-        zones_sorted = sorted(list(a.name for a in zones))
-        zones_expected = ["AUTO", "ZONE_1", "ZONE_2"]
-        self.assertEqual(zones_sorted, zones_expected)
-
-    def test_list_volumes(self):
-
-        volumes = self.driver.list_volumes()
-        self.assertTrue(len(volumes) > 0)
-
-    def test_ex_list_datacenters(self):
-
-        datacenters = self.driver.ex_list_datacenters()
-        self.assertTrue(len(datacenters) > 0)
-
-        datacenter = datacenters[0]
-        extra = datacenter.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(datacenter.id, "dc-1")
-        self.assertEqual(datacenter.href, "/cloudapi/v4/datacenters/dc-1")
-        self.assertEqual(datacenter.name, "libcloud Test")
-        self.assertEqual(datacenter.version, 3)
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["description"], "libcloud test datacenter")
-        self.assertEqual(extra["location"], "us/las")
-        self.assertEqual(extra["version"], 3)
-        self.assertEqual(extra["features"], ["SSD", "MULTIPLE_CPU"])
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-14T07:24:59Z")
-        self.assertEqual(extra["created_by"], "test@test.test")
-        self.assertEqual(extra["etag"], "bdddec2287cb7723e86ac088bf644606")
-        self.assertEqual(extra["last_modified_date"], "2016-10-17T15:27:25Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.test")
-
-        self.assertEqual(extra["state"], "AVAILABLE")
-        self.assertEqual(extra["provisioning_state"], NodeState.RUNNING)
-        self.assertEqual(len(extra["entities"]), 4)
-        self.assertNotIn("status_url", extra)
-
-    def test_list_snapshots(self):
-
-        volume_snapshots = self.driver.list_snapshots()
-        self.assertTrue(len(volume_snapshots) > 0)
-
-        snapshot = volume_snapshots[0]
-
-        """
-        Standard properties
-        """
-        self.assertEqual(snapshot.id, "sshot")
-        self.assertEqual(snapshot.size, 10)
-        self.assertEqual(snapshot.created, "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.state, NodeState.RUNNING)
-        self.assertEqual(snapshot.name, "Balancer Testing 1 Storage-Snapshot-10/26/2016")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(snapshot.extra["name"], "Balancer Testing 1 Storage-Snapshot-10/26/2016")
-        self.assertEqual(
-            snapshot.extra["description"],
-            ('Created from "Balancer Testing 1' ' Storage" in Data Center "Snapshot"'),
-        )
-        self.assertEqual(snapshot.extra["location"], "us/las")
-        self.assertEqual(snapshot.extra["size"], 10)
-        self.assertEqual(snapshot.extra["cpu_hot_plug"], True)
-        self.assertEqual(snapshot.extra["cpu_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["ram_hot_plug"], True)
-        self.assertEqual(snapshot.extra["ram_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["nic_hot_plug"], True)
-        self.assertEqual(snapshot.extra["nic_hot_unplug"], True)
-        self.assertEqual(snapshot.extra["disc_virtio_hot_plug"], True)
-        self.assertEqual(snapshot.extra["disc_virtio_hot_unplug"], True)
-        self.assertEqual(snapshot.extra["disc_scsi_hot_plug"], False)
-        self.assertEqual(snapshot.extra["disc_scsi_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["licence_type"], "LINUX")
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(snapshot.extra["created_date"], "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.extra["created_by"], "test@test.te")
-        self.assertEqual(snapshot.extra["etag"], "01873262ac042b5f44ed33b4241225b4")
-        self.assertEqual(snapshot.extra["last_modified_date"], "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.extra["last_modified_by"], "test@test.te")
-        self.assertEqual(snapshot.extra["state"], "AVAILABLE")
-
-    """
-    Function tests for operations on volume snapshots
-    """
-
-    def test_create_volume_snapshot(self):
-        volume = self.driver.ex_describe_volume("/cloudapi/v4/datacenters/" "dc-1/" "volumes/vol-2")
-        snapshot = self.driver.create_volume_snapshot(volume=volume)
-
-        """
-        Standard properties
-        """
-        self.assertEqual(snapshot.id, "sshot")
-        self.assertEqual(snapshot.size, 10)
-        self.assertEqual(snapshot.created, "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.state, NodeState.PENDING)
-        self.assertEqual(snapshot.name, "libcloud Test")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(snapshot.extra["name"], "libcloud Test")
-        self.assertEqual(snapshot.extra["description"], "libcloud test snapshot")
-        self.assertEqual(snapshot.extra["location"], "us/las")
-        self.assertEqual(snapshot.extra["size"], 10)
-        self.assertEqual(snapshot.extra["cpu_hot_plug"], True)
-        self.assertEqual(snapshot.extra["cpu_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["ram_hot_plug"], True)
-        self.assertEqual(snapshot.extra["ram_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["nic_hot_plug"], True)
-        self.assertEqual(snapshot.extra["nic_hot_unplug"], True)
-        self.assertEqual(snapshot.extra["disc_virtio_hot_plug"], True)
-        self.assertEqual(snapshot.extra["disc_virtio_hot_unplug"], True)
-
-        self.assertEqual(snapshot.extra["disc_scsi_hot_plug"], False)
-        self.assertEqual(snapshot.extra["disc_scsi_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["licence_type"], "LINUX")
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(snapshot.extra["created_date"], "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.extra["created_by"], "test@test.te")
-        self.assertEqual(snapshot.extra["etag"], "01873262ac042b5f44ed33b4241225b4")
-        self.assertEqual(snapshot.extra["last_modified_date"], "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.extra["last_modified_by"], "test@test.te")
-        self.assertEqual(snapshot.extra["state"], "BUSY")
-
-    def test_create_volume_snapshot_failure(self):
-        with self.assertRaises(AttributeError):
-            "Raises attribute error if no volume"
-            self.driver.create_volume_snapshot(volume=None)
-
-    def test_ex_describe_snapshot(self):
-        snapshot_w_href = self.driver.ex_describe_snapshot(ex_href="/cloudapi/v4/snapshots/sshot")
-        snapshot_w_id = self.driver.ex_describe_snapshot(ex_snapshot_id="sshot")
-        self._verify_snapshot(snapshot=snapshot_w_href)
-        self._verify_snapshot(snapshot=snapshot_w_id)
-
-    def test_ex_describe_snapshot_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_snapshot(ex_snapshot_id="00000000")
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_snapshot(self, snapshot):
-        """
-        Standard properties
-        """
-        self.assertEqual(snapshot.id, "sshot")
-        self.assertEqual(snapshot.size, 10)
-        self.assertEqual(snapshot.created, "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.state, NodeState.RUNNING)
-        self.assertEqual(snapshot.name, "libcloud Test")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(snapshot.extra["name"], "libcloud Test")
-        self.assertEqual(snapshot.extra["description"], "libcloud test snapshot")
-        self.assertEqual(snapshot.extra["location"], "us/las")
-        self.assertEqual(snapshot.extra["size"], 10)
-        self.assertEqual(snapshot.extra["cpu_hot_plug"], True)
-        self.assertEqual(snapshot.extra["cpu_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["ram_hot_plug"], True)
-        self.assertEqual(snapshot.extra["ram_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["nic_hot_plug"], True)
-        self.assertEqual(snapshot.extra["nic_hot_unplug"], True)
-        self.assertEqual(snapshot.extra["disc_virtio_hot_plug"], True)
-        self.assertEqual(snapshot.extra["disc_virtio_hot_unplug"], True)
-        self.assertEqual(snapshot.extra["disc_scsi_hot_plug"], False)
-        self.assertEqual(snapshot.extra["disc_scsi_hot_unplug"], False)
-        self.assertEqual(snapshot.extra["licence_type"], "LINUX")
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(snapshot.extra["created_date"], "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.extra["created_by"], "test@test.te")
-        self.assertEqual(snapshot.extra["etag"], "01873262ac042b5f44ed33b4241225b4")
-        self.assertEqual(snapshot.extra["last_modified_date"], "2016-10-26T11:38:45Z")
-        self.assertEqual(snapshot.extra["last_modified_by"], "test@test.te")
-        self.assertEqual(snapshot.extra["state"], "AVAILABLE")
-
-    def test_ex_update_snapshot(self):
-        snapshot = self.driver.ex_describe_snapshot(ex_href="/cloudapi/v4/snapshots/sshot")
-        updated = self.driver.ex_update_snapshot(
-            snapshot=snapshot,
-            name="libcloud Test - RENAME",
-            description="libcloud test snapshot - RENAME",
-        )
-
-        self.assertEqual(updated.name, "libcloud Test - RENAME")
-        self.assertEqual(updated.extra["description"], "libcloud test snapshot - RENAME")
-
-    def test_restore_volume_snapshot(self):
-        volume = self.driver.ex_describe_volume(ex_datacenter_id="dc-1", ex_volume_id="vol-2")
-        snapshot = self.driver.ex_describe_snapshot(ex_snapshot_id="sshot")
-        restored = self.driver.ex_restore_volume_snapshot(volume=volume, snapshot=snapshot)
-        self.assertTrue(restored)
-
-    def test_destroy_volume_snapshot(self):
-        snapshot = self.driver.ex_describe_snapshot(ex_href="/cloudapi/v4/snapshots/sshot")
-        destroyed = self.driver.destroy_volume_snapshot(snapshot)
-        self.assertTrue(destroyed)
-
-    """
-    Function tests for operations on nodes (servers)
-    """
-
-    def test_reboot_node(self):
-        node = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/dc-1" "/servers/srv-1")
-        )
-        rebooted = self.driver.reboot_node(node=node)
-        self.assertTrue(rebooted)
-
-    def test_create_node(self):
-        image = self.driver.ex_describe_image(ex_href="/cloudapi/v4/images/img-2")
-        datacenter = self.driver.ex_describe_datacenter(ex_href="/cloudapi/v4/datacenters/dc-1")
-
-        ssh_key = NodeAuthSSHKey("ssh-rsa AAAAB3NzaC1")
-        password = NodeAuthPassword("secretpassword1233")
-
-        node = self.driver.create_node(
-            name="libcloud Test",
-            image=image,
-            ex_ram=1024,
-            ex_cores=1,
-            ex_disk=2,
-            ex_bus_type="VIRTIO",
-            ex_disk_type="HDD",
-            ex_cpu_family="INTEL_XEON",
-            ex_password=password,
-            ex_ssh_keys=[ssh_key],
-            ex_datacenter=datacenter,
-        )
-
-        extra = node.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(node.id, "srv-2")
-        self.assertEqual(node.name, "libcloud Test")
-        self.assertEqual(node.state, NodeState.UNKNOWN)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-19T13:25:19Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "9bea2412ac556b402a07260fc0d1603f")
-        self.assertEqual(extra["last_modified_date"], "2016-10-19T13:25:19Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["cores"], 1)
-        self.assertEqual(extra["ram"], 1024)
-        self.assertEqual(extra["availability_zone"], "ZONE_1")
-        self.assertEqual(extra["vm_state"], None)
-
-        self.assertEqual(extra["boot_cdrom"], None)
-        self.assertEqual(extra["boot_volume"], None)
-        self.assertEqual(extra["cpu_family"], "INTEL_XEON")
-
-        """
-        Extra entities
-        """
-        self.assertEqual(len(extra["entities"]["volumes"]["items"]), 1)
-
-    def test_create_node_failure(self):
-        image = self.driver.ex_describe_image(ex_href="/cloudapi/v4/images/img-2")
-        datacenter = self.driver.ex_describe_datacenter(ex_href="/cloudapi/v4/datacenters/dc-1")
-        sizes = self.driver.list_sizes()
-
-        with self.assertRaises(ValueError):
-            "Raises value error if no size or ex_ram"
-            self.driver.create_node(name="libcloud Test", image=image, ex_disk=40, ex_cores=1)
-
-        with self.assertRaises(ValueError):
-            "Raises value error if no size or ex_cores"
-            self.driver.create_node(name="libcloud Test", image=image, ex_disk=40, ex_ram=1024)
-
-        with self.assertRaises(ValueError):
-            "Raises value error if no size or ex_disk"
-            self.driver.create_node(name="libcloud Test", image=image, ex_cores=2, ex_ram=1024)
-
-        with self.assertRaises(ValueError):
-            "Raises value error if no ssh keys or password"
-            self.driver.create_node(
-                name="libcloud Test",
-                image=image,
-                size=sizes[1],
-                ex_datacenter=datacenter,
-            )
-
-    def test_destroy_node(self):
-        node = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1")
-        )
-        destroyed = self.driver.destroy_node(node=node)
-        self.assertTrue(destroyed)
-
-    def test_ex_list_attached_volumes(self):
-
-        node = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/servers/" "srv-1")
-        )
-
-        attached_volumes = self.driver.ex_list_attached_volumes(node)
-        self.assertTrue(len(attached_volumes) > 0)
-
-    def test_attach_volume(self):
-
-        node = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1")
-        )
-        volume = self.driver.ex_describe_volume(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "volumes/vol-2")
-        )
-
-        attached = self.driver.attach_volume(node=node, volume=volume)
-        extra = attached.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(attached.id, "vol-2")
-        self.assertEqual(attached.name, "libcloud Test")
-        self.assertEqual(attached.size, 2)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T13:13:36Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "c1800ce349033f9cd2c095ea1ea4976a")
-        self.assertEqual(extra["last_modified_date"], "2016-10-17T13:47:52Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["type"], "HDD")
-        self.assertEqual(extra["size"], 2)
-        self.assertEqual(extra["image"], "bvol-img")
-
-        self.assertEqual(extra["image_password"], None)
-        self.assertEqual(extra["ssh_keys"], None)
-        self.assertEqual(extra["bus"], "VIRTIO")
-        self.assertEqual(extra["licence_type"], "UNKNOWN")
-        self.assertEqual(extra["cpu_hot_plug"], True)
-
-        self.assertEqual(extra["cpu_hot_unplug"], False)
-        self.assertEqual(extra["ram_hot_plug"], True)
-        self.assertEqual(extra["ram_hot_unplug"], False)
-        self.assertEqual(extra["nic_hot_plug"], True)
-        self.assertEqual(extra["nic_hot_unplug"], True)
-
-        self.assertEqual(extra["disc_virtio_hot_plug"], True)
-        self.assertEqual(extra["disc_virtio_hot_unplug"], True)
-        self.assertEqual(extra["disc_scsi_hot_plug"], False)
-        self.assertEqual(extra["disc_scsi_hot_unplug"], False)
-        self.assertEqual(extra["device_number"], 2)
-
-        self.assertNotIn("availability_zone", extra)
-
-    def test_detach_volume(self):
-
-        node = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1")
-        )
-        volume = self.driver.ex_describe_volume(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "volumes/vol-2")
-        )
-        detached = self.driver.detach_volume(node=node, volume=volume)
-        self.assertTrue(detached)
-
-    def test_ex_stop_node(self):
-
-        node = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1")
-        )
-        stopped = self.driver.ex_stop_node(node)
-        self.assertTrue(stopped)
-
-    def test_ex_start_node(self):
-        node = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1")
-        )
-        started = self.driver.ex_start_node(node)
-        self.assertTrue(started)
-
-    def test_ex_describe_node(self):
-        node_w_href = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1")
-        )
-        node_w_id = self.driver.ex_describe_node(ex_datacenter_id="dc-1", ex_node_id="srv-1")
-        self._verify_node(node=node_w_href)
-        self._verify_node(node=node_w_id)
-
-    def test_ex_describe_node_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_node(ex_datacenter_id="dc-1", ex_node_id="00000000")
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_node(self, node):
-        extra = node.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(node.id, "srv-1")
-        self.assertEqual(node.name, "libcloud Test")
-        self.assertEqual(node.state, NodeState.RUNNING)
-        self.assertEqual(node.public_ips, [])
-        self.assertEqual(node.private_ips, [])
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-18T07:28:05Z")
-        self.assertEqual(extra["created_by"], "test@test.test")
-        self.assertEqual(extra["etag"], "e7cf186125f51f3d9511754a40dcd12c")
-        self.assertEqual(extra["last_modified_date"], "2016-10-18T07:28:05Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.test")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["availability_zone"], "ZONE_1")
-        self.assertEqual(extra["boot_cdrom"], None)
-        self.assertEqual(extra["boot_volume"]["id"], "bvol-1")
-        self.assertEqual(
-            extra["boot_volume"]["href"],
-            ("/cloudapi/v4/datacenters/" "dc-1/" "volumes/bvol-1"),
-        )
-        self.assertEqual(extra["boot_volume"]["properties"]["name"], "libcloud Test")
-
-        self.assertEqual(extra["boot_volume"]["properties"]["type"], "HDD")
-        self.assertEqual(extra["boot_volume"]["properties"]["size"], 2)
-        self.assertEqual(extra["boot_volume"]["properties"]["image"], "bvol-img")
-        self.assertEqual(extra["cpu_family"], "AMD_OPTERON")
-
-        """
-        Other miscellaneous
-        """
-        self.assertEqual(len(extra["entities"]), 3)
-        self.assertNotIn("status_url", extra)
-
-    def test_ex_update_node(self):
-
-        node = self.driver.ex_describe_node(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1")
-        )
-        updated = self.driver.ex_update_node(node=node, name="libcloud Test RENAME")
-
-        self.assertEqual(updated.id, "srv-1")
-        self.assertEqual(updated.name, "libcloud Test RENAME")
-
-    """
-    Function tests for operations on volumes
-    """
-
-    def test_create_volume(self):
-
-        datacenter = self.driver.ex_describe_datacenter(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1")
-        )
-        image = self.driver.ex_describe_image(ex_href="/cloudapi/v4/images/img-2")
-        created = self.driver.create_volume(
-            size=30,
-            name="Test volume",
-            ex_type="HDD",
-            ex_datacenter=datacenter,
-            image=image,
-            ex_ssh_keys=[NodeAuthSSHKey("ssh-rsa AAAAB3NzaC1")],
-        )
-
-        self.assertTrue(created)
-
-    def test_create_volume_failure(self):
-        datacenter = self.driver.ex_describe_datacenter(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1")
-        )
-        with self.assertRaises(ValueError):
-            "Raises value error if no size"
-            self.driver.create_volume(
-                size=30,
-                name="libcloud Test",
-                ex_type="HDD",
-                ex_bus_type="IDE",
-                ex_datacenter=datacenter,
-                image=None,
-            )
-
-    def test_destroy_volume(self):
-
-        volume = self.driver.ex_describe_volume(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/volumes/" "vol-2")
-        )
-        destroyed = self.driver.destroy_volume(volume=volume)
-
-        self.assertTrue(destroyed)
-
-    def test_ex_update_volume(self):
-
-        volume = self.driver.ex_describe_volume(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "volumes/vol-2")
-        )
-        updated = self.driver.ex_update_volume(
-            volume=volume,
-            ex_storage_name="Updated volume",
-            size=48,
-            ex_bus_type="VIRTIO",
-        )
-
-        extra = updated.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(updated.id, "vol-2")
-        self.assertEqual(updated.name, "libcloud Test - RENAME")
-        self.assertEqual(updated.size, 5)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T13:13:36Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "c1800ce349033f9cd2c095ea1ea4976a")
-        self.assertEqual(extra["last_modified_date"], "2016-10-17T13:47:52Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test - RENAME")
-        self.assertEqual(extra["type"], "HDD")
-        self.assertEqual(extra["size"], 5)
-        self.assertEqual(extra["availability_zone"], "ZONE_3")
-        self.assertEqual(extra["image"], "bvol-img")
-
-        self.assertEqual(extra["image_password"], None)
-        self.assertEqual(extra["ssh_keys"], None)
-        self.assertEqual(extra["bus"], "VIRTIO")
-        self.assertEqual(extra["licence_type"], "UNKNOWN")
-        self.assertEqual(extra["cpu_hot_plug"], True)
-
-        self.assertEqual(extra["cpu_hot_unplug"], False)
-        self.assertEqual(extra["ram_hot_plug"], True)
-        self.assertEqual(extra["ram_hot_unplug"], False)
-        self.assertEqual(extra["nic_hot_plug"], True)
-        self.assertEqual(extra["nic_hot_unplug"], True)
-
-        self.assertEqual(extra["disc_virtio_hot_plug"], True)
-        self.assertEqual(extra["disc_virtio_hot_unplug"], True)
-        self.assertEqual(extra["disc_scsi_hot_plug"], False)
-        self.assertEqual(extra["disc_scsi_hot_unplug"], False)
-        self.assertEqual(extra["device_number"], 3)
-
-        return {}
-
-    def test_ex_describe_volume(self):
-        volume_w_href = self.driver.ex_describe_volume(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "volumes/vol-2")
-        )
-        volume_w_id = self.driver.ex_describe_volume(ex_datacenter_id="dc-1", ex_volume_id="vol-2")
-        self._verify_volume(volume=volume_w_href)
-        self._verify_volume(volume=volume_w_id)
-
-    def test_ex_describe_volume_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_volume(ex_datacenter_id="dc-1", ex_volume_id="00000000")
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_volume(self, volume):
-        extra = volume.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(volume.id, "vol-2")
-        self.assertEqual(volume.name, "libcloud Test")
-        self.assertEqual(volume.size, 2)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T13:13:36Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "c1800ce349033f9cd2c095ea1ea4976a")
-        self.assertEqual(extra["last_modified_date"], "2016-10-17T13:47:52Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["type"], "HDD")
-        self.assertEqual(extra["size"], 2)
-        self.assertEqual(extra["availability_zone"], "ZONE_3")
-        self.assertEqual(extra["image"], "bvol-img")
-
-        self.assertEqual(extra["image_password"], None)
-        self.assertEqual(extra["ssh_keys"], None)
-        self.assertEqual(extra["bus"], "VIRTIO")
-        self.assertEqual(extra["licence_type"], "UNKNOWN")
-        self.assertEqual(extra["cpu_hot_plug"], True)
-
-        self.assertEqual(extra["cpu_hot_unplug"], False)
-        self.assertEqual(extra["ram_hot_plug"], True)
-        self.assertEqual(extra["ram_hot_unplug"], False)
-        self.assertEqual(extra["nic_hot_plug"], True)
-        self.assertEqual(extra["nic_hot_unplug"], True)
-
-        self.assertEqual(extra["disc_virtio_hot_plug"], True)
-        self.assertEqual(extra["disc_virtio_hot_unplug"], True)
-        self.assertEqual(extra["disc_scsi_hot_plug"], False)
-        self.assertEqual(extra["disc_scsi_hot_unplug"], False)
-        self.assertEqual(extra["device_number"], 3)
-
-        self.assertNotIn("status_url", extra)
-
-    """
-    Function tests for operations on data centers
-    """
-
-    def test_ex_create_datacenter(self):
-        location = self.driver.ex_describe_location(ex_location_id="us/las")
-        datacenter = self.driver.ex_create_datacenter(
-            name="libcloud Test",
-            location=location,
-            description="libcloud test datacenter",
-        )
-
-        extra = datacenter.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(datacenter.id, "dc-1")
-        self.assertEqual(datacenter.href, "/cloudapi/v4/datacenters/dc-1")
-        self.assertEqual(datacenter.name, "libcloud Test")
-        self.assertEqual(datacenter.version, None)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-18T17:20:56Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "c2d3d4d9bbdc0fff7d3c5c3864a68a46")
-        self.assertEqual(extra["last_modified_date"], "2016-10-18T17:20:56Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["description"], "libcloud test datacenter")
-        self.assertEqual(extra["location"], "us/las")
-        self.assertEqual(extra["version"], None)
-        self.assertEqual(extra["features"], [])
-
-        """
-        Miscellaneous properties
-        """
-        self.assertNotIn("entities", extra)
-        self.assertEqual(extra["provisioning_state"], NodeState.PENDING)
-
-    def test_ex_create_datacenter_failure(self):
-        with self.assertRaises(AttributeError):
-            "Raises attribute error if no location"
-            self.driver.ex_create_datacenter(
-                name="libcloud Test",
-                location=None,
-                description="libcloud test datacenter",
-            )
-
-    def test_ex_destroy_datacenter(self):
-
-        datacenter = self.driver.ex_describe_datacenter(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1")
-        )
-        destroyed = self.driver.ex_destroy_datacenter(datacenter=datacenter)
-        self.assertTrue(destroyed)
-
-    def test_ex_describe_datacenter(self):
-        datacenter_w_href = self.driver.ex_describe_datacenter(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1")
-        )
-        datacenter_w_id = self.driver.ex_describe_datacenter(ex_datacenter_id="dc-1")
-        self._verify_datacenter(datacenter=datacenter_w_href)
-        self._verify_datacenter(datacenter=datacenter_w_id)
-
-    def test_ex_describe_datacenter_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_datacenter(ex_datacenter_id="00000000")
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_datacenter(self, datacenter):
-        extra = datacenter.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(datacenter.id, "dc-1")
-        self.assertEqual(datacenter.href, "/cloudapi/v4/datacenters/dc-1")
-        self.assertEqual(datacenter.name, "libcloud Test")
-        self.assertEqual(datacenter.version, 35)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T11:33:11Z")
-        self.assertEqual(extra["created_by"], "test@test.test")
-        self.assertEqual(extra["etag"], "53b215b8ec0356a649955dab019845a4")
-        self.assertEqual(extra["last_modified_date"], "2016-10-18T15:13:44Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.test")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["description"], "libcloud test datacenter")
-        self.assertEqual(extra["location"], "us/las")
-        self.assertEqual(extra["version"], 35)
-        self.assertEqual(extra["features"], ["SSD", "MULTIPLE_CPU"])
-
-        self.assertNotIn("status_url", extra)
-        self.assertEqual(extra["provisioning_state"], NodeState.RUNNING)
-        self.assertEqual(len(extra["entities"]), 4)
-
-    def test_ex_rename_datacenter(self):
-
-        datacenter = self.driver.ex_describe_datacenter(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1")
-        )
-        renamed = self.driver.ex_rename_datacenter(
-            datacenter=datacenter, name="libcloud Test - RENAME"
-        )
-        extra = renamed.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(renamed.id, "dc-1")
-        self.assertEqual(renamed.href, "/cloudapi/v4/datacenters/dc-1")
-        self.assertEqual(renamed.name, "libcloud Test - RENAME")
-        self.assertEqual(renamed.version, 35)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T11:33:11Z")
-        self.assertEqual(extra["created_by"], "test@test.test")
-        self.assertEqual(extra["etag"], "53b215b8ec0356a649955dab019845a4")
-        self.assertEqual(extra["last_modified_date"], "2016-10-18T15:13:44Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.test")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test - RENAME")
-        self.assertEqual(extra["description"], "libcloud test datacenter")
-        self.assertEqual(extra["location"], "us/las")
-        self.assertEqual(extra["version"], 35)
-        self.assertEqual(extra["features"], ["SSD", "MULTIPLE_CPU"])
-
-        self.assertNotIn("status_url", extra)
-        self.assertEqual(extra["provisioning_state"], NodeState.PENDING)
-        self.assertEqual(len(extra["entities"]), 4)
-
-    """
-    Function tests for operations on images
-    """
-
-    def test_ex_describe_image(self):
-        image_w_href = self.driver.ex_describe_image(ex_href=("/cloudapi/v4/images/" "img-2"))
-        image_w_id = self.driver.ex_describe_image(ex_image_id="img-2")
-        self._verify_image(image=image_w_href)
-        self._verify_image(image=image_w_id)
-
-    def test_ex_describe_image_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_image(ex_image_id="00000000")
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_image(self, image):
-        extra = image.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(image.id, "img-2")
-        self.assertEqual(image.name, "vivid-server-cloudimg-amd64-disk1.img")
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2015-10-09T12:06:34Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "bbf76112358af2fc5dd1bf21de8988db")
-        self.assertEqual(extra["last_modified_date"], "2015-11-11T15:23:20Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "vivid-server-cloudimg-amd64-disk1.img")
-        self.assertEqual(extra["description"], None)
-        self.assertEqual(extra["location"], "us/las")
-        self.assertEqual(extra["size"], 2)
-        self.assertEqual(extra["cpu_hot_plug"], False)
-
-        self.assertEqual(extra["cpu_hot_unplug"], False)
-        self.assertEqual(extra["ram_hot_plug"], False)
-        self.assertEqual(extra["ram_hot_unplug"], False)
-        self.assertEqual(extra["nic_hot_plug"], False)
-        self.assertEqual(extra["nic_hot_unplug"], False)
-
-        self.assertEqual(extra["disc_virtio_hot_plug"], False)
-        self.assertEqual(extra["disc_virtio_hot_unplug"], False)
-        self.assertEqual(extra["disc_scsi_hot_plug"], False)
-        self.assertEqual(extra["disc_scsi_hot_unplug"], False)
-        self.assertEqual(extra["licence_type"], "UNKNOWN")
-
-        self.assertEqual(extra["image_type"], "HDD")
-        self.assertEqual(extra["public"], False)
-        self.assertEqual(extra["href"], "/cloudapi/v4/images/img-2")
-
-        self.assertIsInstance(extra["image_aliases"], list)
-
-    def test_ex_update_image(self):
-        image = self.driver.ex_describe_image(ex_href=("/cloudapi/v4/images/" "img-2"))
-        updated = self.driver.ex_update_image(image=image, name="my-updated-image.img")
-        extra = updated.extra
-
-        self.assertEqual(updated.name, "my-updated-image.img")
-        self.assertEqual(extra["last_modified_date"], "2016-11-11T15:23:20Z")
-
-    def test_ex_delete_image(self):
-        image = self.driver.ex_describe_image(ex_href=("/cloudapi/v4/images/" "img-2"))
-        deleted = self.driver.ex_delete_image(image)
-        self.assertTrue(deleted)
-
-    """
-    Function tests for operations on network interfaces
-    """
-
-    def test_ex_list_network_interfaces(self):
-
-        network_interfaces = self.driver.ex_list_network_interfaces()
-        self.assertTrue(len(network_interfaces) > 0)
-
-        network_interface = network_interfaces[0]
-        extra = network_interface.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(network_interface.id, "nic-1")
-        self.assertEqual(network_interface.name, "libcloud Test")
-        self.assertEqual(
-            network_interface.href,
-            ("/cloudapi/v4/datacenters/" "dc-1/servers/" "s-3/nics/" "nic-1"),
-        )
-        self.assertEqual(network_interface.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T15:46:38Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "dbd8216137cf0ec9951170f93fa8fa53")
-        self.assertEqual(extra["last_modified_date"], "2016-10-17T18:19:43Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["mac"], "02:01:0b:9d:4d:ce")
-        self.assertEqual(extra["ips"], ["10.15.124.11"])
-        self.assertEqual(extra["dhcp"], False)
-        self.assertEqual(extra["lan"], 2)
-        self.assertEqual(extra["firewall_active"], True)
-        self.assertEqual(extra["nat"], False)
-
-    def test_ex_describe_network_interface(self):
-        nic_w_href = self.driver.ex_describe_network_interface(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3" "/nics/nic-2")
-        )
-        nic_w_id = self.driver.ex_describe_network_interface(
-            ex_datacenter_id="dc-1", ex_server_id="s-3", ex_nic_id="nic-2"
-        )
-        self._verify_network_interface(network_interface=nic_w_href)
-        self._verify_network_interface(network_interface=nic_w_id)
-
-    def test_ex_describe_network_interface_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_network_interface(
-                ex_datacenter_id="dc-1", ex_server_id="s-3", ex_nic_id="00000000"
-            )
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_network_interface(self, network_interface):
-        extra = network_interface.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(network_interface.id, "nic-2")
-        self.assertEqual(network_interface.name, "libcloud Test")
-        self.assertEqual(
-            network_interface.href,
-            ("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-2"),
-        )
-        self.assertEqual(network_interface.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T15:46:38Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "dbd8216137cf0ec9951170f93fa8fa53")
-        self.assertEqual(extra["last_modified_date"], "2016-10-17T18:19:43Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["mac"], "02:01:0b:9d:4d:ce")
-        self.assertEqual(extra["ips"], ["10.15.124.11"])
-        self.assertEqual(extra["dhcp"], True)
-        self.assertEqual(extra["lan"], 2)
-        self.assertEqual(extra["firewall_active"], True)
-        self.assertEqual(extra["nat"], False)
-
-        """
-        Miscellaneous
-        """
-        self.assertTrue(len(extra["entities"]), 1)
-
-    def test_ex_create_network_interface(self):
-
-        node = self.driver.ex_describe_node("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1")
-        network_interface = self.driver.ex_create_network_interface(
-            node=node, lan_id=1, dhcp_active=True, nic_name="libcloud Test"
-        )
-        extra = network_interface.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(network_interface.id, "nic-2")
-        self.assertEqual(network_interface.name, "libcloud Test")
-        self.assertEqual(
-            network_interface.href,
-            ("/cloudapi/v4/datacenters/" "dc-1/" "servers/srv-1" "/nics/nic-2"),
-        )
-        self.assertEqual(network_interface.state, NodeState.PENDING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-19T08:18:50Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "8679142b0b1b70c8b8c09a8b31e6ded9")
-        self.assertEqual(extra["last_modified_date"], "2016-10-19T08:18:50Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["mac"], None)
-        self.assertEqual(extra["ips"], ["10.0.0.1"])
-        self.assertEqual(extra["dhcp"], True)
-        self.assertEqual(extra["lan"], 1)
-        self.assertEqual(extra["firewall_active"], None)
-        self.assertEqual(extra["nat"], None)
-
-    def test_ex_create_network_interface_failure(self):
-        with self.assertRaises(AttributeError):
-            "Raises attribute error if no node"
-            self.driver.ex_create_network_interface(node=None, lan_id=1, nic_name="libcloud Test")
-
-    def test_ex_update_network_interface(self):
-
-        network_interface = self.driver.ex_describe_network_interface(
-            "/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3" "/nics/nic-2"
-        )
-        updated = self.driver.ex_update_network_interface(
-            network_interface=network_interface, name="libcloud Test - RENAME"
-        )
-
-        extra = updated.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(updated.id, "nic-2")
-        self.assertEqual(updated.name, "libcloud Test - RENAME")
-        self.assertEqual(
-            updated.href,
-            ("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-2"),
-        )
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test - RENAME")
-
-    def test_ex_destroy_network_interface(self):
-
-        network_interface = self.driver.ex_describe_network_interface(
-            "/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3" "/nics/nic-2"
-        )
-        destroyed = self.driver.ex_destroy_network_interface(network_interface=network_interface)
-
-        self.assertTrue(destroyed)
-
-    def test_ex_set_inet_access(self):
-        network_interface = self.driver.ex_describe_network_interface(
-            "/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3" "/nics/nic-2"
-        )
-        updated = self.driver.ex_set_inet_access(
-            network_interface=network_interface, internet_access=False
-        )
-
-        self.assertTrue(updated)
-
-        return {}
-
-    """
-    Function tests for operations on locations
-    """
-
-    def test_ex_describe_location(self):
-        location_w_href = self.driver.ex_describe_location(
-            ex_href=("/cloudapi/v4/locations/us/las")
-        )
-        location_w_id = self.driver.ex_describe_location(ex_location_id="us/las")
-        self._verify_location(location=location_w_href)
-        self._verify_location(location=location_w_id)
-
-    def test_ex_describe_location_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_location(ex_location_id="us/000")
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_location(self, location):
-        self.assertEqual(location.id, "us/las")
-        self.assertEqual(location.name, "lasvegas")
-        self.assertEqual(location.country, "us")
-
-    """
-    Function tests for operations on firewall rules
-    """
-
-    def test_ex_list_firewall_rules(self):
-        network_interface = self.driver.ex_describe_network_interface(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-2")
-        )
-        firewall_rules = self.driver.ex_list_firewall_rules(network_interface)
-        self.assertTrue(len(firewall_rules) > 0)
-
-        firewall_rule = firewall_rules[0]
-        extra = firewall_rule.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(firewall_rule.id, "fwr-1")
-        self.assertEqual(firewall_rule.name, "Test updated firewall rule")
-        self.assertEqual(
-            firewall_rule.href,
-            (
-                "/cloudapi/v4/datacenters/"
-                "dc-1/"
-                "servers/s-3/"
-                "nics/nic-2/"
-                "firewallrules/fwr-1"
-            ),
-        )
-        self.assertEqual(firewall_rule.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-19T11:08:10Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "b91a2e082a7422dafb79d84a07fb2a28")
-        self.assertEqual(extra["last_modified_date"], "2016-10-19T11:19:04Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "Test updated firewall rule")
-        self.assertEqual(extra["protocol"], "TCP")
-        self.assertEqual(extra["source_mac"], None)
-        self.assertEqual(extra["source_ip"], None)
-        self.assertEqual(extra["target_ip"], None)
-
-        self.assertEqual(extra["icmp_code"], None)
-        self.assertEqual(extra["icmp_type"], None)
-        self.assertEqual(extra["port_range_start"], 80)
-        self.assertEqual(extra["port_range_end"], 80)
-
-    def test_ex_describe_firewall_rule(self):
-        firewall_rule_w_href = self.driver.ex_describe_firewall_rule(
-            ex_href=(
-                "/cloudapi/v4/datacenters/" "dc-1/servers/" "s-3/nics/" "nic-2/firewallrules" "/fw2"
-            )
-        )
-        firewall_rule_w_id = self.driver.ex_describe_firewall_rule(
-            ex_datacenter_id="dc-1",
-            ex_server_id="s-3",
-            ex_nic_id="nic-2",
-            ex_firewall_rule_id="fw2",
-        )
-        self._verify_firewall_rule(firewall_rule=firewall_rule_w_href)
-        self._verify_firewall_rule(firewall_rule=firewall_rule_w_id)
-
-    def test_ex_describe_firewall_rule_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_firewall_rule(
-                ex_datacenter_id="dc-1",
-                ex_server_id="s-3",
-                ex_nic_id="nic-2",
-                ex_firewall_rule_id="00",
-            )
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_firewall_rule(self, firewall_rule):
-        extra = firewall_rule.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(firewall_rule.id, "fw2")
-        self.assertEqual(firewall_rule.name, "SSH")
-        self.assertEqual(
-            firewall_rule.href,
-            ("/cloudapi/v4/datacenters/" "dc-1/servers/" "s-3/nics/" "nic-2/" "firewallrules/fw2"),
-        )
-        self.assertEqual(firewall_rule.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-19T09:55:10Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "00bb5b86562db1ed19ca38697e485160")
-        self.assertEqual(extra["last_modified_date"], "2016-10-19T09:55:10Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "SSH")
-        self.assertEqual(extra["protocol"], "TCP")
-        self.assertEqual(extra["source_mac"], "01:23:45:67:89:00")
-        self.assertEqual(extra["source_ip"], None)
-        self.assertEqual(extra["target_ip"], None)
-
-        self.assertEqual(extra["icmp_code"], None)
-        self.assertEqual(extra["icmp_type"], None)
-        self.assertEqual(extra["port_range_start"], 22)
-        self.assertEqual(extra["port_range_end"], 22)
-
-    def test_ex_create_firewall_rule(self):
-
-        network_interface = self.driver.ex_describe_network_interface(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-2")
-        )
-
-        firewall_rule = self.driver.ex_create_firewall_rule(
-            network_interface=network_interface,
-            protocol="TCP",
-            name="SSH",
-            port_range_start=22,
-            port_range_end=22,
-        )
-
-        extra = firewall_rule.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(firewall_rule.id, "fwr-1")
-        self.assertEqual(firewall_rule.name, "SSH")
-        self.assertEqual(
-            firewall_rule.href,
-            (
-                "/cloudapi/v4/datacenters/"
-                "dc-1/"
-                "servers/s-3/"
-                "nics/nic-2/"
-                "firewallrules/fwr-1"
-            ),
-        )
-        self.assertEqual(firewall_rule.state, NodeState.PENDING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-19T11:08:04Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "2a21551ba4adf85d9fb04b05a6938bcc")
-        self.assertEqual(extra["last_modified_date"], "2016-10-19T11:08:04Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "SSH")
-        self.assertEqual(extra["protocol"], "TCP")
-        self.assertEqual(extra["source_mac"], "01:23:45:67:89:00")
-        self.assertEqual(extra["source_ip"], None)
-        self.assertEqual(extra["target_ip"], None)
-
-        self.assertEqual(extra["icmp_code"], None)
-        self.assertEqual(extra["icmp_type"], None)
-        self.assertEqual(extra["port_range_start"], 22)
-        self.assertEqual(extra["port_range_end"], 22)
-
-    def test_ex_create_firewall_rule_failure(self):
-        with self.assertRaises(AttributeError):
-            "Raises attribute error if no network interface"
-            self.driver.ex_create_firewall_rule(network_interface=None, protocol="TCP", name="SSH")
-
-    def test_ex_update_firewall_rule(self):
-
-        firewall_rule = self.driver.ex_describe_firewall_rule(
-            ex_href=(
-                "/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-2/" "firewallrules/fw2"
-            )
-        )
-        updated = self.driver.ex_update_firewall_rule(
-            firewall_rule=firewall_rule, name="SSH - RENAME"
-        )
-
-        extra = updated.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(updated.id, "fw2")
-        self.assertEqual(updated.name, "SSH - RENAME")
-
-        self.assertEqual(extra["name"], "SSH - RENAME")
-
-    def test_ex_delete_firewall_rule(self):
-
-        firewall_rule = self.driver.ex_describe_firewall_rule(
-            ex_href=(
-                "/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-2/" "firewallrules/fw2"
-            )
-        )
-        deleted = self.driver.ex_delete_firewall_rule(firewall_rule)
-
-        self.assertTrue(deleted)
-
-    """
-    Function tests for operations on lans
-    """
-
-    def test_ex_list_lans(self):
-        datacenter = self.driver.ex_describe_datacenter(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1")
-        )
-        lans = self.driver.ex_list_lans(datacenter=datacenter)
-        lan = lans[0]
-        extra = lan.extra
-        self.assertEqual(len(lans), 1)
-
-        """
-        Standard properties
-        """
-        self.assertEqual(lan.id, "1")
-        self.assertEqual(lan.href, ("/cloudapi/v4/datacenters/" "dc-1/lans/1"))
-        self.assertEqual(lan.name, "libcloud Test")
-        self.assertEqual(lan.is_public, False)
-        self.assertEqual(lan.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-24T08:03:22Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["last_modified_date"], "2016-10-24T08:03:22Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["is_public"], False)
-
-        """
-        Miscellaneous
-        """
-        self.assertEqual(len(extra["entities"]), 1)
-
-    def test_ex_create_lan(self):
-        datacenter = self.driver.ex_describe_datacenter(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1")
-        )
-        lan = self.driver.ex_create_lan(datacenter=datacenter, is_public=True)
-        extra = lan.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(lan.id, "10")
-        self.assertEqual(lan.href, ("/cloudapi/v4/datacenters/" "dc-1/lans/10"))
-        self.assertEqual(lan.name, "libcloud Test")
-        self.assertEqual(lan.is_public, True)
-        self.assertEqual(lan.state, NodeState.PENDING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T11:33:11Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "53b215b8ec0356a649955dab019845a4")
-        self.assertEqual(extra["last_modified_date"], "2016-10-18T15:13:44Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["is_public"], True)
-
-    def test_ex_create_lan_failure(self):
-        with self.assertRaises(AttributeError):
-            "Raises attribute error if no datacenter"
-            self.driver.ex_create_lan(datacenter=None)
-
-    def test_ex_describe_lan(self):
-        lan_w_href = self.driver.ex_describe_lan(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/lans/10")
-        )
-        lan_w_id = self.driver.ex_describe_lan(ex_datacenter_id="dc-1", ex_lan_id="10")
-        self._verify_lan(lan=lan_w_href)
-        self._verify_lan(lan=lan_w_id)
-
-    def test_ex_describe_lan_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_lan(ex_datacenter_id="dc-1", ex_lan_id="0")
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_lan(self, lan):
-        extra = lan.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(lan.id, "10")
-        self.assertEqual(lan.href, ("/cloudapi/v4/datacenters/" "dc-1/lans/10"))
-        self.assertEqual(lan.name, "libcloud Test")
-        self.assertEqual(lan.is_public, True)
-        self.assertEqual(lan.state, NodeState.PENDING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T11:33:11Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "53b215b8ec0356a649955dab019845a4")
-        self.assertEqual(extra["last_modified_date"], "2016-10-18T15:13:44Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["is_public"], True)
-
-    def test_ex_update_lan(self):
-        lan = self.driver.ex_describe_lan(ex_href=("/cloudapi/v4/datacenters/" "dc-1/lans/10"))
-        updated = self.driver.ex_update_lan(lan=lan, is_public=False, name="libcloud Test - RENAME")
-        extra = updated.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(updated.id, "10")
-        self.assertEqual(updated.href, ("/cloudapi/v4/datacenters/" "dc-1/lans/10"))
-        self.assertEqual(updated.name, "libcloud Test - RENAME")
-        self.assertEqual(updated.is_public, False)
-        self.assertEqual(updated.state, NodeState.PENDING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T11:33:11Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "53b215b8ec0356a649955dab019845a4")
-        self.assertEqual(extra["last_modified_date"], "2016-10-18T15:13:44Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test - RENAME")
-        self.assertEqual(extra["is_public"], False)
-
-    def test_ex_delete_lan(self):
-        lan = self.driver.ex_describe_lan(ex_href=("/cloudapi/v4/datacenters/" "dc-1/lans/10"))
-        deleted = self.driver.ex_delete_lan(lan)
-        self.assertTrue(deleted)
-
-    """
-    Function tests for operations on load balancers
-    """
-
-    def test_ex_list_load_balancers(self):
-        load_balancers = self.driver.ex_list_load_balancers()
-        self.assertTrue(len(load_balancers) > 0)
-
-    def test_ex_describe_load_balancer(self):
-        load_balancer_w_href = self.driver.ex_describe_load_balancer(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-2/" "loadbalancers/bal-1")
-        )
-
-        load_balancer_w_id = self.driver.ex_describe_load_balancer(
-            ex_datacenter_id="dc-2", ex_load_balancer_id="bal-1"
-        )
-        self._verify_load_balancer(load_balancer=load_balancer_w_href)
-        self._verify_load_balancer(load_balancer=load_balancer_w_id)
-
-    def test_ex_describe_load_balancer_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_load_balancer(
-                ex_datacenter_id="dc-2", ex_load_balancer_id="00000000"
-            )
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_load_balancer(self, load_balancer):
-        """
-        Standard properties
-        """
-        self.assertEqual(load_balancer.id, "bal-1")
-        self.assertEqual(
-            load_balancer.href,
-            ("/cloudapi/v4/datacenters/" "dc-2/" "loadbalancers/bal-1"),
-        )
-        self.assertEqual(load_balancer.name, "libcloud Test")
-        self.assertEqual(load_balancer.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(load_balancer.extra["created_date"], "2016-10-26T13:02:33Z")
-        self.assertEqual(load_balancer.extra["created_by"], "test@test.te")
-        self.assertEqual(load_balancer.extra["etag"], "71e8df57a58615b9e15400ede4138b41")
-        self.assertEqual(load_balancer.extra["last_modified_date"], "2016-10-26T13:02:33Z")
-        self.assertEqual(load_balancer.extra["last_modified_by"], "test@test.te")
-        self.assertEqual(load_balancer.extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(load_balancer.extra["name"], "libcloud Test")
-        self.assertIsNotNone(load_balancer.extra["ip"])
-        self.assertEqual(load_balancer.extra["dhcp"], True)
-
-    def test_ex_create_load_balancer(self):
-        datacenter = self.driver.ex_describe_datacenter(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1")
-        )
-
-        nics = self.driver.ex_list_network_interfaces()
-
-        created = self.driver.ex_create_load_balancer(
-            datacenter=datacenter, name="libcloud Test", dhcp=True, nics=[nics[0]]
-        )
-
-        """
-        Standard properties
-        """
-        self.assertEqual(created.id, "bal-1")
-        self.assertEqual(created.href, ("/cloudapi/v4/datacenters" "/dc-1" "/loadbalancers/bal-1"))
-        self.assertEqual(created.name, "libcloud Test")
-        self.assertEqual(created.state, NodeState.PENDING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(created.extra["created_date"], "2016-10-26T13:02:33Z")
-        self.assertEqual(created.extra["created_by"], "test@test.te")
-        self.assertEqual(created.extra["etag"], "71e8df57a58615b9e15400ede4138b41")
-        self.assertEqual(created.extra["last_modified_date"], "2016-10-26T13:02:33Z")
-        self.assertEqual(created.extra["last_modified_by"], "test@test.te")
-        self.assertEqual(created.extra["state"], "BUSY")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(created.extra["name"], "libcloud Test")
-        self.assertEqual(created.extra["ip"], None)
-        self.assertEqual(created.extra["dhcp"], True)
-        self.assertIsNotNone(created.extra["entities"]["balancednics"])
-
-    def test_ex_create_load_balancer_failure(self):
-        with self.assertRaises(AttributeError):
-            "Raises attribute error if no datacenter"
-            self.driver.ex_create_load_balancer(datacenter=None, name="libcloud Test")
-
-    def test_ex_update_load_balancer(self):
-        load_balancer = self.driver.ex_describe_load_balancer(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-2/" "loadbalancers/bal-1")
-        )
-
-        updated = self.driver.ex_update_load_balancer(
-            load_balancer=load_balancer, name="libcloud Test - RENAME"
-        )
-
-        self.assertEqual(updated.name, "libcloud Test - RENAME")
-
-    def test_ex_list_load_balanced_nics(self):
-        load_balancer = self.driver.ex_describe_load_balancer(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-2/" "loadbalancers/bal-1")
-        )
-
-        network_interfaces = self.driver.ex_list_load_balanced_nics(load_balancer)
-
-        self.assertTrue(len(network_interfaces) > 0)
-
-        network_interface = network_interfaces[0]
-        extra = network_interface.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(network_interface.id, "nic-1")
-        self.assertEqual(network_interface.name, "libcloud Test")
-        self.assertEqual(
-            network_interface.href,
-            ("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-1"),
-        )
-        self.assertEqual(network_interface.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T15:46:38Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "dbd8216137cf0ec9951170f93fa8fa53")
-        self.assertEqual(extra["last_modified_date"], "2016-10-17T18:19:43Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertEqual(extra["mac"], "02:01:0b:9d:4d:ce")
-        self.assertEqual(extra["ips"], ["10.15.124.11"])
-        self.assertEqual(extra["dhcp"], False)
-        self.assertEqual(extra["lan"], 2)
-        self.assertEqual(extra["firewall_active"], True)
-        self.assertEqual(extra["nat"], False)
-
-    def test_ex_describe_load_balanced_nic(self):
-        network_interface_w_href = self.driver.ex_describe_network_interface(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-2")
-        )
-        network_interface_w_id = self.driver.ex_describe_network_interface(
-            ex_datacenter_id="dc-1", ex_server_id="s-3", ex_nic_id="nic-2"
-        )
-        self._verify_load_balanced_nic(network_interface=network_interface_w_href)
-        self._verify_load_balanced_nic(network_interface=network_interface_w_id)
-
-    def _verify_load_balanced_nic(self, network_interface):
-        extra = network_interface.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(network_interface.id, "nic-2")
-        self.assertEqual(network_interface.name, "libcloud Test")
-        self.assertEqual(
-            network_interface.href,
-            ("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3" "/nics/nic-2"),
-        )
-        self.assertEqual(network_interface.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-17T15:46:38Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "dbd8216137cf0ec9951170f93fa8fa53")
-        self.assertEqual(extra["last_modified_date"], "2016-10-17T18:19:43Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-        """
-        Extra properties
-        """
-        self.assertEqual(extra["name"], "libcloud Test")
-        self.assertRegex(extra["mac"], "^([0-9a-f]{2}[:]){5}([0-9a-f]{2})$")
-        self.assertTrue(len(extra["ips"]) > 0)
-        self.assertEqual(extra["dhcp"], True)
-        self.assertIsInstance(extra["lan"], int)
-        self.assertEqual(extra["firewall_active"], True)
-        self.assertEqual(extra["nat"], False)
-
-    def test_ex_attach_nic_to_load_balancer(self):
-        network_interface = self.driver.ex_describe_network_interface(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3" "/nics/nic-2")
-        )
-        load_balancer = self.driver.ex_describe_load_balancer(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-2/" "loadbalancers/bal-1")
-        )
-        attached = self.driver.ex_attach_nic_to_load_balancer(
-            load_balancer=load_balancer, network_interface=network_interface
-        )
-        self.assertTrue(attached)
-
-    def test_ex_remove_nic_from_load_balancer(self):
-        network_interface = self.driver.ex_describe_network_interface(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-1/" "servers/s-3/" "nics/nic-2")
-        )
-        load_balancer = self.driver.ex_describe_load_balancer(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-2/" "loadbalancers/bal-1")
-        )
-        detached = self.driver.ex_remove_nic_from_load_balancer(
-            load_balancer=load_balancer, network_interface=network_interface
-        )
-        self.assertTrue(detached)
-
-    def test_ex_delete_load_balancer(self):
-        load_balancer = self.driver.ex_describe_load_balancer(
-            ex_href=("/cloudapi/v4/datacenters/" "dc-2/" "loadbalancers/bal-1")
-        )
-        deleted = self.driver.ex_delete_load_balancer(load_balancer)
-        self.assertTrue(deleted)
-
-    """
-    Function tests for operations on IP blocks
-    """
-
-    def test_ex_list_ip_blocks(self):
-        ip_blocks = self.driver.ex_list_ip_blocks()
-        self.assertTrue(len(ip_blocks) > 0)
-
-    def test_ex_create_ip_block(self):
-        location = self.driver.ex_describe_location(ex_location_id="us/las")
-        created = self.driver.ex_create_ip_block(location=location, size=2, name="libcloud Test")
-        extra = created.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(created.id, "ipb-1")
-        self.assertEqual(created.name, "libcloud Test")
-        self.assertEqual(created.href, "/cloudapi/v4/ipblocks/ipb-1")
-        self.assertEqual(created.location, "us/las")
-        self.assertEqual(created.size, 2)
-        self.assertEqual(len(created.ips), 2)
-        self.assertEqual(created.state, NodeState.PENDING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-26T15:05:36Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "acbf00bacf7ee48d4b8bc4e7413e1f30")
-        self.assertEqual(extra["last_modified_date"], "2016-10-26T15:05:36Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "BUSY")
-
-    def test_ex_create_ip_block_failure(self):
-        with self.assertRaises(AttributeError):
-            "Raises attribute error if no location"
-            self.driver.ex_create_ip_block(location=None, size=2, name="libcloud Test")
-
-    def test_ex_describe_ip_block(self):
-        ip_block_w_href = self.driver.ex_describe_ip_block(
-            ex_href=("/cloudapi/v4/ipblocks/" "ipb-2")
-        )
-        ip_block_w_id = self.driver.ex_describe_ip_block(ex_ip_block_id="ipb-2")
-        self._verify_ip_block(ip_block=ip_block_w_href)
-        self._verify_ip_block(ip_block=ip_block_w_id)
-
-    def test_ex_describe_ip_block_failure(self):
-        with self.assertRaises(BaseHTTPError) as cm:
-            self.driver.ex_describe_ip_block(ex_ip_block_id="00000000")
-        self.assertIn("Resource does not exist", cm.exception.message.value)
-
-    def _verify_ip_block(self, ip_block):
-        extra = ip_block.extra
-
-        """
-        Standard properties
-        """
-        self.assertEqual(ip_block.id, "ipb-2")
-        self.assertEqual(ip_block.name, "libcloud Test")
-        self.assertEqual(ip_block.href, ("/cloudapi/v4/ipblocks/ipb-2"))
-        self.assertEqual(ip_block.location, "us/las")
-        self.assertEqual(ip_block.size, 2)
-        self.assertEqual(len(ip_block.ips), 2)
-        self.assertEqual(ip_block.state, NodeState.RUNNING)
-
-        """
-        Extra metadata
-        """
-        self.assertEqual(extra["created_date"], "2016-10-26T15:05:12Z")
-        self.assertEqual(extra["created_by"], "test@test.te")
-        self.assertEqual(extra["etag"], "43e05b766899950bc8a5aeee0fd89b05")
-        self.assertEqual(extra["last_modified_date"], "2016-10-26T15:05:12Z")
-        self.assertEqual(extra["last_modified_by"], "test@test.te")
-        self.assertEqual(extra["state"], "AVAILABLE")
-
-    def test_ex_delete_ip_block(self):
-        ip_block = self.driver.ex_describe_ip_block(ex_href=("/cloudapi/v4/ipblocks/" "ipb-2"))
-        deleted = self.driver.ex_delete_ip_block(ip_block)
-        self.assertTrue(deleted)
-
-
-class ProfitBricksMockHttp(MockHttp):
-
-    fixtures = ComputeFileFixtures("profitbricks")
-
-    """
-    Operations on images
-
-    GET     - fetches images
-    """
-
-    def _cloudapi_v4_images(self, method, url, body, headers):
-        body = self.fixtures.load("list_images.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    """
-    Operations on locations
-
-    GET     - fetches locations
-    """
-
-    def _cloudapi_v4_locations(self, method, url, body, headers):
-        body = self.fixtures.load("list_locations.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    """
-    Operations on a data centers
-
-    GET     - fetches data centers
-    PATCH   - creates a data center
-    """
-
-    def _cloudapi_v4_datacenters(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_datacenters.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("ex_create_datacenter.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on a data center
-
-    GET     - fetches a data center
-    DELETE  - destroys a data center
-    PATCH   - updates a data center
-    """
-
-    def _cloudapi_v4_datacenters_dc_1(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_datacenter.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_rename_datacenter.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_datacenters_00000000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on data center nodes (servers)
-
-    GET     - fetches a list of nodes (servers) for a data center
-    POST    - creates a node (server) for a data center
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_servers(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("list_nodes.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("create_node.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on data center volumes
-
-    GET     - fetches a list of volumes for a data center
-    POST    - creates a volume for a data center
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_volumes(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("list_volumes.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("create_volume.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on a node (server)
-
-    GET     - fetches a node (server)
-    DELETE  - destroys a node (server)
-    PATCH   - updates a node
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_servers_srv_1(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_node.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_update_node.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_datacenters_dc_1_servers_00000000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on a node (server)
-
-    POST    - reboots, then starts and stops a node
-    """
-    "reboot a node"
-
-    def _cloudapi_v4_datacenters_dc_1_servers_srv_1_reboot(self, method, url, body, headers):
-        return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    "start a node"
-
-    def _cloudapi_v4_datacenters_dc_1_servers_srv_1_stop(self, method, url, body, headers):
-        return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    "stop a node"
-
-    def _cloudapi_v4_datacenters_dc_1_servers_srv_1_start(self, method, url, body, headers):
-        return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on an image
-
-    GET     - fetches an image
-    DELETE  - deletes an image
-    PATCH   - updates an image
-    """
-
-    def _cloudapi_v4_images_img_2(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_image.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_update_image.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_images_00000000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on a volume
-
-    GET     - fetches a volume
-    DELETE  - destroys a volume
-    PATCH   - updates a volume
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_volumes_vol_2(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_volume.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_update_volume.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_datacenters_dc_1_volumes_00000000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on a volume connected to a node (server)
-
-    DELETE  -   destroys the link between a volume
-                and a server but does delete the volume.
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_servers_srv_1_volumes_vol_2(self, method, url, body, headers):
-        return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on a location
-
-    GET     - fetches a location
-    """
-
-    def _cloudapi_v4_locations_us_las(self, method, url, body, headers):
-        body = self.fixtures.load("ex_describe_location.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _cloudapi_v4_locations_us_000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on volumes connected to nodes (servers)
-
-    GET     - fetch volumes connected to a server
-    POST    - attach a volume to a node (server)
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_servers_srv_1_volumes(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_attached_volumes.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("attach_volume.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on network interfaces connected to a server
-
-    GET     - fetch network interfaces for a node (server)
-    POST    - create a network interface for a node (server)
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_servers_srv_1_nics(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_network_interfaces.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("ex_create_network_interface.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on network interfaces
-
-    GET     - fetch a network interface
-    DELETE  - destroy a network interface
-    PATCH   - update a network interface
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_servers_s_3_nics_nic_2(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_network_interface.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_update_network_interface.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_datacenters_dc_1_servers_s_3_nics_00000000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on firewall rules
-
-    GET     - fetch a firewall rule
-    DELETE  - destroy a firewall rule
-    PATCH   - update a firewall rule
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_servers_s_3_nics_nic_2_firewallrules_fw2(
-        self, method, url, body, headers
-    ):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_firewall_rule.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_update_firewall_rule.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_datacenters_dc_1_servers_s_3_nics_nic_2_firewallrules_00(
-        self, method, url, body, headers
-    ):
-        return self._get_not_found()
-
-    """
-    Operations on firewall rules connected to a network interface
-
-    GET     - fetch a list of firewall rules connected to a network interface
-    POST    - create a firewall rule for a network interface
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_servers_s_3_nics_nic_2_firewallrules(
-        self, method, url, body, headers
-    ):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_firewall_rules.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("ex_create_firewall_rule.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on lans
-
-    GET     - fetch a list of lans
-    POST    - create a lan
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_lans(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_lans.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("ex_create_lan.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on a single lan
-
-    GET     - fetch a lan
-    DELETE  - Destroy a lan
-    PATCH   - update a lan
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_lans_10(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_lan.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_update_lan.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_datacenters_dc_1_lans_0(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on snapshots
-
-    GET     - fetch a list of snapshots
-    """
-
-    def _cloudapi_v4_snapshots(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("list_snapshots.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    """
-    Operations on volume snapshots
-
-    POST    - create a volume snapshot
-    POST    - restore a volume snapshot
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_volumes_vol_2_create_snapshot(
-        self, method, url, body, headers
-    ):
-        if method == "POST":
-            body = self.fixtures.load("create_volume_snapshot.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_datacenters_dc_1_volumes_vol_2_restore_snapshot(
-        self, method, url, body, headers
-    ):
-        if method == "POST":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on a single snapshot
-
-    GET     - get information on a snapshot
-    DELETE  - delete a snapshot
-    PATCH   - update a snapshot
-    """
-
-    def _cloudapi_v4_snapshots_sshot(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_snapshot.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_update_snapshot.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_snapshots_00000000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on load balancers
-
-    GET     - list load balancers
-    POST    - create a load balancer for this datacenter
-    """
-
-    def _cloudapi_v4_datacenters_dc_1_loadbalancers(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_load_balancers.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("ex_create_load_balancer.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on a single load balancer
-
-    GET     - get information on a load balancer
-    DELETE  - delete a load balancer
-    PATCH   - update a load balancer
-    """
-
-    def _cloudapi_v4_datacenters_dc_2_loadbalancers_bal_1(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_load_balancer.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-        elif method == "PATCH":
-            body = self.fixtures.load("ex_update_load_balancer.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_datacenters_dc_2_loadbalancers_00000000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    """
-    Operations on a load balancers nics
-
-    GET     - get load balanced nics
-    """
-
-    def _cloudapi_v4_datacenters_dc_2_loadbalancers_bal_1_balancednics(
-        self, method, url, body, headers
-    ):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_load_balanced_nics.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on a load balanced nic
-
-    DELETE  - remove the nic from a load balancer
-    """
-
-    def _cloudapi_v4_datacenters_dc_2_loadbalancers_bal_1_balancednics_nic_2(
-        self, method, url, body, headers
-    ):
-        if method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on IP blocks
-
-    GET     - list IP blocks
-    POST    - create an IP block
-    """
-
-    def _cloudapi_v4_ipblocks(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_list_ip_blocks.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "POST":
-            body = self.fixtures.load("ex_create_ip_block.json")
-            return (httplib.ACCEPTED, body, {}, httplib.responses[httplib.ACCEPTED])
-
-    """
-    Operations on a single IP block
-
-    GET     - fetch an IP block
-    DELETE  - delete an IP block
-    """
-
-    def _cloudapi_v4_ipblocks_ipb_2(self, method, url, body, headers):
-        if method == "GET":
-            body = self.fixtures.load("ex_describe_ip_block.json")
-            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-        elif method == "DELETE":
-            return (httplib.ACCEPTED, "", {}, httplib.responses[httplib.ACCEPTED])
-
-    def _cloudapi_v4_ipblocks_00000000(self, method, url, body, headers):
-        return self._get_not_found()
-
-    def _get_not_found(self):
-        body = self.fixtures.load("error_resource_not_found.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.NOT_FOUND])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_softlayer.py b/libcloud/test/compute/test_softlayer.py
deleted file mode 100644
index 6667e18..0000000
--- a/libcloud/test/compute/test_softlayer.py
+++ /dev/null
@@ -1,294 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-
-import pytest
-
-from libcloud.test import MockHttp  # pylint: disable-msg=E0611
-from libcloud.test import unittest
-from libcloud.utils.py3 import next, httplib, xmlrpclib
-from libcloud.common.types import InvalidCredsError
-from libcloud.test.secrets import SOFTLAYER_PARAMS
-from libcloud.compute.types import NodeState, KeyPairDoesNotExistError
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.compute.drivers.softlayer import NODE_STATE_MAP, SoftLayerException
-from libcloud.compute.drivers.softlayer import SoftLayerNodeDriver as SoftLayer
-
-null_fingerprint = "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:" + "00:00:00:00:00"
-
-
-class SoftLayerTests(unittest.TestCase):
-    def setUp(self):
-        SoftLayer.connectionCls.conn_class = SoftLayerMockHttp
-        SoftLayerMockHttp.type = None
-        self.driver = SoftLayer(*SOFTLAYER_PARAMS)
-
-    def test_list_nodes(self):
-        nodes = self.driver.list_nodes()
-        node = nodes[0]
-        self.assertEqual(node.name, "libcloud-testing1.example.com")
-        self.assertEqual(node.state, NodeState.RUNNING)
-        self.assertEqual(node.extra["password"], "L3TJVubf")
-
-    def test_initializing_state(self):
-        nodes = self.driver.list_nodes()
-        node = nodes[1]
-        self.assertEqual(node.state, NODE_STATE_MAP["INITIATING"])
-
-    def test_list_locations(self):
-        locations = self.driver.list_locations()
-        dal = next(loc for loc in locations if loc.id == "dal05")
-        self.assertEqual(dal.country, "US")
-        self.assertEqual(dal.id, "dal05")
-        self.assertEqual(dal.name, "Dallas - Central U.S.")
-
-    def test_list_images(self):
-        images = self.driver.list_images()
-        image = images[0]
-        self.assertEqual(image.id, "CENTOS_6_64")
-
-    def test_get_image(self):
-        image = self.driver.get_image("CENTOS_6_64")
-        self.assertEqual(image.id, "CENTOS_6_64")
-
-    def test_fail_get_image(self):
-        self.assertRaises(SoftLayerException, self.driver.get_image, "NOT_IMAGE")
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-        self.assertEqual(len(sizes), 13)
-        for size in sizes:
-            self.assertTrue(size.price > 0.0)
-
-    def test_create_node(self):
-        node = self.driver.create_node(
-            name="libcloud-testing",
-            location=self.driver.list_locations()[0],
-            size=self.driver.list_sizes()[0],
-            image=self.driver.list_images()[0],
-        )
-        self.assertEqual(node.name, "libcloud-testing.example.com")
-        self.assertEqual(node.state, NODE_STATE_MAP["RUNNING"])
-
-    def test_create_node_ex_hourly_True(self):
-        SoftLayerMockHttp.type = "HOURLY_BILLING_TRUE"
-
-        node = self.driver.create_node(
-            name="libcloud-testing",
-            location=self.driver.list_locations()[0],
-            size=self.driver.list_sizes()[0],
-            image=self.driver.list_images()[0],
-            ex_hourly=True,
-        )
-        self.assertEqual(node.name, "libcloud-testing.example.com")
-        self.assertEqual(node.state, NODE_STATE_MAP["RUNNING"])
-
-        SoftLayerMockHttp.type = "HOURLY_BILLING_FALSE"
-
-        node = self.driver.create_node(
-            name="libcloud-testing",
-            location=self.driver.list_locations()[0],
-            size=self.driver.list_sizes()[0],
-            image=self.driver.list_images()[0],
-            ex_hourly=False,
-        )
-        self.assertEqual(node.name, "libcloud-testing.example.com")
-        self.assertEqual(node.state, NODE_STATE_MAP["RUNNING"])
-
-    def test_create_fail(self):
-        SoftLayerMockHttp.type = "SOFTLAYEREXCEPTION"
-        self.assertRaises(
-            SoftLayerException,
-            self.driver.create_node,
-            name="SOFTLAYEREXCEPTION",
-            location=self.driver.list_locations()[0],
-            size=self.driver.list_sizes()[0],
-            image=self.driver.list_images()[0],
-        )
-
-    def test_create_creds_error(self):
-        SoftLayerMockHttp.type = "INVALIDCREDSERROR"
-        self.assertRaises(
-            InvalidCredsError,
-            self.driver.create_node,
-            name="INVALIDCREDSERROR",
-            location=self.driver.list_locations()[0],
-            size=self.driver.list_sizes()[0],
-            image=self.driver.list_images()[0],
-        )
-
-    def test_create_node_no_location(self):
-        self.driver.create_node(
-            name="Test",
-            size=self.driver.list_sizes()[0],
-            image=self.driver.list_images()[0],
-        )
-
-    def test_create_node_no_image(self):
-        self.driver.create_node(name="Test", size=self.driver.list_sizes()[0])
-
-    def test_create_node_san(self):
-        self.driver.create_node(name="Test", ex_local_disk=False)
-
-    def test_create_node_domain_for_name(self):
-        self.driver.create_node(name="libcloud.org")
-
-    def test_create_node_ex_options(self):
-        self.driver.create_node(
-            name="Test",
-            location=self.driver.list_locations()[0],
-            size=self.driver.list_sizes()[0],
-            image=self.driver.list_images()[0],
-            ex_domain="libcloud.org",
-            ex_cpus=2,
-            ex_ram=2048,
-            ex_disk=100,
-            ex_keyname="test1",
-            ex_bandwidth=10,
-            ex_local_disk=False,
-            ex_datacenter="Dal05",
-            ex_os="UBUNTU_LATEST",
-        )
-
-    def test_reboot_node(self):
-        node = self.driver.list_nodes()[0]
-        self.driver.reboot_node(node)
-
-    def test_destroy_node(self):
-        node = self.driver.list_nodes()[0]
-        self.driver.destroy_node(node)
-
-    def test_list_keypairs(self):
-        keypairs = self.driver.list_key_pairs()
-        self.assertEqual(len(keypairs), 2)
-        self.assertEqual(keypairs[0].name, "test1")
-        self.assertEqual(keypairs[0].fingerprint, null_fingerprint)
-
-    def test_get_key_pair(self):
-        key_pair = self.driver.get_key_pair(name="test1")
-        self.assertEqual(key_pair.name, "test1")
-
-    def test_get_key_pair_does_not_exist(self):
-        self.assertRaises(KeyPairDoesNotExistError, self.driver.get_key_pair, name="test-key-pair")
-
-    @pytest.mark.skip(reason="no way of currently testing this")
-    def test_create_key_pair(self):
-        key_pair = self.driver.create_key_pair(name="my-key-pair")
-        fingerprint = "1f:51:ae:28:bf:89:e9:d8:1f:25:5d" ":37:2d:7d:b8:ca:9f:f5:f1:6f"
-
-        self.assertEqual(key_pair.name, "my-key-pair")
-        self.assertEqual(key_pair.fingerprint, fingerprint)
-        self.assertTrue(key_pair.private_key is not None)
-
-    def test_delete_key_pair(self):
-        success = self.driver.delete_key_pair("test1")
-        self.assertTrue(success)
-
-
-class SoftLayerMockHttp(MockHttp, unittest.TestCase):
-    fixtures = ComputeFileFixtures("softlayer")
-
-    def _get_method_name(self, type, use_param, qs, path):
-        return "_xmlrpc"
-
-    def _xmlrpc(self, method, url, body, headers):
-        params, meth_name = xmlrpclib.loads(body)
-        url = url.replace("/", "_")
-        meth_name = "{}_{}".format(url, meth_name)
-        return getattr(self, meth_name)(method, url, body, headers)
-
-    def _xmlrpc_v3_SoftLayer_Virtual_Guest_getCreateObjectOptions(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Virtual_Guest_getCreateObjectOptions.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Account_getVirtualGuests(self, method, url, body, headers):
-        body = self.fixtures.load("v3_SoftLayer_Account_getVirtualGuests.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Location_Datacenter_getDatacenters(self, method, url, body, headers):
-        body = self.fixtures.load("v3_SoftLayer_Location_Datacenter_getDatacenters.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Virtual_Guest_createObject(self, method, url, body, headers):
-        fixture = {
-            None: "v3__SoftLayer_Virtual_Guest_createObject.xml",
-            "INVALIDCREDSERROR": "SoftLayer_Account.xml",
-            "SOFTLAYEREXCEPTION": "fail.xml",
-            "HOURLY_BILLING_TRUE": "v3__SoftLayer_Virtual_Guest_createObject.xml",
-            "HOURLY_BILLING_FALSE": "v3__SoftLayer_Virtual_Guest_createObject.xml",
-        }[self.type]
-
-        if self.type == "HOURLY_BILLING_TRUE":
-            # Verify parameter is sent as a boolean and not as a string
-            expected_value = """
-<member>
-<name>hourlyBillingFlag</name>
-<value><boolean>1</boolean></value>
-</member>
-""".strip()
-
-            self.assertTrue(
-                expected_value in body,
-                "Request body is missing hourlyBillingFlag attribute",
-            )
-        elif self.type == "HOURLY_BILLING_FALSE":
-            # Verify parameter is sent as a boolean and not as a string
-            expected_value = """
-<member>
-<name>hourlyBillingFlag</name>
-<value><boolean>0</boolean></value>
-</member>
-""".strip()
-
-            self.assertTrue(
-                expected_value in body,
-                "Request body is missing hourlyBillingFlag attribute",
-            )
-
-        body = self.fixtures.load(fixture)
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Virtual_Guest_getObject(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Virtual_Guest_getObject.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Virtual_Guest_rebootSoft(self, method, url, body, headers):
-        body = self.fixtures.load("empty.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Virtual_Guest_deleteObject(self, method, url, body, headers):
-        body = self.fixtures.load("empty.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Account_getSshKeys(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Account_getSshKeys.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Security_Ssh_Key_getObject(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Security_Ssh_Key_getObject.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Security_Ssh_Key_createObject(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Security_Ssh_Key_createObject.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Security_Ssh_Key_deleteObject(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Security_Ssh_Key_deleteObject.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/compute/test_voxel.py b/libcloud/test/compute/test_voxel.py
deleted file mode 100644
index 797006f..0000000
--- a/libcloud/test/compute/test_voxel.py
+++ /dev/null
@@ -1,169 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.utils.py3 import httplib
-from libcloud.compute.base import Node, NodeSize, NodeImage, NodeLocation
-from libcloud.test.secrets import VOXEL_PARAMS
-from libcloud.compute.types import InvalidCredsError
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.compute.drivers.voxel import VoxelNodeDriver as Voxel
-
-
-class VoxelTest(unittest.TestCase):
-    def setUp(self):
-
-        Voxel.connectionCls.conn_class = VoxelMockHttp
-        VoxelMockHttp.type = None
-        self.driver = Voxel(*VOXEL_PARAMS)
-
-    def test_auth_failed(self):
-        VoxelMockHttp.type = "UNAUTHORIZED"
-        try:
-            self.driver.list_nodes()
-        except Exception as e:
-            self.assertTrue(isinstance(e, InvalidCredsError))
-        else:
-            self.fail("test should have thrown")
-
-    def test_response_failure(self):
-        VoxelMockHttp.type = "FAILURE"
-
-        try:
-            self.driver.list_nodes()
-        except Exception:
-            pass
-        else:
-            self.fail("Invalid response, but exception was not thrown")
-
-    def test_list_nodes(self):
-        VoxelMockHttp.type = "LIST_NODES"
-        nodes = self.driver.list_nodes()
-
-        self.assertEqual(len(nodes), 1)
-        self.assertEqual(nodes[0].name, "www.voxel.net")
-
-    def test_list_sizes(self):
-        sizes = self.driver.list_sizes()
-
-        self.assertEqual(len(sizes), 13)
-
-    def test_list_images(self):
-        VoxelMockHttp.type = "LIST_IMAGES"
-        images = self.driver.list_images()
-
-        self.assertEqual(len(images), 1)
-
-    def test_list_locations(self):
-        VoxelMockHttp.type = "LIST_LOCATIONS"
-        locations = self.driver.list_locations()
-
-        self.assertEqual(len(locations), 2)
-        self.assertEqual(locations[0].name, "Amsterdam")
-
-    def test_create_node_invalid_disk_size(self):
-        image = NodeImage(id=1, name="Ubuntu 8.10 (intrepid)", driver=self.driver)
-        size = NodeSize(1, "256 slice", None, None, None, None, driver=self.driver)
-        location = NodeLocation(id=1, name="Europe", country="England", driver=self.driver)
-
-        try:
-            self.driver.create_node(name="foo", image=image, size=size, location=location)
-        except ValueError:
-            pass
-        else:
-            self.fail("Invalid disk size provided but an exception was not" " thrown")
-
-    def test_create_node(self):
-        VoxelMockHttp.type = "CREATE_NODE"
-        image = NodeImage(id=1, name="Ubuntu 8.10 (intrepid)", driver=self.driver)
-        size = NodeSize(1, "256 slice", 1024, 500, None, None, driver=self.driver)
-        location = NodeLocation(id=1, name="Europe", country="England", driver=self.driver)
-
-        node = self.driver.create_node(name="foo", image=image, size=size, location=location)
-        self.assertEqual(node.id, "1234")
-
-        node = self.driver.create_node(
-            name="foo", image=image, size=size, location=location, ex_voxel_access=True
-        )
-        self.assertEqual(node.id, "1234")
-
-    def test_reboot_node(self):
-        VoxelMockHttp.type = "REBOOT_NODE"
-        node = Node(
-            id=72258,
-            name=None,
-            state=None,
-            public_ips=None,
-            private_ips=None,
-            driver=self.driver,
-        )
-
-        self.assertTrue(node.reboot())
-
-    def test_destroy_node(self):
-        VoxelMockHttp.type = "DESTROY_NODE"
-        node = Node(
-            id=72258,
-            name=None,
-            state=None,
-            public_ips=None,
-            private_ips=None,
-            driver=self.driver,
-        )
-
-        self.assertTrue(node.destroy())
-
-
-class VoxelMockHttp(MockHttp):
-
-    fixtures = ComputeFileFixtures("voxel")
-
-    def _UNAUTHORIZED(self, method, url, body, headers):
-        body = self.fixtures.load("unauthorized.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _FAILURE(self, method, url, body, headers):
-        body = self.fixtures.load("failure.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _LIST_NODES(self, method, url, body, headers):
-        body = self.fixtures.load("nodes.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _LIST_IMAGES(self, method, url, body, headers):
-        body = self.fixtures.load("images.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _LIST_LOCATIONS(self, method, url, body, headers):
-        body = self.fixtures.load("locations.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _CREATE_NODE(self, method, url, body, headers):
-        body = self.fixtures.load("create_node.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _REBOOT_NODE(self, method, url, body, headers):
-        body = self.fixtures.load("success.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _DESTROY_NODE(self, method, url, body, headers):
-        body = self.fixtures.load("success.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/container/test_joyent.py b/libcloud/test/container/test_joyent.py
deleted file mode 100644
index 899c861..0000000
--- a/libcloud/test/container/test_joyent.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from libcloud.test import unittest
-from libcloud.test.secrets import CONTAINER_PARAMS_DOCKER
-from libcloud.container.drivers.joyent import JoyentContainerDriver
-from libcloud.test.container.test_docker import DockerMockHttp, DockerContainerDriverTestCase
-
-
-class JoyentContainerDriverTestCase(DockerContainerDriverTestCase, unittest.TestCase):
-    def setUp(self):
-        # Create a test driver for each version
-        versions = ("linux_124", "mac_124")
-        self.drivers = []
-        for version in versions:
-            JoyentContainerDriver.connectionCls.conn_class = DockerMockHttp
-            DockerMockHttp.type = None
-            DockerMockHttp.use_param = "a"
-            driver = JoyentContainerDriver(*CONTAINER_PARAMS_DOCKER)
-            driver.version = version
-            self.drivers.append(driver)
diff --git a/libcloud/test/dns/fixtures/hostvirtual/get_record.json b/libcloud/test/dns/fixtures/hostvirtual/get_record.json
deleted file mode 100644
index 52f5b0a..0000000
--- a/libcloud/test/dns/fixtures/hostvirtual/get_record.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-	"id": "300377",
-	"name": "*.t.com",
-	"type": "CNAME",
-	"content": "t.com",
-	"ttl": "86400",
-	"prio": null
-}
diff --git a/libcloud/test/dns/fixtures/hostvirtual/get_zone.json b/libcloud/test/dns/fixtures/hostvirtual/get_zone.json
deleted file mode 100644
index 67d562b..0000000
--- a/libcloud/test/dns/fixtures/hostvirtual/get_zone.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
-  "id": "47234",
-  "name": "t.com",
-  "type": "NATIVE",
-  "ttl": "3600",
-  "soa": {
-    "primary": "ns1.hostvirtual.com",
-    "hostmaster": "support@HOSTVIRTUAL.COM",
-    "serial": "2012100901",
-    "refresh": "10800",
-    "retry": "3600",
-    "expire": "604800",
-    "default_ttl": "3600"
-  },
-  "ns": [
-    "ns4.hostvirtual.com",
-    "ns3.hostvirtual.com",
-    "ns2.hostvirtual.com",
-    "ns1.hostvirtual.com"
-  ],
-  "records": [
-    {
-      "id": "300377",
-      "name": "*.t.com",
-      "type": "CNAME",
-      "content": "t.com",
-      "ttl": "86400",
-      "prio": null
-    },
-    {
-      "id": "300719",
-      "name": "blah.com.",
-      "type": "A",
-      "content": "0.0.0.0",
-      "ttl": null,
-      "prio": null
-    },
-    {
-      "id": "300728",
-      "name": "blahblah.com.t.com",
-      "type": "A",
-      "content": "1.1.1.1",
-      "ttl": null,
-      "prio": "10"
-    }
-  ]
-}
diff --git a/libcloud/test/dns/fixtures/hostvirtual/list_records.json b/libcloud/test/dns/fixtures/hostvirtual/list_records.json
deleted file mode 100644
index d6ad4ca..0000000
--- a/libcloud/test/dns/fixtures/hostvirtual/list_records.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-  {
-    "id": "300377",
-    "name": "*.t.com",
-    "type": "CNAME",
-    "content": "t.com",
-    "ttl": "86400",
-    "prio": null
-  },
-  {
-    "id": "300719",
-    "name": "www.t.com",
-    "type": "A",
-    "content": "208.111.35.173",
-    "ttl": null,
-    "prio": null
-  },
-  {
-    "id": "300728",
-    "name": "blahblah.t.com",
-    "type": "A",
-    "content": "208.111.35.173",
-    "ttl": null,
-    "prio": "10"
-  }
-]
diff --git a/libcloud/test/dns/fixtures/hostvirtual/list_records_none.json b/libcloud/test/dns/fixtures/hostvirtual/list_records_none.json
deleted file mode 100644
index cca4133..0000000
--- a/libcloud/test/dns/fixtures/hostvirtual/list_records_none.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "error": {
-        "code": 404,
-        "message": "Not Found: No Records Found"
-    }
-}
diff --git a/libcloud/test/dns/fixtures/hostvirtual/list_zones.json b/libcloud/test/dns/fixtures/hostvirtual/list_zones.json
deleted file mode 100644
index c298ed9..0000000
--- a/libcloud/test/dns/fixtures/hostvirtual/list_zones.json
+++ /dev/null
@@ -1,32 +0,0 @@
-[
-  {
-    "id": "47234",
-    "name": "t.com",
-    "type": "NATIVE",
-    "ttl": "3600"
-  },
-  {
-    "id": "48170",
-    "name": "newbug.net",
-    "type": "NATIVE",
-    "ttl": "3600"
-  },
-  {
-    "id": "48017",
-    "name": "newblah.com",
-    "type": "NATIVE",
-    "ttl": "3600"
-  },
-  {
-    "id": "47288",
-    "name": "fromapi.com",
-    "type": "NATIVE",
-    "ttl": "3600"
-  },
-  {
-    "id": "48008",
-    "name": "blahnew.com",
-    "type": "NATIVE",
-    "ttl": "3600"
-  }
-]
diff --git a/libcloud/test/dns/fixtures/hostvirtual/zone_does_not_exist.json b/libcloud/test/dns/fixtures/hostvirtual/zone_does_not_exist.json
deleted file mode 100644
index 2162183..0000000
--- a/libcloud/test/dns/fixtures/hostvirtual/zone_does_not_exist.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "error": {
-    "code": 404,
-    "message": "Not Found: id, validate_dns_zone_owner"
-  }
-}
diff --git a/libcloud/test/dns/fixtures/softlayer/not_found.xml b/libcloud/test/dns/fixtures/softlayer/not_found.xml
deleted file mode 100644
index 5a4eed8..0000000
--- a/libcloud/test/dns/fixtures/softlayer/not_found.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<methodResponse>
-<fault>
- <value>
-  <struct>
-   <member>
-    <name>faultCode</name>
-    <value>
-     <string>SoftLayer_Exception_ObjectNotFound</string>
-    </value>
-   </member>
-   <member>
-    <name>faultString</name>
-    <value>
-     <string>Unable to find object with id of \'333\'.</string>
-    </value>
-   </member>
-  </struct>
- </value>
-</fault>
-</methodResponse>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_createObject.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_createObject.xml
deleted file mode 100644
index dc412c7..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_createObject.xml
+++ /dev/null
@@ -1,331 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>data</name>
-    <value>
-     <string>127.0.0.1</string>
-    </value>
-   </member>
-   <member>
-    <name>domainId</name>
-    <value>
-     <int>1752717</int>
-    </value>
-   </member>
-   <member>
-    <name>expire</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>host</name>
-    <value>
-     <string>www</string>
-    </value>
-   </member>
-   <member>
-    <name>id</name>
-    <value>
-     <int>50772870</int>
-    </value>
-   </member>
-   <member>
-    <name>minimum</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>mxPriority</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>refresh</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>retry</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>ttl</name>
-    <value>
-     <int>86400</int>
-    </value>
-   </member>
-   <member>
-    <name>type</name>
-    <value>
-     <string>A</string>
-    </value>
-   </member>
-   <member>
-    <name>domain</name>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1752717</int>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>bar.com</string>
-       </value>
-      </member>
-      <member>
-       <name>serial</name>
-       <value>
-        <int>2014120804</int>
-       </value>
-      </member>
-      <member>
-       <name>updateDate</name>
-       <value>
-        <string>2014-12-08T11:36:55-06:00</string>
-       </value>
-      </member>
-      <member>
-       <name>resourceRecords</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>data</name>
-             <value>
-              <string>ns1.softlayer.com.</string>
-             </value>
-            </member>
-            <member>
-             <name>domainId</name>
-             <value>
-              <int>123</int>
-             </value>
-            </member>
-            <member>
-             <name>expire</name>
-             <value>
-              <int>1728000</int>
-             </value>
-            </member>
-            <member>
-             <name>host</name>
-             <value>
-              <string>@</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>50772366</int>
-             </value>
-            </member>
-            <member>
-             <name>minimum</name>
-             <value>
-              <int>43200</int>
-             </value>
-            </member>
-            <member>
-             <name>mxPriority</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>refresh</name>
-             <value>
-              <int>7200</int>
-             </value>
-            </member>
-            <member>
-             <name>responsiblePerson</name>
-             <value>
-              <string>support.softlayer.com.</string>
-             </value>
-            </member>
-            <member>
-             <name>retry</name>
-             <value>
-              <int>600</int>
-             </value>
-            </member>
-            <member>
-             <name>ttl</name>
-             <value>
-              <int>86400</int>
-             </value>
-            </member>
-            <member>
-             <name>type</name>
-             <value>
-              <string>soa</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-          <value>
-           <struct>
-            <member>
-             <name>data</name>
-             <value>
-              <string>ns1.softlayer.com.</string>
-             </value>
-            </member>
-            <member>
-             <name>domainId</name>
-             <value>
-              <int>1752717</int>
-             </value>
-            </member>
-            <member>
-             <name>expire</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>host</name>
-             <value>
-              <string>@</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>50772367</int>
-             </value>
-            </member>
-            <member>
-             <name>minimum</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>mxPriority</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>refresh</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>retry</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>ttl</name>
-             <value>
-              <int>86400</int>
-             </value>
-            </member>
-            <member>
-             <name>type</name>
-             <value>
-              <string>ns</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-          <value>
-           <struct>
-            <member>
-             <name>data</name>
-             <value>
-              <string>ns2.softlayer.com.</string>
-             </value>
-            </member>
-            <member>
-             <name>domainId</name>
-             <value>
-              <int>1752717</int>
-             </value>
-            </member>
-            <member>
-             <name>expire</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>host</name>
-             <value>
-              <string>@</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>50772368</int>
-             </value>
-            </member>
-            <member>
-             <name>minimum</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>mxPriority</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>refresh</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>retry</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>ttl</name>
-             <value>
-              <int>86400</int>
-             </value>
-            </member>
-            <member>
-             <name>type</name>
-             <value>
-              <string>ns</string>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_deleteObject.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_deleteObject.xml
deleted file mode 100644
index 5dca377..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_deleteObject.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <boolean>1</boolean>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_editObject.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_editObject.xml
deleted file mode 100644
index 5dca377..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_editObject.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <boolean>1</boolean>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_getObject.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_getObject.xml
deleted file mode 100644
index 5b006af..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_getObject.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>data</name>
-    <value>
-     <string>ns1.softlayer.com.</string>
-    </value>
-   </member>
-   <member>
-    <name>domainId</name>
-    <value>
-     <int>123</int>
-    </value>
-   </member>
-   <member>
-    <name>expire</name>
-    <value>
-     <int>1728000</int>
-    </value>
-   </member>
-   <member>
-    <name>host</name>
-    <value>
-     <string>@</string>
-    </value>
-   </member>
-   <member>
-    <name>id</name>
-    <value>
-     <int>50772366</int>
-    </value>
-   </member>
-   <member>
-    <name>minimum</name>
-    <value>
-     <int>43200</int>
-    </value>
-   </member>
-   <member>
-    <name>mxPriority</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>refresh</name>
-    <value>
-     <int>7200</int>
-    </value>
-   </member>
-   <member>
-    <name>responsiblePerson</name>
-    <value>
-     <string>support.softlayer.com.</string>
-    </value>
-   </member>
-   <member>
-    <name>retry</name>
-    <value>
-     <int>600</int>
-    </value>
-   </member>
-   <member>
-    <name>ttl</name>
-    <value>
-     <int>86400</int>
-    </value>
-   </member>
-   <member>
-    <name>type</name>
-    <value>
-     <string>soa</string>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_getObject_changed.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_getObject_changed.xml
deleted file mode 100644
index 190edef..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_ResourceRecord_getObject_changed.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>data</name>
-    <value>
-     <string>1.1.1.1</string>
-    </value>
-   </member>
-   <member>
-    <name>domainId</name>
-    <value>
-     <int>123</int>
-    </value>
-   </member>
-   <member>
-    <name>expire</name>
-    <value>
-     <int>1728000</int>
-    </value>
-   </member>
-   <member>
-    <name>host</name>
-    <value>
-     <string>www</string>
-    </value>
-   </member>
-   <member>
-    <name>id</name>
-    <value>
-     <int>123</int>
-    </value>
-   </member>
-   <member>
-    <name>minimum</name>
-    <value>
-     <int>43200</int>
-    </value>
-   </member>
-   <member>
-    <name>mxPriority</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>refresh</name>
-    <value>
-     <int>7200</int>
-    </value>
-   </member>
-   <member>
-    <name>responsiblePerson</name>
-    <value>
-     <string>support.softlayer.com.</string>
-    </value>
-   </member>
-   <member>
-    <name>retry</name>
-    <value>
-     <int>600</int>
-    </value>
-   </member>
-   <member>
-    <name>ttl</name>
-    <value>
-     <int>30</int>
-    </value>
-   </member>
-   <member>
-    <name>type</name>
-    <value>
-     <string>a</string>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_createObject.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_createObject.xml
deleted file mode 100644
index 02f058c..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_createObject.xml
+++ /dev/null
@@ -1,506 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>id</name>
-    <value>
-     <int>123</int>
-    </value>
-   </member>
-   <member>
-    <name>name</name>
-    <value>
-     <string>bar.com</string>
-    </value>
-   </member>
-   <member>
-    <name>serial</name>
-    <value>
-     <int>2014120802</int>
-    </value>
-   </member>
-   <member>
-    <name>updateDate</name>
-    <value>
-     <string>2014-12-08T08:00:41-06:00</string>
-    </value>
-   </member>
-   <member>
-    <name>account</name>
-    <value>
-     <struct>
-      <member>
-       <name>accountManagedResourcesFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>accountStatusId</name>
-       <value>
-        <int>1111</int>
-       </value>
-      </member>
-      <member>
-       <name>address1</name>
-       <value>
-        <string>Test 1</string>
-       </value>
-      </member>
-      <member>
-       <name>allowedPptpVpnQuantity</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>brandId</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>city</name>
-       <value>
-        <string>World</string>
-       </value>
-      </member>
-      <member>
-       <name>claimedTaxExemptTxFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>companyName</name>
-       <value>
-        <string>Test</string>
-       </value>
-      </member>
-      <member>
-       <name>country</name>
-       <value>
-        <string>SI</string>
-       </value>
-      </member>
-      <member>
-       <name>createDate</name>
-       <value>
-        <string>2014-11-27T12:19:34-06:00</string>
-       </value>
-      </member>
-      <member>
-       <name>email</name>
-       <value>
-        <string>foo@bar.com</string>
-       </value>
-      </member>
-      <member>
-       <name>firstName</name>
-       <value>
-        <string>foo</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>11111</int>
-       </value>
-      </member>
-      <member>
-       <name>isReseller</name>
-       <value>
-        <int>0</int>
-       </value>
-      </member>
-      <member>
-       <name>lastName</name>
-       <value>
-        <string>Bar</string>
-       </value>
-      </member>
-      <member>
-       <name>lateFeeProtectionFlag</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>modifyDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>officePhone</name>
-       <value>
-        <string>1111111111</string>
-       </value>
-      </member>
-      <member>
-       <name>postalCode</name>
-       <value>
-        <string>1111</string>
-       </value>
-      </member>
-      <member>
-       <name>state</name>
-       <value>
-        <string>OT</string>
-       </value>
-      </member>
-      <member>
-       <name>statusDate</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>attributes</name>
-       <value>
-        <array>
-         <data/>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>brand</name>
-       <value>
-        <struct>
-         <member>
-          <name>catalogId</name>
-          <value>
-           <int>14</int>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>21</int>
-          </value>
-         </member>
-         <member>
-          <name>keyName</name>
-          <value>
-           <string>SOFTLAYER_EU</string>
-          </value>
-         </member>
-         <member>
-          <name>longName</name>
-          <value>
-           <string>SoftLayer Dutch Holdings B.V.</string>
-          </value>
-         </member>
-         <member>
-          <name>name</name>
-          <value>
-           <string>SoftLayer EU</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-   <member>
-    <name>resourceRecords</name>
-    <value>
-     <array>
-      <data>
-       <value>
-        <struct>
-         <member>
-          <name>data</name>
-          <value>
-           <string>127.0.0.1</string>
-          </value>
-         </member>
-         <member>
-          <name>domainId</name>
-          <value>
-           <int>123</int>
-          </value>
-         </member>
-         <member>
-          <name>expire</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>host</name>
-          <value>
-           <string>@</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>50771583</int>
-          </value>
-         </member>
-         <member>
-          <name>minimum</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>mxPriority</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>refresh</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>retry</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>ttl</name>
-          <value>
-           <int>86400</int>
-          </value>
-         </member>
-         <member>
-          <name>type</name>
-          <value>
-           <string>A</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>data</name>
-          <value>
-           <string>ns1.softlayer.com.</string>
-          </value>
-         </member>
-         <member>
-          <name>domainId</name>
-          <value>
-           <int>123</int>
-          </value>
-         </member>
-         <member>
-          <name>expire</name>
-          <value>
-           <int>604800</int>
-          </value>
-         </member>
-         <member>
-          <name>host</name>
-          <value>
-           <string>@</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>111111</int>
-          </value>
-         </member>
-         <member>
-          <name>minimum</name>
-          <value>
-           <int>3600</int>
-          </value>
-         </member>
-         <member>
-          <name>mxPriority</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>refresh</name>
-          <value>
-           <int>3600</int>
-          </value>
-         </member>
-         <member>
-          <name>responsiblePerson</name>
-          <value>
-           <string>root.bar.com.</string>
-          </value>
-         </member>
-         <member>
-          <name>retry</name>
-          <value>
-           <int>300</int>
-          </value>
-         </member>
-         <member>
-          <name>ttl</name>
-          <value>
-           <int>86400</int>
-          </value>
-         </member>
-         <member>
-          <name>type</name>
-          <value>
-           <string>SOA</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>data</name>
-          <value>
-           <string>ns1.softlayer.com.</string>
-          </value>
-         </member>
-         <member>
-          <name>domainId</name>
-          <value>
-           <int>1752657</int>
-          </value>
-         </member>
-         <member>
-          <name>expire</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>host</name>
-          <value>
-           <string>@</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>111111</int>
-          </value>
-         </member>
-         <member>
-          <name>minimum</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>mxPriority</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>refresh</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>retry</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>ttl</name>
-          <value>
-           <int>86400</int>
-          </value>
-         </member>
-         <member>
-          <name>type</name>
-          <value>
-           <string>NS</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-       <value>
-        <struct>
-         <member>
-          <name>data</name>
-          <value>
-           <string>ns2.softlayer.com.</string>
-          </value>
-         </member>
-         <member>
-          <name>domainId</name>
-          <value>
-           <int>1111111</int>
-          </value>
-         </member>
-         <member>
-          <name>expire</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>host</name>
-          <value>
-           <string>@</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>50771586</int>
-          </value>
-         </member>
-         <member>
-          <name>minimum</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>mxPriority</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>refresh</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>retry</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>ttl</name>
-          <value>
-           <int>86400</int>
-          </value>
-         </member>
-         <member>
-          <name>type</name>
-          <value>
-           <string>NS</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </data>
-     </array>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_deleteObject.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_deleteObject.xml
deleted file mode 100644
index 5dca377..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_deleteObject.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <boolean>1</boolean>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getByDomainName.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getByDomainName.xml
deleted file mode 100644
index 95a51c8..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getByDomainName.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <array>
-   <data>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>123</int>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>bar.com</string>
-       </value>
-      </member>
-      <member>
-       <name>serial</name>
-       <value>
-        <int>2014120802</int>
-       </value>
-      </member>
-      <member>
-       <name>updateDate</name>
-       <value>
-        <string>2014-12-08T14:00:50-06:00</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </data>
-  </array>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getObject.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getObject.xml
deleted file mode 100644
index 2a09cc8..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getObject.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>id</name>
-    <value>
-     <int>123</int>
-    </value>
-   </member>
-   <member>
-    <name>name</name>
-    <value>
-     <string>bar.com</string>
-    </value>
-   </member>
-   <member>
-    <name>serial</name>
-    <value>
-     <int>2014120802</int>
-    </value>
-   </member>
-   <member>
-    <name>updateDate</name>
-    <value>
-     <string>2014-12-08T14:00:50-06:00</string>
-    </value>
-   </member>
-   <member>
-    <name>managedResourceFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getResourceRecords.xml b/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getResourceRecords.xml
deleted file mode 100644
index d723e87..0000000
--- a/libcloud/test/dns/fixtures/softlayer/v3_SoftLayer_Dns_Domain_getResourceRecords.xml
+++ /dev/null
@@ -1,297 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <array>
-   <data>
-    <value>
-     <struct>
-      <member>
-       <name>data</name>
-       <value>
-        <string>ns1.softlayer.com.</string>
-       </value>
-      </member>
-      <member>
-       <name>domainId</name>
-       <value>
-        <int>123</int>
-       </value>
-      </member>
-      <member>
-       <name>expire</name>
-       <value>
-        <int>604800</int>
-       </value>
-      </member>
-      <member>
-       <name>host</name>
-       <value>
-        <string>@</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>50772366</int>
-       </value>
-      </member>
-      <member>
-       <name>minimum</name>
-       <value>
-        <int>3600</int>
-       </value>
-      </member>
-      <member>
-       <name>mxPriority</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>refresh</name>
-       <value>
-        <int>3600</int>
-       </value>
-      </member>
-      <member>
-       <name>responsiblePerson</name>
-       <value>
-        <string>root.bar.com.</string>
-       </value>
-      </member>
-      <member>
-       <name>retry</name>
-       <value>
-        <int>300</int>
-       </value>
-      </member>
-      <member>
-       <name>ttl</name>
-       <value>
-        <int>86400</int>
-       </value>
-      </member>
-      <member>
-       <name>type</name>
-       <value>
-        <string>soa</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>data</name>
-       <value>
-        <string>ns1.softlayer.com.</string>
-       </value>
-      </member>
-      <member>
-       <name>domainId</name>
-       <value>
-        <int>1752717</int>
-       </value>
-      </member>
-      <member>
-       <name>expire</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>host</name>
-       <value>
-        <string>@</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>50772367</int>
-       </value>
-      </member>
-      <member>
-       <name>minimum</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>mxPriority</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>refresh</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>retry</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>ttl</name>
-       <value>
-        <int>86400</int>
-       </value>
-      </member>
-      <member>
-       <name>type</name>
-       <value>
-        <string>ns</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>data</name>
-       <value>
-        <string>ns2.softlayer.com.</string>
-       </value>
-      </member>
-      <member>
-       <name>domainId</name>
-       <value>
-        <int>123</int>
-       </value>
-      </member>
-      <member>
-       <name>expire</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>host</name>
-       <value>
-        <string>@</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>50772368</int>
-       </value>
-      </member>
-      <member>
-       <name>minimum</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>mxPriority</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>refresh</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>retry</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>ttl</name>
-       <value>
-        <int>86400</int>
-       </value>
-      </member>
-      <member>
-       <name>type</name>
-       <value>
-        <string>ns</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>data</name>
-       <value>
-        <string>127.0.0.1</string>
-       </value>
-      </member>
-      <member>
-       <name>domainId</name>
-       <value>
-        <int>123</int>
-       </value>
-      </member>
-      <member>
-       <name>expire</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>host</name>
-       <value>
-        <string>@</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>50772365</int>
-       </value>
-      </member>
-      <member>
-       <name>minimum</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>mxPriority</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>refresh</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>retry</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>ttl</name>
-       <value>
-        <int>86400</int>
-       </value>
-      </member>
-      <member>
-       <name>type</name>
-       <value>
-        <string>a</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </data>
-  </array>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/dns/test_hostvirtual.py b/libcloud/test/dns/test_hostvirtual.py
deleted file mode 100644
index 04009d5..0000000
--- a/libcloud/test/dns/test_hostvirtual.py
+++ /dev/null
@@ -1,261 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.dns.types import RecordType, ZoneDoesNotExistError, RecordDoesNotExistError
-from libcloud.utils.py3 import httplib
-from libcloud.test.secrets import DNS_PARAMS_HOSTVIRTUAL
-from libcloud.test.file_fixtures import DNSFileFixtures
-from libcloud.dns.drivers.hostvirtual import HostVirtualDNSDriver
-
-
-class HostVirtualTests(unittest.TestCase):
-    def setUp(self):
-        HostVirtualDNSDriver.connectionCls.conn_class = HostVirtualMockHttp
-        HostVirtualMockHttp.type = None
-        self.driver = HostVirtualDNSDriver(*DNS_PARAMS_HOSTVIRTUAL)
-
-    def test_list_record_types(self):
-        record_types = self.driver.list_record_types()
-        self.assertEqual(len(record_types), 7)
-        self.assertTrue(RecordType.A in record_types)
-
-    def test_list_zones(self):
-        zones = self.driver.list_zones()
-        self.assertEqual(len(zones), 5)
-
-        zone = zones[0]
-        self.assertEqual(zone.id, "47234")
-        self.assertEqual(zone.type, "master")
-        self.assertEqual(zone.domain, "t.com")
-        self.assertEqual(zone.ttl, "3600")
-
-    def test_list_records(self):
-        zone = self.driver.list_zones()[0]
-        records = self.driver.list_records(zone=zone)
-        self.assertEqual(len(records), 3)
-
-        record = records[1]
-        self.assertEqual(record.name, "www")
-        self.assertEqual(record.id, "300719")
-        self.assertEqual(record.type, RecordType.A)
-        self.assertEqual(record.data, "208.111.35.173")
-
-    def test_list_records_none(self):
-
-        zone = self.driver.list_zones()[0]
-
-        HostVirtualMockHttp.type = "NO_RECORDS"
-        records = self.driver.list_records(zone=zone)
-        self.assertEqual(len(records), 0)
-
-    def test_get_zone(self):
-        zone = self.driver.get_zone(zone_id="47234")
-        self.assertEqual(zone.id, "47234")
-        self.assertEqual(zone.type, "master")
-        self.assertEqual(zone.domain, "t.com")
-        self.assertEqual(zone.ttl, "3600")
-
-    def test_get_record(self):
-        record = self.driver.get_record(zone_id="47234", record_id="300377")
-        self.assertEqual(record.id, "300377")
-        self.assertEqual(record.name, "*")
-        self.assertEqual(record.type, RecordType.CNAME)
-        self.assertEqual(record.data, "t.com")
-
-    def test_list_records_zone_does_not_exist(self):
-        zone = self.driver.list_zones()[0]
-
-        HostVirtualMockHttp.type = "ZONE_DOES_NOT_EXIST"
-
-        try:
-            self.driver.list_records(zone=zone)
-        except ZoneDoesNotExistError as e:
-            self.assertEqual(e.zone_id, zone.id)
-        else:
-            self.fail("Exception was not thrown")
-
-    def test_get_zone_does_not_exist(self):
-        HostVirtualMockHttp.type = "ZONE_DOES_NOT_EXIST"
-
-        try:
-            self.driver.get_zone(zone_id="4444")
-        except ZoneDoesNotExistError as e:
-            self.assertEqual(e.zone_id, "4444")
-        else:
-            self.fail("Exception was not thrown")
-
-    def test_get_record_zone_does_not_exist(self):
-        HostVirtualMockHttp.type = "ZONE_DOES_NOT_EXIST"
-
-        try:
-            self.driver.get_record(zone_id="4444", record_id="28536")
-        except ZoneDoesNotExistError:
-            pass
-        else:
-            self.fail("Exception was not thrown")
-
-    def test_get_record_record_does_not_exist(self):
-        HostVirtualMockHttp.type = "RECORD_DOES_NOT_EXIST"
-
-        try:
-            self.driver.get_record(zone_id="47234", record_id="4444")
-        except RecordDoesNotExistError:
-            pass
-        else:
-            self.fail("Exception was not thrown")
-
-    def test_create_zone(self):
-        zone = self.driver.create_zone(domain="t.com", type="master", ttl=None, extra=None)
-        self.assertEqual(zone.id, "47234")
-        self.assertEqual(zone.domain, "t.com")
-
-    def test_update_zone(self):
-        zone = self.driver.list_zones()[0]
-        updated_zone = self.driver.update_zone(zone=zone, domain="tt.com")
-
-        self.assertEqual(updated_zone.id, zone.id)
-        self.assertEqual(updated_zone.domain, "tt.com")
-        self.assertEqual(updated_zone.type, zone.type)
-        self.assertEqual(updated_zone.ttl, "3600")
-
-    def test_create_record_no_name(self):
-        zone = self.driver.list_zones()[0]
-        record = self.driver.create_record(name="", zone=zone, type=RecordType.A, data="127.0.0.1")
-
-        self.assertEqual(record.id, "300377")
-        self.assertEqual(record.name, "")
-        self.assertEqual(record.zone, zone)
-        self.assertEqual(record.type, RecordType.A)
-        self.assertEqual(record.data, "127.0.0.1")
-
-    def test_create_record(self):
-        zone = self.driver.list_zones()[0]
-        record = self.driver.create_record(
-            name="www", zone=zone, type=RecordType.A, data="127.0.0.1"
-        )
-
-        self.assertEqual(record.id, "300377")
-        self.assertEqual(record.name, "www")
-        self.assertEqual(record.zone, zone)
-        self.assertEqual(record.type, RecordType.A)
-        self.assertEqual(record.data, "127.0.0.1")
-
-    def test_update_record(self):
-        zone = self.driver.list_zones()[0]
-        record = self.driver.list_records(zone=zone)[1]
-        updated_record = self.driver.update_record(
-            record=record, name="www", type=RecordType.AAAA, data="::1"
-        )
-        self.assertEqual(record.data, "208.111.35.173")
-
-        self.assertEqual(updated_record.id, record.id)
-        self.assertEqual(updated_record.name, "www")
-        self.assertEqual(updated_record.zone, record.zone)
-        self.assertEqual(updated_record.type, RecordType.AAAA)
-        self.assertEqual(updated_record.data, "::1")
-
-    def test_delete_zone(self):
-        zone = self.driver.list_zones()[0]
-        status = self.driver.delete_zone(zone=zone)
-        self.assertTrue(status)
-
-    def test_delete_zone_does_not_exist(self):
-        zone = self.driver.list_zones()[0]
-
-        HostVirtualMockHttp.type = "ZONE_DOES_NOT_EXIST"
-
-        try:
-            self.driver.delete_zone(zone=zone)
-        except ZoneDoesNotExistError as e:
-            self.assertEqual(e.zone_id, zone.id)
-        else:
-            self.fail("Exception was not thrown")
-
-    def test_delete_record(self):
-        zone = self.driver.list_zones()[0]
-        record = self.driver.list_records(zone=zone)[0]
-        status = self.driver.delete_record(record=record)
-        self.assertTrue(status)
-
-    def test_delete_record_does_not_exist(self):
-        zone = self.driver.list_zones()[0]
-        record = self.driver.list_records(zone=zone)[0]
-        HostVirtualMockHttp.type = "RECORD_DOES_NOT_EXIST"
-        try:
-            self.driver.delete_record(record=record)
-        except RecordDoesNotExistError as e:
-            self.assertEqual(e.record_id, record.id)
-        else:
-            self.fail("Exception was not thrown")
-
-
-class HostVirtualMockHttp(MockHttp):
-    fixtures = DNSFileFixtures("hostvirtual")
-
-    def _dns_zone(self, method, url, body, headers):
-        body = self.fixtures.load("get_zone.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _dns_zones(self, method, url, body, headers):
-        body = self.fixtures.load("list_zones.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _dns_record(self, method, url, body, headers):
-        body = self.fixtures.load("get_record.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _dns_records(self, method, url, body, headers):
-        body = self.fixtures.load("list_records.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _dns_zone_ZONE_DOES_NOT_EXIST(self, method, url, body, headers):
-        body = self.fixtures.load("zone_does_not_exist.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.NOT_FOUND])
-
-    def _dns_zone_RECORD_DOES_NOT_EXIST(self, method, url, body, headers):
-        body = self.fixtures.load("get_zone.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _dns_zones_ZONE_DOES_NOT_EXIST(self, method, url, body, headers):
-        body = self.fixtures.load("zone_does_not_exist.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.NOT_FOUND])
-
-    def _dns_record_ZONE_DOES_NOT_EXIST(self, method, url, body, headers):
-        body = self.fixtures.load("zone_does_not_exist.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.NOT_FOUND])
-
-    def _dns_record_RECORD_DOES_NOT_EXIST(self, method, url, body, headers):
-        body = self.fixtures.load("zone_does_not_exist.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.NOT_FOUND])
-
-    def _dns_records_ZONE_DOES_NOT_EXIST(self, method, url, body, headers):
-        body = self.fixtures.load("zone_does_not_exist.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.NOT_FOUND])
-
-    def _dns_records_NO_RECORDS(self, method, url, body, headers):
-        body = self.fixtures.load("list_records_none.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.NOT_FOUND])
-
-    def _dns_zones_RECORD_DOES_NOT_EXIST(self, method, url, body, headers):
-        body = self.fixtures.load("zone_does_not_exist.json")
-        return (httplib.NOT_FOUND, body, {}, httplib.responses[httplib.NOT_FOUND])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/dns/test_softlayer.py b/libcloud/test/dns/test_softlayer.py
deleted file mode 100644
index 9622f0f..0000000
--- a/libcloud/test/dns/test_softlayer.py
+++ /dev/null
@@ -1,242 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-
-from libcloud.test import MockHttp, unittest
-from libcloud.dns.types import RecordType, ZoneDoesNotExistError, RecordDoesNotExistError
-from libcloud.utils.py3 import httplib, xmlrpclib
-from libcloud.test.secrets import SOFTLAYER_PARAMS
-from libcloud.test.file_fixtures import DNSFileFixtures
-from libcloud.dns.drivers.softlayer import SoftLayerDNSDriver
-
-
-class SoftLayerTests(unittest.TestCase):
-    def setUp(self):
-        SoftLayerDNSDriver.connectionCls.conn_class = SoftLayerDNSMockHttp
-        SoftLayerDNSMockHttp.type = None
-        self.driver = SoftLayerDNSDriver(*SOFTLAYER_PARAMS)
-
-    def test_create_zone(self):
-        zone = self.driver.create_zone(domain="bar.com")
-        self.assertEqual(zone.id, "123")
-        self.assertEqual(zone.domain, "bar.com")
-
-    def test_list_zones(self):
-        zones = self.driver.list_zones()
-        self.assertEqual(len(zones), 1)
-
-        zone = zones[0]
-        self.assertEqual(zone.id, "123")
-        self.assertEqual(zone.type, "master")
-        self.assertEqual(zone.domain, "bar.com")
-
-    def test_get_zone(self):
-        zone = self.driver.get_zone(zone_id="123")
-        self.assertEqual(zone.id, "123")
-        self.assertEqual(zone.type, "master")
-        self.assertEqual(zone.domain, "bar.com")
-
-    def test_get_zone_does_not_exist(self):
-        SoftLayerDNSMockHttp.type = "ZONE_DOES_NOT_EXIST"
-
-        with self.assertRaises(ZoneDoesNotExistError):
-            self.driver.get_zone(zone_id="333")
-
-    def test_delete_zone(self):
-        zone = self.driver.list_zones()[0]
-        status = self.driver.delete_zone(zone=zone)
-        self.assertTrue(status)
-
-    def test_delete_zone_does_not_exist(self):
-        zone = self.driver.list_zones()[0]
-
-        SoftLayerDNSMockHttp.type = "ZONE_DOES_NOT_EXIST"
-
-        with self.assertRaises(ZoneDoesNotExistError):
-            self.driver.delete_zone(zone=zone)
-
-    def test_list_records(self):
-        zone = self.driver.list_zones()[0]
-
-        records = zone.list_records()
-
-        self.assertEqual(records[0].id, "50772366")
-        self.assertEqual(records[0].type, RecordType.SOA)
-        self.assertEqual(records[0].data, "ns1.softlayer.com.")
-        self.assertEqual(
-            records[0].extra,
-            {
-                "mxPriority": "",
-                "expire": 604800,
-                "retry": 300,
-                "refresh": 3600,
-                "ttl": 86400,
-            },
-        )
-        self.assertEqual(records[1].id, "50772367")
-        self.assertEqual(records[1].type, RecordType.NS)
-        self.assertEqual(records[1].data, "ns1.softlayer.com.")
-
-        self.assertEqual(records[2].id, "50772368")
-        self.assertEqual(records[2].type, RecordType.NS)
-        self.assertEqual(records[2].data, "ns2.softlayer.com.")
-
-        self.assertEqual(records[3].id, "50772365")
-        self.assertEqual(records[3].type, RecordType.A)
-        self.assertEqual(records[3].data, "127.0.0.1")
-
-    def test_list_record_types(self):
-        record_types = self.driver.list_record_types()
-        self.assertEqual(len(record_types), 10)
-        self.assertTrue(RecordType.A in record_types)
-
-    def test_get_record(self):
-        record = self.driver.get_record(zone_id="123", record_id="50772366")
-
-        self.assertEqual(record.id, "50772366")
-        self.assertEqual(record.type, RecordType.SOA)
-        self.assertEqual(record.data, "ns1.softlayer.com.")
-
-    def test_get_record_record_does_not_exist(self):
-        SoftLayerDNSMockHttp.type = "RECORD_DOES_NOT_EXIST"
-
-        with self.assertRaises(RecordDoesNotExistError):
-            self.driver.get_record(zone_id="123", record_id="1")
-
-    def test_delete_record(self):
-        record = self.driver.get_record(zone_id="123", record_id="50772366")
-        status = self.driver.delete_record(record=record)
-        self.assertTrue(status)
-
-    def test_delete_record_does_not_exist(self):
-        record = self.driver.get_record(zone_id="123", record_id="50772366")
-
-        SoftLayerDNSMockHttp.type = "RECORD_DOES_NOT_EXIST"
-
-        with self.assertRaises(RecordDoesNotExistError):
-            self.driver.delete_record(record=record)
-
-    def test_create_record(self):
-        zone = self.driver.list_zones()[0]
-        record = self.driver.create_record(
-            name="www",
-            zone=zone,
-            type=RecordType.A,
-            data="127.0.0.1",
-            extra={"ttl": 30},
-        )
-
-        self.assertEqual(record.id, "50772870")
-        self.assertEqual(record.name, "www")
-        self.assertEqual(record.zone, zone)
-        self.assertEqual(record.type, RecordType.A)
-        self.assertEqual(record.data, "127.0.0.1")
-
-    def test_update_record(self):
-        zone = self.driver.list_zones()[0]
-        record = self.driver.list_records(zone=zone)[1]
-
-        SoftLayerDNSMockHttp.type = "CHANGED"
-        params = {
-            "record": record,
-            "name": "www",
-            "type": RecordType.A,
-            "data": "1.1.1.1",
-            "extra": {"ttl": 30},
-        }
-        updated_record = self.driver.update_record(**params)
-
-        self.assertEqual(record.data, "ns1.softlayer.com.")
-
-        self.assertEqual(updated_record.id, "123")
-        self.assertEqual(updated_record.name, "www")
-        self.assertEqual(updated_record.zone, record.zone)
-        self.assertEqual(updated_record.type, RecordType.A)
-        self.assertEqual(updated_record.data, "1.1.1.1")
-
-
-class SoftLayerDNSMockHttp(MockHttp):
-    fixtures = DNSFileFixtures("softlayer")
-
-    def _get_method_name(self, type, use_param, qs, path):
-        return "_xmlrpc"
-
-    def _xmlrpc(self, method, url, body, headers):
-        params, meth_name = xmlrpclib.loads(body)
-        url = url.replace("/", "_")
-        meth_name = "{}_{}".format(url, meth_name)
-        return getattr(self, meth_name)(method, url, body, headers)
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_createObject(self, method, url, body, headers):
-        body = self.fixtures.load("v3_SoftLayer_Dns_Domain_createObject.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_getByDomainName(self, method, url, body, headers):
-        body = self.fixtures.load("v3_SoftLayer_Dns_Domain_getByDomainName.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_getObject(self, method, url, body, headers):
-        fixture = {
-            None: "v3_SoftLayer_Dns_Domain_getObject.xml",
-            "ZONE_DOES_NOT_EXIST": "not_found.xml",
-        }[self.type]
-        body = self.fixtures.load(fixture)
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_deleteObject(self, method, url, body, headers):
-        fixture = {
-            None: "v3_SoftLayer_Dns_Domain_deleteObject.xml",
-            "ZONE_DOES_NOT_EXIST": "not_found.xml",
-        }[self.type]
-        body = self.fixtures.load(fixture)
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_getResourceRecords(self, method, url, body, headers):
-        body = self.fixtures.load("v3_SoftLayer_Dns_Domain_getResourceRecords.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_ResourceRecord_getObject(self, method, url, body, headers):
-        fixture = {
-            None: "v3_SoftLayer_Dns_Domain_ResourceRecord_getObject.xml",
-            "RECORD_DOES_NOT_EXIST": "not_found.xml",
-            "CHANGED": "v3_SoftLayer_Dns_Domain_ResourceRecord_getObject_changed.xml",
-        }[self.type]
-        body = self.fixtures.load(fixture)
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_ResourceRecord_deleteObject(
-        self, method, url, body, headers
-    ):
-        fixture = {
-            None: "v3_SoftLayer_Dns_Domain_ResourceRecord_deleteObject.xml",
-            "RECORD_DOES_NOT_EXIST": "not_found.xml",
-        }[self.type]
-        body = self.fixtures.load(fixture)
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_ResourceRecord_createObject(
-        self, method, url, body, headers
-    ):
-        body = self.fixtures.load("v3_SoftLayer_Dns_Domain_ResourceRecord_createObject.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Dns_Domain_ResourceRecord_editObject(self, method, url, body, headers):
-        body = self.fixtures.load("v3_SoftLayer_Dns_Domain_ResourceRecord_editObject.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/loadbalancer/fixtures/gogrid/ip_list.json b/libcloud/test/loadbalancer/fixtures/gogrid/ip_list.json
deleted file mode 100644
index f13a358..0000000
--- a/libcloud/test/loadbalancer/fixtures/gogrid/ip_list.json
+++ /dev/null
@@ -1,316 +0,0 @@
-{
-    "list": [
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 1868101, 
-            "ip": "10.0.0.68", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 1868102, 
-            "ip": "10.0.0.69", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 1868106, 
-            "ip": "10.0.0.73", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 1868107, 
-            "ip": "10.0.0.74", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 1868108, 
-            "ip": "10.0.0.75", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 1868109, 
-            "ip": "10.0.0.76", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 1868110, 
-            "ip": "10.0.0.77", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 1868111, 
-            "ip": "10.0.0.78", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.64/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US East 1 Datacenter", 
-                "id": 2, 
-                "name": "US-East-1", 
-                "object": "option"
-            }, 
-            "id": 2277337, 
-            "ip": "10.0.0.244", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.240/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US East 1 Datacenter", 
-                "id": 2, 
-                "name": "US-East-1", 
-                "object": "option"
-            }, 
-            "id": 2277338, 
-            "ip": "10.0.0.245", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.240/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US East 1 Datacenter", 
-                "id": 2, 
-                "name": "US-East-1", 
-                "object": "option"
-            }, 
-            "id": 2277342, 
-            "ip": "10.0.0.249", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.240/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US East 1 Datacenter", 
-                "id": 2, 
-                "name": "US-East-1", 
-                "object": "option"
-            }, 
-            "id": 2277343, 
-            "ip": "10.0.0.250", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.240/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US East 1 Datacenter", 
-                "id": 2, 
-                "name": "US-East-1", 
-                "object": "option"
-            }, 
-            "id": 2277344, 
-            "ip": "10.0.0.251", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.240/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US East 1 Datacenter", 
-                "id": 2, 
-                "name": "US-East-1", 
-                "object": "option"
-            }, 
-            "id": 2277345, 
-            "ip": "10.0.0.252", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.240/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US East 1 Datacenter", 
-                "id": 2, 
-                "name": "US-East-1", 
-                "object": "option"
-            }, 
-            "id": 2277346, 
-            "ip": "10.0.0.253", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.240/255.255.255.240"
-        }, 
-        {
-            "datacenter": {
-                "description": "US East 1 Datacenter", 
-                "id": 2, 
-                "name": "US-East-1", 
-                "object": "option"
-            }, 
-            "id": 2277347, 
-            "ip": "10.0.0.254", 
-            "object": "ip", 
-            "public": true, 
-            "state": {
-                "description": "IP is available to use", 
-                "id": 1, 
-                "name": "Unassigned", 
-                "object": "option"
-            }, 
-            "subnet": "10.0.0.240/255.255.255.240"
-        }
-    ], 
-    "method": "/grid/ip/list", 
-    "status": "success", 
-    "summary": {
-        "numpages": 0, 
-        "returned": 16, 
-        "start": 0, 
-        "total": 16
-    }
-}
diff --git a/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_add.json b/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_add.json
deleted file mode 100644
index 42bea63..0000000
--- a/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_add.json
+++ /dev/null
@@ -1,141 +0,0 @@
-{
-    "list": [
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "name": "test2", 
-            "id": 123,
-            "object": "loadbalancer", 
-            "os": {
-                "description": "The F5 Load Balancer.", 
-                "id": 1, 
-                "name": "F5", 
-                "object": "option"
-            }, 
-            "persistence": {
-                "description": "", 
-                "id": 1, 
-                "name": "None", 
-                "object": "option"
-            }, 
-            "realiplist": [
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868109, 
-                        "ip": "10.1.0.10", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.1.0.10/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868110, 
-                        "ip": "10.1.0.11", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.1.0.11/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868111, 
-                        "ip": "10.1.0.12", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.1.0.12/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }
-            ], 
-            "state": {
-                "description": "Loadbalancer is enabled and on.", 
-                "id": 1, 
-                "name": "On", 
-                "object": "option"
-            }, 
-            "type": {
-                "description": "", 
-                "id": 1, 
-                "name": "Round Robin", 
-                "object": "option"
-            }, 
-            "virtualip": {
-                "ip": {
-                    "datacenter": {
-                        "description": "US West 1 Datacenter", 
-                        "id": 1, 
-                        "name": "US-West-1", 
-                        "object": "option"
-                    }, 
-                    "id": 1868101, 
-                    "ip": "1.1.1.1", 
-                    "object": "ip", 
-                    "public": true, 
-                    "state": {
-                        "description": "IP is reserved or in use", 
-                        "id": 2, 
-                        "name": "Assigned", 
-                        "object": "option"
-                    }, 
-                    "subnet": "1.1.1.1/255.255.255.240"
-                }, 
-                "object": "ipportpair", 
-                "port": 80
-            }
-        }
-    ], 
-    "method": "/grid/loadbalancer/add", 
-    "status": "success", 
-    "summary": {
-        "numpages": 0, 
-        "returned": 1, 
-        "start": 0, 
-        "total": 1
-    }
-}
diff --git a/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_edit.json b/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_edit.json
deleted file mode 100644
index 7afc794..0000000
--- a/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_edit.json
+++ /dev/null
@@ -1,164 +0,0 @@
-{
-    "list": [
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 23530, 
-            "name": "test2", 
-            "object": "loadbalancer", 
-            "os": {
-                "description": "The F5 Load Balancer.", 
-                "id": 1, 
-                "name": "F5", 
-                "object": "option"
-            }, 
-            "persistence": {
-                "description": "", 
-                "id": 1, 
-                "name": "None", 
-                "object": "option"
-            }, 
-            "realiplist": [
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868108, 
-                        "ip": "10.0.0.75", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868109, 
-                        "ip": "10.0.0.76", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868110, 
-                        "ip": "10.0.0.77", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868111, 
-                        "ip": "10.0.0.78", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }
-            ], 
-            "state": {
-                "description": "Loadbalancer is enabled and on.", 
-                "id": 1, 
-                "name": "On", 
-                "object": "option"
-            }, 
-            "type": {
-                "description": "", 
-                "id": 1, 
-                "name": "Round Robin", 
-                "object": "option"
-            }, 
-            "virtualip": {
-                "ip": {
-                    "datacenter": {
-                        "description": "US West 1 Datacenter", 
-                        "id": 1, 
-                        "name": "US-West-1", 
-                        "object": "option"
-                    }, 
-                    "id": 1868101, 
-                    "ip": "10.0.0.68", 
-                    "object": "ip", 
-                    "public": true, 
-                    "state": {
-                        "description": "IP is reserved or in use", 
-                        "id": 2, 
-                        "name": "Assigned", 
-                        "object": "option"
-                    }, 
-                    "subnet": "10.0.0.64/255.255.255.240"
-                }, 
-                "object": "ipportpair", 
-                "port": 80
-            }
-        }
-    ], 
-    "method": "/grid/loadbalancer/edit", 
-    "status": "success", 
-    "summary": {
-        "numpages": 0, 
-        "returned": 1, 
-        "start": 0, 
-        "total": 1
-    }
-}
diff --git a/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_get.json b/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_get.json
deleted file mode 100644
index 5587800..0000000
--- a/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_get.json
+++ /dev/null
@@ -1,141 +0,0 @@
-{
-    "list": [
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 23530, 
-            "name": "test2", 
-            "object": "loadbalancer", 
-            "os": {
-                "description": "The F5 Load Balancer.", 
-                "id": 1, 
-                "name": "F5", 
-                "object": "option"
-            }, 
-            "persistence": {
-                "description": "", 
-                "id": 1, 
-                "name": "None", 
-                "object": "option"
-            }, 
-            "realiplist": [
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868109, 
-                        "ip": "10.0.0.76", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868110, 
-                        "ip": "10.0.0.77", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868111, 
-                        "ip": "10.0.0.78", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }
-            ], 
-            "state": {
-                "description": "Loadbalancer is enabled and on.", 
-                "id": 1, 
-                "name": "On", 
-                "object": "option"
-            }, 
-            "type": {
-                "description": "", 
-                "id": 1, 
-                "name": "Round Robin", 
-                "object": "option"
-            }, 
-            "virtualip": {
-                "ip": {
-                    "datacenter": {
-                        "description": "US West 1 Datacenter", 
-                        "id": 1, 
-                        "name": "US-West-1", 
-                        "object": "option"
-                    }, 
-                    "id": 1868101, 
-                    "ip": "10.0.0.68", 
-                    "object": "ip", 
-                    "public": true, 
-                    "state": {
-                        "description": "IP is reserved or in use", 
-                        "id": 2, 
-                        "name": "Assigned", 
-                        "object": "option"
-                    }, 
-                    "subnet": "10.0.0.64/255.255.255.240"
-                }, 
-                "object": "ipportpair", 
-                "port": 80
-            }
-        }
-    ], 
-    "method": "/grid/loadbalancer/get", 
-    "status": "success", 
-    "summary": {
-        "numpages": 0, 
-        "returned": 1, 
-        "start": 0, 
-        "total": 1
-    }
-}
diff --git a/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_list.json b/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_list.json
deleted file mode 100644
index e1c366e..0000000
--- a/libcloud/test/loadbalancer/fixtures/gogrid/loadbalancer_list.json
+++ /dev/null
@@ -1,224 +0,0 @@
-{
-    "list": [
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 23517, 
-            "name": "foo", 
-            "object": "loadbalancer", 
-            "os": {
-                "description": "The F5 Load Balancer.", 
-                "id": 1, 
-                "name": "F5", 
-                "object": "option"
-            }, 
-            "persistence": {
-                "description": "", 
-                "id": 1, 
-                "name": "None", 
-                "object": "option"
-            }, 
-            "realiplist": [
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868111, 
-                        "ip": "10.0.0.78", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }
-            ], 
-            "state": {
-                "description": "Loadbalancer is enabled and on.", 
-                "id": 1, 
-                "name": "On", 
-                "object": "option"
-            }, 
-            "type": {
-                "description": "", 
-                "id": 1, 
-                "name": "Round Robin", 
-                "object": "option"
-            }, 
-            "virtualip": {
-                "ip": {
-                    "datacenter": {
-                        "description": "US West 1 Datacenter", 
-                        "id": 1, 
-                        "name": "US-West-1", 
-                        "object": "option"
-                    }, 
-                    "id": 1868099, 
-                    "ip": "10.0.0.66", 
-                    "object": "ip", 
-                    "public": true, 
-                    "state": {
-                        "description": "IP is reserved or in use", 
-                        "id": 2, 
-                        "name": "Assigned", 
-                        "object": "option"
-                    }, 
-                    "subnet": "10.0.0.64/255.255.255.240"
-                }, 
-                "object": "ipportpair", 
-                "port": 80
-            }
-        }, 
-        {
-            "datacenter": {
-                "description": "US West 1 Datacenter", 
-                "id": 1, 
-                "name": "US-West-1", 
-                "object": "option"
-            }, 
-            "id": 23526, 
-            "name": "bar", 
-            "object": "loadbalancer", 
-            "os": {
-                "description": "The F5 Load Balancer.", 
-                "id": 1, 
-                "name": "F5", 
-                "object": "option"
-            }, 
-            "persistence": {
-                "description": "", 
-                "id": 1, 
-                "name": "None", 
-                "object": "option"
-            }, 
-            "realiplist": [
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868109, 
-                        "ip": "10.0.0.76", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868110, 
-                        "ip": "10.0.0.77", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }, 
-                {
-                    "ip": {
-                        "datacenter": {
-                            "description": "US West 1 Datacenter", 
-                            "id": 1, 
-                            "name": "US-West-1", 
-                            "object": "option"
-                        }, 
-                        "id": 1868111, 
-                        "ip": "10.0.0.78", 
-                        "object": "ip", 
-                        "public": true, 
-                        "state": {
-                            "description": "IP is available to use", 
-                            "id": 1, 
-                            "name": "Unassigned", 
-                            "object": "option"
-                        }, 
-                        "subnet": "10.0.0.64/255.255.255.240"
-                    }, 
-                    "object": "ipportpair", 
-                    "port": 80
-                }
-            ], 
-            "state": {
-                "description": "Loadbalancer is enabled and on.", 
-                "id": 1, 
-                "name": "On", 
-                "object": "option"
-            }, 
-            "type": {
-                "description": "", 
-                "id": 1, 
-                "name": "Round Robin", 
-                "object": "option"
-            }, 
-            "virtualip": {
-                "ip": {
-                    "datacenter": {
-                        "description": "US West 1 Datacenter", 
-                        "id": 1, 
-                        "name": "US-West-1", 
-                        "object": "option"
-                    }, 
-                    "id": 1868100, 
-                    "ip": "10.0.0.67", 
-                    "object": "ip", 
-                    "public": true, 
-                    "state": {
-                        "description": "IP is reserved or in use", 
-                        "id": 2, 
-                        "name": "Assigned", 
-                        "object": "option"
-                    }, 
-                    "subnet": "10.0.0.64/255.255.255.240"
-                }, 
-                "object": "ipportpair", 
-                "port": 80
-            }
-        }
-    ], 
-    "method": "/grid/loadbalancer/list", 
-    "status": "success", 
-    "summary": {
-        "numpages": 0, 
-        "returned": 2, 
-        "start": 0, 
-        "total": 2
-    }
-}
diff --git a/libcloud/test/loadbalancer/fixtures/gogrid/unexpected_error.json b/libcloud/test/loadbalancer/fixtures/gogrid/unexpected_error.json
deleted file mode 100644
index 87ed4e5..0000000
--- a/libcloud/test/loadbalancer/fixtures/gogrid/unexpected_error.json
+++ /dev/null
@@ -1 +0,0 @@
-{"summary":{"total":1,"start":0,"returned":1},"status":"failure","method":"/grid/loadbalancer/add","list":[{"message":"An unexpected server error has occured. Please email this error to apisupport@gogrid.com.  Error Message : null","object":"error","errorcode":"UnexpectedException"}]}
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Account_getAdcLoadBalancers.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Account_getAdcLoadBalancers.xml
deleted file mode 100644
index 3b29fc1..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Account_getAdcLoadBalancers.xml
+++ /dev/null
@@ -1,802 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <array>
-   <data>
-    <value>
-     <struct>
-      <member>
-       <name>accountId</name>
-       <value>
-        <int>411826</int>
-       </value>
-      </member>
-      <member>
-       <name>connectionLimit</name>
-       <value>
-        <int>50</int>
-       </value>
-      </member>
-      <member>
-       <name>connectionLimitUnits</name>
-       <value>
-        <string>connections/second</string>
-       </value>
-      </member>
-      <member>
-       <name>dedicatedFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>76185</int>
-       </value>
-      </member>
-      <member>
-       <name>ipAddressId</name>
-       <value>
-        <int>7303289</int>
-       </value>
-      </member>
-      <member>
-       <name>securityCertificateId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>sslActiveFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>sslEnabledFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>highAvailabilityFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>ipAddress</name>
-       <value>
-        <struct>
-         <member>
-          <name>id</name>
-          <value>
-           <int>7303289</int>
-          </value>
-         </member>
-         <member>
-          <name>ipAddress</name>
-          <value>
-           <string>108.168.157.130</string>
-          </value>
-         </member>
-         <member>
-          <name>isBroadcast</name>
-          <value>
-           <boolean>0</boolean>
-          </value>
-         </member>
-         <member>
-          <name>isGateway</name>
-          <value>
-           <boolean>0</boolean>
-          </value>
-         </member>
-         <member>
-          <name>isNetwork</name>
-          <value>
-           <boolean>0</boolean>
-          </value>
-         </member>
-         <member>
-          <name>isReserved</name>
-          <value>
-           <boolean>1</boolean>
-          </value>
-         </member>
-         <member>
-          <name>note</name>
-          <value>
-           <string>Load balancer VIP</string>
-          </value>
-         </member>
-         <member>
-          <name>subnetId</name>
-          <value>
-           <int>406030</int>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>loadBalancerHardware</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>accountId</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-            <member>
-             <name>bareMetalInstanceFlag</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-            <member>
-             <name>domain</name>
-             <value>
-              <string>softlayer.com</string>
-             </value>
-            </member>
-            <member>
-             <name>fullyQualifiedDomainName</name>
-             <value>
-              <string>lb04.dal05.softlayer.com</string>
-             </value>
-            </member>
-            <member>
-             <name>hardwareStatusId</name>
-             <value>
-              <int>5</int>
-             </value>
-            </member>
-            <member>
-             <name>hostname</name>
-             <value>
-              <string>lb04.dal05</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>178860</int>
-             </value>
-            </member>
-            <member>
-             <name>notes</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>provisionDate</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>serviceProviderId</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-            <member>
-             <name>serviceProviderResourceId</name>
-             <value>
-              <int>178860</int>
-             </value>
-            </member>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>138124</int>
-                </value>
-               </member>
-               <member>
-                <name>longName</name>
-                <value>
-                 <string>Dallas 5</string>
-                </value>
-               </member>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>dal05</string>
-                </value>
-               </member>
-               <member>
-                <name>statusId</name>
-                <value>
-                 <int>2</int>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>virtualServers</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>allocation</name>
-             <value>
-              <int>100</int>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>132193</int>
-             </value>
-            </member>
-            <member>
-             <name>port</name>
-             <value>
-              <int>80</int>
-             </value>
-            </member>
-            <member>
-             <name>routingMethodId</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>virtualIpAddressId</name>
-             <value>
-              <int>76185</int>
-             </value>
-            </member>
-            <member>
-             <name>serviceGroups</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>131113</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>routingMethodId</name>
-                   <value>
-                    <int>10</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>routingTypeId</name>
-                   <value>
-                    <int>2</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>timeout</name>
-                   <value>
-                    <string/>
-                   </value>
-                  </member>
-                  <member>
-                   <name>routingMethod</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>id</name>
-                      <value>
-                       <int>10</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>keyname</name>
-                      <value>
-                       <string>ROUND_ROBIN</string>
-                      </value>
-                     </member>
-                     <member>
-                      <name>name</name>
-                      <value>
-                       <string>Round Robin</string>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                  <member>
-                   <name>routingType</name>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>id</name>
-                      <value>
-                       <int>2</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>keyname</name>
-                      <value>
-                       <string>HTTP</string>
-                      </value>
-                     </member>
-                     <member>
-                      <name>name</name>
-                      <value>
-                       <string>HTTP</string>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </member>
-                  <member>
-                   <name>services</name>
-                   <value>
-                    <array>
-                     <data>
-                      <value>
-                       <struct>
-                        <member>
-                         <name>enabled</name>
-                         <value>
-                          <int>1</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>id</name>
-                         <value>
-                          <int>221145</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>ipAddressId</name>
-                         <value>
-                          <int>33499201</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>notes</name>
-                         <value>
-                          <string>inst-test-276a.example.com</string>
-                         </value>
-                        </member>
-                        <member>
-                         <name>port</name>
-                         <value>
-                          <int>8080</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>status</name>
-                         <value>
-                          <string>DOWN</string>
-                         </value>
-                        </member>
-                        <member>
-                         <name>ipAddress</name>
-                         <value>
-                          <struct>
-                           <member>
-                            <name>id</name>
-                            <value>
-                             <int>33499201</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>ipAddress</name>
-                            <value>
-                             <string>75.126.161.106</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isBroadcast</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isGateway</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isNetwork</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isReserved</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>subnetId</name>
-                            <value>
-                             <int>22958</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>subnet</name>
-                            <value>
-                             <struct>
-                              <member>
-                               <name>broadcastAddress</name>
-                               <value>
-                                <string>75.126.161.111</string>
-                               </value>
-                              </member>
-                              <member>
-                               <name>cidr</name>
-                               <value>
-                                <int>29</int>
-                               </value>
-                              </member>
-                              <member>
-                               <name>gateway</name>
-                               <value>
-                                <string>75.126.161.105</string>
-                               </value>
-                              </member>
-                              <member>
-                               <name>id</name>
-                               <value>
-                                <int>22958</int>
-                               </value>
-                              </member>
-                              <member>
-                               <name>isCustomerOwned</name>
-                               <value>
-                                <boolean>0</boolean>
-                               </value>
-                              </member>
-                              <member>
-                               <name>isCustomerRoutable</name>
-                               <value>
-                                <boolean>0</boolean>
-                               </value>
-                              </member>
-                              <member>
-                               <name>modifyDate</name>
-                               <value>
-                                <string>2015-04-19T03:04:09+02:00</string>
-                               </value>
-                              </member>
-                              <member>
-                               <name>netmask</name>
-                               <value>
-                                <string>255.255.255.248</string>
-                               </value>
-                              </member>
-                              <member>
-                               <name>networkIdentifier</name>
-                               <value>
-                                <string>75.126.161.104</string>
-                               </value>
-                              </member>
-                              <member>
-                               <name>networkVlanId</name>
-                               <value>
-                                <int>815621</int>
-                               </value>
-                              </member>
-                              <member>
-                               <name>sortOrder</name>
-                               <value>
-                                <string>4</string>
-                               </value>
-                              </member>
-                              <member>
-                               <name>subnetType</name>
-                               <value>
-                                <string>PRIMARY</string>
-                               </value>
-                              </member>
-                              <member>
-                               <name>totalIpAddresses</name>
-                               <value>
-                                <int>8</int>
-                               </value>
-                              </member>
-                              <member>
-                               <name>usableIpAddressCount</name>
-                               <value>
-                                <int>5</int>
-                               </value>
-                              </member>
-                              <member>
-                               <name>version</name>
-                               <value>
-                                <int>4</int>
-                               </value>
-                              </member>
-                             </struct>
-                            </value>
-                           </member>
-                          </struct>
-                         </value>
-                        </member>
-                       </struct>
-                      </value>
-                     </data>
-                    </array>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>accountId</name>
-       <value>
-        <int>411826</int>
-       </value>
-      </member>
-      <member>
-       <name>connectionLimit</name>
-       <value>
-        <int>50</int>
-       </value>
-      </member>
-      <member>
-       <name>connectionLimitUnits</name>
-       <value>
-        <string>connections/second</string>
-       </value>
-      </member>
-      <member>
-       <name>dedicatedFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>76265</int>
-       </value>
-      </member>
-      <member>
-       <name>ipAddressId</name>
-       <value>
-        <int>25808370</int>
-       </value>
-      </member>
-      <member>
-       <name>securityCertificateId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>sslActiveFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>sslEnabledFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>highAvailabilityFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>ipAddress</name>
-       <value>
-        <struct>
-         <member>
-          <name>id</name>
-          <value>
-           <int>25808370</int>
-          </value>
-         </member>
-         <member>
-          <name>ipAddress</name>
-          <value>
-           <string>159.8.117.72</string>
-          </value>
-         </member>
-         <member>
-          <name>isBroadcast</name>
-          <value>
-           <boolean>0</boolean>
-          </value>
-         </member>
-         <member>
-          <name>isGateway</name>
-          <value>
-           <boolean>0</boolean>
-          </value>
-         </member>
-         <member>
-          <name>isNetwork</name>
-          <value>
-           <boolean>0</boolean>
-          </value>
-         </member>
-         <member>
-          <name>isReserved</name>
-          <value>
-           <boolean>1</boolean>
-          </value>
-         </member>
-         <member>
-          <name>note</name>
-          <value>
-           <string>Load balancer VIP</string>
-          </value>
-         </member>
-         <member>
-          <name>subnetId</name>
-          <value>
-           <int>717366</int>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>loadBalancerHardware</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>accountId</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-            <member>
-             <name>bareMetalInstanceFlag</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-            <member>
-             <name>domain</name>
-             <value>
-              <string>softlayer.com</string>
-             </value>
-            </member>
-            <member>
-             <name>fullyQualifiedDomainName</name>
-             <value>
-              <string>lb01.par01.softlayer.com</string>
-             </value>
-            </member>
-            <member>
-             <name>hardwareStatusId</name>
-             <value>
-              <int>5</int>
-             </value>
-            </member>
-            <member>
-             <name>hostname</name>
-             <value>
-              <string>lb01.par01</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>390016</int>
-             </value>
-            </member>
-            <member>
-             <name>notes</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>provisionDate</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>serviceProviderId</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-            <member>
-             <name>serviceProviderResourceId</name>
-             <value>
-              <int>390016</int>
-             </value>
-            </member>
-            <member>
-             <name>datacenter</name>
-             <value>
-              <struct>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>449500</int>
-                </value>
-               </member>
-               <member>
-                <name>longName</name>
-                <value>
-                 <string>Paris 1</string>
-                </value>
-               </member>
-               <member>
-                <name>name</name>
-                <value>
-                 <string>par01</string>
-                </value>
-               </member>
-               <member>
-                <name>statusId</name>
-                <value>
-                 <int>2</int>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>virtualServers</name>
-       <value>
-        <array>
-         <data/>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </data>
-  </array>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Billing_Item_cancelService.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Billing_Item_cancelService.xml
deleted file mode 100644
index 082b69e..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Billing_Item_cancelService.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <boolean>1</boolean>
- </value>
-</param>
-</params>
\ No newline at end of file
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Location_Datacenter_getDatacenters.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Location_Datacenter_getDatacenters.xml
deleted file mode 100644
index dfbb9a8..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Location_Datacenter_getDatacenters.xml
+++ /dev/null
@@ -1,683 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <array>
-   <data>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>265592</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Amsterdam 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>ams01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>814994</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Amsterdam 3</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>ams03</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>3</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>154770</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas 2</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal02</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>167092</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas 4</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal04</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>138124</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas 5</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal05</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>154820</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas 6</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal06</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>142776</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas 7</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal07</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>449494</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Dallas 9</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>dal09</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>449506</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Frankfurt 2</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>fra02</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>352494</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Hong Kong 2</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>hkg02</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>142775</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Houston 2</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>hou02</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>358694</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>London 2</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>lon02</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>449596</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Melbourne 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>mel01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>449600</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Mexico 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>mex01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>449610</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Montreal 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>mon01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>449500</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Paris 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>par01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>168642</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>San Jose 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>sjc01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>18171</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Seattle</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>sea01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>224092</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Singapore 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>sng01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>449612</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Sydney 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>syd01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>449604</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Tokyo 2</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>tok02</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>448994</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Toronto 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>tor01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>id</name>
-       <value>
-        <int>37473</int>
-       </value>
-      </member>
-      <member>
-       <name>longName</name>
-       <value>
-        <string>Washington 1</string>
-       </value>
-      </member>
-      <member>
-       <name>name</name>
-       <value>
-        <string>wdc01</string>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </data>
-  </array>
- </value>
-</param>
-</params>
\ No newline at end of file
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject.xml
deleted file mode 100644
index 5dca377..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <boolean>1</boolean>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject.xml
deleted file mode 100644
index 5dca377..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <boolean>1</boolean>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem.xml
deleted file mode 100644
index 08356d3..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem.xml
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>allowCancellationFlag</name>
-    <value>
-     <int>1</int>
-    </value>
-   </member>
-   <member>
-    <name>cancellationDate</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>categoryCode</name>
-    <value>
-     <string>proxy_load_balancer</string>
-    </value>
-   </member>
-   <member>
-    <name>createDate</name>
-    <value>
-     <string>2015-04-24T15:19:21+02:00</string>
-    </value>
-   </member>
-   <member>
-    <name>cycleStartDate</name>
-    <value>
-     <string>2015-04-24T15:19:21+02:00</string>
-    </value>
-   </member>
-   <member>
-    <name>description</name>
-    <value>
-     <string>Load Balancer 50 connections</string>
-    </value>
-   </member>
-   <member>
-    <name>id</name>
-    <value>
-     <int>50844215</int>
-    </value>
-   </member>
-   <member>
-    <name>laborFee</name>
-    <value>
-     <string>0</string>
-    </value>
-   </member>
-   <member>
-    <name>laborFeeTaxRate</name>
-    <value>
-     <string>0</string>
-    </value>
-   </member>
-   <member>
-    <name>lastBillDate</name>
-    <value>
-     <string>2015-04-24T15:19:21+02:00</string>
-    </value>
-   </member>
-   <member>
-    <name>modifyDate</name>
-    <value>
-     <string>2015-04-24T15:19:23+02:00</string>
-    </value>
-   </member>
-   <member>
-    <name>nextBillDate</name>
-    <value>
-     <string>2015-05-01T07:00:00+02:00</string>
-    </value>
-   </member>
-   <member>
-    <name>notes</name>
-    <value>
-     <string>1.2.3.4</string>
-    </value>
-   </member>
-   <member>
-    <name>oneTimeFee</name>
-    <value>
-     <string>0</string>
-    </value>
-   </member>
-   <member>
-    <name>oneTimeFeeTaxRate</name>
-    <value>
-     <string>0</string>
-    </value>
-   </member>
-   <member>
-    <name>orderItemId</name>
-    <value>
-     <int>65021573</int>
-    </value>
-   </member>
-   <member>
-    <name>parentId</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>recurringFee</name>
-    <value>
-     <string>29</string>
-    </value>
-   </member>
-   <member>
-    <name>recurringFeeTaxRate</name>
-    <value>
-     <string>0</string>
-    </value>
-   </member>
-   <member>
-    <name>recurringMonths</name>
-    <value>
-     <int>1</int>
-    </value>
-   </member>
-   <member>
-    <name>serviceProviderId</name>
-    <value>
-     <int>1</int>
-    </value>
-   </member>
-   <member>
-    <name>setupFee</name>
-    <value>
-     <string>0</string>
-    </value>
-   </member>
-   <member>
-    <name>setupFeeTaxRate</name>
-    <value>
-     <string>0</string>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
\ No newline at end of file
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject.xml
deleted file mode 100644
index b39fafc..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject.xml
+++ /dev/null
@@ -1,803 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>accountId</name>
-    <value>
-     <int>411826</int>
-    </value>
-   </member>
-   <member>
-    <name>connectionLimit</name>
-    <value>
-     <int>50</int>
-    </value>
-   </member>
-   <member>
-    <name>connectionLimitUnits</name>
-    <value>
-     <string>connections/second</string>
-    </value>
-   </member>
-   <member>
-    <name>dedicatedFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>id</name>
-    <value>
-     <int>76185</int>
-    </value>
-   </member>
-   <member>
-    <name>ipAddressId</name>
-    <value>
-     <int>7303289</int>
-    </value>
-   </member>
-   <member>
-    <name>securityCertificateId</name>
-    <value>
-     <string/>
-    </value>
-   </member>
-   <member>
-    <name>sslActiveFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>sslEnabledFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>highAvailabilityFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>managedResourceFlag</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>virtualServers</name>
-    <value>
-     <array>
-      <data>
-       <value>
-        <struct>
-         <member>
-          <name>allocation</name>
-          <value>
-           <int>100</int>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>132193</int>
-          </value>
-         </member>
-         <member>
-          <name>port</name>
-          <value>
-           <int>80</int>
-          </value>
-         </member>
-         <member>
-          <name>routingMethodId</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>virtualIpAddressId</name>
-          <value>
-           <int>76185</int>
-          </value>
-         </member>
-         <member>
-          <name>serviceGroups</name>
-          <value>
-           <array>
-            <data>
-             <value>
-              <struct>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>131113</int>
-                </value>
-               </member>
-               <member>
-                <name>routingMethodId</name>
-                <value>
-                 <int>10</int>
-                </value>
-               </member>
-               <member>
-                <name>routingTypeId</name>
-                <value>
-                 <int>2</int>
-                </value>
-               </member>
-               <member>
-                <name>timeout</name>
-                <value>
-                 <string/>
-                </value>
-               </member>
-               <member>
-                <name>services</name>
-                <value>
-                 <array>
-                  <data>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>enabled</name>
-                      <value>
-                       <int>1</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>id</name>
-                      <value>
-                       <int>226227</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>ipAddressId</name>
-                      <value>
-                       <int>29341260</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>port</name>
-                      <value>
-                       <int>8000</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>status</name>
-                      <value>
-                       <string>UP</string>
-                      </value>
-                     </member>
-                     <member>
-                      <name>groupReferences</name>
-                      <value>
-                       <array>
-                        <data>
-                         <value>
-                          <struct>
-                           <member>
-                            <name>serviceGroupId</name>
-                            <value>
-                             <int>131113</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>serviceId</name>
-                            <value>
-                             <int>226227</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>weight</name>
-                            <value>
-                             <int>1</int>
-                            </value>
-                           </member>
-                          </struct>
-                         </value>
-                        </data>
-                       </array>
-                      </value>
-                     </member>
-                     <member>
-                      <name>ipAddress</name>
-                      <value>
-                       <struct>
-                        <member>
-                         <name>id</name>
-                         <value>
-                          <int>29341260</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>ipAddress</name>
-                         <value>
-                          <string>10.126.5.34</string>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isBroadcast</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isGateway</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isNetwork</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isReserved</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>subnetId</name>
-                         <value>
-                          <int>730826</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>subnet</name>
-                         <value>
-                          <struct>
-                           <member>
-                            <name>broadcastAddress</name>
-                            <value>
-                             <string>10.126.5.63</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>cidr</name>
-                            <value>
-                             <int>26</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>gateway</name>
-                            <value>
-                             <string>10.126.5.1</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>id</name>
-                            <value>
-                             <int>730826</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isCustomerOwned</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isCustomerRoutable</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>modifyDate</name>
-                            <value>
-                             <string>2015-04-19T03:14:26+02:00</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>netmask</name>
-                            <value>
-                             <string>255.255.255.192</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>networkIdentifier</name>
-                            <value>
-                             <string>10.126.5.0</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>networkVlanId</name>
-                            <value>
-                             <int>728518</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>sortOrder</name>
-                            <value>
-                             <string>4</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>subnetType</name>
-                            <value>
-                             <string>PRIMARY</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>totalIpAddresses</name>
-                            <value>
-                             <int>64</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>usableIpAddressCount</name>
-                            <value>
-                             <int>61</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>version</name>
-                            <value>
-                             <int>4</int>
-                            </value>
-                           </member>
-                          </struct>
-                         </value>
-                        </member>
-                       </struct>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>enabled</name>
-                      <value>
-                       <int>1</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>id</name>
-                      <value>
-                       <int>226229</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>ipAddressId</name>
-                      <value>
-                       <int>29341262</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>port</name>
-                      <value>
-                       <int>8080</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>status</name>
-                      <value>
-                       <string>UP</string>
-                      </value>
-                     </member>
-                     <member>
-                      <name>groupReferences</name>
-                      <value>
-                       <array>
-                        <data>
-                         <value>
-                          <struct>
-                           <member>
-                            <name>serviceGroupId</name>
-                            <value>
-                             <int>131113</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>serviceId</name>
-                            <value>
-                             <int>226229</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>weight</name>
-                            <value>
-                             <int>1</int>
-                            </value>
-                           </member>
-                          </struct>
-                         </value>
-                        </data>
-                       </array>
-                      </value>
-                     </member>
-                     <member>
-                      <name>ipAddress</name>
-                      <value>
-                       <struct>
-                        <member>
-                         <name>id</name>
-                         <value>
-                          <int>29341262</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>ipAddress</name>
-                         <value>
-                          <string>10.126.5.35</string>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isBroadcast</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isGateway</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isNetwork</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isReserved</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>subnetId</name>
-                         <value>
-                          <int>730826</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>subnet</name>
-                         <value>
-                          <struct>
-                           <member>
-                            <name>broadcastAddress</name>
-                            <value>
-                             <string>10.126.5.63</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>cidr</name>
-                            <value>
-                             <int>26</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>gateway</name>
-                            <value>
-                             <string>10.126.5.1</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>id</name>
-                            <value>
-                             <int>730826</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isCustomerOwned</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isCustomerRoutable</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>modifyDate</name>
-                            <value>
-                             <string>2015-04-19T03:14:26+02:00</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>netmask</name>
-                            <value>
-                             <string>255.255.255.192</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>networkIdentifier</name>
-                            <value>
-                             <string>10.126.5.0</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>networkVlanId</name>
-                            <value>
-                             <int>728518</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>sortOrder</name>
-                            <value>
-                             <string>4</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>subnetType</name>
-                            <value>
-                             <string>PRIMARY</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>totalIpAddresses</name>
-                            <value>
-                             <int>64</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>usableIpAddressCount</name>
-                            <value>
-                             <int>61</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>version</name>
-                            <value>
-                             <int>4</int>
-                            </value>
-                           </member>
-                          </struct>
-                         </value>
-                        </member>
-                       </struct>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                   <value>
-                    <struct>
-                     <member>
-                      <name>enabled</name>
-                      <value>
-                       <int>1</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>id</name>
-                      <value>
-                       <int>221145</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>ipAddressId</name>
-                      <value>
-                       <int>33499201</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>notes</name>
-                      <value>
-                       <string>inst-test-276a.example.com</string>
-                      </value>
-                     </member>
-                     <member>
-                      <name>port</name>
-                      <value>
-                       <int>8080</int>
-                      </value>
-                     </member>
-                     <member>
-                      <name>status</name>
-                      <value>
-                       <string>UP</string>
-                      </value>
-                     </member>
-                     <member>
-                      <name>groupReferences</name>
-                      <value>
-                       <array>
-                        <data>
-                         <value>
-                          <struct>
-                           <member>
-                            <name>serviceGroupId</name>
-                            <value>
-                             <int>131113</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>serviceId</name>
-                            <value>
-                             <int>221145</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>weight</name>
-                            <value>
-                             <int>1</int>
-                            </value>
-                           </member>
-                          </struct>
-                         </value>
-                        </data>
-                       </array>
-                      </value>
-                     </member>
-                     <member>
-                      <name>ipAddress</name>
-                      <value>
-                       <struct>
-                        <member>
-                         <name>id</name>
-                         <value>
-                          <int>33499201</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>ipAddress</name>
-                         <value>
-                          <string>75.75.75.75</string>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isBroadcast</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isGateway</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isNetwork</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>isReserved</name>
-                         <value>
-                          <boolean>0</boolean>
-                         </value>
-                        </member>
-                        <member>
-                         <name>subnetId</name>
-                         <value>
-                          <int>22958</int>
-                         </value>
-                        </member>
-                        <member>
-                         <name>subnet</name>
-                         <value>
-                          <struct>
-                           <member>
-                            <name>broadcastAddress</name>
-                            <value>
-                             <string>75.75.75.75</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>cidr</name>
-                            <value>
-                             <int>29</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>gateway</name>
-                            <value>
-                             <string>75.75.75.75</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>id</name>
-                            <value>
-                             <int>22958</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isCustomerOwned</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>isCustomerRoutable</name>
-                            <value>
-                             <boolean>0</boolean>
-                            </value>
-                           </member>
-                           <member>
-                            <name>modifyDate</name>
-                            <value>
-                             <string>2015-04-19T03:04:09+02:00</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>netmask</name>
-                            <value>
-                             <string>255.255.255.248</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>networkIdentifier</name>
-                            <value>
-                             <string>75.75.75.75</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>networkVlanId</name>
-                            <value>
-                             <int>815621</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>sortOrder</name>
-                            <value>
-                             <string>4</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>subnetType</name>
-                            <value>
-                             <string>PRIMARY</string>
-                            </value>
-                           </member>
-                           <member>
-                            <name>totalIpAddresses</name>
-                            <value>
-                             <int>8</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>usableIpAddressCount</name>
-                            <value>
-                             <int>5</int>
-                            </value>
-                           </member>
-                           <member>
-                            <name>version</name>
-                            <value>
-                             <int>4</int>
-                            </value>
-                           </member>
-                          </struct>
-                         </value>
-                        </member>
-                       </struct>
-                      </value>
-                     </member>
-                    </struct>
-                   </value>
-                  </data>
-                 </array>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </data>
-           </array>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </data>
-     </array>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml
deleted file mode 100644
index 3ae4871..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>id</name>
-    <value>
-     <int>29341260</int>
-    </value>
-   </member>
-   <member>
-    <name>ipAddress</name>
-    <value>
-     <string>10.126.5.34</string>
-    </value>
-   </member>
-   <member>
-    <name>isBroadcast</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>isGateway</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>isNetwork</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>isReserved</name>
-    <value>
-     <boolean>0</boolean>
-    </value>
-   </member>
-   <member>
-    <name>subnetId</name>
-    <value>
-     <int>730826</int>
-    </value>
-   </member>
-   <member>
-    <name>subnet</name>
-    <value>
-     <struct>
-      <member>
-       <name>broadcastAddress</name>
-       <value>
-        <string>10.126.5.63</string>
-       </value>
-      </member>
-      <member>
-       <name>cidr</name>
-       <value>
-        <int>26</int>
-       </value>
-      </member>
-      <member>
-       <name>gateway</name>
-       <value>
-        <string>10.126.5.1</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>730826</int>
-       </value>
-      </member>
-      <member>
-       <name>isCustomerOwned</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>isCustomerRoutable</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>modifyDate</name>
-       <value>
-        <string>2015-04-19T03:14:26+02:00</string>
-       </value>
-      </member>
-      <member>
-       <name>netmask</name>
-       <value>
-        <string>255.255.255.192</string>
-       </value>
-      </member>
-      <member>
-       <name>networkIdentifier</name>
-       <value>
-        <string>10.126.5.0</string>
-       </value>
-      </member>
-      <member>
-       <name>networkVlanId</name>
-       <value>
-        <int>728518</int>
-       </value>
-      </member>
-      <member>
-       <name>sortOrder</name>
-       <value>
-        <string>4</string>
-       </value>
-      </member>
-      <member>
-       <name>subnetType</name>
-       <value>
-        <string>PRIMARY</string>
-       </value>
-      </member>
-      <member>
-       <name>totalIpAddresses</name>
-       <value>
-        <int>64</int>
-       </value>
-      </member>
-      <member>
-       <name>usableIpAddressCount</name>
-       <value>
-        <int>61</int>
-       </value>
-      </member>
-      <member>
-       <name>version</name>
-       <value>
-        <int>4</int>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Order_placeOrder.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Order_placeOrder.xml
deleted file mode 100644
index 3cc4b9c..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Order_placeOrder.xml
+++ /dev/null
@@ -1,709 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <struct>
-   <member>
-    <name>orderDate</name>
-    <value>
-     <string>2015-04-24T15:19:20+02:00</string>
-    </value>
-   </member>
-   <member>
-    <name>orderId</name>
-    <value>
-     <int>4320271</int>
-    </value>
-   </member>
-   <member>
-    <name>orderDetails</name>
-    <value>
-     <struct>
-      <member>
-       <name>bigDataOrderFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>billingOrderItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>containerSplHash</name>
-       <value>
-        <string>00000000</string>
-       </value>
-      </member>
-      <member>
-       <name>currencyShortName</name>
-       <value>
-        <string>USD</string>
-       </value>
-      </member>
-      <member>
-       <name>extendedHardwareTesting</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>imageTemplateId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>isManagedOrder</name>
-       <value>
-        <int>0</int>
-       </value>
-      </member>
-      <member>
-       <name>location</name>
-       <value>
-        <string>265592</string>
-       </value>
-      </member>
-      <member>
-       <name>message</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>packageId</name>
-       <value>
-        <int>0</int>
-       </value>
-      </member>
-      <member>
-       <name>paymentType</name>
-       <value>
-        <string>ADD_TO_BALANCE</string>
-       </value>
-      </member>
-      <member>
-       <name>postTaxRecurring</name>
-       <value>
-        <string>29</string>
-       </value>
-      </member>
-      <member>
-       <name>postTaxRecurringHourly</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>postTaxRecurringMonthly</name>
-       <value>
-        <string>29</string>
-       </value>
-      </member>
-      <member>
-       <name>postTaxSetup</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>preTaxRecurring</name>
-       <value>
-        <string>29</string>
-       </value>
-      </member>
-      <member>
-       <name>preTaxRecurringHourly</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>preTaxRecurringMonthly</name>
-       <value>
-        <string>29</string>
-       </value>
-      </member>
-      <member>
-       <name>preTaxSetup</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>presetId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>primaryDiskPartitionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>privateCloudOrderFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>proratedInitialCharge</name>
-       <value>
-        <string>6.77</string>
-       </value>
-      </member>
-      <member>
-       <name>proratedOrderTotal</name>
-       <value>
-        <string>6.77</string>
-       </value>
-      </member>
-      <member>
-       <name>quantity</name>
-       <value>
-        <int>1</int>
-       </value>
-      </member>
-      <member>
-       <name>resourceGroupId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>resourceGroupTemplateId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>sendQuoteEmailFlag</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>serverCoreCount</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>sourceVirtualGuestId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>stepId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>taxCacheHash</name>
-       <value>
-        <string>b94c43e22aeaedb3dc4</string>
-       </value>
-      </member>
-      <member>
-       <name>taxCompletedFlag</name>
-       <value>
-        <boolean>1</boolean>
-       </value>
-      </member>
-      <member>
-       <name>totalRecurringTax</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>totalSetupTax</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>useHourlyPricing</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>billingInformation</name>
-       <value>
-        <struct>
-         <member>
-          <name>billingAddressLine1</name>
-          <value>
-           <string>University</string>
-          </value>
-         </member>
-         <member>
-          <name>billingCity</name>
-          <value>
-           <string>Haifa</string>
-          </value>
-         </member>
-         <member>
-          <name>billingCountryCode</name>
-          <value>
-           <string>IL</string>
-          </value>
-         </member>
-         <member>
-          <name>billingEmail</name>
-          <value>
-           <string>someone@com</string>
-          </value>
-         </member>
-         <member>
-          <name>billingNameCompany</name>
-          <value>
-           <string>IBM</string>
-          </value>
-         </member>
-         <member>
-          <name>billingNameFirst</name>
-          <value>
-           <string>Foo </string>
-          </value>
-         </member>
-         <member>
-          <name>billingNameLast</name>
-          <value>
-           <string>Bar</string>
-          </value>
-         </member>
-         <member>
-          <name>billingPhoneVoice</name>
-          <value>
-           <string>972-4-44444</string>
-          </value>
-         </member>
-         <member>
-          <name>billingPostalCode</name>
-          <value>
-           <string>0000</string>
-          </value>
-         </member>
-         <member>
-          <name>billingState</name>
-          <value>
-           <string>OT</string>
-          </value>
-         </member>
-         <member>
-          <name>cardExpirationMonth</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>cardExpirationYear</name>
-          <value>
-           <string/>
-          </value>
-         </member>
-         <member>
-          <name>taxExempt</name>
-          <value>
-           <int>0</int>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>itemCategoryQuestionAnswers</name>
-       <value>
-        <array>
-         <data/>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>locationObject</name>
-       <value>
-        <struct>
-         <member>
-          <name>id</name>
-          <value>
-           <int>265592</int>
-          </value>
-         </member>
-         <member>
-          <name>longName</name>
-          <value>
-           <string>Amsterdam 1</string>
-          </value>
-         </member>
-         <member>
-          <name>name</name>
-          <value>
-           <string>ams01</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>id</name>
-             <value>
-              <int>33021</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>565</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>29</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>categories</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>categoryCode</name>
-                   <value>
-                    <string>proxy_load_balancer</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>55</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>name</name>
-                   <value>
-                    <string>Proxy Load Balancer</string>
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-            <member>
-             <name>item</name>
-             <value>
-              <struct>
-               <member>
-                <name>capacity</name>
-                <value>
-                 <string>50</string>
-                </value>
-               </member>
-               <member>
-                <name>description</name>
-                <value>
-                 <string>Load Balancer 50 connections</string>
-                </value>
-               </member>
-               <member>
-                <name>id</name>
-                <value>
-                 <int>565</int>
-                </value>
-               </member>
-               <member>
-                <name>keyName</name>
-                <value>
-                 <string>LOAD_BALANCER_50_CONNECTIONS</string>
-                </value>
-               </member>
-               <member>
-                <name>units</name>
-                <value>
-                 <string>Connections/Second</string>
-                </value>
-               </member>
-               <member>
-                <name>bundle</name>
-                <value>
-                 <array>
-                  <data/>
-                 </array>
-                </value>
-               </member>
-              </struct>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>properties</name>
-       <value>
-        <array>
-         <data/>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>sshKeys</name>
-       <value>
-        <array>
-         <data/>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>storageGroups</name>
-       <value>
-        <array>
-         <data/>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-   <member>
-    <name>placedOrder</name>
-    <value>
-     <struct>
-      <member>
-       <name>accountId</name>
-       <value>
-        <int>411826</int>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4320271</int>
-       </value>
-      </member>
-      <member>
-       <name>orderQuoteId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>orderTypeId</name>
-       <value>
-        <int>4</int>
-       </value>
-      </member>
-      <member>
-       <name>presaleEventId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>status</name>
-       <value>
-        <string>PENDING_AUTO_APPROVAL</string>
-       </value>
-      </member>
-      <member>
-       <name>userRecordId</name>
-       <value>
-        <int>315282</int>
-       </value>
-      </member>
-      <member>
-       <name>account</name>
-       <value>
-        <struct>
-         <member>
-          <name>brandId</name>
-          <value>
-           <int>30130</int>
-          </value>
-         </member>
-         <member>
-          <name>companyName</name>
-          <value>
-           <string>IBM</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>411826</int>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>items</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>categoryCode</name>
-             <value>
-              <string>proxy_load_balancer</string>
-             </value>
-            </member>
-            <member>
-             <name>description</name>
-             <value>
-              <string>Load Balancer 50 connections</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>65021573</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>565</int>
-             </value>
-            </member>
-            <member>
-             <name>itemPriceId</name>
-             <value>
-              <string>33021</string>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>parentId</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>promoCodeId</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>29</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>children</name>
-             <value>
-              <array>
-               <data/>
-              </array>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>userRecord</name>
-       <value>
-        <struct>
-         <member>
-          <name>accountId</name>
-          <value>
-           <int>00000</int>
-          </value>
-         </member>
-         <member>
-          <name>firstName</name>
-          <value>
-           <string>Foo</string>
-          </value>
-         </member>
-         <member>
-          <name>id</name>
-          <value>
-           <int>00000</int>
-          </value>
-         </member>
-         <member>
-          <name>lastName</name>
-          <value>
-           <string>Foo</string>
-          </value>
-         </member>
-         <member>
-          <name>username</name>
-          <value>
-           <string>foo</string>
-          </value>
-         </member>
-        </struct>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </member>
-  </struct>
- </value>
-</param>
-</params>
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Package_getItems.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Package_getItems.xml
deleted file mode 100644
index 235761a..0000000
--- a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Package_getItems.xml
+++ /dev/null
@@ -1,5448 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<params>
-<param>
- <value>
-  <array>
-   <data>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Citrix VDC</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1148</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>CITRIX_VDC</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>24912</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>1148</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>65000</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Load Balancer (Dedicated, with SSL offload) - 15,000 Connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4136</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>LOAD_BALANCER_DEDICATED_WITH_SSL_OFFLOAD_15000_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>25314</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4136</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>849</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>200</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Citrix NetScaler VPX 10.5 200Mbps Platinum</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>5916</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>CITRIX_NETSCALER_VPX_10_5_200MBPS_PLATINUM</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <int>1378</int>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Mbps</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>44970</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>5916</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>899</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>64</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>/64 Block Static Public IPv6 Addresses</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>784</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>64_BLOCK_STATIC_PUBLIC_IPV6_ADDRESSES</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.007</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>26340</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>784</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>10</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>4</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.info - 4 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4007</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_INFO_4_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>26584</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4007</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>38.48</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>3</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>50</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Load Balancer 50 connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>565</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>LOAD_BALANCER_50_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Connections/Second</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <int>567</int>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>33021</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>565</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>29</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Reseller Domain Credit</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4065</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>162</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>RESELLER_DOMAIN_CREDIT</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>27728</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4065</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>10</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>250</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>CDN 250 GB Bandwidth</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>892</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>CDN_250_GB_BANDWIDTH</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>GB</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>27770</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>892</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>10</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>3</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.biz - 3 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>3995</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_BIZ_3_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>29940</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>3995</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>33</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>2</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Dedicated Rack (Half)</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1302</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DEDICATED_RACK_HALF</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>31299</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>1302</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>1100</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>1000</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Load Balancer 1,000 connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>566</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>LOAD_BALANCER_1000_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Connections/Second</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <int>571</int>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>31322</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>566</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>499</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>5</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.info - 5 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4023</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_INFO_5_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>31340</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4023</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>48.1</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>4</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>7</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.us - 7 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>3999</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_US_7_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>32381</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>3999</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>57.33</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>6</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Windows 2008 Datacenter w/ Unlimited Virtuals (2 Proc License)</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>791</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>VIRTUAL_OS_WINDOWS_2008_DATACENTER_W_UNLIMITED_VIRTUALS_2_PROC_LICENSE</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <int>723</int>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>32695</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>791</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>127.5</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>250</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Load Balancer 250 VIP Connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1106</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>LOAD_BALANCER_250_VIP_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Connections/Second</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <int>1105</int>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>33908</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>1106</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>29</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>1500</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>1500GB EVault Disk to Disk Enterprise Backup</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4185</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>EVAULT_1500_GB</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <int>159</int>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>GIGABYTE</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <int>955</int>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>34594</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4185</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>543.75</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>65000</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Dedicated Load Balancer with High Availability and SSL - 15,000 Connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4512</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DEDICATED_LOAD_BALANCER_WITH_HIGH_AVAILABILITY_AND_SSL_15000_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>36019</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4512</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>1698</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>10</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Citrix NetScaler VPX 10.5 10Mbps Platinum</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>5912</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>CITRIX_NETSCALER_VPX_10_5_10MBPS_PLATINUM</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <int>1374</int>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Mbps</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>44950</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>5912</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>459</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>EVault Plugin - VMWare ESX</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1087</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>EVAULT_PLUGIN_VMWARE_ESX</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <int>635</int>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>23040</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>1087</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>8.5</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>8</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>8 Static Public IP Addresses</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>583</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>8_STATIC_PUBLIC_IP_ADDRESSES</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>36692</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>583</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>29583</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>583</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>8</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>31207</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>583</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>8</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>hourlyRecurringFee</name>
-             <value>
-              <string>.007</string>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>23392</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>583</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>2000</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Load Balancer 2,000 connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>617</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>LOAD_BALANCER_2000_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Connections/Second</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <int>618</int>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>23794</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>617</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>999</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>3</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.us - 3 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4011</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_US_3_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>24083</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4011</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>24.57</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>2</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>2</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>FortiGate Security Appliance (High Availability)</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4338</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>FORTIGATE_SECURITY_APPLIANCE_HIGH_AVAILABILITY</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>24741</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4338</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>1699</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>100000</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Advanced Package</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>3859</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>NETWORK_MESSAGE_DELIVERY_ADVANCED_PACKAGE</string>
-       </value>
-      </member>
-      <member>
-       <name>longDescription</name>
-       <value>
-        <string>&#60;ul&#62;&#13;&#10;&#60;li&#62;Overage - $0.00085&#60;/li&#62;&#13;&#10;&#60;li&#62;Bounce Tracking&#60;/li&#62;&#13;&#10;&#60;li&#62;Unsub Tracking&#60;/li&#62;&#13;&#10;&#60;li&#62;Click Tracking&#60;/li&#62;&#13;&#10;&#60;li&#62;Open Tracking&#60;/li&#62;&#13;&#10;&#60;li&#62;Dedicated IP&#60;/li&#62;&#13;&#10;&#60;/ul&#62;</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>24995</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>3859</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>36</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Global IPv6</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4187</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>GLOBAL_IPV6</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>25282</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4187</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>10</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>CDN Pay as You Go Bandwidth</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>891</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>CDN_PAY_AS_YOU_GO_BANDWIDTH</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>GB</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>25482</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>891</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>5</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>2</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.net - 2 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4001</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_NET_2_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>25495</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4001</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>22</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>1</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>QuickSSL Premium - 1 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1293</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>SSL_CERTIFICATE_QUICKSSL_PREMIUM_1_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>longDescription</name>
-       <value>
-        <string>&#60;h3&#62;GeoTrust QuickSSL&#38;reg; Premium SSL&#60;/h3&#62;&#13;&#10;&#60;p&#62;&#13;&#10;    GeoTrust QuickSSL Premium Certificates are convenient and economical entry-level SSL Certificates. These certificates enable up to 256-bit encryption (depending on your client's browser capability and the cipher suite installed on your Web server) and are issued through an automated process that usually results in certificates being issued within minutes of being ordered. This process verifies that a certificate purchaser has appropriate administrative rights to a Web server's domain.&#13;&#10;&#60;/p&#62; &#13;&#10;&#13;&#10;&#60;h3&#62;Features and Benefits&#60;/h3&#62;&#13;&#10;&#60;ul&#62; &#13;&#10;    &#60;li&#62;Domain-level authentication&#60;/li&#62;&#13;&#10;    &#60;li&#62;Up to 256-bit encryption&#60;/li&#62;&#13;&#10;    &#60;li&#62;True Site Seal embedded with a date/time stamp&#60;/li&#62;&#13;&#10;    &#60;li&#62;Issuance, often within minutes&#60;/li&#62;&#13;&#10;    &#60;li&#62;Unlimited, free self-service reissues&#60;/li&#62;&#13;&#10;&#60;/ul&#62;</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>DV</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>25847</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>1293</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>79</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>3</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>2</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Hardware Firewall (High Availability)</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>3896</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>HARDWARE_FIREWALL_HIGH_AVAILABILITY</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>26005</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>3896</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>1398</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>3</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.org - 3 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4002</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_ORG_3_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>26323</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4002</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>30</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>2</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>64</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>/64 Block Portable Public IPv6 Addresses</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>785</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>64_BLOCK_PORTABLE_PUBLIC_IPV6_ADDRESSES</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>28502</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>785</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>10</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>2500</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Load Balancer 2,500 VIP Connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1103</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>LOAD_BALANCER_2500_VIP_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Connections/Second</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <int>1102</int>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>30681</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>1103</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>299</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>500</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Load Balancer 500 VIP Connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1105</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>LOAD_BALANCER_500_VIP_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Connections/Second</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <int>1104</int>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>33416</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>1105</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>49</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>0</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Windows 2008 Datacenter w/ Unlimited Virtuals (4 Proc License)</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>792</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>VIRTUAL_OS_WINDOWS_2008_DATACENTER_W_UNLIMITED_VIRTUALS_4_PROC_LICENSE</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <int>723</int>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>34006</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>792</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>255</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>1500</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Load Balancer 1,500 connections</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>616</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>LOAD_BALANCER_1500_CONNECTIONS</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>30815</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>616</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>749</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>2</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.com - 2 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4013</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_COM_2_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>31127</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4013</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>19.88</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>10</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.net - 10 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>4032</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_NET_10_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>31647</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>4032</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>110</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>9</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Hardware Firewall (Dedicated)</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>1329</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>HARDWARE_FIREWALL_DEDICATED</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>dedicated</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>33373</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>1329</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>699</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>2</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>.org - 2 year</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>3993</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>DOMAIN_ORG_2_YEAR</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>N/A</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>22693</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>3993</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>20</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>1</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>8</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>8 Portable Private IP Addresses</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>3903</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>8_PORTABLE_PRIVATE_IP_ADDRESSES</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>IPs</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>23104</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>3903</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>1000</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>1000GB EVault Disk to Disk Enterprise Backup</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>563</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>EVAULT_1000_GB</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <int>159</int>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>GIGABYTE</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <int>4185</int>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>28124</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>563</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>362.5</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>capacity</name>
-       <value>
-        <string>1000</string>
-       </value>
-      </member>
-      <member>
-       <name>description</name>
-       <value>
-        <string>Citrix NetScaler VPX 10.5 1000Mbps Standard</string>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>5910</int>
-       </value>
-      </member>
-      <member>
-       <name>itemTaxCategoryId</name>
-       <value>
-        <int>166</int>
-       </value>
-      </member>
-      <member>
-       <name>keyName</name>
-       <value>
-        <string>CITRIX_NETSCALER_VPX_10_5_1000MBPS_STANDARD</string>
-       </value>
-      </member>
-      <member>
-       <name>softwareDescriptionId</name>
-       <value>
-        <int>1380</int>
-       </value>
-      </member>
-      <member>
-       <name>units</name>
-       <value>
-        <string>Mbps</string>
-       </value>
-      </member>
-      <member>
-       <name>upgradeItemId</name>
-       <value>
-        <string/>
-       </value>
-      </member>
-      <member>
-       <name>prices</name>
-       <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>currentPriceFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>id</name>
-             <value>
-              <int>44938</int>
-             </value>
-            </member>
-            <member>
-             <name>itemId</name>
-             <value>
-              <int>5910</int>
-             </value>
-            </member>
-            <member>
-             <name>laborFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>onSaleFlag</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>oneTimeFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>quantity</name>
-             <value>
-              <string/>
-             </value>
-            </member>
-            <member>
-             <name>recurringFee</name>
-             <value>
-              <string>999</string>
-             </value>
-            </member>
-            <member>
-             <name>setupFee</name>
-             <value>
-              <string>0</string>
-             </value>
-            </member>
-            <member>
-             <name>sort</name>
-             <value>
-              <int>0</int>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
-       </value>
-      </member>
-     </struct>
-    </value>
-   </data>
-  </array>
- </value>
-</param>
-</params>
\ No newline at end of file
diff --git a/libcloud/test/loadbalancer/test_gogrid.py b/libcloud/test/loadbalancer/test_gogrid.py
deleted file mode 100644
index 5ed30b7..0000000
--- a/libcloud/test/loadbalancer/test_gogrid.py
+++ /dev/null
@@ -1,198 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.utils.py3 import httplib, urlparse
-from libcloud.common.types import LibcloudError
-from libcloud.compute.base import Node
-from libcloud.loadbalancer.base import Member, Algorithm, LoadBalancer
-from libcloud.test.file_fixtures import LoadBalancerFileFixtures
-from libcloud.compute.drivers.dummy import DummyNodeDriver
-from libcloud.loadbalancer.drivers.gogrid import GoGridLBDriver
-
-
-class GoGridTests(unittest.TestCase):
-    def setUp(self):
-        GoGridLBDriver.connectionCls.conn_class = GoGridLBMockHttp
-        GoGridLBMockHttp.type = None
-        self.driver = GoGridLBDriver("user", "key")
-
-    def test_list_supported_algorithms(self):
-        algorithms = self.driver.list_supported_algorithms()
-
-        self.assertTrue(Algorithm.ROUND_ROBIN in algorithms)
-        self.assertTrue(Algorithm.LEAST_CONNECTIONS in algorithms)
-
-    def test_list_protocols(self):
-        protocols = self.driver.list_protocols()
-
-        self.assertEqual(len(protocols), 1)
-        self.assertEqual(protocols[0], "http")
-
-    def test_list_balancers(self):
-        balancers = self.driver.list_balancers()
-
-        self.assertEqual(len(balancers), 2)
-        self.assertEqual(balancers[0].name, "foo")
-        self.assertEqual(balancers[0].id, "23517")
-        self.assertEqual(balancers[1].name, "bar")
-        self.assertEqual(balancers[1].id, "23526")
-
-    def test_create_balancer(self):
-        balancer = self.driver.create_balancer(
-            name="test2",
-            port=80,
-            protocol="http",
-            algorithm=Algorithm.ROUND_ROBIN,
-            members=(Member(None, "10.1.0.10", 80), Member(None, "10.1.0.11", 80)),
-        )
-
-        self.assertEqual(balancer.name, "test2")
-        self.assertEqual(balancer.id, "123")
-
-    def test_create_balancer_UNEXPECTED_ERROR(self):
-        # Try to create new balancer and attach members with an IP address which
-        # does not belong to this account
-        GoGridLBMockHttp.type = "UNEXPECTED_ERROR"
-
-        try:
-            self.driver.create_balancer(
-                name="test2",
-                port=80,
-                protocol="http",
-                algorithm=Algorithm.ROUND_ROBIN,
-                members=(Member(None, "10.1.0.10", 80), Member(None, "10.1.0.11", 80)),
-            )
-        except LibcloudError as e:
-            self.assertTrue(
-                str(e).find("tried to add a member with an IP address not assigned to your account")
-                != -1
-            )
-        else:
-            self.fail("Exception was not thrown")
-
-    def test_destroy_balancer(self):
-        balancer = self.driver.list_balancers()[0]
-
-        ret1 = self.driver.destroy_balancer(balancer)
-        ret2 = balancer.destroy()
-
-        self.assertTrue(ret1)
-        self.assertTrue(ret2)
-
-    def test_get_balancer(self):
-        balancer = self.driver.get_balancer(balancer_id="23530")
-
-        self.assertEqual(balancer.name, "test2")
-        self.assertEqual(balancer.id, "23530")
-
-    def test_balancer_list_members(self):
-        balancer = self.driver.get_balancer(balancer_id="23530")
-        members1 = self.driver.balancer_list_members(balancer=balancer)
-        members2 = balancer.list_members()
-
-        expected_members = {"10.0.0.78:80", "10.0.0.77:80", "10.0.0.76:80"}
-
-        self.assertEqual(len(members1), 3)
-        self.assertEqual(len(members2), 3)
-        self.assertEqual(
-            expected_members,
-            {"{}:{}".format(member.ip, member.port) for member in members1},
-        )
-        self.assertEqual(members1[0].balancer, balancer)
-
-    def test_balancer_attach_compute_node(self):
-        balancer = LoadBalancer(23530, None, None, None, None, self.driver)
-        node = Node(
-            id="1",
-            name="test",
-            state=None,
-            public_ips=["10.0.0.75"],
-            private_ips=[],
-            driver=DummyNodeDriver,
-        )
-        member1 = self.driver.balancer_attach_compute_node(balancer, node)
-        member2 = balancer.attach_compute_node(node)
-
-        self.assertEqual(member1.ip, "10.0.0.75")
-        self.assertEqual(member1.port, 80)
-        self.assertEqual(member2.ip, "10.0.0.75")
-        self.assertEqual(member2.port, 80)
-
-    def test_balancer_attach_member(self):
-        balancer = LoadBalancer(23530, None, None, None, None, self.driver)
-        member = Member(None, ip="10.0.0.75", port="80")
-        member1 = self.driver.balancer_attach_member(balancer, member=member)
-        member2 = balancer.attach_member(member=member)
-
-        self.assertEqual(member1.ip, "10.0.0.75")
-        self.assertEqual(member1.port, 80)
-        self.assertEqual(member2.ip, "10.0.0.75")
-        self.assertEqual(member2.port, 80)
-
-    def test_balancer_detach_member(self):
-        balancer = LoadBalancer(23530, None, None, None, None, self.driver)
-        member = self.driver.balancer_list_members(balancer)[0]
-
-        ret1 = self.driver.balancer_detach_member(balancer, member)
-        ret2 = balancer.detach_member(member)
-
-        self.assertTrue(ret1)
-        self.assertTrue(ret2)
-
-
-class GoGridLBMockHttp(MockHttp, unittest.TestCase):
-    fixtures = LoadBalancerFileFixtures("gogrid")
-
-    def _api_grid_loadbalancer_list(self, method, url, body, headers):
-        body = self.fixtures.load("loadbalancer_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_ip_list(self, method, url, body, headers):
-        body = self.fixtures.load("ip_list.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_loadbalancer_add(self, method, url, body, headers):
-        query = urlparse.urlparse(url).query
-        self.assertTrue(query.find("loadbalancer.type=round+robin") != -1)
-
-        body = self.fixtures.load("loadbalancer_add.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_ip_list_UNEXPECTED_ERROR(self, method, url, body, headers):
-        return self._api_grid_ip_list(method, url, body, headers)
-
-    def _api_grid_loadbalancer_add_UNEXPECTED_ERROR(self, method, url, body, headers):
-        body = self.fixtures.load("unexpected_error.json")
-        return (httplib.INTERNAL_SERVER_ERROR, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_loadbalancer_delete(self, method, url, body, headers):
-        body = self.fixtures.load("loadbalancer_add.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_loadbalancer_get(self, method, url, body, headers):
-        body = self.fixtures.load("loadbalancer_get.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _api_grid_loadbalancer_edit(self, method, url, body, headers):
-        body = self.fixtures.load("loadbalancer_edit.json")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/loadbalancer/test_softlayer.py b/libcloud/test/loadbalancer/test_softlayer.py
deleted file mode 100644
index b14ade3..0000000
--- a/libcloud/test/loadbalancer/test_softlayer.py
+++ /dev/null
@@ -1,184 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import unittest
-
-from libcloud.test import MockHttp
-from libcloud.utils.py3 import httplib, xmlrpclib
-from libcloud.compute.base import NodeLocation
-from libcloud.test.secrets import SOFTLAYER_PARAMS
-from libcloud.loadbalancer.base import Member, Algorithm
-from libcloud.loadbalancer.types import State
-from libcloud.test.file_fixtures import LoadBalancerFileFixtures
-from libcloud.loadbalancer.drivers.softlayer import SoftlayerLBDriver
-
-
-class SoftlayerLBTests(unittest.TestCase):
-    def setUp(self):
-
-        SoftlayerLBDriver.connectionCls.conn_class = SoftLayerMockHttp
-        SoftLayerMockHttp.type = None
-
-        self.driver = SoftlayerLBDriver(*SOFTLAYER_PARAMS)
-
-    def test_list_protocols(self):
-        protocols = self.driver.list_protocols()
-
-        self.assertEqual(len(protocols), 6)
-        self.assertTrue("tcp" in protocols)
-        self.assertTrue("http" in protocols)
-
-    def test_list_balancers(self):
-        balancers = self.driver.list_balancers()
-
-        self.assertEqual(len(balancers), 2)
-        self.assertEqual(balancers[0].id, "76185")
-        self.assertEqual(balancers[0].extra["datacenter"], "dal05")
-        self.assertEqual(balancers[0].extra["connection_limit"], 50)
-        self.assertEqual(balancers[1].id, "76265")
-        self.assertEqual(balancers[1].extra["datacenter"], "par01")
-        self.assertEqual(balancers[1].extra["connection_limit"], 50)
-
-    def test_get_balancer(self):
-        balancer = self.driver.get_balancer(balancer_id="76185")
-
-        self.assertEqual(balancer.id, "76185")
-        self.assertEqual(balancer.state, State.UNKNOWN)
-        self.assertEqual(balancer.extra["datacenter"], "dal05")
-        self.assertEqual(balancer.extra["protocol"], "http")
-        self.assertEqual(balancer.extra["algorithm"], Algorithm.ROUND_ROBIN)
-
-    def test_balancer_list_members(self):
-        balancer = self.driver.get_balancer(balancer_id="76185")
-        members = balancer.list_members()
-
-        self.assertEqual(len(members), 3)
-        self.assertEqual(members[0].balancer, balancer)
-        self.assertEqual(members[0].id, "226227")
-        self.assertEqual(members[0].ip, "10.126.5.34")
-        self.assertEqual(members[1].balancer, balancer)
-        self.assertEqual(members[1].id, "226229")
-        self.assertEqual(members[1].ip, "10.126.5.35")
-
-    def test_balancer_attach_member(self):
-        balancer = self.driver.get_balancer(balancer_id="76185")
-        member = balancer.attach_member(Member(None, ip="10.126.5.34", port=8000))
-
-        self.assertEqual(member.id, "226227")
-        self.assertEqual(member.ip, "10.126.5.34")
-        self.assertEqual(member.port, 8000)
-
-    def test_balancer_detach_member(self):
-        balancer = self.driver.get_balancer(balancer_id="76265")
-        member = Member("226227", None, None)
-
-        self.assertTrue(balancer.detach_member(member))
-
-    def test_destroy_balancer(self):
-        balancer = self.driver.get_balancer(balancer_id="76185")
-
-        self.assertTrue(self.driver.destroy_balancer(balancer))
-
-    def test_ex_list_balancer_packages(self):
-        packages = self.driver.ex_list_balancer_packages()
-        self.assertEqual(len(packages), 9)
-
-    def test_ex_place_balancer_order(self):
-        packages = self.driver.ex_list_balancer_packages()
-        lb_package = [p for p in packages if p.capacity == 50][0]
-
-        self.assertTrue(
-            self.driver.ex_place_balancer_order(lb_package, NodeLocation("dal05", None, None, None))
-        )
-
-
-class SoftLayerMockHttp(MockHttp):
-    fixtures = LoadBalancerFileFixtures("softlayer")
-
-    def _get_method_name(self, type, use_param, qs, path):
-        return "_xmlrpc"
-
-    def _xmlrpc(self, method, url, body, headers):
-        params, meth_name = xmlrpclib.loads(body)
-        url = url.replace("/", "_")
-        meth_name = "{}_{}".format(url, meth_name)
-        return getattr(self, meth_name)(method, url, body, headers)
-
-    def _xmlrpc_v3_SoftLayer_Account_getAdcLoadBalancers(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Account_getAdcLoadBalancers.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Billing_Item_cancelService(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Billing_Item_cancelService.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Location_Datacenter_getDatacenters(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Location_Datacenter_getDatacenters.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject(
-        self, method, url, body, headers
-    ):
-        body = self.fixtures.load(
-            "v3__SoftLayer_Network_Application_Delivery_Controller_"
-            "LoadBalancer_Service_deleteObject.xml"
-        )
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject(
-        self, method, url, body, headers
-    ):
-        body = self.fixtures.load(
-            "v3__SoftLayer_Network_Application_Delivery_Controller_"
-            "LoadBalancer_VirtualIpAddress_editObject.xml"
-        )
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem(
-        self, method, url, body, headers
-    ):
-        body = self.fixtures.load(
-            "v3__SoftLayer_Network_Application_Delivery_Controller_"
-            "LoadBalancer_VirtualIpAddress_getBillingItem.xml"
-        )
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject(
-        self, method, url, body, headers
-    ):
-        body = self.fixtures.load(
-            "v3__SoftLayer_Network_Application_Delivery_Controller_"
-            "LoadBalancer_VirtualIpAddress_getObject.xml"
-        )
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Network_Subnet_IpAddress_getByIpAddress(
-        self, method, url, body, headers
-    ):
-        body = self.fixtures.load("v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Product_Order_placeOrder(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Product_Order_placeOrder.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _xmlrpc_v3_SoftLayer_Product_Package_getItems(self, method, url, body, headers):
-        body = self.fixtures.load("v3__SoftLayer_Product_Package_getItems.xml")
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-
-if __name__ == "__main__":
-    sys.exit(unittest.main())
diff --git a/libcloud/test/secrets.py-dist b/libcloud/test/secrets.py-dist
index ede8297..7715d08 100644
--- a/libcloud/test/secrets.py-dist
+++ b/libcloud/test/secrets.py-dist
@@ -16,10 +16,8 @@
 # Make a copy of this file named 'secrets.py' and add your credentials there.
 # Note you can run unit tests without setting your credentials.
 
-BLUEBOX_PARAMS = ('customer_id', 'api_key')
 BRIGHTBOX_PARAMS = ('client_id', 'client_secret')
 EC2_PARAMS = ('access_id', 'secret')
-ECP_PARAMS = ('user_name', 'password')
 GANDI_PARAMS = ('user',)
 GCE_PARAMS = ('email@developer.gserviceaccount.com', 'key')  # Service Account Authentication
 # GCE_PARAMS = ('client_id', 'client_secret')  # Installed App Authentication
@@ -31,7 +29,6 @@
 HOSTINGCOM_PARAMS = ('user', 'secret')
 IBM_PARAMS = ('user', 'secret')
 ONAPP_PARAMS = ('key')
-ONEANDONE_PARAMS = ('token')
 # OPENSTACK_PARAMS = ('user_name', 'api_key', secure_bool, 'host', port_int)
 OPENSTACK_PARAMS = ('user_name', 'api_key', False, 'host', 8774)
 OPENNEBULA_PARAMS = ('user', 'key')
@@ -43,18 +40,12 @@
 RACKSPACE_NOVA_PARAMS = ('user_name', 'api_key', False, 'host', 8774)
 SLICEHOST_PARAMS = ('key',)
 SCALEWAY_PARAMS = ('access_key', 'token')
-SOFTLAYER_PARAMS = ('user', 'api_key')
 VCLOUD_PARAMS = ('user', 'secret')
-VOXEL_PARAMS = ('key', 'secret')
 VPSNET_PARAMS = ('user', 'key')
-JOYENT_PARAMS = ('user', 'key')
 VCL_PARAMS = ('user', 'pass', True, 'foo.bar.com')
-GRIDSPOT_PARAMS = ('key',)
-HOSTVIRTUAL_PARAMS = ('key',)
 DIGITALOCEAN_v1_PARAMS = ('user', 'key')
 DIGITALOCEAN_v2_PARAMS = ('token',)
 CLOUDFRAMES_PARAMS = ('key', 'secret', False, 'host', 8888)
-PROFIT_BRICKS_PARAMS = ('user', 'key')
 VULTR_PARAMS = ('key')
 EQUINIXMETAL_PARAMS = ('api_key')
 ECS_PARAMS = ('access_key', 'access_secret')
@@ -84,7 +75,6 @@
 DNS_KEYWORD_PARAMS_LINODE = {'api_version': '3.0'}
 DNS_PARAMS_ZERIGO = ('email', 'api token')
 DNS_PARAMS_RACKSPACE = ('user', 'key')
-DNS_PARAMS_HOSTVIRTUAL = ('key',)
 DNS_PARAMS_ROUTE53 = ('access_id', 'secret')
 DNS_GANDI = ('user', )
 DNS_GANDI_LIVE = ('key', )