public static function convertCloudToArray(ICloudService $cloud)
 {
     $res = OpenStackImplementationAssembler::convertOpenStackImplementationToArray($cloud);
     //override capabilities
     $res['capabilities'] = array();
     foreach ($cloud->getCapabilities() as $service) {
         $service_res = OpenStackImplementationAssembler::convertCapabilityToArray($service);
         if (is_null($service_res)) {
             continue;
         }
         $service_res['pricing_schemas'] = array();
         foreach ($service->getPricingSchemas() as $ps) {
             array_push($service_res['pricing_schemas'], $ps->getIdentifier());
         }
         array_push($res['capabilities'], $service_res);
     }
     $data_centers = array();
     $locations = array();
     $regions = array();
     foreach ($cloud->getDataCenterRegions() as $region) {
         array_push($regions, CloudAssembler::convertDataCenterRegionToArray($region));
     }
     foreach ($cloud->getDataCentersLocations() as $location) {
         array_push($locations, CloudAssembler::convertDataCenterLocationToArray($location));
     }
     $data_centers['regions'] = $regions;
     $data_centers['locations'] = $locations;
     $res['data_centers'] = $data_centers;
     return $res;
 }