/** * @param string $cloudLocation * @param string $domainName * @param string $description optional */ public function xCreateAction($cloudLocation, $domainName, $description = null) { $config = new ZoneData($domainName); $zoneConfig = new ZoneConfigData($description); $config->setZoneConfig($zoneConfig); $zone = $this->environment->aws($cloudLocation)->route53->zone->create($config); $delegationSet = array(); foreach ($zone->delegationSet as $set) { $delegationSet[] = $set->nameServer; } $changeInfo = array('changeId' => !empty($zone->changeInfo->id) ? $zone->changeInfo->id : '', 'status' => !empty($zone->changeInfo->status) ? $zone->changeInfo->status : '', 'submittedAt' => !empty($zone->changeInfo->submittedAt) ? $zone->changeInfo->submittedAt : ''); $zoneResult = array('zoneId' => $zone->zoneId, 'name' => $zone->name, 'recordSetCount' => $zone->resourceRecordSetCount, 'comment' => !empty($zone->zoneConfig->comment) ? $zone->zoneConfig->comment : '', 'delegationSet' => $delegationSet, 'changeInfo' => $changeInfo); $this->response->data(array('data' => $zoneResult)); }
/** * @param string $cloudLocation * @param string $domainName * @param string $description optional */ public function xCreateAction($cloudLocation, $domainName, $description = null) { $this->request->restrictAccess(Acl::RESOURCE_AWS_ROUTE53, Acl::PERM_AWS_ROUTE53_MANAGE); $config = new ZoneData($domainName); $zoneConfig = new ZoneConfigData($description); $config->setZoneConfig($zoneConfig); $zone = $this->environment->aws($cloudLocation)->route53->zone->create($config); $delegationSet = []; foreach ($zone->delegationSet as $set) { $delegationSet[] = $set->nameServer; } $changeInfo = ['changeId' => !empty($zone->changeInfo->id) ? $zone->changeInfo->id : '', 'status' => !empty($zone->changeInfo->status) ? $zone->changeInfo->status : '', 'submittedAt' => !empty($zone->changeInfo->submittedAt) ? $zone->changeInfo->submittedAt : '']; $zoneResult = ['zoneId' => $zone->zoneId, 'name' => $zone->name, 'recordSetCount' => $zone->resourceRecordSetCount, 'comment' => !empty($zone->zoneConfig->comment) ? $zone->zoneConfig->comment : '', 'delegationSet' => $delegationSet, 'changeInfo' => $changeInfo]; $this->response->data(['data' => $zoneResult]); }
/** * Loads ZoneData from simple xml object * * @param \SimpleXMLElement $v * @return ZoneData Returns ZoneData */ protected function _loadHostedZoneData(\SimpleXMLElement $v) { $item = null; if ($this->exist($v->HostedZone)) { $zoneId = str_replace('/hostedzone/', '', $v->HostedZone->Id); $item = new ZoneData(); $item->setRoute53($this->route53); $item->setZoneId((string) $zoneId)->setName((string) $v->HostedZone->Name)->setCallerReference((string) $v->HostedZone->CallerReference)->setZoneConfig($this->exist($v->HostedZone->Config) ? $this->_loadHostedZoneConfigData($v->HostedZone->Config) : null)->setResourceRecordSetCount((string) $v->HostedZone->ResourceRecordSetCount); if ($this->exist($v->ChangeInfo)) { $item->setChangeInfo($this->exist($v->ChangeInfo) ? $this->_loadHostedZoneChangeInfoData($v->ChangeInfo) : null); } if ($this->exist($v->DelegationSet)) { $item->setDelegationSet($this->exist($v->DelegationSet) ? $this->_loadHostedZoneDelegationSetList($v->DelegationSet) : null); } } return $item; }