-def create_vim_res(data, do_notify, do_rollback):
- try:
- for vol in ignore_case_get(data, "volume_storages"):
- create_volume(vol, do_notify, OPT_CREATE_VOLUME)
- for network in ignore_case_get(data, "vls"):
- create_network(network, do_notify, OPT_CREATE_NETWORK)
- for subnet in ignore_case_get(data, "vls"):
- create_subnet(subnet, do_notify, OPT_CREATE_SUBNET)
- for port in ignore_case_get(data, "cps"):
- create_port(port, do_notify, OPT_CREATE_PORT)
- for flavor in ignore_case_get(data, "vdus"):
- create_flavor(flavor, do_notify, OPT_CREATE_FLAVOR)
- for vm in ignore_case_get(data, "vdus"):
- create_vm(vm, do_notify, OPT_CREATE_VM)
- except VimException as e:
- logger.error(e.message)
- do_rollback(e.message)
- except:
- logger.error(traceback.format_exc())
- do_rollback(str(sys.exc_info()))
+def get_res_id(res_cache, res_type, key):
+ if res_type not in res_cache:
+ raise VimException("%s not found in cache" % res_type, ERR_CODE)
+ if key not in res_cache[res_type]:
+ raise VimException("%s(%s) not found in cache" % (res_type, key), ERR_CODE)
+ return res_cache[res_type][key]
+
+def create_vim_res(data, do_notify):
+ vim_cache, res_cache = {}, {}
+ for vol in ignore_case_get(data, "volume_storages"):
+ create_volume(vim_cache, res_cache, vol, do_notify, RES_VOLUME)
+ for network in ignore_case_get(data, "vls"):
+ create_network(vim_cache, res_cache, network, do_notify, RES_NETWORK)
+ for subnet in ignore_case_get(data, "vls"):
+ create_subnet(vim_cache, res_cache, subnet, do_notify, RES_SUBNET)
+ for port in ignore_case_get(data, "cps"):
+ create_port(vim_cache, res_cache, port, do_notify, RES_PORT)
+ for flavor in ignore_case_get(data, "vdus"):
+ create_flavor(vim_cache, res_cache, data, flavor, do_notify, RES_FLAVOR)
+ for vm in ignore_case_get(data, "vdus"):
+ create_vm(vim_cache, res_cache, vm, do_notify, RES_VM)