コード例 #1
0
ファイル: checks.py プロジェクト: rubicondimitri/grr
 def __init__(self, initializer=None, age=None, reformat=True, **kwargs):
     if isinstance(initializer, dict):
         conf = initializer
         initializer = None
     else:
         conf = kwargs
     super(Hint, self).__init__(initializer=initializer, age=age, **conf)
     if not self.max_results:
         self.max_results = config_lib.CONFIG.Get("Checks.max_results")
     if reformat:
         self.hinter = hints.Hinter(self.format)
     else:
         self.hinter = hints.Hinter()
コード例 #2
0
 def testStatModeFormat(self):
     rdf = rdf_client.StatEntry(st_mode=33204)
     expected = "-rw-rw-r--"
     template = "{st_mode}"
     hinter = hints.Hinter(template=template)
     result = hinter.Render(rdf)
     self.assertEqual(expected, result)
コード例 #3
0
 def testRdfFormatterAttributedDict(self):
     sshd = rdf_config_file.SshdConfig()
     sshd.config = rdf_protodict.AttributedDict(skynet="operational")
     template = "{config.skynet}"
     hinter = hints.Hinter(template=template)
     expected = "operational"
     result = hinter.Render(sshd)
     self.assertEqual(expected, result)
コード例 #4
0
ファイル: hints_test.py プロジェクト: wwwiretap/grr
 def testProcessRdfData(self):
   roy_g_biv = Troubleshooter({"mutant": "Machine Empathy",
                               "commie": "Computer Phreaks"})
   rik_r_oll = Troubleshooter({"mutant": "Ventriloquist",
                               "commie": "Romantics"})
   # This Hinter doesn't modify the default string output of an rdfvalue.
   unformatted = hints.Hinter()
   self.assertEqual(unformatted.Render(rik_r_oll),
                    "commie:Romantics mutant:Ventriloquist")
   self.assertEqual(unformatted.Render(roy_g_biv),
                    "commie:Computer Phreaks mutant:Machine Empathy")
   # This Hinter uses a django template to specify presentation.
   formatted = hints.Hinter(template="{{ mutant }}, {{ commie }}")
   self.assertEqual(formatted.Render(rik_r_oll),
                    "Ventriloquist, Romantics")
   self.assertEqual(formatted.Render(roy_g_biv),
                    "Machine Empathy, Computer Phreaks")
コード例 #5
0
 def testRdfFormatterHandlesKeyValuePair(self):
     """rdfvalue.KeyValue items need special handling to expand k and v."""
     key = rdf_protodict.DataBlob().SetValue("skynet")
     value = rdf_protodict.DataBlob().SetValue([1997])
     rdf = rdf_protodict.KeyValue(k=key, v=value)
     template = "{k}: {v}"
     hinter = hints.Hinter(template=template)
     expected = "skynet: 1997"
     result = hinter.Render(rdf)
     self.assertEqual(expected, result)
コード例 #6
0
 def testRdfFormatterFanOut(self):
     rdf = rdf_protodict.Dict()
     user1 = rdf_client.User(username="******")
     user2 = rdf_client.User(username="******")
     rdf["cataclysm"] = "GreyGoo"
     rdf["thinkers"] = [user1, user2]
     rdf["reference"] = {
         "ecophage": ["bots", ["nanobots", ["picobots"]]],
         "doomsday": {
             "books": ["cats cradle", "prey"]
         }
     }
     template = ("{cataclysm}; {thinkers.username}; {reference.ecophage}; "
                 "{reference.doomsday}\n")
     hinter = hints.Hinter(template=template)
     expected = ("GreyGoo; drexler,joy; bots,nanobots,picobots; "
                 "books:cats cradle,prey")
     result = hinter.Render(rdf)
     self.assertEqual(expected, result)
コード例 #7
0
ファイル: hints_test.py プロジェクト: stephanas50/grr
  def testRdfFormatter(self):
    """Hints format RDF values with arbitrary values and attributes."""
    # Create a complex RDF value
    rdf = rdf_client.ClientSummary()
    rdf.system_info.system = "Linux"
    rdf.system_info.node = "coreai.skynet.com"
    # Users (repeated)
    rdf.users = [rdf_client.User(username=u) for u in ("root", "jconnor")]
    # Interface (nested, repeated)
    addresses = [
        rdf_client.NetworkAddress(human_readable=a)
        for a in ("1.1.1.1", "2.2.2.2", "3.3.3.3")
    ]
    eth0 = rdf_client.Interface(ifname="eth0", addresses=addresses[:2])
    ppp0 = rdf_client.Interface(ifname="ppp0", addresses=addresses[2])
    rdf.interfaces = [eth0, ppp0]

    template = ("{system_info.system} {users.username} {interfaces.ifname} "
                "{interfaces.addresses.human_readable}\n")
    hinter = hints.Hinter(template=template)
    expected = "Linux root,jconnor eth0,ppp0 1.1.1.1,2.2.2.2,3.3.3.3"
    result = hinter.Render(rdf)
    self.assertEqual(expected, result)