Scalr\Modules\Platforms\Cloudstack\CloudstackPlatformModule::TerminateServer PHP Méthode

TerminateServer() public méthode

See also: Scalr\Modules\PlatformModuleInterface::TerminateServer()
public TerminateServer ( DBServer $DBServer )
$DBServer DBServer
    public function TerminateServer(DBServer $DBServer)
    {
        $cs = $DBServer->GetEnvironmentObject()->cloudstack($this->platform);
        try {
            $cs->instance->destroy($DBServer->GetProperty(CLOUDSTACK_SERVER_PROPERTIES::SERVER_ID), true);
            try {
                if ($DBServer->GetRealStatus()->getName() == 'Destroyed') {
                    $cs->instance->expunge($DBServer->GetProperty(CLOUDSTACK_SERVER_PROPERTIES::SERVER_ID));
                }
            } catch (Exception $e) {
            }
        } catch (NotFoundException $e) {
            throw new InstanceNotFoundException($e->getMessage(), $e->getCode(), $e);
        }
        return true;
    }

Usage Example

 /**
  * {@inheritdoc}
  * @see \Scalr\Modules\Platforms\Cloudstack\CloudstackPlatformModule::TerminateServer()
  */
 public function TerminateServer(\DBServer $DBServer)
 {
     $cs = $DBServer->GetEnvironmentObject()->cloudstack($this->platform);
     if (!$DBServer->GetProperty(\CLOUDSTACK_SERVER_PROPERTIES::IS_STOPPED_BEFORE_TERMINATE)) {
         $cs->instance->stop($DBServer->GetProperty(\CLOUDSTACK_SERVER_PROPERTIES::SERVER_ID), true);
         $DBServer->SetProperty(\CLOUDSTACK_SERVER_PROPERTIES::IS_STOPPED_BEFORE_TERMINATE, 1);
     }
     return parent::TerminateServer($DBServer);
 }