예제 #1
0
 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;
 }