vipruby 0.1.4 → 0.1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/.yardoc/checksums +7 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/.yardopts +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +22 -0
- data/LICENSE.txt +22 -0
- data/README.md +49 -0
- data/Rakefile +2 -0
- data/doc/Host.html +910 -0
- data/doc/Vipr.html +656 -0
- data/doc/ViprBase.html +928 -0
- data/doc/ViprHost.html +1952 -0
- data/doc/ViprStorageSystem.html +2695 -0
- data/doc/ViprVcenter.html +1540 -0
- data/doc/Vipruby.html +139 -0
- data/doc/Vipruby/Auth.html +745 -0
- data/doc/_index.html +135 -0
- data/doc/class_list.html +58 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +339 -0
- data/doc/file.README.html +121 -0
- data/doc/file_list.html +60 -0
- data/doc/frames.html +26 -0
- data/doc/index.html +121 -0
- data/doc/js/app.js +219 -0
- data/doc/js/full_list.js +181 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +333 -0
- data/doc/top-level-namespace.html +114 -0
- data/lib/.yardoc/checksums +0 -0
- data/lib/.yardoc/object_types +0 -0
- data/lib/.yardoc/objects/root.dat +0 -0
- data/lib/.yardoc/proxy_types +0 -0
- data/lib/vipruby.rb +6 -426
- data/lib/vipruby/.yardoc/checksums +0 -0
- data/lib/vipruby/.yardoc/object_types +0 -0
- data/lib/vipruby/.yardoc/objects/root.dat +0 -0
- data/lib/vipruby/.yardoc/proxy_types +0 -0
- data/lib/vipruby/objects/host.rb +234 -0
- data/lib/vipruby/objects/storagesystem.rb +278 -0
- data/lib/vipruby/objects/vcenter.rb +162 -0
- data/lib/vipruby/version.rb +6 -0
- data/lib/vipruby/vipr.rb +45 -0
- data/lib/vipruby/viprbase.rb +84 -0
- data/vipruby.gemspec +29 -0
- metadata +100 -9
@@ -0,0 +1,162 @@
|
|
1
|
+
require 'rest-client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
# The Following vCenter calls will get vCenter information for all tenants
|
5
|
+
module ViprVcenter
|
6
|
+
|
7
|
+
# Retrive all vCenter Servers registered for all tenants
|
8
|
+
#
|
9
|
+
# @return [Hash] the object converted into Hash format and can be parsed with object[0] or object['id'] notation
|
10
|
+
def get_all_vcenters(auth=nil, cert=nil)
|
11
|
+
rest_get("#{@base_url}/compute/vcenters/bulk", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Retrieve information for a single vCenter server using the uid
|
15
|
+
#
|
16
|
+
# @param vcenter_id [String] Requires the string of the vcenter uid
|
17
|
+
# @return [Hash] the object converted into Hash format and can be parsed with object[0] or object['id'] notation
|
18
|
+
#
|
19
|
+
# @example
|
20
|
+
# x = vipr.get_all_vcenters['id'][0]
|
21
|
+
# vipr.get_vcenter(x)
|
22
|
+
def get_vcenter(vcenter_id=nil, auth=nil, cert=nil)
|
23
|
+
check_vcenter(vcenter_id)
|
24
|
+
rest_get("#{@base_url}/compute/vcenters/#{vcenter_id}", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Retrieve Host information for a single vCenter server using the uid
|
28
|
+
#
|
29
|
+
# @param vcenter_id [String] Requires the string of the vcenter uid
|
30
|
+
# @return [Hash] the object converted into Hash format and can be parsed with object[0] or object['id'] notation
|
31
|
+
#
|
32
|
+
# @example
|
33
|
+
# x = vipr.get_all_vcenters['id'][0]
|
34
|
+
# vipr.get_vcenter_hosts(x)
|
35
|
+
def get_vcenter_hosts(vcenter_id=nil, auth=nil, cert=nil)
|
36
|
+
check_vcenter(vcenter_id)
|
37
|
+
rest_get("#{@base_url}/compute/vcenters/#{vcenter_id}/hosts", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Retrieve Cluster information for a single vCenter server using the uid
|
41
|
+
#
|
42
|
+
# @param vcenter_id [String] Requires the string of the vcenter uid
|
43
|
+
# @return [Hash] the object converted into Hash format and can be parsed with object[0] or object['id'] notation
|
44
|
+
#
|
45
|
+
# @example
|
46
|
+
# x = vipr.get_all_vcenters['id'][0]
|
47
|
+
# vipr.get_vcenter_clusters(x)
|
48
|
+
def get_vcenter_clusters(vcenter_id=nil, auth=nil, cert=nil)
|
49
|
+
check_vcenter(vcenter_id)
|
50
|
+
rest_get("#{@base_url}/compute/vcenters/#{vcenter_id}/clusters", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Retrieve Datacenter information for a single vCenter server using the uid
|
54
|
+
#
|
55
|
+
# @param vcenter_id [String] Requires the string of the vcenter uid
|
56
|
+
# @return [Hash] the object converted into Hash format and can be parsed with object[0] or object['id'] notation
|
57
|
+
#
|
58
|
+
# @example
|
59
|
+
# x = vipr.get_all_vcenters['id'][0]
|
60
|
+
# vipr.get_vcenter_datacenters(x)
|
61
|
+
def get_vcenter_datacenters(vcenter_id=nil, auth=nil, cert=nil)
|
62
|
+
check_vcenter(vcenter_id)
|
63
|
+
rest_get("#{@base_url}/compute/vcenters/#{vcenter_id}/vcenter-data-centers", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Search for vCenters matching a specific parameter
|
67
|
+
#
|
68
|
+
# @param vcenter_search_hash [String] String for searching
|
69
|
+
# @return [Hash] Will return any vCenter objects containing the search string. The object converted into Hash format and can be parsed with object[0] or object['id'] notation
|
70
|
+
#
|
71
|
+
# @example
|
72
|
+
# vipr.find_vcenter_object('demo')
|
73
|
+
def find_vcenter_object(vcenter_search_hash=nil, auth=nil, cert=nil)
|
74
|
+
check_vcenter_object_hash(vcenter_search_hash)
|
75
|
+
rest_get("#{@base_url}/compute/vcenters/search?name=#{vcenter_search_hash}", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
76
|
+
end
|
77
|
+
|
78
|
+
# Add a vCenters to a specified tenant
|
79
|
+
#
|
80
|
+
# @param fqdn_or_ip [String] FQDN or IP Address of the vCenter server to add. This is a required string.
|
81
|
+
# @param name [String] Name of the vCenter server. This name is arbitrary and only exists within ViPR. This is a required string.
|
82
|
+
# @param user_name [String] User Name that will be used for authenticating against the vCenter Server. This is a required string.
|
83
|
+
# @param password [String] Password for the user_name that will be used for authenticating against the vCenter Server. This is a required string.
|
84
|
+
# @param port [String] Port of the vCenter server. This is an optional parameter. If no parameter is present, the default port of '443' will be used. If registering to a different tenant than default, set this param to nil
|
85
|
+
# @param tenant [String] Specify a tenant_uid where the vCenter will be registered. By default it will be added to the tenant of the current logged in ViPR user. This string is optional.
|
86
|
+
# @return [Hash] The resulted post operation
|
87
|
+
#
|
88
|
+
# @example
|
89
|
+
# vipr.add_vcenter('vcenter1.mydomain.com', 'vCENTER1', 'DOMAIN\user', 'userpw')
|
90
|
+
# vipr.add_vcenter('vcenter2.mydomain.com', 'vCENTER2', 'DOMAIN\user', 'userpw', '1092')
|
91
|
+
# vipr.add_vcenter('vcenter3.mydomain.com', 'vCENTER3', 'DOMAIN\user', 'userpw', nil, 'diff_tenant_uid')
|
92
|
+
def add_vcenter(fqdn_or_ip=nil, name=nil, user_name=nil, password=nil, port=nil, tenant=nil, auth=nil, cert=nil)
|
93
|
+
check_vcenter_post(fqdn_or_ip, name, user_name, password)
|
94
|
+
port.nil? ? port = '443' : port = port
|
95
|
+
payload = {
|
96
|
+
ip_address: fqdn_or_ip,
|
97
|
+
name: name,
|
98
|
+
port_number: port,
|
99
|
+
user_name: user_name,
|
100
|
+
password: password
|
101
|
+
}.to_json
|
102
|
+
rest_post(payload, "#{@base_url}/tenants/#{@tenant_uid}/vcenters", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
103
|
+
end
|
104
|
+
|
105
|
+
# Delete a vCenter from any tenant based on vCenter ID
|
106
|
+
#
|
107
|
+
# @param vcenter_id [String] Requires the string of the vcenter uid
|
108
|
+
# @return [Hash] The resulted post operation
|
109
|
+
#
|
110
|
+
# @example
|
111
|
+
# x = vipr.get_all_vcenters['id'][0]
|
112
|
+
# vipr.delete_vcenter(x)
|
113
|
+
def delete_vcenter(vcenter_id=nil, auth=nil, cert=nil)
|
114
|
+
check_vcenter(vcenter_id)
|
115
|
+
payload = {
|
116
|
+
}.to_json
|
117
|
+
rest_post(payload, "#{@base_url}/compute/vcenters/#{vcenter_id}/deactivate", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
118
|
+
end
|
119
|
+
|
120
|
+
|
121
|
+
private
|
122
|
+
|
123
|
+
# Error Handling method to check for Missing vCenter ID param. If the pass fails, an error exception is raised
|
124
|
+
#
|
125
|
+
# @param vcenter_id [String] Requires the string of the vcenter uid
|
126
|
+
# @return [Boolean] True if pass, false if it fails
|
127
|
+
#
|
128
|
+
# @private
|
129
|
+
def check_vcenter(vcenter_id=nil)
|
130
|
+
if vcenter_id == nil
|
131
|
+
raise "Missing vCenter ID param (vcenter_id)"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
# Error Handling method to check for Missing vCenter Object param. If the pass fails, an error exception is raised
|
136
|
+
#
|
137
|
+
# @param vcenter_search_hash [String] Requires the string of something to search
|
138
|
+
# @return [Boolean] True if pass, false if it fails
|
139
|
+
#
|
140
|
+
# @private
|
141
|
+
def check_vcenter_object_hash(vcenter_search_hash=nil)
|
142
|
+
if vcenter_search_hash == nil
|
143
|
+
raise "Missing vCenter Object to search as a param"
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
# Error Handling method to check for Missing Param. If the pass fails, an error exception is raised
|
148
|
+
#
|
149
|
+
# @param fqdn_or_ip [String] Requires the string of the vcenter FQDN or IP Address
|
150
|
+
# @param name [String] Requires the name of the vCenter
|
151
|
+
# @param user_name [String] Requires the User Name used for authentication to vCenter
|
152
|
+
# @param password [String] Requires the password of the User Name used for authentication to vCenter
|
153
|
+
# @return [Boolean] True if pass, false if it fails
|
154
|
+
#
|
155
|
+
# @private
|
156
|
+
def check_vcenter_post(fqdn_or_ip=nil, name=nil, user_name=nil, password=nil)
|
157
|
+
if fqdn_or_ip == nil || name == nil || user_name == nil || password == nil
|
158
|
+
raise "Missing a Required Param of fqdn_or_ip, name, port, user_name, or password"
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
data/lib/vipruby/vipr.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
require "vipruby/viprbase"
|
3
|
+
require "vipruby/objects/vcenter"
|
4
|
+
require 'vipruby/objects/storagesystem'
|
5
|
+
require 'vipruby/objects/host'
|
6
|
+
|
7
|
+
# The base class for the gem. Every subsequent method relies on creating an object from this class
|
8
|
+
class Vipr
|
9
|
+
include ViprBase
|
10
|
+
include ViprVcenter
|
11
|
+
include ViprStorageSystem
|
12
|
+
include ViprHost
|
13
|
+
|
14
|
+
# required params used for almost every single method
|
15
|
+
attr_accessor :tenant_uid, :auth_token, :base_url, :verify_cert
|
16
|
+
|
17
|
+
# Initializes a Vipr object that all methods can follow.
|
18
|
+
#
|
19
|
+
# @param base_url [String] The IP address or FQDN of the ViPR appliance. Do not include 'https' or port numbers
|
20
|
+
# @param user_name [String] Username used to log into ViPR
|
21
|
+
# @param password [String] Password used to log into ViPR
|
22
|
+
# @param verify_cert [Boolean] Should the cert be SSL verified? Setting it to false will work for development purposes. Should be set to true for production
|
23
|
+
# @return [Object] The Vipruby object that can be used with many different methods
|
24
|
+
#
|
25
|
+
# @note
|
26
|
+
# Every POST call requires a Tenant UID to create an object.
|
27
|
+
# This variable gets the current logged in tenant information.
|
28
|
+
# Nothing else needs to be done if there is a single tenant configured for ViPR
|
29
|
+
# If resources need to be added to specific tenants, this variable must be overwritten
|
30
|
+
# by specifying the tenant_uid
|
31
|
+
#
|
32
|
+
# @example New Vipruby Object
|
33
|
+
# base_url = 'vipr.mydomain.com'
|
34
|
+
# user_name = 'root'
|
35
|
+
# password = 'mypw'
|
36
|
+
# verify_cert = false
|
37
|
+
# vipr = Vipr.new(base_url,user_name,password,verify_cert)
|
38
|
+
def initialize(base_url,user_name,password,verify_cert)
|
39
|
+
@base_url = generate_base_url(base_url)
|
40
|
+
@verify_cert = to_boolean(verify_cert)
|
41
|
+
@auth_token = get_auth_token(user_name,password)
|
42
|
+
@tenant_uid = get_tenant_uid['id']
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'rest-client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
#Base methods used for all operations such as logging in and performing API calls
|
5
|
+
module ViprBase
|
6
|
+
|
7
|
+
# Generic API post call
|
8
|
+
#
|
9
|
+
# @param payload [JSON] the JSON payload to be posted
|
10
|
+
# @param api_url [string] the full API URL path
|
11
|
+
# @return [Hash] the object converted into Hash format and can be parsed with object[0] or object['id'] notation
|
12
|
+
def rest_post(payload, api_url, auth=nil, cert=nil)
|
13
|
+
JSON.parse(RestClient::Request.execute(method: :post,
|
14
|
+
url: api_url,
|
15
|
+
verify_ssl: cert.nil? ? @verify_cert : cert,
|
16
|
+
payload: payload,
|
17
|
+
headers: {
|
18
|
+
:'X-SDS-AUTH-TOKEN' => auth.nil? ? @auth_token : auth,
|
19
|
+
content_type: 'application/json',
|
20
|
+
accept: :json
|
21
|
+
}))
|
22
|
+
end
|
23
|
+
|
24
|
+
# Generic API get call
|
25
|
+
#
|
26
|
+
# @param api_url [string] the full API URL path
|
27
|
+
# @return [Hash] the object converted into Hash format and can be parsed with object[0] or object['id'] notation
|
28
|
+
def rest_get(api_url, auth=nil, cert=nil)
|
29
|
+
JSON.parse(RestClient::Request.execute(method: :get,
|
30
|
+
url: api_url,
|
31
|
+
verify_ssl: cert.nil? ? @verify_cert : cert,
|
32
|
+
headers: {
|
33
|
+
:'X-SDS-AUTH-TOKEN' => auth.nil? ? @auth_token : auth,
|
34
|
+
accept: :json
|
35
|
+
}))
|
36
|
+
end
|
37
|
+
|
38
|
+
# Get the current users Tenant UID
|
39
|
+
#
|
40
|
+
# @return [Hash] Hash return with the Tenant UID ['id'].
|
41
|
+
def get_tenant_uid(base=nil, auth=nil, cert=nil)
|
42
|
+
rest_get(base.nil? ? @base_url + "/tenant" : base + "/tenant", auth.nil? ? @auth_token : auth, cert.nil? ? @verify_cert : cert)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Login to ViPR
|
46
|
+
#
|
47
|
+
# @param user_name [string] the username used to login
|
48
|
+
# @param password [string] the password for the username
|
49
|
+
# @return [HTML] returns token information in headers
|
50
|
+
def login(user_name, password, cert=nil, base=nil)
|
51
|
+
RestClient::Request.execute(method: :get,
|
52
|
+
url: base.nil? ? @base_url : base + "/login",
|
53
|
+
user: user_name,
|
54
|
+
password: password,
|
55
|
+
verify_ssl: cert.nil? ? @verify_cert : cert
|
56
|
+
)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Generate the URL for standard ViPR instances using https: and port :443
|
60
|
+
#
|
61
|
+
# @param ip_or_fqdn [string] String representation of the IP Address or Fully Qualified Domain Name of the ViPR instance
|
62
|
+
# @return [strong] returns the full URL for API called
|
63
|
+
def generate_base_url(ip_or_fqdn)
|
64
|
+
return "https://#{ip_or_fqdn}:4443"
|
65
|
+
end
|
66
|
+
|
67
|
+
# Get User's Authentication Token
|
68
|
+
#
|
69
|
+
# @param user_name [string] the username used to login
|
70
|
+
# @param password [string] the password for the username
|
71
|
+
# @return [String] returns authentication token for the user
|
72
|
+
def get_auth_token(user_name,password, cert=nil, base=nil)
|
73
|
+
login(user_name, password, cert.nil? ? @verify_cert : cert, base.nil? ? @base_url : base).headers[:x_sds_auth_token]
|
74
|
+
end
|
75
|
+
|
76
|
+
# Ensure value is a boolean
|
77
|
+
#
|
78
|
+
# @param str [string, bool] the value to convert or verify
|
79
|
+
# @return [bool] returns True or False
|
80
|
+
def to_boolean(str)
|
81
|
+
str.to_s.downcase == "true"
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
data/vipruby.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'vipruby/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'vipruby'
|
7
|
+
s.version = Vipruby::VERSION
|
8
|
+
s.date = Date.today.to_s
|
9
|
+
s.summary = "A Ruby Library for EMC's ViPR"
|
10
|
+
s.description = "A Ruby implementation to add & gather information from Storage Arrays, vCenter, and Compute Hosts"
|
11
|
+
s.authors = ["Craig J Smith", "Kendrick Coleman"]
|
12
|
+
s.email = 'nctiggy@gmail.com'
|
13
|
+
s.require_paths = %w[lib]
|
14
|
+
s.files = `git ls-files`.split($/)
|
15
|
+
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
s.homepage =
|
19
|
+
'https://github.com/nctiggy/Vipruby'
|
20
|
+
s.license = 'MIT'
|
21
|
+
s.add_runtime_dependency "json",
|
22
|
+
["~> 1.8"]
|
23
|
+
s.add_runtime_dependency "rest-client",
|
24
|
+
["= 1.7.2"]
|
25
|
+
s.add_development_dependency 'bundler', '~> 1.3'
|
26
|
+
s.add_development_dependency 'rake'
|
27
|
+
s.add_development_dependency 'rspec'
|
28
|
+
s.add_development_dependency 'yard'
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vipruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Craig J Smith
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -40,27 +40,117 @@ dependencies:
|
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 1.7.2
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: bundler
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.3'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1.3'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rake
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
45
59
|
requirements:
|
46
60
|
- - ">="
|
47
61
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
49
|
-
type: :
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: yard
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
50
92
|
prerelease: false
|
51
93
|
version_requirements: !ruby/object:Gem::Requirement
|
52
94
|
requirements:
|
53
95
|
- - ">="
|
54
96
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
56
|
-
description:
|
57
|
-
and
|
97
|
+
version: '0'
|
98
|
+
description: A Ruby implementation to add & gather information from Storage Arrays,
|
99
|
+
vCenter, and Compute Hosts
|
58
100
|
email: nctiggy@gmail.com
|
59
101
|
executables: []
|
60
102
|
extensions: []
|
61
103
|
extra_rdoc_files: []
|
62
104
|
files:
|
105
|
+
- ".gitignore"
|
106
|
+
- ".yardoc/checksums"
|
107
|
+
- ".yardoc/object_types"
|
108
|
+
- ".yardoc/objects/root.dat"
|
109
|
+
- ".yardoc/proxy_types"
|
110
|
+
- ".yardopts"
|
111
|
+
- Gemfile
|
112
|
+
- Gemfile.lock
|
113
|
+
- LICENSE.txt
|
114
|
+
- README.md
|
115
|
+
- Rakefile
|
116
|
+
- doc/Host.html
|
117
|
+
- doc/Vipr.html
|
118
|
+
- doc/ViprBase.html
|
119
|
+
- doc/ViprHost.html
|
120
|
+
- doc/ViprStorageSystem.html
|
121
|
+
- doc/ViprVcenter.html
|
122
|
+
- doc/Vipruby.html
|
123
|
+
- doc/Vipruby/Auth.html
|
124
|
+
- doc/_index.html
|
125
|
+
- doc/class_list.html
|
126
|
+
- doc/css/common.css
|
127
|
+
- doc/css/full_list.css
|
128
|
+
- doc/css/style.css
|
129
|
+
- doc/file.README.html
|
130
|
+
- doc/file_list.html
|
131
|
+
- doc/frames.html
|
132
|
+
- doc/index.html
|
133
|
+
- doc/js/app.js
|
134
|
+
- doc/js/full_list.js
|
135
|
+
- doc/js/jquery.js
|
136
|
+
- doc/method_list.html
|
137
|
+
- doc/top-level-namespace.html
|
138
|
+
- lib/.yardoc/checksums
|
139
|
+
- lib/.yardoc/object_types
|
140
|
+
- lib/.yardoc/objects/root.dat
|
141
|
+
- lib/.yardoc/proxy_types
|
63
142
|
- lib/vipruby.rb
|
143
|
+
- lib/vipruby/.yardoc/checksums
|
144
|
+
- lib/vipruby/.yardoc/object_types
|
145
|
+
- lib/vipruby/.yardoc/objects/root.dat
|
146
|
+
- lib/vipruby/.yardoc/proxy_types
|
147
|
+
- lib/vipruby/objects/host.rb
|
148
|
+
- lib/vipruby/objects/storagesystem.rb
|
149
|
+
- lib/vipruby/objects/vcenter.rb
|
150
|
+
- lib/vipruby/version.rb
|
151
|
+
- lib/vipruby/vipr.rb
|
152
|
+
- lib/vipruby/viprbase.rb
|
153
|
+
- vipruby.gemspec
|
64
154
|
homepage: https://github.com/nctiggy/Vipruby
|
65
155
|
licenses:
|
66
156
|
- MIT
|
@@ -81,8 +171,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
171
|
version: '0'
|
82
172
|
requirements: []
|
83
173
|
rubyforge_project:
|
84
|
-
rubygems_version: 2.
|
174
|
+
rubygems_version: 2.2.2
|
85
175
|
signing_key:
|
86
176
|
specification_version: 4
|
87
177
|
summary: A Ruby Library for EMC's ViPR
|
88
178
|
test_files: []
|
179
|
+
has_rdoc:
|