IcsUtils.JsonSubs Common Library

JsonSubs: Library for JSON Template Substitutions

This is the JsonSubs common library.
class opslib.icsutils.jsonsubs.DefaultFunc[source]

Default Functions for JsonSubs Library

__dict__ = dict_proxy({'func_join': <staticmethod object at 0x59f5de0>, '__module__': 'opslib.icsutils.jsonsubs', '__doc__': '\n Default Functions for JsonSubs Library\n ', 'func_circle_select': <staticmethod object at 0x5bef670>, '__dict__': <attribute '__dict__' of 'DefaultFunc' objects>, 'func_include': <staticmethod object at 0x5806cc8>, '__weakref__': <attribute '__weakref__' of 'DefaultFunc' objects>, 'func_select': <staticmethod object at 0x5bef638>, 'func_base64': <staticmethod object at 0x5bef600>})
__module__ = 'opslib.icsutils.jsonsubs'
__weakref__

list of weak references to the object (if defined)

static func_base64(params)[source]

Builtin Func: Base64

{
    "$<Base64>": "xxxxxxxx"
}
static func_circle_select(index, params)[source]

Builtin Func: CSelect

{
    "$<CSelect>": [ 5, [ "apples", "grapes", "mangoes" ] ]
}
static func_include(*args)[source]

Builtin Func: Include

{
    "$<Include>": [ "a.json", "b.json" ]
}
static func_join(delimiter, params)[source]

Builtin Func: Join

{
    "$<Join>": ["-", ["a", "b", "c"] ]
}
static func_select(index, params)[source]

Builtin Func: Select

{
    "$<Select>": [ 1, [ "apples", "grapes", "mangoes" ] ]
}
class opslib.icsutils.jsonsubs.JsonSubs[source]
__dict__ = dict_proxy({'__module__': 'opslib.icsutils.jsonsubs', 'merge_dict': <function merge_dict at 0x5bee578>, '__dict__': <attribute '__dict__' of 'JsonSubs' objects>, 'tplsub_dict': <function tplsub_dict at 0x5bee1b8>, 'do_sub': <function do_sub at 0x5bee488>, 'merge_str': <function merge_str at 0x5bee5f0>, 'tplsub': <function tplsub at 0x5beed70>, 'func_mapping': <function func_mapping at 0x5bee758>, '__weakref__': <attribute '__weakref__' of 'JsonSubs' objects>, 'merge_list': <function merge_list at 0x5bee500>, '__init__': <function __init__ at 0x5bee7d0>, 'search': <function search at 0x5bee398>, 'tplsub_func': <function tplsub_func at 0x5bee230>, 'tplsub_list': <function tplsub_list at 0x5bee140>, 'register_builtin': <function register_builtin at 0x5bee6e0>, 'fp_to_json': <staticmethod object at 0x5bef718>, 'tplsubs': <function tplsubs at 0x5beeed8>, 'update_str': <function update_str at 0x5bee0c8>, 'strip_comment': <staticmethod object at 0x5bef6e0>, 'tplsub_str': <function tplsub_str at 0x5bee050>, 'pattern': <function pattern at 0x5bee410>, 'format_str': <function format_str at 0x5bee320>, '__doc__': None, 'merge_map': <function merge_map at 0x5bee668>, 'type_of': <function type_of at 0x5bee2a8>})
__init__()[source]

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"
}
Notes:
  • Do NOT define Variables in output_json, otherwise, please merge output_json into instance_json or default_json
  • Variables should be defined in instance_json or default_json
  • If no such instance_json and default_json, take output_json also as instance_json
  • If no such Variables found in instance_json, use one in default_json
__module__ = 'opslib.icsutils.jsonsubs'
__weakref__

list of weak references to the object (if defined)

do_sub(value, instance_vars=None, default_vars=None)[source]

Execute JSON Template Substitutions

format_str(str_value, new_str)[source]
static fp_to_json(fp, **kwargs)[source]
func_mapping(map_name, *args)[source]

Builtin Func: Mapping

{
    "$<Mapping>": [ "MapName", "TopLevelKey", ... ]
}
merge_dict(key, instance_vars=None, default_vars=None)[source]
merge_list(key, instance_vars=None, default_vars=None)[source]
merge_map(key, instance_vars=None, default_vars=None)[source]
merge_str(key, instance_vars=None, default_vars=None)[source]
pattern(esc='$')[source]
register_builtin(customized_func)[source]

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
}
search(value, esc='$')[source]
static strip_comment(data)[source]
tplsub(value, instance_vars=None, default_vars=None)[source]

Entry for JSON Template Substitution (dict)

tplsub_dict(dict_value, instance_vars=None, default_vars=None)[source]
tplsub_func(func, value, instance_vars=None, default_vars=None)[source]
tplsub_list(list_value, instance_vars=None, default_vars=None)[source]
tplsub_str(str_value, instance_vars=None, default_vars=None)[source]
tplsubs(output_fp, instance_fp=None, default_fp=None)[source]

Entry for JSON Template Substitution (fp)

type_of(value)[source]
update_str(str_value, new_str, instance_vars=None, default_vars=None)[source]

Indices and tables

Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.