audit_templates:
audit_templates_per_admin: 666
fill_strategy: "random"
params:
- goal:
name: "workload_balancing"
strategy:
name: "workload_stabilization"
- goal:
name: "dummy"
strategy:
name: "dummy"
audit_templates:
audit_templates_per_admin: 666
fill_strategy: "round_robin"
params:
- goal:
name: "workload_balancing"
strategy:
name: "workload_stabilization"
- goal:
name: "dummy"
strategy:
name: "dummy"
# ----context section from config ^^
CONFIG_SCHEMA = {
"type": "object"
"$schema": consts.JSON_SCHEMA,
"fill_strategy": {"enum": ["round_robin", "random", None]}
"params": {
"type": "array",
"minItems": 1,
"uniqueItems": True,
"properties": {
"goal": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
},
"strategy": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
},
"extra": {
"type": "object"
}
},
},
"additionalProperties": False,
"required": ["params"]
}
DEFAULT_CONFIG = {
"audit_templates_per_admin": 1
"fill_strategy": "round_robin"
}
for i in range(self.config.get("audit_templates_per_admin")):
cfg_size = len(self.config)
if self.config["fill_strategy"] == "round_robin":
audit_params = self.config["params"][i % cfg_size]
else if self.config["fill_strategy"] == "round_robin":
audit_params = random.choose(self.config["params"])
audit_params.update({"extra": {}})
goal_id = types.WatcherGoal.transform(clients=clients,
resource_config=goal)
strategy_id = types.WatcherStrategy.transform(
clients=clients, resource_config=strategy)
audit_template = watcher_scenario._create_audit_template(**audit_params)
self.context["audit_templates"].append(audit_template.uuid)
YXVkaXRfdGVtcGxhdGVzOgogIGF1ZGl0X3RlbXBsYXRlc19wZXJfYWRtaW46IDY2NgogIGZpbGxfc3RyYXRlZ3k6ICJyYW5kb20iCiAgcGFyYW1zOgoJICAtIGdvYWw6CgkgICAgICAgIG5hbWU6ICJ3b3JrbG9hZF9iYWxhbmNpbmciCgkgICAgc3RyYXRlZ3k6CgkgICAgICAgIG5hbWU6ICJ3b3JrbG9hZF9zdGFiaWxpemF0aW9uIgoJICAtIGdvYWw6CgkgICAgICAgIG5hbWU6ICJkdW1teSIKCSAgICBzdHJhdGVneToKCSAgICAgICAgbmFtZTogImR1bW15IgoKYXVkaXRfdGVtcGxhdGVzOgogIGF1ZGl0X3RlbXBsYXRlc19wZXJfYWRtaW46IDY2NgogIGZpbGxfc3RyYXRlZ3k6ICJyb3VuZF9yb2JpbiIKICBwYXJhbXM6CgkgIC0gZ29hbDoKCSAgICAgICAgbmFtZTogIndvcmtsb2FkX2JhbGFuY2luZyIKCSAgICBzdHJhdGVneToKCSAgICAgICAgbmFtZTogIndvcmtsb2FkX3N0YWJpbGl6YXRpb24iCgkgIC0gZ29hbDoKCSAgICAgICAgbmFtZTogImR1bW15IgoJICAgIHN0cmF0ZWd5OgoJICAgICAgICBuYW1lOiAiZHVtbXkiICAKCiMgLS0tLWNvbnRleHQgc2VjdGlvbiBmcm9tIGNvbmZpZyBeXgoKCgpDT05GSUdfU0NIRU1BID0gewoJCSJ0eXBlIjogIm9iamVjdCIKICAgICAgICAiJHNjaGVtYSI6IGNvbnN0cy5KU09OX1NDSEVNQSwKICAgICAgICAKICAgICAgICAiZmlsbF9zdHJhdGVneSI6IHsiZW51bSI6IFsicm91bmRfcm9iaW4iLCAicmFuZG9tIiwgTm9uZV19CiAgICAgICAgInBhcmFtcyI6IHsKICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAibWluSXRlbXMiOiAxLAogICAgICAgIAkidW5pcXVlSXRlbXMiOiBUcnVlLAogICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICJnb2FsIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJzdHJhdGVneSI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiZXh0cmEiOiB7CiAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogRmFsc2UsCiAgICAgICAgInJlcXVpcmVkIjogWyJwYXJhbXMiXQogICAgfQogICAgCkRFRkFVTFRfQ09ORklHID0gewoJImF1ZGl0X3RlbXBsYXRlc19wZXJfYWRtaW4iOiAxCgkiZmlsbF9zdHJhdGVneSI6ICJyb3VuZF9yb2JpbiIKfQoKCgpmb3IgaSBpbiByYW5nZShzZWxmLmNvbmZpZy5nZXQoImF1ZGl0X3RlbXBsYXRlc19wZXJfYWRtaW4iKSk6CgljZmdfc2l6ZSA9IGxlbihzZWxmLmNvbmZpZykKCWlmIHNlbGYuY29uZmlnWyJmaWxsX3N0cmF0ZWd5Il0gPT0gInJvdW5kX3JvYmluIjoKCQlhdWRpdF9wYXJhbXMgPSBzZWxmLmNvbmZpZ1sicGFyYW1zIl1baSAlIGNmZ19zaXplXQoJZWxzZSBpZiBzZWxmLmNvbmZpZ1siZmlsbF9zdHJhdGVneSJdID09ICJyb3VuZF9yb2JpbiI6CgkJYXVkaXRfcGFyYW1zID0gcmFuZG9tLmNob29zZShzZWxmLmNvbmZpZ1sicGFyYW1zIl0pCglhdWRpdF9wYXJhbXMudXBkYXRlKHsiZXh0cmEiOiB7fX0pCgkKICAgIGdvYWxfaWQgPSB0eXBlcy5XYXRjaGVyR29hbC50cmFuc2Zvcm0oY2xpZW50cz1jbGllbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZV9jb25maWc9Z29hbCkKICAgIHN0cmF0ZWd5X2lkID0gdHlwZXMuV2F0Y2hlclN0cmF0ZWd5LnRyYW5zZm9ybSgKICAgICAgICBjbGllbnRzPWNsaWVudHMsIHJlc291cmNlX2NvbmZpZz1zdHJhdGVneSkKCiAgICBhdWRpdF90ZW1wbGF0ZSA9IHdhdGNoZXJfc2NlbmFyaW8uX2NyZWF0ZV9hdWRpdF90ZW1wbGF0ZSgqKmF1ZGl0X3BhcmFtcykKICAgIHNlbGYuY29udGV4dFsiYXVkaXRfdGVtcGxhdGVzIl0uYXBwZW5kKGF1ZGl0X3RlbXBsYXRlLnV1aWQp
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/py_compile.py", line 117, in compile
raise py_exc
py_compile.PyCompileError: File "prog.py", line 1
audit_templates:
^
SyntaxError: invalid syntax