public static function getEnabledPricingSchemas(ICloudService $cloud) { $res = array(); if (count($cloud->getCapabilities()) > 0) { $capabilities = $cloud->getCapabilities(); $enabled_pricing_schemas = reset($capabilities)->getPricingSchemas(); if (count($enabled_pricing_schemas) > 0) { foreach ($enabled_pricing_schemas as $ps) { array_push($res, $ps->getIdentifier()); } } } return json_encode($res); }
protected function addDataCenterLocation(array $location_data, ICloudService $cloud) { //check location coordinates... $validator = $this->validator_factory->buildValidatorForDataCenterLocation($location_data); if ($validator->fails()) { return $this->validationError($validator->messages()); } //list($lat,$lng) = $this->geo_coding_service->getCityCoordinates($location_data['city'],$location_data['country']); $location = $this->factory->buildDataCenterLocation($location_data['city'], $location_data['state'], $location_data['country'], (double) $location_data['lat'], (double) $location_data['lng'], $cloud->getDataCenterRegion($location_data['region'])); if (array_key_exists('availability_zones', $location_data) && is_array($location_data['availability_zones'])) { foreach ($location_data['availability_zones'] as $az_data) { $az = $this->factory->buildAZ($az_data['name'], $location); $location->addAvailabilityZone($az); $az->setLocation($location); } } $cloud->addDataCenterLocation($location); $location->setCloudService($cloud); return $cloud; }