Exemplo n.º 1
0
 /**
  * Loads InstanceList from simple xml object
  *
  * @param   \SimpleXMLElement $sxml
  * @return  InstanceList      Returns InstanceList
  */
 protected function _loadInstanceList(\SimpleXMLElement $sxml)
 {
     $list = new InstanceList();
     $list->setEc2($this->ec2);
     if (!empty($sxml->item)) {
         foreach ($sxml->item as $v) {
             $instanceId = (string) $v->instanceId;
             $item = $this->ec2->getEntityManagerEnabled() ? $this->ec2->instance->get($instanceId) : null;
             if ($item === null) {
                 $item = new InstanceData();
                 $item->setEc2($this->ec2);
                 $bAttach = true;
             } else {
                 $item->resetObject();
                 $bAttach = false;
             }
             $item->instanceId = $instanceId;
             $item->imageId = $this->exist($v->imageId) ? (string) $v->imageId : null;
             $item->privateDnsName = (string) $v->privateDnsName;
             $item->dnsName = $this->exist($v->dnsName) ? (string) $v->dnsName : null;
             $item->reason = $this->exist($v->reason) ? (string) $v->reason : null;
             $item->keyName = $this->exist($v->keyName) ? (string) $v->keyName : null;
             $item->amiLaunchIndex = $this->exist($v->amiLaunchIndex) ? (string) $v->amiLaunchIndex : null;
             $item->instanceType = (string) $v->instanceType;
             $item->launchTime = new DateTime((string) $v->launchTime, new DateTimeZone('UTC'));
             $item->kernelId = $this->exist($v->kernelId) ? (string) $v->kernelId : null;
             $item->ramdiskId = $this->exist($v->ramdiskId) ? (string) $v->ramdiskId : null;
             $item->platform = $this->exist($v->platform) ? (string) $v->platform : null;
             $item->subnetId = $this->exist($v->subnetId) ? (string) $v->subnetId : null;
             $item->vpcId = $this->exist($v->vpcId) ? (string) $v->vpcId : null;
             $item->privateIpAddress = $this->exist($v->privateIpAddress) ? (string) $v->privateIpAddress : null;
             $item->ipAddress = $this->exist($v->ipAddress) ? (string) $v->ipAddress : null;
             $item->sourceDestCheck = $this->exist($v->sourceDestCheck) ? (string) $v->sourceDestCheck == 'true' : null;
             $item->architecture = $this->exist($v->architecture) ? (string) $v->architecture : null;
             $item->rootDeviceType = $this->exist($v->rootDeviceType) ? (string) $v->rootDeviceType : null;
             $item->rootDeviceName = $this->exist($v->rootDeviceName) ? (string) $v->rootDeviceName : null;
             $item->instanceLifecycle = $this->exist($v->instanceLifecycle) ? (string) $v->instanceLifecycle : null;
             $item->spotInstanceRequestId = $this->exist($v->spotInstanceRequestId) ? (string) $v->spotInstanceRequestId : null;
             $item->virtualizationType = $this->exist($v->virtualizationType) ? (string) $v->virtualizationType : null;
             $item->clientToken = $this->exist($v->clientToken) ? (string) $v->clientToken : null;
             $item->hypervisor = $this->exist($v->hypervisor) ? (string) $v->hypervisor : null;
             $item->ebsOptimized = $this->exist($v->ebsOptimized) ? (string) $v->ebsOptimized == 'true' : null;
             $item->sriovNetSupport = $this->exist($v->sriovNetSupport) ? (string) $v->sriovNetSupport : null;
             $item->setInstanceState($this->_loadInstanceStateData($v->instanceState))->setProductCodes($this->_loadProductCodeSetList($v->productCodes))->setPlacement($this->_loadPlacementResponseData($v->placement))->setMonitoring($this->_loadInstanceMonitoringStateData($v->monitoring))->setGroupSet($this->_loadGroupList($v->groupSet))->setStateReason($this->_loadStateReasonData($v->stateReason))->setBlockDeviceMapping($this->_loadInstanceBlockDeviceMappingResponseList($v->blockDeviceMapping))->setTagSet($this->_loadResourceTagSetList($v->tagSet))->setNetworkInterfaceSet($this->_loadInstanceNetworkInterfaceSetList($v->networkInterfaceSet))->setIamInstanceProfile($this->_loadIamInstanceProfileResponseData($v->iamInstanceProfile));
             $list->append($item);
             if ($bAttach && $this->ec2->getEntityManagerEnabled()) {
                 $this->getEntityManager()->attach($item);
             }
             unset($item);
         }
     }
     return $list;
 }