def setUp(self):
        self.logbuf = StringIO.StringIO()
        openLog(self.logbuf, logging.NOTSET)

        self.state = [
            MACPCI("01:23:45:67:89:0a",
                   "0000:00:01.0",
                   kname="side-11-eth2",
                   ppn="p1p1",
                   label="Ethernet1"),
            MACPCI("03:23:45:67:89:0a",
                   "0000:00:10.0",
                   kname="side-12-eth34",
                   ppn="p2p1",
                   label=""),
            MACPCI("03:23:45:67:89:0a",
                   "0000:00:02.0",
                   kname="side-4-eth23",
                   ppn="em1",
                   label=""),
            MACPCI("04:23:45:67:89:0a",
                   "0000:00:10.1",
                   kname="side-123-eth23",
                   ppn="p2p2",
                   label="")
        ]
    def setUp(self):
        """
        Set up a lot of MACPCI objects.

        This reflection magic creates many self.cXXX objects where XXX
        represents the indicies of mac, pci and eth names.
        e.g. self.c123 means the 1st mac, 2nd pci and 3rd eth
             self.c221 means the 2nd mac, 2nd pci and 1st eth

        In addition, set up equivelent self.sXXX objects which have a kname
        set to None and a tname set to the 'eth'
        """

        self.siobuff = StringIO.StringIO()
        openLog(self.siobuff)


        macs = ["ab:cd:ef:01:23:45", "02:46:8A:CE:15:79", "ab:ba:ab:ba:ab:ba"]
        pcis = ["0000:00:00.1", "0000:00:00.2", "0001:00:00.2"]
        eths = ["eth1", "eth2", "eth3"]

        for (mn, m) in enumerate(macs):
            for (pn, p) in enumerate(pcis):
                for (en, e) in enumerate(eths):
                    setattr(self, "c%d%d%d" % (mn+1, pn+1, en+1),
                            MACPCI(m, p, e, None))
                    setattr(self, "s%d%d%d" % (mn+1, pn+1, en+1),
                            MACPCI(m, p, None, e))
示例#3
0
def main(args):
    results = {}
    dests = []
    ui = None

    xelogging.openLog('/dev/tty3')

    if len(args) == 0:
        ui = tui
    else:
        dests = args

    if ui:
        ui.init_ui()

        results['network-hardware'] = netutil.scanConfiguration()

        local_dest = lambda a: a['dest-media'] == 'local'
        remote_dest = lambda a: a['dest-media'] != 'local'

        seq = [
            uicontroller.Step(select_report_media),
            uicontroller.Step(tui.network.requireNetworking,
                              predicates=[remote_dest]),
            uicontroller.Step(get_local_disk, predicates=[local_dest]),
            uicontroller.Step(select_report_dest),
        ]
        rc = uicontroller.runSequence(seq, results)
        if rc == uicontroller.RIGHT_FORWARDS:
            xelogging.log("ANSWERS DICTIONARY:")
            xelogging.log(str(results))

            if results['dest-media'] == 'local':
                dests.append("dev://" + results['dest-address'])
            elif results['dest-media'] == 'ftp':
                dests.append(results['dest-address'])
            elif results['dest-media'] == 'nfs':
                dests.append("nfs://" + results['dest-address'])

    # create tarball
    collectLogs('/tmp', '/tmp')

    report_saved = False
    for dest in dests:
        xelogging.log("Saving report to: " + dest)
        try:
            a = xcp.accessor.createAccessor(dest, False)
            a.start()
            fh = open('/tmp/support.tar.bz2')
            a.writeFile(fh, 'support.tar.bz2')
            fh.close()
            a.finish()
            report_saved = True
        except Exception, e:
            xelogging.log("Failed: " + str(e))
            report_saved = False
示例#4
0
文件: report.py 项目: xtha/pxe
def main(args):
    results = {}
    dests = []
    ui = None

    xelogging.openLog('/dev/tty3')

    if len(args) == 0:
        ui = tui
    else:
        dests = args
        
    if ui:
        ui.init_ui()

        results['network-hardware'] = netutil.scanConfiguration()

        local_dest = lambda a: a['dest-media'] == 'local'
        remote_dest = lambda a: a['dest-media'] != 'local'

        seq = [
            uicontroller.Step(select_report_media),
            uicontroller.Step(tui.network.requireNetworking, predicates = [remote_dest]),
            uicontroller.Step(get_local_disk, predicates = [local_dest]),
            uicontroller.Step(select_report_dest),
            ]
        rc = uicontroller.runSequence(seq, results)
        if rc == uicontroller.RIGHT_FORWARDS:
            xelogging.log("ANSWERS DICTIONARY:")
            xelogging.log(str(results))

            if results['dest-media'] == 'local':
                dests.append("dev://" + results['dest-address'])
            elif results['dest-media'] == 'ftp':
                dests.append(results['dest-address'])
            elif results['dest-media'] == 'nfs':
                dests.append("nfs://" + results['dest-address'])

    # create tarball
    collectLogs('/tmp', '/tmp')

    report_saved = False
    for dest in dests:
        xelogging.log("Saving report to: " + dest)
        try:
            a = xcp.accessor.createAccessor(dest, False)
            a.start()
            fh = open('/tmp/support.tar.bz2')
            a.writeFile(fh, 'support.tar.bz2')
            fh.close()
            a.finish()
            report_saved = True
        except Exception, e:
            xelogging.log("Failed: " + str(e))
            report_saved = False
 def setUp(self):
     self.logbuf = StringIO.StringIO()
     openLog(self.logbuf, logging.NOTSET)
 def setUp(self):
     self.siobuff = StringIO.StringIO()
     openLog(self.siobuff, logging.NOTSET)