def prepare_runner_for_ssh(self, runner, num_workers=0): # TODO: Refactor this abomination of a test harness # Set up environment variables os.environ['MOCK_SSH_VERIFY_KEY_FILE'] = 'true' # Create temporary directories and add them to MOCK_SSH_ROOTS master_ssh_root = tempfile.mkdtemp(prefix='master_ssh_root.') os.environ['MOCK_SSH_ROOTS'] = 'testmaster=%s' % master_ssh_root mock_ssh_dir('testmaster', _EMR_LOG_DIR + '/hadoop/history') if not hasattr(self, 'worker_ssh_roots'): self.worker_ssh_roots = [] self.addCleanup(self.teardown_ssh, master_ssh_root) # Make the fake binary os.mkdir(os.path.join(master_ssh_root, 'bin')) self.ssh_bin = os.path.join(master_ssh_root, 'bin', 'ssh') create_mock_ssh_script(self.ssh_bin) self.ssh_add_bin = os.path.join(master_ssh_root, 'bin', 'ssh-add') create_mock_ssh_script(self.ssh_add_bin) # Make a fake keyfile so that the 'file exists' requirements are # satsified self.keyfile_path = os.path.join(master_ssh_root, 'key.pem') with open(self.keyfile_path, 'w') as f: f.write('I AM DEFINITELY AN SSH KEY FILE') # Tell the runner to use the fake binary runner._opts['ssh_bin'] = [self.ssh_bin] runner._opts['ssh_add_bin'] = [self.ssh_add_bin] # Also pretend to have an SSH key pair file runner._opts['ec2_key_pair_file'] = self.keyfile_path # use fake hostname runner._address_of_master = MagicMock(return_value='testmaster') runner._master_private_ip = MagicMock(return_value='172.172.172.172') # re-initialize fs runner._fs = None
def prepare_runner_for_ssh(self, runner, num_workers=0): # TODO: Refactor this abomination of a test harness # Set up environment variables os.environ['MOCK_SSH_VERIFY_KEY_FILE'] = 'true' # Create temporary directories and add them to MOCK_SSH_ROOTS master_ssh_root = tempfile.mkdtemp(prefix='master_ssh_root.') os.environ['MOCK_SSH_ROOTS'] = 'testmaster=%s' % master_ssh_root mock_ssh_dir('testmaster', _EMR_LOG_DIR + '/hadoop/history') if not hasattr(self, 'worker_ssh_roots'): self.worker_ssh_roots = [] self.addCleanup(self.teardown_ssh, master_ssh_root) # Make the fake binary os.mkdir(os.path.join(master_ssh_root, 'bin')) self.ssh_bin = os.path.join(master_ssh_root, 'bin', 'ssh') create_mock_ssh_script(self.ssh_bin) # Make a fake keyfile so that the 'file exists' requirements are # satsified self.keyfile_path = os.path.join(master_ssh_root, 'key.pem') with open(self.keyfile_path, 'w') as f: f.write('I AM DEFINITELY AN SSH KEY FILE') # Tell the runner to use the fake binary runner._opts['ssh_bin'] = [self.ssh_bin] # Also pretend to have an SSH key pair file runner._opts['ec2_key_pair_file'] = self.keyfile_path # use fake hostname runner._address_of_master = MagicMock(return_value='testmaster') runner._master_private_ip = MagicMock(return_value='172.172.172.172') # re-initialize fs runner._fs = None