Пример #1
0
    def test_findStateMsgIndex(self):
        b = Backend('sd-stacki-111', 'default', 'default', 'sles')
        sm1 = StateMessage('10.25.241.111', State.DHCPDISCOVER, False,
                           time.time())
        sm2 = StateMessage('10.25.241.111', State.Profile_XML_Sent, False,
                           time.time())
        b.stateArr.append(sm1)
        b.stateArr.append(sm2)

        assert b.findStateMsgIndex(State.Profile_XML_Sent) == 1
        assert b.findStateMsgIndex(State.Set_Bootaction_OS) > 1000
        assert b.findStateMsgIndex(State.DHCPDISCOVER) != 1
Пример #2
0
    def test_lastSuccessfulState(self):
        b = Backend('sd-stacki-111', 'default', 'default', 'sles')
        assert b.lastSuccessfulState() == None

        sm1 = StateMessage('10.25.241.111', State.DHCPDISCOVER, False,
                           time.time())
        b.stateArr.append(sm1)
        assert b.lastSuccessfulState() == sm1

        sm2 = StateMessage('10.25.241.111', State.Profile_XML_Sent, True,
                           time.time())
        b.stateArr.append(sm2)
        assert b.lastSuccessfulState() == sm1
Пример #3
0
 def test_hasStateMessage(self):
     b = Backend('sd-stacki-111', 'default', 'default', 'sles')
     sm1 = StateMessage('10.25.241.111', State.DHCPDISCOVER, False,
                        time.time())
     sm2 = StateMessage('10.25.241.111', State.Profile_XML_Sent, False,
                        time.time())
     b.stateArr.append(sm1)
     b.stateArr.append(sm2)
     sm3 = StateMessage('10.25.241.111', State.Ludicrous_Populated, False,
                        time.time())
     assert b.hasStateMessage(sm3) == False
     sm4 = StateMessage('10.25.241.111', State.Profile_XML_Sent, False,
                        time.time())
     assert b.hasStateMessage(sm4) == True
Пример #4
0
    def test_isPostPkgInstallStage(self):
        b = Backend('sd-stacki-111', 'default', 'default', 'sles')
        sm1 = StateMessage('10.25.241.111', State.DHCPDISCOVER, False,
                           time.time())
        sm2 = StateMessage('10.25.241.111', State.Profile_XML_Sent, False,
                           time.time())
        b.stateArr.append(sm1)
        b.stateArr.append(sm2)
        assert b.isPostPkgInstallStage() == False

        sm3 = StateMessage('10.25.241.111', State.Ludicrous_Populated, False,
                           time.time())
        sm4 = StateMessage('10.25.241.111', State.Set_Bootaction_OS, False,
                           time.time())
        b.stateArr.append(sm3)
        b.stateArr.append(sm4)
        assert b.isPostPkgInstallStage() == True
Пример #5
0
    def getHosts(self):
        hnameBackendMap = {}
        op = stack.api.Call('list.host')
        for o in op:
            b = Backend(o['host'], o['installaction'], o['osaction'], o['os'])
            hnameBackendMap[o['host']] = b

        return hnameBackendMap
Пример #6
0
    def test_isKnownState(self):
        b = Backend('sd-stacki-111', 'default', 'default', 'sles')
        sm1 = StateMessage('10.25.241.111', State.DHCPDISCOVER, False,
                           time.time())
        sm2 = StateMessage('10.25.241.111', State.Profile_XML_Sent, False,
                           time.time())
        b.stateArr.append(sm1)
        b.stateArr.append(sm2)

        sm3 = StateMessage('10.25.241.111', State.Rebooting_HDD, False,
                           time.time())
        sm4 = StateMessage('10.25.241.111', State.Profile_XML_Sent, True,
                           time.time())

        assert b.isKnownState(sm3.state) == False
        assert b.isKnownState(sm4.state) == True

        sm2.isError = True
        assert b.isKnownState(sm4.state) == False
Пример #7
0
    def test_getBackendByMac(self):
        sys.path.append('/opt/stack/bin')
        c = Checklist()
        b = Backend('host-8', 'default', 'default', 'sles')
        b1 = Backend('host-9', 'default', 'default', 'sles')
        b.macList = ['aa:bb:aa:aa:bb:aa']
        b.ipList = ['8.8.8.8']
        b1.macList = ['aa:bb:aa:aa:bb:ee']
        b1.ipList = ['8.8.8.9']
        c.ipBackendMap = {'8.8.8.8': b, '8.8.8.9': b1}

        assert c.getBackendByMac('aa:bb:aa:aa:bb:ee') == b1
        assert c.getBackendByMac('aa:bb:aa:aa:bb:ef') == None
Пример #8
0
    def test_restoreDhcpMsgs(self):
        sys.path.append('/opt/stack/bin')
        c = Checklist()
        b = Backend('host-8', 'default', 'default', 'sles')
        b1 = Backend('host-9', 'default', 'default', 'sles')
        b.macList = ['aa:bb:aa:aa:bb:aa']
        b.ipList = ['8.8.8.8']
        b1.macList = ['aa:bb:aa:aa:bb:ee']
        b1.ipList = ['8.8.8.9']
        c.ipBackendMap = {'8.8.8.8': b, '8.8.8.9': b1}
        b.installKernel = 'vmlinuz-sles-12-sp3-x86_64'
        b.installRamdisk = 'initrd-sles-12-sp3-x86_64'
        b.osKernel = ''
        b.osRamdisk = ''
        b1.osKernel = 'chain.c32'
        b1.osRamdisk = ''
        b1.installKernel = 'mlinuz-sles-12-sp3-x86_64'
        b1.installRamdisk = ''

        sm1 = StateMessage('8.8.8.8', State.Set_DB_Partitions, False,
                           time.time())
        sm2 = StateMessage('8.8.8.8', State.Set_Bootaction_OS, False,
                           time.time())
        b.stateArr.append(sm1)
        b.stateArr.append(sm2)
        dhcp1 = StateMessage('8.8.8.8', State.DHCPDISCOVER, False, time.time())
        b.dhcpStateArr.append(dhcp1)
        dhcp2 = StateMessage('8.8.8.8', State.DHCPREQUEST, False, time.time())
        b.dhcpStateArr.append(dhcp2)

        arr1 = copy.deepcopy(b.dhcpStateArr)
        stArr1 = copy.deepcopy(b.stateArr)
        c.restoreDhcpMsgs(sm1)
        assert arr1 == b.dhcpStateArr
        assert stArr1 == b.stateArr

        sm3 = StateMessage('8.8.8.9', State.SSH_Open, False, time.time())
        b1.stateArr.append(sm3)
        sm4 = StateMessage('8.8.8.9', State.AUTOINST_Present, False,
                           time.time())
        b1.stateArr.append(sm4)
        b1.dhcpStateArr = b.dhcpStateArr
        dhcp1.time = time.time()
        dhcp2.time = time.time()
        sm1 = StateMessage('8.8.8.9', State.TFTP_RRQ, False, time.time())
        c.restoreDhcpMsgs(sm1)
        assert len(b1.dhcpStateArr) == 0
Пример #9
0
    def test_processTftp(self):
        sys.path.append('/opt/stack/bin')
        c = Checklist()
        b = Backend('host-8', 'default', 'default', 'sles')
        b1 = Backend('host-9', 'default', 'default', 'sles')
        b.macList = ['aa:bb:aa:aa:bb:aa']
        b.ipList = ['8.8.8.8']
        b1.macList = ['aa:bb:aa:aa:bb:ee']
        b1.ipList = ['8.8.8.9']
        c.ipBackendMap = {'8.8.8.8': b, '8.8.8.9': b1}
        b.installKernel = 'vmlinuz-sles-12-sp3-x86_64'
        b.installRamdisk = 'initrd-sles-12-sp3-x86_64'
        b.osKernel = ''
        b.osRamdisk = ''
        b1.osKernel = 'chain.c32'
        b1.osRamdisk = ''
        b1.installKernel = 'mlinuz-sles-12-sp3-x86_64'
        b1.installRamdisk = ''

        sm = StateMessage('8.8.8.8', State.TFTP_RRQ, False, time.time(),
                          'pxelinux.cfg/01-52-54-00-de-20-b1')
        assert c.processTftp(sm) == Checklist.IGNORE_TFTP_MSG

        sm1 = StateMessage('8.8.8.8', State.TFTP_RRQ, False, time.time(),
                           'initrd-sles-12-sp3-x86_64')
        assert c.processTftp(sm1) == Checklist.SUCCESS_TFTP \
         and sm1.state == State.Initrd_RRQ
        sm2 = StateMessage('8.8.8.9', State.TFTP_RRQ, False, time.time(),
                           'initrd-sles-12-sp3-x86')
        assert c.processTftp(sm2) == Checklist.REFRESH_STATE
        sm3 = StateMessage('8.8.8.8', State.TFTP_RRQ, False, time.time(),
                           'vmlinuz-sles-12-sp3-x86_64')
        assert c.processTftp(sm3) == Checklist.SUCCESS_TFTP \
         and sm3.state == State.VMLinuz_RRQ_Install
        sm4 = StateMessage('8.8.8.9', State.TFTP_RRQ, False, time.time(),
                           'chain.c32')
        assert c.processTftp(sm4) == Checklist.SUCCESS_TFTP and \
         sm4.state == State.Rebooting_HDD
Пример #10
0
    def test_copyAttributes(self):
        b = Backend('sd-stacki-111', 'default', 'default', 'redhat')
        sm1 = StateMessage('10.25.241.111', State.DHCPDISCOVER, False,
                           time.time())
        sm2 = StateMessage('10.25.241.111', State.Profile_XML_Sent, False,
                           time.time())
        b.stateArr.append(sm1)
        b.stateArr.append(sm2)
        b.ipList = ['10.25.241.111']
        b.macList = ['ac:de:ef:dd:11:11']
        b.installKernel = 'kernel1'
        b.installRamdisk = 'ramdisk1'

        b1 = Backend('sd-stacki-112', 'default', 'default', 'redhat')
        smb1 = StateMessage('10.25.241.112', State.DHCPOFFER, False,
                            time.time())
        b1.stateArr.append(smb1)
        b1.ipList = ['10.25.241.112']
        b1.macList = ['ac:de:ef:dd:11:12']
        b1.installKernel = 'kernel2'
        b1.installRamdisk = 'ramdisk2'
        b.copyAttributes(b1)

        assert b.hostName == 'sd-stacki-112'
        assert b.ipList[0] == '10.25.241.112'
        assert b.macList[0] == 'ac:de:ef:dd:11:12'
        assert b.installKernel == 'kernel2'
        assert b.installRamdisk == 'ramdisk2'
        assert b.stateArr[0].state == State.DHCPDISCOVER