mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
Merge pull request #1451 from mjblack/vsphere_create_folder
Added request create_folder for vsphere compute.
This commit is contained in:
commit
44e949168c
2 changed files with 23 additions and 0 deletions
|
@ -59,6 +59,7 @@ module Fog
|
|||
request :vm_reconfig_memory
|
||||
request :vm_reconfig_cpus
|
||||
request :vm_config_vnc
|
||||
request :create_folder
|
||||
|
||||
module Shared
|
||||
|
||||
|
|
22
lib/fog/vsphere/requests/compute/create_folder.rb
Normal file
22
lib/fog/vsphere/requests/compute/create_folder.rb
Normal 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
|
Loading…
Reference in a new issue