def testWriteBuildYaml(self): """Test build.yaml is output correctly.""" context = [ "Target:LinuxDeb", "Platform:Linux", "Target:Linux", "Arch:amd64" ] expected = { "Client.build_environment": "cp27-cp27mu-linux_x86_64", "Client.build_time": "2016-05-24 20:04:25", "Template.build_type": "Release", "Template.build_context": context, "Template.version_major": str(config.CONFIG.Get("Source.version_major")), "Template.version_minor": str(config.CONFIG.Get("Source.version_minor")), "Template.version_revision": str(config.CONFIG.Get("Source.version_revision")), "Template.version_release": str(config.CONFIG.Get("Source.version_release")), "Template.arch": u"amd64" } fd = io.StringIO() with mock.patch.object(rdf_client.Uname, "FromCurrentSystem") as fcs: fcs.return_value.signature.return_value = "cp27-cp27mu-linux_x86_64" with test_lib.FakeTime(1464120265): build_helpers.WriteBuildYaml(fd, context=context) self.assertEqual(yaml.Parse(fd.getvalue()), expected)
def GetClientConfig(filename): """Write client config to filename.""" config_lib.SetPlatformArchContext() config_lib.ParseConfigCommandLine() context = list(grr_config.CONFIG.context) context.append("Client Context") # Disable timestamping so we can get a reproducible and cacheable config file. config_data = build_helpers.GetClientConfig( context, validate=True, deploy_timestamp=False) with open(filename, "w") as fd: fd.write(config_data) build_helpers.WriteBuildYaml(fd, build_timestamp=False, context=context)
def _WriteBuildYaml(self): build_yaml = io.StringIO() build_helpers.WriteBuildYaml(build_yaml, context=self.context) with open(os.path.join(self.universal_root, "build.yaml"), "w") as f: f.write(build_yaml.getvalue())