diff --git a/examples/common.py b/examples/common.py index 275f32e2..cee2e174 100755 --- a/examples/common.py +++ b/examples/common.py @@ -27,6 +27,7 @@ playing with the example scripts against a running OpenStack simpler. """ import argparse +import json import logging import os import subprocess @@ -55,6 +56,10 @@ def find_resource_cls(opts): return getattr(mod, class_str) +def get_data_option(opts): + return json.loads(opts.data) + + def get_open_fds(): '''Return the open file descriptors for current process @@ -166,6 +171,12 @@ def option_parser(): default=env('OS_URL'), help='Defaults to env[OS_URL]', ) + parser.add_argument( + '--data', + metavar='', + default='{}', + help='Json data for command.', + ) parser.add_argument( '-v', '--verbose', action='count', diff --git a/examples/create.py b/examples/create.py new file mode 100644 index 00000000..9745605e --- /dev/null +++ b/examples/create.py @@ -0,0 +1,30 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import sys + +from examples import common +from examples import session + + +def run_create(opts): + sess = session.make_session(opts) + cls = common.find_resource_cls(opts) + obj = cls.new(**common.get_data_option(opts)) + obj.create(sess) + print(str(obj)) + return + + +if __name__ == "__main__": + opts = common.setup() + sys.exit(common.main(opts, run_create))