Exemple #1
0
    def test_analyze_zypper_out(self, spwt_mock, hasZy_mock):
        packageAnalyzer = PackagesAnalyzer()
        stringToRead = """Refreshing service 'susecloud'.
           Loading repository data...
           Reading installed packages...

           S | Name                              | Type    | Version                | Arch   | Repository
           --+-----------------------------------+---------+------------------------+--------+----------------------
           i | ConsoleKit                        | package | 0.2.10-64.65.1         | x86_64 | SLES11-SP1-Updates
           i | gweb                              | package | 2.2.0-99               | noarch | Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.15
           i | hadoop                            | package | 1.2.0.1.3.0.0-107      | x86_64 | HDP
           i | hadoop-libhdfs                    | package | 1.2.0.1.3.0.0-107      | x86_64 | HDP
           i | ambari-server                     | package | 1.2.4.9-1              | noarch | Ambari 1.x
           i | hdp_mon_ganglia_addons            | package | 1.2.4.9-1              | noarch | Ambari 1.x
           i | Minimal                           | pattern | 11-38.13.9             | x86_64 | SLES11-SP1"""
        result = {}
        result['out'] = stringToRead
        result['err'] = ""
        result['retCode'] = 0

        spwt_mock.return_value = result
        hasZy_mock.return_value = True
        installedPackages = []
        packageAnalyzer.allInstalledPackages(installedPackages)
        self.assertEqual(7, len(installedPackages))
        self.assertTrue(installedPackages[1][0], "gweb")
        self.assertTrue(installedPackages[3][2], "HDP")
        self.assertTrue(installedPackages[6][1], "11-38.13.9")
  def test_analyze_zypper_out(self, spwt_mock, hasZy_mock):
    packageAnalyzer = PackagesAnalyzer()
    stringToRead = """Refreshing service 'susecloud'.
           Loading repository data...
           Reading installed packages...

           S | Name                              | Type    | Version                | Arch   | Repository
           --+-----------------------------------+---------+------------------------+--------+----------------------
           i | ConsoleKit                        | package | 0.2.10-64.65.1         | x86_64 | SLES11-SP1-Updates
           i | gweb                              | package | 2.2.0-99               | noarch | Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.15
           i | hadoop                            | package | 1.2.0.1.3.0.0-107      | x86_64 | HDP
           i | hadoop-libhdfs                    | package | 1.2.0.1.3.0.0-107      | x86_64 | HDP
           i | ambari-server                     | package | 1.2.4.9-1              | noarch | Ambari 1.x
           i | hdp_mon_ganglia_addons            | package | 1.2.4.9-1              | noarch | Ambari 1.x
           i | Minimal                           | pattern | 11-38.13.9             | x86_64 | SLES11-SP1"""
    result = {}
    result['out'] = stringToRead
    result['err'] = ""
    result['retCode'] = 0

    spwt_mock.return_value = result
    hasZy_mock.return_value = True
    installedPackages = []
    packageAnalyzer.allInstalledPackages(installedPackages)
    self.assertEqual(7, len(installedPackages))
    self.assertTrue(installedPackages[1][0], "gweb")
    self.assertTrue(installedPackages[3][2], "HDP")
    self.assertTrue(installedPackages[6][1], "11-38.13.9")
Exemple #3
0
    def test_perform_package_analysis(self):
        packageAnalyzer = PackagesAnalyzer()
        installedPackages = [
            ["hadoop-a", "2.3", "HDP"],
            ["zk", "3.1", "HDP"],
            ["webhcat", "3.1", "HDP"],
            ["hadoop-b", "2.3", "HDP-epel"],
            ["epel", "3.1", "HDP-epel"],
            ["epel-2", "3.1", "HDP-epel"],
            ["hadoop-c", "2.3", "Ambari"],
            ["ambari-s", "3.1", "Ambari"],
            ["nagios", "2.3", "NAGIOS"],
            ["rrd", "3.1", "RRD"],
            ["keeper-1", "2.3", "NAGIOS"],
            ["keeper-2", "3.1", "base"],
            ["def-def.x86", "2.2", "DEF.3"],
            ["def.1", "1.2", "NewDEF"],
        ]
        availablePackages = [
            ["hadoop-d", "2.3", "HDP"],
            ["zk-2", "3.1", "HDP"],
            ["pig", "3.1", "HDP"],
            ["epel-3", "2.3", "HDP-epel"],
            ["hadoop-e", "3.1", "HDP-epel"],
            ["ambari-a", "3.1", "Ambari"],
            ["keeper-3", "3.1", "base"],
        ]

        packagesToLook = ["webhcat", "hadoop", "*-def"]
        reposToIgnore = ["ambari"]
        additionalPackages = ["nagios", "rrd"]

        repos = []
        packageAnalyzer.getInstalledRepos(packagesToLook, installedPackages + availablePackages, reposToIgnore, repos)
        self.assertEqual(3, len(repos))
        expected = ["HDP", "HDP-epel", "DEF.3"]
        for repo in expected:
            self.assertTrue(repo in repos)

        packagesInstalled = packageAnalyzer.getInstalledPkgsByRepo(repos, ["epel"], installedPackages)
        self.assertEqual(5, len(packagesInstalled))
        expected = ["hadoop-a", "zk", "webhcat", "hadoop-b", "def-def.x86"]
        for repo in expected:
            self.assertTrue(repo in packagesInstalled)

        additionalPkgsInstalled = packageAnalyzer.getInstalledPkgsByNames(additionalPackages, installedPackages)
        self.assertEqual(2, len(additionalPkgsInstalled))
        expected = ["nagios", "rrd"]
        for additionalPkg in expected:
            self.assertTrue(additionalPkg in additionalPkgsInstalled)

        allPackages = list(set(packagesInstalled + additionalPkgsInstalled))
        self.assertEqual(7, len(allPackages))
        expected = ["hadoop-a", "zk", "webhcat", "hadoop-b", "nagios", "rrd", "def-def.x86"]
        for package in expected:
            self.assertTrue(package in allPackages)
Exemple #4
0
    def test_analyze_yum_output_err(self, subprocessWithTimeout_mock):
        packageAnalyzer = PackagesAnalyzer()

        result = {}
        result['out'] = ""
        result['err'] = ""
        result['retCode'] = 1

        subprocessWithTimeout_mock.return_value = result
        installedPackages = []
        packageAnalyzer.allInstalledPackages(installedPackages)
        self.assertEqual(installedPackages, [])
  def test_analyze_yum_output_err(self, subprocessWithTimeout_mock):
    packageAnalyzer = PackagesAnalyzer()

    result = {}
    result['out'] = ""
    result['err'] = ""
    result['retCode'] = 1

    subprocessWithTimeout_mock.return_value = result
    installedPackages = []
    packageAnalyzer.allInstalledPackages(installedPackages)
    self.assertEqual(installedPackages, [])
Exemple #6
0
    def test_perform_package_analysis(self):
        packageAnalyzer = PackagesAnalyzer()
        installedPackages = [["hadoop-a", "2.3", "HDP"], ["zk", "3.1", "HDP"],
                             ["webhcat", "3.1", "HDP"],
                             ["hadoop-b", "2.3", "HDP-epel"],
                             ["epel", "3.1", "HDP-epel"],
                             ["epel-2", "3.1", "HDP-epel"],
                             ["hadoop-c", "2.3", "Ambari"],
                             ["ambari-s", "3.1", "Ambari"],
                             ["nagios", "2.3", "NAGIOS"],
                             ["rrd", "3.1", "RRD"],
                             ["keeper-1", "2.3", "NAGIOS"],
                             ["keeper-2", "3.1", "base"],
                             ["def-def.x86", "2.2", "DEF.3"],
                             ["def.1", "1.2", "NewDEF"]]
        availablePackages = [["hadoop-d", "2.3", "HDP"],
                             ["zk-2", "3.1", "HDP"], ["pig", "3.1", "HDP"],
                             ["epel-3", "2.3", "HDP-epel"],
                             ["hadoop-e", "3.1", "HDP-epel"],
                             ["ambari-a", "3.1", "Ambari"],
                             ["keeper-3", "3.1", "base"]]

        packagesToLook = ["webhcat", "hadoop", "*-def"]
        reposToIgnore = ["ambari"]
        additionalPackages = ["nagios", "rrd"]

        repos = []
        packageAnalyzer.getInstalledRepos(
            packagesToLook, installedPackages + availablePackages,
            reposToIgnore, repos)
        self.assertEqual(3, len(repos))
        expected = ["HDP", "HDP-epel", "DEF.3"]
        for repo in expected:
            self.assertTrue(repo in repos)

        packagesInstalled = packageAnalyzer.getInstalledPkgsByRepo(
            repos, ["epel"], installedPackages)
        self.assertEqual(5, len(packagesInstalled))
        expected = ["hadoop-a", "zk", "webhcat", "hadoop-b", "def-def.x86"]
        for repo in expected:
            self.assertTrue(repo in packagesInstalled)

        additionalPkgsInstalled = packageAnalyzer.getInstalledPkgsByNames(
            additionalPackages, installedPackages)
        self.assertEqual(2, len(additionalPkgsInstalled))
        expected = ["nagios", "rrd"]
        for additionalPkg in expected:
            self.assertTrue(additionalPkg in additionalPkgsInstalled)

        allPackages = list(set(packagesInstalled + additionalPkgsInstalled))
        self.assertEqual(7, len(allPackages))
        expected = [
            "hadoop-a", "zk", "webhcat", "hadoop-b", "nagios", "rrd",
            "def-def.x86"
        ]
        for package in expected:
            self.assertTrue(package in allPackages)
Exemple #7
0
  def test_analyze_yum_output(self, subprocessWithTimeout_mock, hasZy_mock):
    packageAnalyzer = PackagesAnalyzer()
    stringToRead = """Loaded plugins: amazon-id, product-id, rhui-lb, security, subscription-manager
                      Updating certificate-based repositories.
                      Installed Packages
                      AMBARI.dev.noarch             1.x-1.el6             installed
                      PyXML.x86_64                  0.8.4-19.el6          @koji-override-0
                      Red_Hat_Enterprise_Linux-Release_Notes-6-en-US.noarch
                              3-7.el6               @koji-override-0
                      hcatalog.noarch               0.11.0.1.3.0.0-107.el6
                                                    @HDP-1.3.0
                      hesiod.x86_64                 3.1.0-19.el6          @koji-override-0/$releasever
                      hive.noarch                   0.11.0.1.3.0.0-107.el6
                                                    @HDP-1.3.0
                      oracle-server-db.x86          1.3.17-2
                                                    @Oracle-11g
                      ambari-log4j.noarch           1.2.5.9-1             @AMBARI.dev-1.x
                      libconfuse.x86_64             2.7-4.el6             @HDP-epel"""
    result = {}
    result['out'] = stringToRead
    result['err'] = ""
    result['retCode'] = 0

    subprocessWithTimeout_mock.return_value = result
    hasZy_mock.return_value = False
    installedPackages = []
    packageAnalyzer.allInstalledPackages(installedPackages)
    self.assertEqual(9, len(installedPackages))
    for package in installedPackages:
      self.assertTrue(package[0] in ["AMBARI.dev.noarch", "PyXML.x86_64", "oracle-server-db.x86",
                                 "Red_Hat_Enterprise_Linux-Release_Notes-6-en-US.noarch",
                                 "hcatalog.noarch", "hesiod.x86_64", "hive.noarch", "ambari-log4j.noarch", "libconfuse.x86_64"])
      self.assertTrue(package[1] in ["1.x-1.el6", "0.8.4-19.el6", "3-7.el6", "3.1.0-19.el6",
                                 "0.11.0.1.3.0.0-107.el6", "1.2.5.9-1", "1.3.17-2", "1.2.5.9-1", "2.7-4.el6"])
      self.assertTrue(package[2] in ["installed", "koji-override-0", "HDP-1.3.0",
                                 "koji-override-0/$releasever", "AMBARI.dev-1.x", "Oracle-11g", "HDP-epel"])

    packages = packageAnalyzer.getInstalledPkgsByNames(["AMBARI", "Red_Hat_Enterprise", "hesiod", "hive"],
                                                       installedPackages)
    self.assertEqual(4, len(packages))
    expected = ["AMBARI.dev.noarch", "Red_Hat_Enterprise_Linux-Release_Notes-6-en-US.noarch",
                                "hesiod.x86_64", "hive.noarch"]
    for package in expected:
      self.assertTrue(package in packages)

    detailedPackages = packageAnalyzer.getPackageDetails(installedPackages, packages)
    self.assertEqual(4, len(detailedPackages))
    for package in detailedPackages:
      self.assertTrue(package['version'] in ["1.x-1.el6", "3-7.el6", "3.1.0-19.el6",
                                            "0.11.0.1.3.0.0-107.el6"])
      self.assertTrue(package['repoName'] in ["installed", "koji-override-0", "HDP-1.3.0",
                                              "koji-override-0/$releasever"])
      self.assertFalse(package['repoName'] in ["AMBARI.dev-1.x"])