From c44f9d80def9fe1932c2be4fa4b65aca166ae7ea Mon Sep 17 00:00:00 2001 From: epriestley Date: Mon, 21 Sep 2015 04:41:40 -0700 Subject: [PATCH] Remove DrydockPreallocatedHostBlueprintImplementation Summary: Ref T9253. This comes from a time before Almanac. Now that we have Almanac, it makes much more sense to put this logic there than to try to put it in Drydock itself. Remove the preallocated host blueprint, a relic of a bygone time. Test Plan: Grepped for callsites. Reviewers: hach-que, chad Reviewed By: hach-que, chad Maniphest Tasks: T9253 Differential Revision: https://secure.phabricator.com/D14110 --- src/__phutil_library_map__.php | 2 - ...reallocatedHostBlueprintImplementation.php | 116 ------------------ 2 files changed, 118 deletions(-) delete mode 100644 src/applications/drydock/blueprint/DrydockPreallocatedHostBlueprintImplementation.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index dfa24ba51a..cd5c6c5b65 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -849,7 +849,6 @@ phutil_register_library_map(array( '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 @@ phutil_register_library_map(array( '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 index 9e5d3a2320..0000000000 --- a/src/applications/drydock/blueprint/DrydockPreallocatedHostBlueprintImplementation.php +++ /dev/null @@ -1,116 +0,0 @@ -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)); - } - -}