This is the JsonSubs common library. |
Default Functions for JsonSubs Library
list of weak references to the object (if defined)
Builtin Func: CSelect
{
"$<CSelect>": [ 5, [ "apples", "grapes", "mangoes" ] ]
}
JSON Template Substitution Library
Detail Examples:
>>> from opslib.icsutils.jsonsubs import JsonSubs
>>> engine = JsonSubs()
>>> test_data = ["-", ["a", "b", "c"]]
>>> print engine.builtin["Join"](test_data)
a-b-c
>>> import opslib
>>> from opslib.icsutils.jsonsubs import JsonSubs
>>> engine = JsonSubs()
>>> from opslib.icsec2 import IcsEc2
>>> ec2 = IcsEc2("us-west-2")
>>> func = ec2.conn.get_all_instances
>>> engine.register_builtin({"GetAllInstances": func})
>>> print engine.builtin["GetAllInstances"]()
[ Reservation:r-be459c8c,
Reservation:r-e6822ed4,
Reservation:r-e66dc3d4,
Reservation:r-1608a124,
Reservation:r-ce0da4fc ]
>>> import opslib
>>> from opslib.icsutils.jsonsubs import JsonSubs
>>> engine = JsonSubs()
>>> from opslib.icsec2 import IcsEc2
>>> ec2 = IcsEc2("us-west-2")
>>> func = ec2.get_instance_tags
>>> engine.register_builtin({"GetInstanceTags": func})
>>> default_json = {
... "version": "1.2.0",
... "Ids": [ "25d6d811", "12345678" ],
... "RegionMaps": {
... "us-east-1": { "32": "ami-xx", "64": "ami-yy" },
... "us-west-2": { "32": "ami-xy", "64": "ami-yx" }
... }
... }
>>> output_json = {
... "Version": "$(version)",
... "Id": { "$<Select>": [0, "$[Ids]"] },
... "UserData": { "$<Base64>": "$(Id)" },
... "Maps": "${RegionMaps}",
... "InstanceId": { "$<Join>": [ "-", [ "i", "$(Id)" ] ] },
... "Tags": { "$<GetInstanceTags>": "$(InstanceId)" }
... }
>>> instance_json = output_json
>>> print engine.tplsub(output_json, instance_json, default_json)
{
"Id": "25d6d811",
"InstanceId": "i-25d6d811",
"Maps": {
"us-east-1": {
"32": "ami-xx",
"64": "ami-yy"
},
"us-west-2": {
"32": "ami-xy",
"64": "ami-yx"
}
},
"Tags": "ec2-50-112-231-217.us-west-2.compute.amazonaws.com",
"UserData": "MjVkNmQ4MTE=",
"Version": "1.2.0"
}
list of weak references to the object (if defined)
Builtin Func: Mapping
{
"$<Mapping>": [ "MapName", "TopLevelKey", ... ]
}
Register Customized Functions
Parameters: | customized_func (dict) – describes customized functions to register |
---|
{
"Join": DefaultFunc.func_join,
"FindAMI": DefaultFunc.func_find_ami,
"GetInstanceTags": IcsEc2.get_instance_tags
}
Entry for JSON Template Substitution (dict)