Page MenuHomePhabricator

D14110.id34149.diff
No OneTemporary

D14110.id34149.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -849,7 +849,6 @@
'DrydockManagementLeaseWorkflow' => 'applications/drydock/management/DrydockManagementLeaseWorkflow.php',
'DrydockManagementReleaseWorkflow' => 'applications/drydock/management/DrydockManagementReleaseWorkflow.php',
'DrydockManagementWorkflow' => 'applications/drydock/management/DrydockManagementWorkflow.php',
- 'DrydockPreallocatedHostBlueprintImplementation' => 'applications/drydock/blueprint/DrydockPreallocatedHostBlueprintImplementation.php',
'DrydockQuery' => 'applications/drydock/query/DrydockQuery.php',
'DrydockResource' => 'applications/drydock/storage/DrydockResource.php',
'DrydockResourceCloseController' => 'applications/drydock/controller/DrydockResourceCloseController.php',
@@ -4567,7 +4566,6 @@
'DrydockManagementLeaseWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementReleaseWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementWorkflow' => 'PhabricatorManagementWorkflow',
- 'DrydockPreallocatedHostBlueprintImplementation' => 'DrydockBlueprintImplementation',
'DrydockQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'DrydockResource' => array(
'DrydockDAO',
diff --git a/src/applications/drydock/blueprint/DrydockPreallocatedHostBlueprintImplementation.php b/src/applications/drydock/blueprint/DrydockPreallocatedHostBlueprintImplementation.php
deleted file mode 100644
--- a/src/applications/drydock/blueprint/DrydockPreallocatedHostBlueprintImplementation.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-final class DrydockPreallocatedHostBlueprintImplementation
- extends DrydockBlueprintImplementation {
-
- public function isEnabled() {
- return true;
- }
-
- public function getBlueprintName() {
- return pht('Preallocated Remote Hosts');
- }
-
- public function getDescription() {
- return pht('Allows Drydock to run on specific remote hosts you configure.');
- }
-
- public function canAllocateMoreResources(array $pool) {
- return false;
- }
-
- protected function executeAllocateResource(DrydockLease $lease) {
- throw new Exception(
- pht("Preallocated hosts can't be dynamically allocated."));
- }
-
- protected function canAllocateLease(
- DrydockResource $resource,
- DrydockLease $lease) {
- return
- $lease->getAttribute('platform') === $resource->getAttribute('platform');
- }
-
- protected function shouldAllocateLease(
- DrydockResource $resource,
- DrydockLease $lease,
- array $other_leases) {
- return true;
- }
-
- protected function executeAcquireLease(
- DrydockResource $resource,
- DrydockLease $lease) {
-
- // Because preallocated resources are manually created, we should verify
- // we have all the information we need.
- PhutilTypeSpec::checkMap(
- $resource->getAttributesForTypeSpec(
- array('platform', 'host', 'port', 'credential', 'path')),
- array(
- 'platform' => 'string',
- 'host' => 'string',
- 'port' => 'string', // Value is a string from the command line
- 'credential' => 'string',
- 'path' => 'string',
- ));
- $v_platform = $resource->getAttribute('platform');
- $v_path = $resource->getAttribute('path');
-
- // Similar to DrydockLocalHostBlueprint, we create a folder
- // on the remote host that the lease can use.
-
- $lease_id = $lease->getID();
-
- // Can't use DIRECTORY_SEPERATOR here because that is relevant to
- // the platform we're currently running on, not the platform we are
- // remoting to.
- $separator = '/';
- if ($v_platform === 'windows') {
- $separator = '\\';
- }
-
- // Clean up the directory path a little.
- $base_path = rtrim($v_path, '/');
- $base_path = rtrim($base_path, '\\');
- $full_path = $base_path.$separator.$lease_id;
-
- $cmd = $lease->getInterface('command');
-
- $cmd->execx('mkdir %s', $full_path);
-
- $lease->setAttribute('path', $full_path);
- }
-
- public function getType() {
- return 'host';
- }
-
- public function getInterface(
- DrydockResource $resource,
- DrydockLease $lease,
- $type) {
-
- switch ($type) {
- case 'command':
- return id(new DrydockSSHCommandInterface())
- ->setConfiguration(array(
- 'host' => $resource->getAttribute('host'),
- 'port' => $resource->getAttribute('port'),
- 'credential' => $resource->getAttribute('credential'),
- 'platform' => $resource->getAttribute('platform'),
- ))
- ->setWorkingDirectory($lease->getAttribute('path'));
- case 'filesystem':
- return id(new DrydockSFTPFilesystemInterface())
- ->setConfiguration(array(
- 'host' => $resource->getAttribute('host'),
- 'port' => $resource->getAttribute('port'),
- 'credential' => $resource->getAttribute('credential'),
- ));
- }
-
- throw new Exception(pht("No interface of type '%s'.", $type));
- }
-
-}

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 20, 4:48 AM (3 d, 8 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7385647
Default Alt Text
D14110.id34149.diff (5 KB)

Event Timeline