Ejemplo n.º 1
0
 def test_action_install_existent_suse(self, shell_mock):
   sys.modules['rpm'] = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_package'}]
   with Environment('/') as env:
     Package("some_package",
             )
   self.assertFalse(shell_mock.mock_calls)
Ejemplo n.º 2
0
 def test_action_delete(self, exists_mock, unlink_mock):     
   exists_mock.return_value = True
   
   with Environment('/') as env:
     Link("/some_path",
          action = "delete"
     )    
   unlink_mock.assert_called_with("/some_path")
Ejemplo n.º 3
0
    def test_action_create_symlink_clean_create(self, symlink_mock,
                                                lexists_mock):
        lexists_mock.return_value = False

        with Environment('/') as env:
            Link("/some_path", to="/a/b/link_to_path")

        symlink_mock.assert_called_with("/a/b/link_to_path", "/some_path")
Ejemplo n.º 4
0
 def test_action_remove_rhel(self, shell_mock):
     with Environment('/') as env:
         Package("some_package", action="remove")
     shell_mock.assert_called_with([
         '/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'erase', 'some_package'
     ],
                                   logoutput=False,
                                   sudo=True)
Ejemplo n.º 5
0
    def test_ensure_metadata(self, stat_mock, chmod_mock, chown_mock,
                             getgrnam_mock, getpwnam_mock):
        """
    Tests if _ensure_metadata changes owner, usergroup and permissions of file to proper values
    """
        from resource_management.core.providers.system import _ensure_metadata

        class stat():
            def __init__(self):
                self.st_mode = 0666
                self.st_uid = 1
                self.st_gid = 1

        stat_mock.return_value = stat()
        getpwnam_mock.return_value = MagicMock()
        getpwnam_mock.return_value.pw_uid = 0
        getgrnam_mock.return_value = MagicMock()
        getgrnam_mock.return_value.gr_gid = 0

        with Environment('/') as env:
            _ensure_metadata('/directory/file',
                             user='******',
                             group='hdfs',
                             mode=0777)

        stat_mock.assert_called_with('/directory/file')
        self.assertEqual(chmod_mock.call_count, 1)
        self.assertEqual(chown_mock.call_count, 1)
        getgrnam_mock.assert_called_once_with('hdfs')
        getpwnam_mock.assert_called_with('root')

        chmod_mock.reset_mock()
        chown_mock.reset_mock()
        getpwnam_mock.return_value = MagicMock()
        getpwnam_mock.return_value.pw_uid = 1
        getgrnam_mock.return_value = MagicMock()
        getgrnam_mock.return_value.gr_gid = 1

        with Environment('/') as env:
            _ensure_metadata('/directory/file',
                             user='******',
                             group='hdfs',
                             mode=0777)

        self.assertEqual(chmod_mock.call_count, 1)
        chown_mock.assert_called_with('/directory/file', None, None)
Ejemplo n.º 6
0
 def test_action_install_version_attr(self, shell_mock):
   shell_mock.return_value = (0,'')
   with Environment('/') as env:
     Package("some_package",
             version = "3.5.0",
             logoutput = False
     )
   shell_mock.assert_called_with(['/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install', 'some_package-3.5.0'], logoutput=False, sudo=True)
Ejemplo n.º 7
0
 def test_action_install_pattern_suse(self, shell_mock, call_mock):
   call_mock.side_effect=[(0, None), (0, "Loading repository data...\nReading installed packages...\n\nS | Name\n--+-----\n  | Pack")]
   with Environment('/') as env:
     Package("some_package*",
             )
   call_mock.assert_has_calls([call("installed_pkgs=`rpm -qa 'some_package*'` ; [ ! -z \"$installed_pkgs\" ]"),
                               call("zypper --non-interactive search --type package --uninstalled-only --match-exact 'some_package*'")])
   shell_mock.assert_called_with(['/usr/bin/zypper', '--quiet', 'install', '--auto-agree-with-licenses', '--no-confirm', 'some_package*'], logoutput=False, sudo=True)
Ejemplo n.º 8
0
 def test_action_install_suse(self, shell_mock):
   sys.modules['rpm'] = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_packages'}]
   with Environment('/') as env:
     Package("some_package",
     )
   shell_mock.assert_called_with(['/usr/bin/zypper', '--quiet', 'install', '--auto-agree-with-licenses', '--no-confirm', 'some_package'], logoutput=False, sudo=True)
Ejemplo n.º 9
0
 def test_action_install_use_repos_rhel(self, shell_mock):
   with Environment('/') as env:
     Package("some_package", use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885']
             )
   self.assertEquals(shell_mock.call_args[0][0],
                     ['/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install',
                      '--disablerepo=',
                      '--enablerepo=HDP-UTILS-2.2.0.1-885,HDP-2.2.0.1-885', 'some_package'])
Ejemplo n.º 10
0
 def test_action_install_pattern_rhel(self, shell_mock):
   sys.modules['rpm'] = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_packag'}]
   with Environment('/') as env:
     Package("some_package*",
     )
   shell_mock.assert_called_with(['/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install', 'some_package*'], logoutput=False, sudo=True)
Ejemplo n.º 11
0
 def test_action_install_suse(self, shell_mock, call_mock):
     call_mock.return_value = (1, None)
     with Environment('/') as env:
         Package("some_package", )
     call_mock.assert_called_with('rpm -q --quiet some_package')
     shell_mock.assert_called_with(
         "/usr/bin/zypper --quiet install --auto-agree-with-licenses --no-confirm some_package"
     )
Ejemplo n.º 12
0
 def test_action_install_debian(self, shell_mock, call_mock):
     call_mock.return_value = (1, None)
     with Environment('/') as env:
         Package("some_package", )
     call_mock.assert_called_with(
         'dpkg --get-selections some_package | grep -v deinstall')
     shell_mock.assert_called_with(
         "/usr/bin/apt-get --assume-yes install some_package")
Ejemplo n.º 13
0
 def test_action_install_pattern_suse(self, shell_mock):
   sys.modules['rpm'] = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_packagetest'}]
   with Environment('/') as env:
     Package("some_package*",
             )
   self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
Ejemplo n.º 14
0
 def test_action_remove_nodeps_suse(self, shell_mock):
   shell_mock.return_value = (0, '')
   with Environment('/') as env:
     Package("some_package",
             action = "remove",
             logoutput = False,
             ignore_dependencies = True
     )
   shell_mock.assert_called_with(['rpm', '-e', '--nodeps', 'some_package'], logoutput=False, sudo=True)
Ejemplo n.º 15
0
    def test_delete_directory(self, isdir_mock, os_path_exists_mock,
                              rmtree_mock):
        os_path_exists_mock.return_value = True
        isdir_mock.return_value = True

        with Environment('/') as env:
            Directory('/a/b/c/d', action='delete')

        rmtree_mock.assert_called_with('/a/b/c/d')
Ejemplo n.º 16
0
 def test_action_install_pattern_installed_rhel(self, shell_mock):
   sys.modules['yum'] = MagicMock()
   sys.modules['yum'].YumBase.return_value = MagicMock()
   sys.modules['yum'].YumBase.return_value.rpmdb = MagicMock()
   sys.modules['yum'].YumBase.return_value.rpmdb.simplePkgList.return_value = [('some_package_1_2_3',)]
   with Environment('/') as env:
     Package("some_package*",
     )
   self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
Ejemplo n.º 17
0
 def test_action_remove_suse(self, shell_mock):
     with Environment('/') as env:
         Package("some_package", action="remove")
     shell_mock.assert_called_with([
         '/usr/bin/zypper', '--quiet', 'remove', '--no-confirm',
         'some_package'
     ],
                                   logoutput=False,
                                   sudo=True)
Ejemplo n.º 18
0
 def test_action_remove_nodeps_ubuntu(self, shell_mock):
   shell_mock.return_value = (0, '')
   with Environment('/') as env:
     Package("some-package",
             action = "remove",
             logoutput = False,
             ignore_dependencies = True
     )
   shell_mock.assert_called_with(['/usr/bin/dpkg', '--remove', '--ignore-depends', 'some-package', 'some-package'], logoutput=False, sudo=True)
Ejemplo n.º 19
0
 def test_action_install_debian(self, shell_mock, call_mock):
     call_mock.return_value = (1, None)
     with Environment('/') as env:
         Package("some_package", )
     call_mock.assert_called_with(
         'dpkg --get-selections some_package | grep -v deinstall')
     shell_mock.assert_called_with(
         "env DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get -q -o Dpkg::Options::='--force-confdef' --force-yes --assume-yes install some_package"
     )
Ejemplo n.º 20
0
  def test_inline_template(self):
    """
    Testing InlineTemplate
    """
    with Environment("/base") as env:
      template = InlineTemplate("{{test_arg1}} template content", [], test_arg1 = "test")
      content = template.get_content()

    self.assertEqual(u'test template content', content)
Ejemplo n.º 21
0
  def test_action_create_nonexistent(self, getpwnam_mock, popen_mock):
    subproc_mock = MagicMock()
    subproc_mock.returncode = 0
    popen_mock.return_value = subproc_mock
    getpwnam_mock.return_value = None
    with Environment('/') as env:
      user = User("mapred", action = "create", shell = "/bin/bash")

    popen_mock.assert_called_with(['/bin/bash', '--login', '-c', 'useradd -m -s /bin/bash mapred'], shell=False, preexec_fn=None, stderr=-2, stdout=-1, env=None, cwd=None)
    self.assertEqual(popen_mock.call_count, 1)
Ejemplo n.º 22
0
  def test_action_install_ubuntu(self, shell_mock, call_mock):
    call_mock.side_effect = [(1, ''), (0, '')]
    shell_mock.return_value = (0, '')
    with Environment('/') as env:
      Package("some_package",
        logoutput = False
      )
    call_mock.assert_has_calls([call("dpkg --get-selections | grep -v deinstall | awk '{print $1}' | grep ^some-package$")])

    shell_mock.assert_has_call([call(['/usr/bin/apt-get', '-q', '-o', 'Dpkg::Options::=--force-confdef', '--allow-unauthenticated', '--assume-yes', 'install', 'some-package'], logoutput=False, sudo=True, env={'DEBIAN_FRONTEND': 'noninteractive'})])
Ejemplo n.º 23
0
  def test_action_install_ubuntu(self, shell_mock, call_mock):
    call_mock.side_effect = [(1, None), (0, None)]
    with Environment('/') as env:
      Package("some_package",
      )
    call_mock.assert_has_calls([call("dpkg --get-selections | grep -v deinstall | awk '{print $1}' | grep ^some-package$"),
 call(['/usr/bin/apt-get', '-q', '-o', 'Dpkg::Options::=--force-confdef', '--allow-unauthenticated', '--assume-yes', 'install', 'some-package'], logoutput=False, sudo=True, env={'DEBIAN_FRONTEND': 'noninteractive'})])

    
    self.assertEqual(shell_mock.call_count, 0, "shell.checked_call shouldn't be called")
Ejemplo n.º 24
0
 def test_action_install_use_repos_rhel(self, shell_mock):
   shell_mock.return_value = (0,'')
   with Environment('/') as env:
     Package("some_package", use_repos={'HDP-UTILS-2.2.0.1-885': 'ambari-hdp-1', 'HDP-2.2.0.1-885': 'ambari-hdp-1'},
             logoutput = False
             )
   self.assertEquals(shell_mock.call_args[0][0],
                     ['/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install',
                      '--disablerepo=*',
                      '--enablerepo=HDP-2.2.0.1-885,HDP-UTILS-2.2.0.1-885', 'some_package'])
Ejemplo n.º 25
0
    def test_action_create_hardlink_clean_create(self, link_mock, lexists_mock,
                                                 exists_mock, isdir_mock):
        lexists_mock.return_value = False
        exists_mock.return_value = True
        isdir_mock.return_value = False

        with Environment('/') as env:
            Link("/some_path", hard=True, to="/a/b/link_to_path")

        link_mock.assert_called_with("/a/b/link_to_path", "/some_path")
Ejemplo n.º 26
0
    def test_action_create_relink(self, symlink_mock, unlink_mock, islink_mock,
                                  lexists_mock, realmock):
        lexists_mock.return_value = True
        realmock.return_value = "/old_to_link_path"
        islink_mock.return_value = True
        with Environment('/') as env:
            Link("/some_path", to="/a/b/link_to_path")

        unlink_mock.assert_called_with("/some_path")
        symlink_mock.assert_called_with("/a/b/link_to_path", "/some_path")
Ejemplo n.º 27
0
 def test_action_remove_suse(self, shell_mock):
   shell_mock.return_value = (0, '')
   sys.modules['rpm'] = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value = MagicMock()
   sys.modules['rpm'].TransactionSet.return_value.dbMatch.return_value = [{'name':'some_package'}]
   with Environment('/') as env:
     Package("some_package",
             action = "remove",
             logoutput = False
     )
   shell_mock.assert_called_with(['/usr/bin/zypper', '--quiet', 'remove', '--no-confirm', 'some_package'], logoutput=False, sudo=True)
Ejemplo n.º 28
0
 def test_action_install_rhel(self, shell_mock, call_mock):
     call_mock.return_value = (1, None)
     with Environment('/') as env:
         #Package("some_package",
         #)
         #yuan
         Package("mongo-10gen-server", )
         #end yuan
     call_mock.assert_called_with('rpm -q --quiet mongo-10gen-server')
     shell_mock.assert_called_with(
         "/usr/bin/yum -d 0 -e 0 -y install mongo-10gen-server")
 def test_action_install_regex_ubuntu(self, shell_mock, call_mock):
     call_mock.side_effect = [(0, None)]
     with Environment('/') as env:
         Package("some_package.*", )
     call_mock.assert_has_calls([
         call(
             "dpkg --get-selections | grep -v deinstall | awk '{print $1}' | grep ^some-package.*$"
         )
     ])
     self.assertEqual(shell_mock.call_count, 0,
                      "shell.checked_call shouldn't be called")
Ejemplo n.º 30
0
  def test_action_create_nonexistent(self, getpwnam_mock, popen_mock):
    subproc_mock = MagicMock()
    subproc_mock.returncode = 0
    subproc_mock.stdout.readline = MagicMock(side_effect = ['OK'])
    popen_mock.return_value = subproc_mock
    getpwnam_mock.return_value = None
    with Environment('/') as env:
      user = User("mapred", action = "create", shell = "/bin/bash")

    popen_mock.assert_called_with(['/bin/bash', '--login', '--noprofile', '-c', "ambari-sudo.sh  PATH=/bin -H -E useradd -m -s /bin/bash mapred"], shell=False, preexec_fn=None, stderr=-2, stdout=5, env={'PATH': '/bin'}, bufsize=1, cwd=None, close_fds=True)
    self.assertEqual(popen_mock.call_count, 1)