Пример #1
0
    def setUp(self, *args, **kwargs):
        super(LinuxSysVInitParserTest, self).setUp(*args, **kwargs)
        if self.results is None:
            # Create a fake filesystem.
            dirs = [
                "/etc", "/etc/rc1.d", "/etc/rc2.d", "/etc/rc6.d", "/etc/rcS.d"
            ]
            d_stat, d_files = parsers_test_lib.GenTestData(dirs,
                                                           [""] * len(dirs),
                                                           st_mode=16877)
            files = ["/etc/rc.local", "/etc/ignoreme", "/etc/rc2.d/S20ssh"]
            f_stat, f_files = parsers_test_lib.GenTestData(
                files, [""] * len(files))
            links = [
                "/etc/rc1.d/S90single", "/etc/rc1.d/K20ssh",
                "/etc/rc1.d/ignore", "/etc/rc2.d/S20ntp", "/etc/rc2.d/S30ufw",
                "/etc/rc6.d/K20ssh", "/etc/rcS.d/S20firewall"
            ]
            l_stat, l_files = parsers_test_lib.GenTestData(links,
                                                           [""] * len(links),
                                                           st_mode=41471)
            stats = d_stat + f_stat + l_stat
            files = d_files + f_files + l_files

            parser = linux_service_parser.LinuxSysVInitParser()
            self.results = list(parser.ParseMultiple(stats, files, None))
Пример #2
0
 def GenSysVInitData(self, links):
   """Create some Sys V init host data."""
   return self.GenFileData(
       artifact="LinuxServices",
       data={x: "" for x in links},
       parser=linux_service_parser.LinuxSysVInitParser(),
       modes={x: {
           "st_mode": 41471
       } for x in links})
Пример #3
0
    def testParseServices(self):
        knowledge_base = rdf_client.KnowledgeBase()

        paths = [
            # Directories.
            "/etc",
            "/etc/rc1.d",
            "/etc/rc2.d",
            "/etc/rc6.d",
            "/etc/rcS.d",
            # Files.
            "/etc/rc.local",
            "/etc/ignoreme",
            "/etc/rc2.d/S20ssh",
            # Links.
            "/etc/rc1.d/S90single",
            "/etc/rc1.d/K20ssh",
            "/etc/rc1.d/ignore",
            "/etc/rc2.d/S20ntp",
            "/etc/rc2.d/S30ufw",
            "/etc/rc6.d/K20ssh",
            "/etc/rcS.d/S20firewall",
        ]
        pathspecs = [rdf_paths.PathSpec(path=path) for path in paths]
        filedescs = [io.BytesIO(b"") for _ in paths]

        parser = linux_service_parser.LinuxSysVInitParser()
        results = list(parser.ParseFiles(knowledge_base, pathspecs, filedescs))

        services = {service.name: service for service in results}
        self.assertLen(services, 5)
        self.assertCountEqual(["single", "ssh", "ntp", "ufw", "firewall"],
                              services)
        self.assertCountEqual([2], services["ssh"].start_on)
        self.assertCountEqual([1, 6], services["ssh"].stop_on)
        self.assertTrue(services["ssh"].starts)
        self.assertCountEqual([1], services["firewall"].start_on)
        self.assertTrue(services["firewall"].starts)
Пример #4
0
    def setUpClass(cls):
        super(SysVInitStateTests, cls).setUpClass()

        cls.LoadCheck("services.yaml")
        cls.parser = linux_service_parser.LinuxSysVInitParser().ParseFiles