Merge pull request #1451 from mjblack/vsphere_create_folder

Added request create_folder for vsphere compute.
This commit is contained in:
Ohad Levy 2013-01-09 02:34:45 -08:00
commit 44e949168c
2 changed files with 23 additions and 0 deletions

View File

@ -59,6 +59,7 @@ module Fog
request :vm_reconfig_memory
request :vm_reconfig_cpus
request :vm_config_vnc
request :create_folder
module Shared

View File

@ -0,0 +1,22 @@
module Fog
module Compute
class Vsphere
class Real
def create_folder(datacenter, path, name)
#Path cannot be nil but it can be an empty string
raise ArgumentError, "Path cannot be nil" if path.nil?
parent_folder = get_raw_vmfolder(path, datacenter)
begin
new_folder = parent_folder.CreateFolder(:name => name)
# output is cleaned up to return the new path
# new path will be path/name, example: "Production/Pool1"
new_folder.path.reject { |a| a.first.class == "Folder" }.collect { |a| a.first.name }.join("/").sub(/^\/?Datacenters\/#{datacenter}\/vm\/?/, '')
rescue => e
raise e, "failed to create folder: #{e}"
end
end
end
end
end
end