Esempio n. 1
0
        def testDecompressClusterHostInfo(self):

            info = {
                "jtnode_host": ["5"],
                "hbase_master_hosts": ["5"],
                "all_hosts":
                ["h8", "h9", "h5", "h4", "h7", "h6", "h1", "h3", "h2", "h10"],
                "namenode_host": ["6"],
                "mapred_tt_hosts": ["0", "7-9", "2", "3", "5"],
                "slave_hosts": ["3", "0", "1", "5-9"],
                "snamenode_host": ["8"],
                "ping_ports": ["8670:1,5-8", "8673:9", "8672:0,4", "8671:2,3"],
                "hbase_rs_hosts": ["3", "1", "5", "8", "9"]
            }

            decompressedInfo = manifestGenerator.decompressClusterHostInfo(
                clusterHostInfo)

            self.assertTrue(decompressedInfo.has_key("all_hosts"))

            allHosts = decompressedInfo.pop("all_hosts")

            self.assertEquals(info.get("all_hosts"),
                              decompressedInfo.get("all_hosts"))

            pingPorts = decompressedInfo.pop("all_ping_ports")

            self.assertEquals(
                pingPorts,
                manifestGenerator.convertMappedRangeToList(
                    info.get("all_ping_ports")))

            for k, v in decompressedInfo.items():
                self.assertEquals(
                    v, manifestGenerator.convertRangeToList(info.get(k)))
Esempio n. 2
0
    def testConvertRangeToList(self):

        rangesList = ["1-3", "4", "6", "7-9"]
        list = manifestGenerator.convertRangeToList(rangesList)
        self.assertEqual(sorted(list), sorted([1, 2, 3, 4, 6, 7, 8, 9]))

        rangesList = ["5", "4"]
        list = manifestGenerator.convertRangeToList(rangesList)
        self.assertEqual(list, [5, 4])

        exceptionWasTrown = False
        try:
            rangesList = ["0", "-2"]
            list = manifestGenerator.convertRangeToList(rangesList)
        except AgentException, err:
            #Expected
            exceptionWasTrown = True
Esempio n. 3
0
class TestManifestGenerator(TestCase):
    def setUp(self):
        # disable stdout
        out = StringIO.StringIO()
        sys.stdout = out

        self.dir = tempfile.mkdtemp()
        self.config = AmbariConfig()
        jsonCommand = file('../../main/python/ambari_agent/test.json').read()
        self.parsedJson = json.loads(jsonCommand)

    def tearDown(self):
        shutil.rmtree(self.dir)

        # enable stdout
        sys.stdout = sys.__stdout__

    def testWriteImports(self):
        tmpFileName = tempfile.mkstemp(dir=self.dir, text=True)[1]
        print tmpFileName
        tmpFile = file(tmpFileName, 'r+')

        manifestGenerator.writeImports(tmpFile, '../../main/puppet/modules',
                                       self.config.getImports())
        tmpFile.seek(0)
        print tmpFile.read()
        tmpFile.close()

    def testEscape(self):
        shouldBe = '\\\'\\\\'
        result = manifestGenerator.escape('\'\\')
        self.assertEqual(result, shouldBe)

    def test_writeNodes(self):
        tmpFileName = tempfile.mkstemp(dir=self.dir, text=True)[1]
        tmpFile = file(tmpFileName, 'r+')

        clusterHostInfo = self.parsedJson['clusterHostInfo']
        clusterHostInfo['zookeeper_hosts'] = [
            "h1.hortonworks.com", "h2.hortonworks.com"
        ]
        manifestGenerator.writeNodes(tmpFile, clusterHostInfo)
        tmpFile.seek(0)
        print tmpFile.read()
        tmpFile.close()
        os.remove(tmpFileName)

    def test_writeNodes_failed(self):
        tmpFileName = tempfile.mkstemp(dir=self.dir, text=True)[1]
        tmpFile = file(tmpFileName, 'r+')

        clusterHostInfo = self.parsedJson['clusterHostInfo']
        clusterHostInfo.update({u'ZOOKEEPER': [None]})
        clusterHostInfo['zookeeper_hosts'] = [
            "h1.hortonworks.com", "h2.hortonworks.com"
        ]
        self.assertRaises(TypeError, manifestGenerator.writeNodes, tmpFile,
                          clusterHostInfo)
        tmpFile.seek(0)
        print tmpFile.read()
        tmpFile.close()
        os.remove(tmpFileName)

    def test_writeHostAttributes(self):
        tmpFileName = tempfile.mkstemp(dir=self.dir, text=True)[1]
        tmpFile = file(tmpFileName, 'r+')

        hostAttributes = {'HostAttr1': '1', 'HostAttr2': '2'}
        manifestGenerator.writeHostAttributes(tmpFile, hostAttributes)
        tmpFile.seek(0)
        print tmpFile.read()
        tmpFile.close()
        os.remove(tmpFileName)

    def test_writeTasks(self):
        tmpFileName = tempfile.mkstemp(dir=self.dir, text=True)[1]
        tmpFile = file(tmpFileName, 'r+')
        roles = [{
            'role': 'ZOOKEEPER_SERVER',
            'cmd': 'NONE',
            'roleParams': {
                'someRoleParams': '-x'
            }
        }]
        clusterHostInfo = self.parsedJson['clusterHostInfo']
        clusterHostInfo['zookeeper_hosts'] = [
            "h1.hortonworks.com", "h2.hortonworks.com"
        ]
        manifestGenerator.writeTasks(tmpFile, roles, self.config,
                                     clusterHostInfo, "h1.hortonworks.com")
        tmpFile.seek(0)
        print tmpFile.read()
        tmpFile.close()
        os.remove(tmpFileName)

    def testConvertRangeToList(self):

        rangesList = ["1-3", "4", "6", "7-9"]
        list = manifestGenerator.convertRangeToList(rangesList)
        self.assertEqual(sorted(list), sorted([1, 2, 3, 4, 6, 7, 8, 9]))

        rangesList = ["5", "4"]
        list = manifestGenerator.convertRangeToList(rangesList)
        self.assertEqual(list, [5, 4])

        exceptionWasTrown = False
        try:
            rangesList = ["0", "-2"]
            list = manifestGenerator.convertRangeToList(rangesList)
        except AgentException, err:
            #Expected
            exceptionWasTrown = True

        self.assertTrue(exceptionWasTrown)

        exceptionWasTrown = False
        try:
            rangesList = ["0", "-"]
            list = manifestGenerator.convertRangeToList(rangesList)
        except AgentException, err:
            #Expected
            exceptionWasTrown = True
Esempio n. 4
0
        self.assertTrue(exceptionWasTrown)

        exceptionWasTrown = False
        try:
            rangesList = ["0", "-"]
            list = manifestGenerator.convertRangeToList(rangesList)
        except AgentException, err:
            #Expected
            exceptionWasTrown = True
        self.assertTrue(exceptionWasTrown)

        exceptionWasTrown = False
        try:
            rangesList = ["0", "2-"]
            list = manifestGenerator.convertRangeToList(rangesList)
        except AgentException, err:
            #Expected
            exceptionWasTrown = True
        self.assertTrue(exceptionWasTrown)

    def testConvertMappedRangeToList(self):
        mappedRangedList = ["1:0-2,5", "2:3,4"]
        list = manifestGenerator.convertMappedRangeToList(mappedRangedList)
        self.assertEqual(list, [1, 1, 1, 2, 2, 1])

        mappedRangedList = ["7:0"]
        list = manifestGenerator.convertMappedRangeToList(mappedRangedList)
        self.assertEqual(list, [7])

        exceptionWasTrown = False