示例#1
0
    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)
示例#2
0
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)
示例#3
0
 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())