LibCloud\Compute\Providers\Linode\LinodeProvider::provisionNode PHP Method

provisionNode() public method

public provisionNode ( Symfony\Component\HttpFoundation\ParameterBag $parameters )
$parameters Symfony\Component\HttpFoundation\ParameterBag
    public function provisionNode(ParameterBag $parameters)
    {
        $options = [];
        $label = $parameters->get('label');
        $stackScriptId = $parameters->get('stackscriptid');
        $distributionId = $parameters->get('distributionid');
        $diskSize = $parameters->get('disksize');
        $swapSize = $parameters->get('swapsize');
        $rootPassword = $parameters->get('rootpassword');
        $stackScriptUDFResponses = $parameters->get('StackScriptUDFResponses');
        // ==================
        $command = new LinodeCommand('create');
        $options['planid'] = $parameters->get('size')->getId();
        $options['datacenterid'] = $parameters->get('location')->getId();
        $parameters->get('paymentterm') ? $options['paymentterm'] = $parameters->get('paymentterm') : null;
        $command->setOptions($options);
        $response = $this->linode->execute($command);
        $nodeId = $response['LinodeID'];
        // ================
        $command = new LinodeDiskCommand('createfromstackscript');
        $options['linodeid'] = $nodeId;
        $options['StackScriptID'] = $stackScriptId;
        $options['DistributionID'] = $distributionId;
        $options['Label'] = "OS " . $label;
        $options['Size'] = $diskSize;
        $options['RootPass'] = $rootPassword;
        $options['StackScriptUDFResponses'] = $stackScriptUDFResponses;
        $command->setOptions($options);
        $response = $this->linode->execute($command);
        $osDiskId = $response['DiskID'];
        // ==========
        $command = new LinodeDiskCommand('create');
        $options['linodeid'] = $nodeId;
        $options['Label'] = "SWAP " . $label;
        $options['Size'] = $swapSize;
        $options['Type'] = 'swap';
        $command->setOptions($options);
        $response = $this->linode->execute($command);
        //print_r($response);
        $swapDiskId = $response['DiskID'];
        // ==========
        $command = new LinodeConfigCommand('create');
        $options['linodeid'] = $nodeId;
        $options['KernelID'] = 138;
        $options['Label'] = "Config " . $label;
        $options['DiskList'] = $osDiskId . ',' . $swapDiskId;
        $command->setOptions($options);
        $response = $this->linode->execute($command);
        $configId = $response['ConfigID'];
        // ==========
        $command = new LinodeIpCommand('addprivate');
        $options['linodeid'] = $nodeId;
        $command->setOptions($options);
        $response = $this->linode->execute($command);
        $privateIpId = $response['IPADDRESSID'];
        $privateIpAddress = $response['IPADDRESS'];
        $command = new LinodeCommand('update');
        $options['linodeid'] = $nodeId;
        $options['Label'] = str_replace(' ', '_', $label);
        $command->setOptions($options);
        $response = $this->linode->execute($command);
    }