summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVipin Balachandran <vbala@vmware.com>2018-07-18 04:39:04 -0700
committerGary Kotton <gkotton@vmware.com>2019-03-03 07:00:29 -0800
commit507afb25b19ba8ba86dd97ee4aaa5fe0c16ceea6 (patch)
tree58e38f400b488e6060e1bbd686de90df6148da63
parent69f36d515b6fe3209aa9be56f7eb067a90c596b2 (diff)
downloadoslo-vmware-507afb25b19ba8ba86dd97ee4aaa5fe0c16ceea6.tar.gz
SDRS recommendation for create VM
Adding a method to return SDRS recommendation key for creating a VM. Change-Id: If759114357c2929c813f55d57df3775f0eb9533d Authored-by: Vipin Balachandran <vbala@vmware.com>
-rw-r--r--oslo_vmware/objects/datastore.py33
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):