Пример #1
0
    def reportDetailsTable(self,
                           pageName,
                           container,
                           headers,
                           headersDescription,
                           details,
                           detailsTranslation,
                           thumb=None):
        page = self.reportManager.createPage(self.__reportName, pageName)
        reportTable = page.addDetailTable(pageName, headersDescription)

        for record in container:
            headersTable = ()
            flag = None
            for header in headers:
                res = getattr(record, header)()
                if res != None:
                    flag = 1
                headersTable += (res, )
            if not flag:
                continue

            tempTable = []
            for idx in range(len(details)):
                try:
                    res = getattr(record, details[idx])()
                    if res:
                        tempTable.append((
                            detailsTranslation[idx],
                            res,
                        ))
                except:
                    pass

            thumbData = None
            if thumb:
                thumbData = ()
                for f in thumb:
                    try:
                        res = getattr(record, f)()
                        if res:
                            thumbData += (res, )
                    except Exception as e:
                        pass
                if len(thumbData) != len(thumb):
                    thumbData = None

            detailsTable = TableFragment(
                self.translator.translate("Details"),
                self.translator.translate(['Description', "Value"]), tempTable)
            reportTable.addRow(headersTable, detailsTable, thumbData)

        self.reportManager.addPage(page)
Пример #2
0
    def generateRow(self, proc):
        tabFragment = TabFragment("")

        if proc.args and len(proc.args) > 0:
            argumentTable = []
            for argname in proc.args.keys():
                var = proc.args[argname]
                if var.type() == typeId.List:
                    i = 1
                    vlist = var.value()
                    for vvar in vlist:
                        row = [argname + ' (' + str(i) + ')', str(vvar)]
                        argumentTable.append(row)
                        i += 1
                else:
                    row = [argname, str(var)]
                    argumentTable.append(row)
            tabFragment.addTab(
                "Arguments",
                TableFragment("", ["argument", "value"], argumentTable))

        if len(proc.res):
            resultTable = []
            self.variantToTable("", Variant(proc.res), resultTable)
            tabFragment.addTab(
                "Result", TableFragment("", ["result", "value"], resultTable))

        if proc.error_result != '':
            tabFragment.addTab(
                "Error",
                TextFragment("", proc.error_result.replace('\n', '<br>')))
        row = ([
            str(proc.pid),
            str(proc.name),
            str(proc.state),
            str(proc.stateinfo),
            str(self.procDuration(proc)),
        ], tabFragment)
        return row
Пример #3
0
 def report(self, page):
     headerProperties = ['ProductName', 'RegisteredOwner', 'InstallDate']
     versionTable = page.addDetailTable(
         self.translator.translate("Version"),
         self.translator.translate(headerProperties))
     for node, versions in self.__versions.iteritems():
         for version in versions:
             detailTable = TableFragment(
                 self.translator.translate("Details"),
                 self.translator.translate(["Description", "Value"]),
                 version.details())
             versionTable.addRow(version.table(headerProperties),
                                 detailTable)
Пример #4
0
    def report(self, root):
        self.reportManager = ReportManager()
        self.translator = AccountTranslator()
        for nodeID in self.__accountInfo.iterkeys():
            node = VFS.Get().getNodeById(nodeID)
            info = self.__accountInfo[nodeID]
            categoryName = self.translator.translate(
                "Operating system") + " " + root.name().translate(
                    None, "!@#$%^&'\/?")
            page = self.reportManager.createPage(
                categoryName,
                self.translator.translate("Users") + " (" + node.name() + ')')
            tableHeader = ["userName", "RID", "lastLoginDate", "logins"]
            headerTranslation = []
            translationMap = {}
            translationMap.update(UserV.Translate().details())
            translationMap.update(UserF.Translate().details())
            for name in tableHeader:
                headerTranslation.append(translationMap[name])

            userTable = page.addDetailTable(
                self.translator.translate("Accounts"), headerTranslation)
            for user in info.users():
                tempTable = []
                for attr, description in user.details().iteritems():
                    try:
                        value = getattr(user, attr)()
                        if value:
                            tempTable.append((description, value))
                    except AttributeError:
                        pass
                detailTable = TableFragment(
                    self.translator.translate("Details"), [
                        self.translator.translate('Key'),
                        self.translator.translate('Value')
                    ], tempTable)
                userTable.addRow((user.userName(), user.RID(),
                                  user.lastLoginDate(), user.logins()),
                                 detailTable)

            groupTable = []
            gtr = GroupC.Translate()
            headerTranslation = []
            for m in ["name", "ID", "members"]:
                headerTranslation.append(gtr.translate(m))
            for group in info.groups():
                groupTable.append((group.name(), group.ID(), group.members()))
            page.addTable(gtr.translate("groups"), headerTranslation,
                          groupTable)

            self.reportManager.addPage(page)
Пример #5
0
 def report(self, page):
     translator = NetworkTranslator()
     interfaceTable = page.addDetailTable(
         translator.translate("Interface"),
         translator.translate(
             ['Name', 'IPAddress', 'Mask', 'Gateway', 'DomainName']))
     for node, interfaces in self.__interfaces.iteritems():
         for interface in interfaces:
             detailTable = TableFragment(translator.translate("Details"), [
                 translator.translate('Name'),
                 translator.translate('Value')
             ], interface.details())
             ipConfig = interface.ipConfig()
             name = interface.name()
             if not (name == interface.guid()
                     and ipConfig == (None, None, None, None)):
                 interfaceTable.addRow((name, ) + ipConfig, detailTable)
Пример #6
0
    def __init__(self, parent):
        self.ppStateWidget = parent
        self.tree = parent.tree
        reportManager = ReportManager()
        page = reportManager.createPage("Information", "Scanner")
        page.addText("Duration", str(self.ppStateWidget.lastDuration))

        tableHeader = [
            "Root",
            "Items",
        ]
        detailTable = page.addDetailTable("Scanner", tableHeader)
        for itemId in xrange(self.tree.topLevelItemCount()):
            item = self.tree.topLevelItem(itemId)
            modulesTable = []
            moduleTableName = ""
            moduleFragment = None
            if item.childCount() <= 1:
                for childID in xrange(item.childCount()):
                    child = item.child(childID)
                    moduleTableName = str(child.text(0).toUtf8()) + " (" + str(
                        child.text(1).toUtf8()) + ")"
                    if child.childCount() > 0:
                        for grandChildID in xrange(child.childCount()):
                            grandChild = child.child(grandChildID)
                            modulesTable.append([
                                str(grandChild.text(0).toUtf8()),
                                str(grandChild.text(1).toUtf8())
                            ])
                if moduleTableName != "":
                    moduleFragment = TableFragment(moduleTableName,
                                                   ["Module", "Count"],
                                                   modulesTable)
                row = [str(item.text(0).toUtf8()), str(item.text(1).toUtf8())]
                detailTable.addRow(row, moduleFragment)
            elif item.childCount() > 1:  #Analyse
                analyseTable = []
                for childID in xrange(item.childCount()):
                    child = item.child(childID)
                    row = [str(child.text(0).toUtf8())]
                    analyseTable.append(row)
                page.addTable("Analyse", ["Module"], analyseTable)
        reportManager.addPage(page)
Пример #7
0
 def report(self):
    tables = []
    ncount = 0
    nodesHeader = set() 
    for key in self.__keys:
       for node, time in key.times().iteritems():
          nodesHeader.add(node.absolute())        
       nodesHeader = ['key'] + list(nodesHeader)
       rows = []
       for node, time in key.times().iteritems():
          row = []
          for x in range(len(nodesHeader)):
            row.append(None)
          idx = nodesHeader.index(node.absolute())
          row.remove(idx)
          row.insert(idx, time)
       rows.append(row)
       table = TableFragment('', nodesHeader, rows)
       tables.append(table)
    return tables
Пример #8
0
 def report(self, page):
     translator = NetworkTranslator()
     if len(self.__networks) == 0:
         return
     header = translator.translate(
         ['Name', 'FirstConnection', 'LastConnection'])
     networkTable = page.addDetailTable(translator.translate("Network"),
                                        header)
     for node, networks in self.__networks.iteritems():
         for network in networks:
             detailTable = TableFragment(
                 translator.translate("Details"),
                 translator.translate(
                     ['DefaultGatewayMAC', 'DomainNameSuffix']), [(
                         network.defaultGatewayMac(),
                         network.dnsSuffix(),
                     )])
             networkTable.addRow((
                 network.description(),
                 network.dateCreated(),
                 network.dateLastConnected(),
             ), detailTable)
Пример #9
0
    def reportCalls(self):
        page = self.reportManager.createPage(
            self.__reportName, self.translator.translate("Calls"))
        headersDescription = self.translator.translate(
            ["Members", "begin_timestamp", "is_incoming"])
        reportTable = page.addDetailTable(self.translator.translate("Calls"),
                                          headersDescription)
        details = []
        for call in self.__containers['Calls']:
            callMembers = self.findCallMemberByName(call.name())

            memberName = []
            if callMembers:
                for member in callMembers:
                    memberName.append(member.dispname())
            headerTable = [
                memberName,
                call.begin_timestamp(),
                call.is_incoming()
            ]

            detailsTable = None
            if callMembers:
                tempTable = []
                for member in callMembers:
                    tempTable.append(
                        (member.identity(), member.dispname(),
                         member.start_timestamp(), member.call_duration()), )
                detailsHeaders = self.translator.translate([
                    "identity", "dispname", "start_timestamp", "call_duration"
                ])
                detailsTable = TableFragment(
                    self.translator.translate("Details"), detailsHeaders,
                    tempTable)
            reportTable.addRow(headerTable, detailsTable)
        self.reportManager.addPage(page)
Пример #10
0
 def addTable(self, title, head, data):
     tableFragment = TableFragment(title, head, data)
     tableFragment.connection(self)
     self.fragments.append(tableFragment)
     return tableFragment