public function process()
    {
        parent::process();
        try {
            $this->profile = Teleport::loadProfile($this->profile);

            $this->getMODX($this->profile);

            $this->modx->setOption(\xPDO::OPT_SETUP, true);

            $this->modx->loadClass('transport.xPDOTransport', XPDO_CORE_PATH, true, true);
            $this->modx->loadClass('transport.xPDOVehicle', XPDO_CORE_PATH, true, true);
            $this->modx->loadClass('transport.xPDOObjectVehicle', XPDO_CORE_PATH, true, true);
            $this->modx->loadClass('transport.xPDOFileVehicle', XPDO_CORE_PATH, true, true);

            $transportName = basename($this->source);
            if (TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $transportName !== realpath($this->source)) {
                if (!$this->pull($this->source, TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $transportName)) {
                    throw new ActionException($this, "Error pulling {$this->source}");
                }
            } else {
                $this->preserveWorkspace = true;
            }

            $this->package = Transport::retrieve($this->modx, TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $transportName, TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR);
            if (!$this->package instanceof Transport) {
                throw new ActionException($this, "Error extracting {$transportName} in workspace" . DIRECTORY_SEPARATOR);
            }

            $this->package->preInstall();

            if (!$this->package->install(array(\xPDOTransport::PREEXISTING_MODE => \xPDOTransport::REMOVE_PREEXISTING))) {
                throw new ActionException($this, "Error installing {$transportName}");
            }

            $this->package->postInstall();

            if ($this->modx->getCacheManager()) {
                $this->modx->cacheManager->refresh();
            }

            if (!$this->preserveWorkspace && $this->modx->getCacheManager()) {
                $this->modx->cacheManager->deleteTree($this->package->path . $transportName);
                @unlink($this->package->path . $transportName . '.transport.zip');
            }

            $this->request->log("Successfully injected {$transportName} into instance {$this->profile->code}");
        } catch (\Exception $e) {
            throw new ActionException($this, 'Error injecting snapshot: ' . $e->getMessage(), $e);
        }
    }
public function process()
    {
        parent::process();
        try {
            $this->profile = Teleport::loadProfile($this->profile);

            $this->getMODX($this->profile);

            $this->modx->setOption(\xPDO::OPT_SETUP, true);

            $this->modx->loadClass('transport.xPDOTransport', XPDO_CORE_PATH, true, true);
            $this->modx->loadClass('transport.xPDOVehicle', XPDO_CORE_PATH, true, true);
            $this->modx->loadClass('transport.xPDOObjectVehicle', XPDO_CORE_PATH, true, true);
            $this->modx->loadClass('transport.xPDOFileVehicle', XPDO_CORE_PATH, true, true);

            $transportName = basename($this->source);
            if (TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $transportName !== realpath($this->source)) {
                if (!$this->pull($this->source, TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $transportName)) {
                    throw new ActionException($this, "Error pulling {$this->source}");
                }
            } else {
                $this->preserveWorkspace = true;
            }

            $this->package = Transport::retrieve($this->modx, TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $transportName, TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR);
            if (!$this->package instanceof Transport) {
                throw new ActionException($this, "Error extracting {$transportName} in workspace" . DIRECTORY_SEPARATOR);
            }

            $this->package->preInstall();

            if (!$this->package->install(array(\xPDOTransport::PREEXISTING_MODE => \xPDOTransport::REMOVE_PREEXISTING))) {
                throw new ActionException($this, "Error installing {$transportName}");
            }

            $this->package->postInstall();

            if ($this->modx->getCacheManager()) {
                $this->modx->cacheManager->refresh();
            }

            if (!$this->preserveWorkspace && $this->modx->getCacheManager()) {
                $this->modx->cacheManager->deleteTree($this->package->path . $transportName);
                @unlink($this->package->path . $transportName . '.transport.zip');
            }

            $this->request->log("Successfully injected {$transportName} into instance {$this->profile->code}");
        } catch (\Exception $e) {
            throw new ActionException($this, 'Error injecting snapshot: ' . $e->getMessage(), $e);
        }
    }
public function process ( ) { parent :: process ( ) ; try { $ this -> profile = Teleport :: loadProfile ( $ this -> profile ) ; $ this -> getMODX ( $ this -> profile ) ; $ this -> modx -> setOption ( \ xPDO :: OPT_SETUP , true ) ; $ this -> modx -> loadClass ( 'transport.xPDOTransport' , XPDO_CORE_PATH , true , true ) ; $ this -> modx -> loadClass ( 'transport.xPDOVehicle' , XPDO_CORE_PATH , true , true ) ; $ this -> modx -> loadClass ( 'transport.xPDOObjectVehicle' , XPDO_CORE_PATH , true , true ) ; $ this -> modx -> loadClass ( 'transport.xPDOFileVehicle' , XPDO_CORE_PATH , true , true ) ; $ transportName = basename ( $ this -> source ) ; if ( TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $ transportName !== realpath ( $ this -> source ) ) { if ( ! $ this -> pull ( $ this -> source , TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $ transportName ) ) { throw new ActionException ( $ this , "Error pulling {$this->source}" ) ; } } else { $ this -> preserveWorkspace = true ; } $ this -> package = Transport :: retrieve ( $ this -> modx , TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR . $ transportName , TELEPORT_BASE_PATH . 'workspace' . DIRECTORY_SEPARATOR ) ; if ( ! $ this -> package instanceof Transport ) { throw new ActionException ( $ this , "Error extracting {$transportName} in workspace" . DIRECTORY_SEPARATOR ) ; } $ this -> package -> preInstall ( ) ; if ( ! $ this -> package -> install ( array ( \ xPDOTransport :: PREEXISTING_MODE => \ xPDOTransport :: REMOVE_PREEXISTING ) ) ) { throw new ActionException ( $ this , "Error installing {$transportName}" ) ; } $ this -> package -> postInstall ( ) ; if ( $ this -> modx -> getCacheManager ( ) ) { $ this -> modx -> cacheManager -> refresh ( ) ; } if ( ! $ this -> preserveWorkspace && $ this -> modx -> getCacheManager ( ) ) { $ this -> modx -> cacheManager -> deleteTree ( $ this -> package -> path . $ transportName ) ; @ unlink ( $ this -> package -> path . $ transportName . '.transport.zip' ) ; } $ this -> request -> log ( "Successfully injected {$transportName} into instance {$this->profile->code}" ) ; } catch ( \ Exception $ e ) { throw new ActionException ( $ this , 'Error injecting snapshot: ' . $ e -> getMessage ( ) , $ e ) ; } }
Process the Inject action.

@throws ActionException If an error is encountered during processing.
Process the Inject action .