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; }