コード例 #1
0
ファイル: test_npm.py プロジェクト: morinap/salt-1
class NpmStateTest(ModuleCase, SaltReturnAssertsMixin):

    @requires_network()
    @destructiveTest
    def test_npm_installed_removed(self):
        '''
        Basic test to determine if NPM module was successfully installed and
        removed.
        '''
        ret = self.run_state('npm.installed', name='[email protected]', registry="http://registry.npmjs.org/")
        self.assertSaltTrueReturn(ret)
        ret = self.run_state('npm.removed', name='pm2')
        self.assertSaltTrueReturn(ret)

    @requires_network()
    @destructiveTest
    def test_npm_install_url_referenced_package(self):
        '''
        Determine if URL-referenced NPM module can be successfully installed.
        '''
        if LooseVersion(cmd.run('npm -v')) >= LooseVersion(MAX_NPM_VERSION):
            user = os.environ.get('SUDO_USER', 'root')
            npm_dir = os.path.join(RUNTIME_VARS.TMP, 'git-install-npm')
            self.run_state('file.directory', name=npm_dir, user=user, dir_mode='755')
        else:
            user = None
            npm_dir = None
        ret = self.run_state('npm.installed',
                             name='request/request#v2.81.1',
                             runas=user,
                             dir=npm_dir,
                             registry="http://registry.npmjs.org/")
        self.assertSaltTrueReturn(ret)
        ret = self.run_state('npm.removed', name='git://github.com/request/request', runas=user, dir=npm_dir)
        self.assertSaltTrueReturn(ret)
        if npm_dir is not None:
            self.run_state('file.absent', name=npm_dir)

    @requires_network()
    @destructiveTest
    def test_npm_installed_pkgs(self):
        '''
        Basic test to determine if NPM module successfully installs multiple
        packages.
        '''
        ret = self.run_state('npm.installed', name='unused', pkgs=['[email protected]', '[email protected]'], registry="http://registry.npmjs.org/")
        self.assertSaltTrueReturn(ret)

    @skipIf(salt.utils.path.which('npm') and LooseVersion(cmd.run('npm -v')) >= LooseVersion(MAX_NPM_VERSION),
            'Skip with npm >= 5.0.0 until #41770 is fixed')
    @destructiveTest
    def test_npm_cache_clean(self):
        '''
        Basic test to determine if NPM successfully cleans its cached packages.
        '''
        ret = self.run_state('npm.cache_cleaned', name='unused', force=True)
        self.assertSaltTrueReturn(ret)
コード例 #2
0
ファイル: test_cmdmod.py プロジェクト: zfouts/salt
 def test_run_no_vt_os_error(self):
     """
     Tests error raised when not useing vt and OSError is provided
     """
     expected_error = "expect error"
     with patch("salt.modules.cmdmod._is_valid_shell", MagicMock(return_value=True)):
         with patch("salt.utils.platform.is_windows", MagicMock(return_value=False)):
             with patch("os.path.isfile", MagicMock(return_value=True)):
                 with patch("os.access", MagicMock(return_value=True)):
                     with patch(
                         "salt.utils.timed_subprocess.TimedProc",
                         MagicMock(side_effect=OSError(expected_error)),
                     ):
                         with self.assertRaises(CommandExecutionError) as error:
                             cmdmod.run("foo", cwd="/")
                         assert error.exception.args[0].endswith(
                             expected_error
                         ), repr(error.exception.args[0])
コード例 #3
0
def enable_console_out(enable=True):
    '''
        .. note::
            Enable or disable ConsoleOut
        :param enable: If true enable ConsoleOut else disable ConsoleOut. Default is True.
        CLI Example:

        .. code-block:: bash
        salt '*' startup.enable_console_out
    '''
    cmd.run('{0} --set section=systemsettings,token={1},value={2}'.format(
        NIRTCFG_PATH, 'ConsoleOut.enabled', enable))
    cmd.run('{0} consoleoutenable={1}'.format(FWSETENV_PATH, enable))
    system_settings = _nisysmgmt_grains.get_last_known_startup_settings(
        __grains__)
    system_settings['ConsoleOut'] = str(enable)
    __salt__['event.fire']({'force_refresh': True}, 'grains_refresh')
    return True
コード例 #4
0
ファイル: test_cmdmod.py プロジェクト: wicked-wei/salt
 def test_run_no_vt_io_error(self):
     '''
     Tests error raised when not useing vt and IOError is provided
     '''
     expected_error = "expect error"
     with patch('salt.modules.cmdmod._is_valid_shell',
                MagicMock(return_value=True)):
         with patch('salt.utils.platform.is_windows',
                    MagicMock(return_value=False)):
             with patch('os.path.isfile', MagicMock(return_value=True)):
                 with patch('os.access', MagicMock(return_value=True)):
                     with patch(
                             'salt.utils.timed_subprocess.TimedProc',
                             MagicMock(
                                 side_effect=IOError(expected_error))):
                         with self.assertRaises(
                                 CommandExecutionError) as error:
                             cmdmod.run('foo')
                         assert error.exception.args[0].endswith(
                             expected_error), repr(error.exception.args[0])
コード例 #5
0
ファイル: iptables.py プロジェクト: nemo136/salt
def __virtual__():
    '''
    Only load the module if iptables is installed
    '''
    global HAS_CHECK
    if '--check' in salt_cmd.run('iptables --help', output_loglevel='quiet'):
        HAS_CHECK = True

    if salt.utils.which('iptables'):
        return True
    return False
コード例 #6
0
ファイル: test_npm.py プロジェクト: MalloZup/salt-2
class NpmStateTest(ModuleCase, SaltReturnAssertsMixin):
    @requires_network()
    @destructiveTest
    def test_npm_installed_removed(self):
        '''
        Basic test to determine if NPM module was successfully installed and
        removed.
        '''
        ret = self.run_state('npm.installed', name='pm2')
        self.assertSaltTrueReturn(ret)
        ret = self.run_state('npm.removed', name='pm2')
        self.assertSaltTrueReturn(ret)

    @requires_network()
    @destructiveTest
    def test_npm_install_url_referenced_package(self):
        '''
        Determine if URL-referenced NPM module can be successfully installed.
        '''
        ret = self.run_state('npm.installed', name='request/request#v2.81.1')
        self.assertSaltTrueReturn(ret)
        ret = self.run_state('npm.removed',
                             name='git://github.com/request/request')
        self.assertSaltTrueReturn(ret)

    @requires_network()
    @destructiveTest
    def test_npm_installed_pkgs(self):
        '''
        Basic test to determine if NPM module successfully installs multiple
        packages.
        '''
        ret = self.run_state('npm.installed',
                             name='unused',
                             pkgs=['pm2', 'grunt'])
        self.assertSaltTrueReturn(ret)

    @skipIf(
        salt.utils.path.which('npm')
        and LooseVersion(cmd.run('npm -v')) >= LooseVersion(MAX_NPM_VERSION),
        'Skip with npm >= 5.0.0 until #41770 is fixed')
    @destructiveTest
    def test_npm_cache_clean(self):
        '''
        Basic test to determine if NPM successfully cleans its cached packages.
        '''
        ret = self.run_state('npm.cache_cleaned', name='unused', force=True)
        self.assertSaltTrueReturn(ret)
コード例 #7
0
def check(table='filter', chain=None, rule=None, family='ipv4'):
    '''
    Check for the existence of a rule in the table and chain

    This function accepts a rule in a standard iptables command format,
        starting with the chain. Trying to force users to adapt to a new
        method of creating rules would be irritating at best, and we
        already have a parser that can handle it.

    CLI Example:

    .. code-block:: bash

        salt '*' iptables.check filter INPUT \\
            rule='-m state --state RELATED,ESTABLISHED -j ACCEPT'

        IPv6:
        salt '*' iptables.check filter INPUT \\
            rule='-m state --state RELATED,ESTABLISHED -j ACCEPT' \\
            family=ipv6
    '''
    if not chain:
        return 'Error: Chain needs to be specified'
    if not rule:
        return 'Error: Rule needs to be specified'

    HAS_CHECK = False
    if '--check' in salt_cmd.run('iptables --help', output_loglevel='quiet'):
        HAS_CHECK = True

    if HAS_CHECK is False:
        cmd = '{0}-save' . format(_iptables_cmd(family))
        out = __salt__['cmd.run'](cmd).find('-A {1} {2}'.format(
            table,
            chain,
            rule,
        ))
        if out != -1:
            out = ''
        else:
            return False
    else:
        cmd = '{0} -t {1} -C {2} {3}'.format(_iptables_cmd(family), table, chain, rule)
        out = __salt__['cmd.run'](cmd)

    if not out:
        return True
    return out
コード例 #8
0
def check(table='filter', chain=None, rule=None, family='ipv4'):
    '''
    Check for the existence of a rule in the table and chain

    This function accepts a rule in a standard iptables command format,
        starting with the chain. Trying to force users to adapt to a new
        method of creating rules would be irritating at best, and we
        already have a parser that can handle it.

    CLI Example:

    .. code-block:: bash

        salt '*' iptables.check filter INPUT \\
            rule='-m state --state RELATED,ESTABLISHED -j ACCEPT'

        IPv6:
        salt '*' iptables.check filter INPUT \\
            rule='-m state --state RELATED,ESTABLISHED -j ACCEPT' \\
            family=ipv6
    '''
    if not chain:
        return 'Error: Chain needs to be specified'
    if not rule:
        return 'Error: Rule needs to be specified'

    HAS_CHECK = False
    if '--check' in salt_cmd.run('iptables --help', output_loglevel='quiet'):
        HAS_CHECK = True

    if HAS_CHECK is False:
        cmd = '{0}-save' . format(_iptables_cmd(family))
        out = __salt__['cmd.run'](cmd).find('-A {1} {2}'.format(
            table,
            chain,
            rule,
        ))
        if out != -1:
            out = ''
        else:
            return False
    else:
        cmd = '{0} -t {1} -C {2} {3}'.format(_iptables_cmd(family), table, chain, rule)
        out = __salt__['cmd.run'](cmd)

    if not out:
        return True
    return out
コード例 #9
0
ファイル: test_ssh.py プロジェクト: fake-name/salt
def _mock_ssh_keyscan(*args, **kwargs):
    if 'ssh-keyscan' in args[0]:
        if '-H' in args[0]:
            return dedent('''
                # home.waynewerner.com:55555 SSH-2.0-OpenSSH_7.4p1 Raspbian-10+deb9u3
                |1|0yq63FhgFbcGawJwr7XyBPEL2Fs=|HkqTDf6bE0p2CMLHyCY7fdH5Uo0= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCY7tcbLrsTFPb2je3VFiH9cC9+ac04H0X8BQG7croyqvdUY5zTLmIidXJe6R1zUS7Jqpy/pXwHSB5HWpsMu+ytovPZ/LKl6AiYlcdcpS//QASb7TbcDzHFIlcdCoL5C5TOHXdRKrgIa64akuPMxvXxbgXAHjud+2jK1FhGTBbTkbrWA4xhDukWkswLpCRyHhsNzJd/seP651UDd/3rkrbgFSN9o/4LXZtsEfV3xRfJOaZq5/SW+sDVNlArFgg9EXXOzrKKWkSjS9BnN0hBaK3IyJfUAwppLYHgF0LvcNl4jF38EAU00pkNX5mknGbAFF7OMkcQI9/vkl+jaajv8Q3
                # home.waynewerner.com:55555 SSH-2.0-OpenSSH_7.4p1 Raspbian-10+deb9u3
                |1|F1wCSzHHJMMPw/DAuRJGMKeTwFk=|GKQ9FyLzHqe0n+WaWKWHzzmS5/c= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIOEPebJNvI/rqc0ttSuow97J6i8k3YLRF69v1GhF1+gCvM9NW1UQs1gzwB/cLPds9PuwCgyKzUxVqpP7ua41WU=
                # home.waynewerner.com:55555 SSH-2.0-OpenSSH_7.4p1 Raspbian-10+deb9u3
                |1|SZAE/yAB5UH3OOJvkU6ks1yfHO8=|lay+ajhv8yXZ9kke2j86F7RJunw= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBGI17y+DW7z4q4r13Ewd/WnrorEwQWqaE2unjU1TS7G
            ''').lstrip()
        else:
            return dedent('''
                [example.com]:12345 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCY7tcbLrsTFPb2je3VFiH9cC9+ac04H0X8BQG7croyqvdUY5zTLmIidXJe6R1zUS7Jqpy/pXwHSB5HWpsMu+ytovPZ/LKl6AiYlcdcpS//QASb7TbcDzHFIlcdCoL5C5TOHXdRKrgIa64akuPMxvXxbgXAHjud+2jK1FhGTBbTkbrWA4xhDukWkswLpCRyHhsNzJd/seP651UDd/3rkrbgFSN9o/4LXZtsEfV3xRfJOaZq5/SW+sDVNlArFgg9EXXOzrKKWkSjS9BnN0hBaK3IyJfUAwppLYHgF0LvcNl4jF38EAU00pkNX5mknGbAFF7OMkcQI9/vkl+jaajv8Q3
                [example.com]:12345 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIOEPebJNvI/rqc0ttSuow97J6i8k3YLRF69v1GhF1+gCvM9NW1UQs1gzwB/cLPds9PuwCgyKzUxVqpP7ua41WU=
                [example.com]:12345 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBGI17y+DW7z4q4r13Ewd/WnrorEwQWqaE2unjU1TS7G
            ''').lstrip()
    else:
        return cmd.run(*args, **kwargs)
コード例 #10
0
ファイル: test_npm.py プロジェクト: morinap/salt-1
 def test_npm_install_url_referenced_package(self):
     '''
     Determine if URL-referenced NPM module can be successfully installed.
     '''
     if LooseVersion(cmd.run('npm -v')) >= LooseVersion(MAX_NPM_VERSION):
         user = os.environ.get('SUDO_USER', 'root')
         npm_dir = os.path.join(RUNTIME_VARS.TMP, 'git-install-npm')
         self.run_state('file.directory', name=npm_dir, user=user, dir_mode='755')
     else:
         user = None
         npm_dir = None
     ret = self.run_state('npm.installed',
                          name='request/request#v2.81.1',
                          runas=user,
                          dir=npm_dir,
                          registry="http://registry.npmjs.org/")
     self.assertSaltTrueReturn(ret)
     ret = self.run_state('npm.removed', name='git://github.com/request/request', runas=user, dir=npm_dir)
     self.assertSaltTrueReturn(ret)
     if npm_dir is not None:
         self.run_state('file.absent', name=npm_dir)