def test_fabric_remote_action_method_sudo(self): remote_action = FabricRemoteAction('foo', 'foo-id', 'ls -lrth', on_behalf_user='******', parallel=True, sudo=True) self.assertEqual(remote_action.get_on_behalf_user(), 'stan') fabric_task = remote_action.get_fabric_task() self.assertTrue(remote_action._get_action_method() == remote_action._sudo) self.assertTrue(fabric_task is not None) self.assertTrue(fabric_task.wrapped == remote_action._sudo)
def _get_fabric_remote_action(self, action_paramaters): command = self.runner_parameters.get(RUNNER_COMMAND, None) env_vars = self._get_env_vars() return FabricRemoteAction(self.action_name, str(self.action_execution_id), command, env_vars=env_vars, on_behalf_user=self._on_behalf_user, user=self._user, hosts=self._hosts, parallel=self._parallel, sudo=self._sudo)
def test_get_settings(self): # no password and private_key remote_action = FabricRemoteAction(name='foo', action_exec_id='foo-id', command='ls -lrth', on_behalf_user='******', parallel=True, sudo=True, user='******') settings = remote_action._get_settings() self.assertEqual(settings['user'], 'user') self.assertTrue('password' not in settings) self.assertTrue('key_filename' not in settings) # password and private_key remote_action = FabricRemoteAction(name='foo', action_exec_id='foo-id', command='ls -lrth', on_behalf_user='******', parallel=True, sudo=True, user='******', password='******', private_key='key_material') settings = remote_action._get_settings() self.assertEqual(settings['user'], 'test1') self.assertEqual(settings['password'], 'testpass1') self.assertTrue('/tmp/' in settings['key_filename'])
def _get_fabric_remote_action(self, action_paramaters): command = self.runner_parameters.get(RUNNER_COMMAND, None) env_vars = self._get_env_vars() return FabricRemoteAction(self.action_name, str(self.liveaction_id), command, env_vars=env_vars, on_behalf_user=self._on_behalf_user, user=self._username, password=self._password, private_key=self._private_key, hosts=self._hosts, parallel=self._parallel, sudo=self._sudo, timeout=self._timeout, cwd=self._cwd)
def _get_remote_action(self, action_paramaters): # remote script actions with entry_point don't make sense, user probably wanted to use # "remote-shell-script" action if self.entry_point: msg = ( 'Action "%s" specified "entry_point" attribute. Perhaps wanted to use ' '"remote-shell-script" runner?' % (self.action_name)) raise Exception(msg) command = self.runner_parameters.get(RUNNER_COMMAND, None) env_vars = self._get_env_vars() return FabricRemoteAction(self.action_name, str(self.liveaction_id), command, env_vars=env_vars, on_behalf_user=self._on_behalf_user, user=self._username, password=self._password, private_key=self._private_key, hosts=self._hosts, parallel=self._parallel, sudo=self._sudo, timeout=self._timeout, cwd=self._cwd)
if not success: return LIVEACTION_STATUS_FAILED return LIVEACTION_STATUS_SUCCEEDED if success else LIVEACTION_STATUS_FAILED # XXX: Write proper tests. if __name__ == '__main__': print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') print('!!!!!!!!!!!!!!!!!!!!! NORMAL CMD !!!!!!!!!!!!!!!!!!!!!!!!!!') print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') runner = FabricRunner(str(uuid.uuid4())) remote_action = FabricRemoteAction( 'UNAME', 'action_exec_id' + str(uuid.uuid4()), 'uname -a', 'narcissist', 'stanley', hosts=['54.191.85.86', '54.191.17.38', '54.200.102.55']) print(str(remote_action)) results = runner._run(remote_action) print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') print('!!!!!!!!!!!!!!!!!!!!! RESULTS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!') print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') print(results) print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') print('!!!!!!!!!!!!!!!!!!!!! SUDO CMD !!!!!!!!!!!!!!!!!!!!!!!!!!') print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')