Beispiel #1
0
 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)
Beispiel #2
0
 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 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'])
Beispiel #5
0
 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)
Beispiel #6
0
    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)
Beispiel #7
0
                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('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')