diff options
author | Zuul <zuul@review.openstack.org> | 2019-03-07 11:19:17 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2019-03-07 11:19:17 +0000 |
commit | b5dd705a5db5b271d5cab57548f69ad5d7c28c40 (patch) | |
tree | 58e38f400b488e6060e1bbd686de90df6148da63 | |
parent | 8ac76724bae1b92602a0b330b10c57e295852478 (diff) | |
parent | 507afb25b19ba8ba86dd97ee4aaa5fe0c16ceea6 (diff) | |
download | oslo-vmware-b5dd705a5db5b271d5cab57548f69ad5d7c28c40.tar.gz |
Merge "SDRS recommendation for create VM"
-rw-r--r-- | oslo_vmware/objects/datastore.py | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/oslo_vmware/objects/datastore.py b/oslo_vmware/objects/datastore.py index f6ca997..c927781 100644 --- a/oslo_vmware/objects/datastore.py +++ b/oslo_vmware/objects/datastore.py @@ -55,6 +55,15 @@ def get_datastore_by_ref(session, ds_ref): type=props.get("summary.type")) +def get_recommended_datastore(session, sp_spec): + spr = session.invoke_api( + session.vim, + "RecommendDatastores", + session.vim.service_content.storageResourceManager, + storageSpec=sp_spec) + return spr.recommendations[0].key + + def get_recommended_datastore_clone(session, dsc_ref, clone_spec, @@ -75,12 +84,24 @@ def get_recommended_datastore_clone(session, clone_name=name, res_pool_ref=resource_pool, host_ref=host_ref) - spr = session.invoke_api( - session.vim, - "RecommendDatastores", - session.vim.service_content.storageResourceManager, - storageSpec=sp_spec) - return spr.recommendations[0].key + return get_recommended_datastore(session, sp_spec) + + +def get_recommended_datastore_create(session, + dsc_ref, + config_spec, + resource_pool, + folder, + host_ref=None): + """Returns SDRS recommendation key for creating a VM.""" + sp_spec = vim_util.storage_placement_spec(session.vim.client.factory, + dsc_ref, + 'create', + config_spec=config_spec, + folder=folder, + res_pool_ref=resource_pool, + host_ref=host_ref) + return get_recommended_datastore(session, sp_spec) def get_dsc_ref_and_name(session, dsc_val): |