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))
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})
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)
def setUpClass(cls): super(SysVInitStateTests, cls).setUpClass() cls.LoadCheck("services.yaml") cls.parser = linux_service_parser.LinuxSysVInitParser().ParseFiles