Module: Three::Par
- Defined in:
- lib/three/par.rb,
lib/three/par/version.rb
Constant Summary collapse
- VERSION =
"0.1.0"
Instance Method Summary collapse
- #create_cpg(node, session_key, payload) ⇒ Object
- #create_host(node, session_key, payload) ⇒ Object
- #create_vlun(node, session_key, payload) ⇒ Object
- #create_volume(node, session_key, payload) ⇒ Object
- #delete_cpg(node, cpg_name, session_key) ⇒ Object
- #delete_host(node, host_name, session_key) ⇒ Object
- #delete_session_key(node, session_key) ⇒ Object
- #delete_volume(node, volume, session_key) ⇒ Object
- #display_capacity(node, capacity_file, session_key) ⇒ Object
- #display_cpgs(node, cpg_file, session_key) ⇒ Object
- #display_hosts(node, host_file, session_key) ⇒ Object
- #display_roles(node, roles_file, session_key) ⇒ Object
- #display_users(node, users_file, session_key) ⇒ Object
- #display_vluns(node, host_file, session_key) ⇒ Object
- #display_volumes(node, volume_file, session_key) ⇒ Object
- #grow_volume(node, volume, size, session_key) ⇒ Object
- #modify_cpg(node, cpg_name, new_cpg_name, session_key, payload) ⇒ Object
- #remove_vlun(node, volume_name, lun, host_name, session_key) ⇒ Object
- #rest_call(type, node, path, session_key, payload = nil) ⇒ Object
-
#retrieve_3par_session_key(node) ⇒ Object
Your code goes here…
- #show_cpg(node, cpg_name, cpg_file, session_key) ⇒ Object
- #show_role(node, role_name, role_file, session_key) ⇒ Object
- #show_user(node, user_name, user_file, session_key) ⇒ Object
- #show_volume(node, volume_name, volume_file, session_key) ⇒ Object
Instance Method Details
#create_cpg(node, session_key, payload) ⇒ Object
87 88 89 |
# File 'lib/three/par.rb', line 87 def create_cpg(node, session_key, payload) rest_call(:post, node, "/api/v1/cpgs", session_key, payload.to_json) end |
#create_host(node, session_key, payload) ⇒ Object
91 92 93 |
# File 'lib/three/par.rb', line 91 def create_host(node,session_key,payload) rest_call(:post, node, "/api/v1/hosts", session_key, payload.to_json) end |
#create_vlun(node, session_key, payload) ⇒ Object
120 121 122 |
# File 'lib/three/par.rb', line 120 def create_vlun(node, session_key, payload) rest_call(:post, node, "/api/v1/vluns", session_key, payload.to_json) end |
#create_volume(node, session_key, payload) ⇒ Object
99 100 101 |
# File 'lib/three/par.rb', line 99 def create_volume(node, session_key, payload) rest_call(:post, node, "/api/v1/volumes/", session_key, payload.to_json) end |
#delete_cpg(node, cpg_name, session_key) ⇒ Object
74 75 76 |
# File 'lib/three/par.rb', line 74 def delete_cpg(node, cpg_name, session_key) rest_call(:delete, node, "/api/v1/cpgs/#{cpg_name}", session_key) end |
#delete_host(node, host_name, session_key) ⇒ Object
78 79 80 |
# File 'lib/three/par.rb', line 78 def delete_host(node, host_name, session_key) rest_call(:delete, node, "/api/v1/hosts/#{host_name}", session_key) end |
#delete_session_key(node, session_key) ⇒ Object
35 36 37 |
# File 'lib/three/par.rb', line 35 def delete_session_key(node, session_key) RestClient.delete("http://#{node['ip']}:8008/api/v1/credentials/#{session_key}",{:content_type => 'application/json',:accept => 'application/json'}) end |
#delete_volume(node, volume, session_key) ⇒ Object
116 117 118 |
# File 'lib/three/par.rb', line 116 def delete_volume(node, volume, session_key) rest_call(:delete, node, "/api/v1/volumes/#{volume}", session_key) end |
#display_capacity(node, capacity_file, session_key) ⇒ Object
59 60 61 62 |
# File 'lib/three/par.rb', line 59 def display_capacity(node, capacity_file, session_key) response = rest_call(:get, node, '/api/v1/capacity', session_key) File.open("#{Chef::Config[:file_cache_path]}/#{capacity_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#display_cpgs(node, cpg_file, session_key) ⇒ Object
39 40 41 42 |
# File 'lib/three/par.rb', line 39 def display_cpgs(node,cpg_file, session_key) response = rest_call(:get, node, '/api/v1/cpgs', session_key) File.open("#{Chef::Config[:file_cache_path]}/#{cpg_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#display_hosts(node, host_file, session_key) ⇒ Object
44 45 46 47 |
# File 'lib/three/par.rb', line 44 def display_hosts(node, host_file, session_key) response = rest_call(:get, node, '/api/v1/hosts', session_key) File.open("#{Chef::Config[:file_cache_path]}/#{host_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#display_roles(node, roles_file, session_key) ⇒ Object
69 70 71 72 |
# File 'lib/three/par.rb', line 69 def display_roles(node, roles_file, session_key) response = rest_call(:get, node, '/api/v1/roles', session_key) File.open("#{Chef::Config[:file_cache_path]}/#{roles_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#display_users(node, users_file, session_key) ⇒ Object
64 65 66 67 |
# File 'lib/three/par.rb', line 64 def display_users(node, users_file, session_key) response = rest_call(:get, node, '/api/v1/users', session_key) File.open("#{Chef::Config[:file_cache_path]}/#{users_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#display_vluns(node, host_file, session_key) ⇒ Object
49 50 51 52 |
# File 'lib/three/par.rb', line 49 def display_vluns(node, host_file, session_key) response = rest_call(:get, node, '/api/v1/vluns', session_key) File.open("#{Chef::Config[:file_cache_path]}/#{host_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#display_volumes(node, volume_file, session_key) ⇒ Object
54 55 56 57 |
# File 'lib/three/par.rb', line 54 def display_volumes(node, volume_file, session_key) response = rest_call(:get, node, '/api/v1/volumes', session_key) File.open("#{Chef::Config[:file_cache_path]}/#{volume_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#grow_volume(node, volume, size, session_key) ⇒ Object
108 109 110 111 112 113 114 |
# File 'lib/three/par.rb', line 108 def grow_volume(node, volume, size, session_key) payload = { "action" => 3, "sizeMiB" => size } rest_call(:put, node, "/api/v1/volumes/#{volume}", session_key, payload.to_json) end |
#modify_cpg(node, cpg_name, new_cpg_name, session_key, payload) ⇒ Object
95 96 97 |
# File 'lib/three/par.rb', line 95 def modify_cpg(node, cpg_name, new_cpg_name, session_key, payload) rest_call(:put, node, "/api/v1/cpgs/#{cpg_name}", session_key, payload.to_json) end |
#remove_vlun(node, volume_name, lun, host_name, session_key) ⇒ Object
134 135 136 137 138 |
# File 'lib/three/par.rb', line 134 def remove_vlun(node, volume_name, lun, host_name, session_key) payload = volume_name + "," + lun.to_s + "," + host_name path = URI.escape("/api/v1/vluns/" + payload) rest_call(:delete, node, path , session_key) end |
#rest_call(type, node, path, session_key, payload = nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/three/par.rb', line 14 def rest_call(type, node, path, session_key, payload=nil) url = URI.escape("http://#{node['ip']}:8008" + path) headers = { :content_type => 'application/json', :accept => 'application/json', 'X-HP3PAR-WSAPI-SessionKey' => "#{session_key}",} begin response = RestClient::Request.execute(:method => type, :url => url, :payload => payload, :headers => headers) rescue RestClient::Forbidden => error binding.pry raise JSON.parse(error.response)["desc"] rescue RestClient::BadRequest => error binding.pry raise JSON.parse(error.response)["desc"] rescue RestClient::Conflict => error binding.pry raise JSON.parse(error.response)["desc"] end JSON.parse(response) rescue '' end |
#retrieve_3par_session_key(node) ⇒ Object
Your code goes here…
7 8 9 10 11 12 |
# File 'lib/three/par.rb', line 7 def retrieve_3par_session_key(node) = {:content_type => 'application/json',:accept => 'application/json'} credentials = {:user => node["username"], :password => node["password"]}.to_json post = RestClient.post("http://#{node['ip']}:8008/api/v1/credentials", credentials, ) JSON.parse(post)["key"] end |
#show_cpg(node, cpg_name, cpg_file, session_key) ⇒ Object
82 83 84 85 |
# File 'lib/three/par.rb', line 82 def show_cpg(node, cpg_name, cpg_file, session_key) response = rest_call(:get, node, "/api/v1/cpgs/#{cpg_name}", session_key) File.open("#{Chef::Config[:file_cache_path]}/#{cpg_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#show_role(node, role_name, role_file, session_key) ⇒ Object
129 130 131 132 |
# File 'lib/three/par.rb', line 129 def show_role(node, role_name, role_file, session_key) response = rest_call(:get, node, "/api/v1/roles/#{role_name}", session_key) File.open("#{Chef::Config[:file_cache_path]}/#{role_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#show_user(node, user_name, user_file, session_key) ⇒ Object
124 125 126 127 |
# File 'lib/three/par.rb', line 124 def show_user(node, user_name, user_file, session_key) response = rest_call(:get, node, "/api/v1/users/#{user_name}", session_key) File.open("#{Chef::Config[:file_cache_path]}/#{user_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |
#show_volume(node, volume_name, volume_file, session_key) ⇒ Object
103 104 105 106 |
# File 'lib/three/par.rb', line 103 def show_volume(node, volume_name, volume_file, session_key) response = rest_call(:get, node, "/api/v1/volumes/#{volume_name}", session_key) File.open("#{Chef::Config[:file_cache_path]}/#{volume_file}.txt", 'a+') { |file| file.write(response.to_yaml) } end |