3 from jinja2
import Environment
, FileSystemLoader
8 parser
= argparse
.ArgumentParser()
9 parser
.add_argument("--template")
10 parser
.add_argument("--pipeline-info")
11 parser
.add_argument("--base-artifacts-url")
12 parser
.add_argument("--mesa-url")
13 parser
.add_argument("--device-type")
14 parser
.add_argument("--kernel-image-name")
15 parser
.add_argument("--kernel-image-type", nargs
='?', default
="")
16 parser
.add_argument("--gpu-version")
17 parser
.add_argument("--boot-method")
18 parser
.add_argument("--lava-tags", nargs
='?', default
="")
19 parser
.add_argument("--env-vars", nargs
='?', default
="")
20 parser
.add_argument("--deqp-version")
21 parser
.add_argument("--ci-node-index")
22 parser
.add_argument("--ci-node-total")
23 parser
.add_argument("--job-type")
24 args
= parser
.parse_args()
26 env
= Environment(loader
= FileSystemLoader(os
.path
.dirname(args
.template
)), trim_blocks
=True, lstrip_blocks
=True)
27 template
= env
.get_template(os
.path
.basename(args
.template
))
29 env_vars
= "%s CI_NODE_INDEX=%s CI_NODE_TOTAL=%s" % (args
.env_vars
, args
.ci_node_index
, args
.ci_node_total
)
32 values
['pipeline_info'] = args
.pipeline_info
33 values
['base_artifacts_url'] = args
.base_artifacts_url
34 values
['mesa_url'] = args
.mesa_url
35 values
['device_type'] = args
.device_type
36 values
['kernel_image_name'] = args
.kernel_image_name
37 values
['kernel_image_type'] = args
.kernel_image_type
38 values
['gpu_version'] = args
.gpu_version
39 values
['boot_method'] = args
.boot_method
40 values
['tags'] = args
.lava_tags
41 values
['env_vars'] = env_vars
42 values
['deqp_version'] = args
.deqp_version
44 # We need a sane date to check certificates, but don't want to wait to get
45 # time from the network after boot.
46 values
['date'] = datetime
.datetime
.now().strftime("%Y%m%d %H%M")
48 f
= open(os
.path
.splitext(os
.path
.basename(args
.template
))[0], "w")
49 f
.write(template
.render(values
))