lorj_cloud 0.1.11 → 0.1.12
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/lib/lorj_cloud/version.rb +2 -2
- data/lib/process/cloud/process/connection.rb +5 -5
- data/lib/process/cloud/process/flavor.rb +7 -7
- data/lib/process/cloud/process/images.rb +1 -1
- data/lib/process/cloud/process/internet_network.rb +2 -2
- data/lib/process/cloud/process/internet_server.rb +1 -1
- data/lib/process/cloud/process/keypairs.rb +4 -4
- data/lib/process/cloud/process/network.rb +8 -8
- data/lib/process/cloud/process/public_ip.rb +2 -2
- data/lib/process/cloud/process/router.rb +12 -12
- data/lib/process/cloud/process/rules.rb +2 -2
- data/lib/process/cloud/process/security_groups.rb +2 -2
- data/lib/process/cloud/process/subnetwork.rb +4 -4
- data/lib/process/cloud/providers/hpcloud/hpcloud.rb +2 -0
- data/lib/process/cloud/providers/hpcloud/hpcloud_declare.rb +3 -3
- data/lib/process/cloud/providers/hpcloud/network.rb +3 -3
- data/lib/process/cloud/providers/mock/mock.rb +5 -5
- data/lib/process/cloud/providers/openstack/openstack.rb +5 -4
- data/lib/process/cloud/providers/openstack/openstack_create.rb +1 -1
- data/lorj_cloud.gemspec +3 -2
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26634b9c67df55b783869dd3e27efdcbcca992a3
|
4
|
+
data.tar.gz: 3b3430d3068e58f20d2434311d678bf7fe3c7579
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1dd52b5dba670954f34652a9da36fabe231f5e78ca585101e93b5dd5bb81b3c73659a400224ef75f2621171ca40abc181a1e1eab28263648ff518b91752ab10c
|
7
|
+
data.tar.gz: fc243f07fbc42a4d24b6e3faca2c4ac8814a6a5e061618696c08f7de0c3dcecd694e6e0fdb6374e08711eb0c6407d9a749b7c89f9557841581633d4e39dfac96
|
data/lib/lorj_cloud/version.rb
CHANGED
@@ -28,12 +28,12 @@ class CloudProcess
|
|
28
28
|
hParams['credentials#tenant'])
|
29
29
|
begin
|
30
30
|
controller_connect(sCloudObj)
|
31
|
-
|
32
|
-
|
31
|
+
rescue => e
|
32
|
+
retry unless ssl_error_obj.error_detected(e.message, e.backtrace, e)
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
PrcLib.error('%s:%s: Unable to connect.\n%s',
|
35
|
+
self.class, sCloudObj, e.message)
|
36
|
+
nil
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -74,7 +74,7 @@ class Lorj::BaseDefinition # rubocop: disable ClassAndModuleChildren
|
|
74
74
|
)
|
75
75
|
|
76
76
|
obj_needs :CloudObject, :compute_connection
|
77
|
-
obj_needs :data, 'server#flavor_name',
|
77
|
+
obj_needs :data, 'server#flavor_name', :for => [:create_e]
|
78
78
|
# Cloud provider will need to map to one of those predefined flavors.
|
79
79
|
# limitation values may match exactly or at least ensure those limitation
|
80
80
|
# are under provider limitation
|
@@ -82,16 +82,16 @@ class Lorj::BaseDefinition # rubocop: disable ClassAndModuleChildren
|
|
82
82
|
# Cloud provider defines.
|
83
83
|
# CloudProcess EHD = 160, then Provider EHD = 200 is ok
|
84
84
|
# but Provider EHD = 150 is not ok.
|
85
|
-
predefine_data_value('tiny',
|
85
|
+
predefine_data_value('tiny', :desc => 'VCU: 1, RAM:512M, HD:1G, '\
|
86
86
|
'EHD: 0G, Swap: 0G')
|
87
|
-
predefine_data_value('xsmall',
|
87
|
+
predefine_data_value('xsmall', :desc => 'VCU: 1, RAM:1G, HD:10G, '\
|
88
88
|
'EHD: 10G, Swap: 0G')
|
89
|
-
predefine_data_value('small',
|
89
|
+
predefine_data_value('small', :desc => 'VCU: 2, RAM:2G, HD:30G, '\
|
90
90
|
'EHD: 10G, Swap: 0G')
|
91
|
-
predefine_data_value('medium',
|
91
|
+
predefine_data_value('medium', :desc => 'VCU: 2, RAM:4G, HD:30G, '\
|
92
92
|
'EHD: 50G, Swap: 0G')
|
93
|
-
predefine_data_value('large',
|
93
|
+
predefine_data_value('large', :desc => 'VCU: 4, RAM:8G, HD:30G, '\
|
94
94
|
'EHD: 100G, Swap: 0G')
|
95
|
-
predefine_data_value('xlarge',
|
95
|
+
predefine_data_value('xlarge', :desc => 'VCU: 8, RAM:16G, HD:30G, '\
|
96
96
|
'EHD: 200G, Swap: 0G')
|
97
97
|
end
|
@@ -26,8 +26,8 @@
|
|
26
26
|
# is capable to connect to internet
|
27
27
|
# And to create this connection if possible.
|
28
28
|
class Lorj::BaseDefinition # rubocop: disable ClassAndModuleChildren
|
29
|
-
define_obj(:internet_network,
|
29
|
+
define_obj(:internet_network, :nohandler => true)
|
30
30
|
|
31
|
-
obj_needs :CloudObject,
|
31
|
+
obj_needs :CloudObject, :external_network # External network to connect if
|
32
32
|
# needed.
|
33
33
|
end
|
@@ -21,7 +21,7 @@
|
|
21
21
|
# Internet SERVER Object
|
22
22
|
# internet server is a server connected to the internet network.
|
23
23
|
class Lorj::BaseDefinition
|
24
|
-
define_obj(:internet_server,
|
24
|
+
define_obj(:internet_server, :nohandler => true)
|
25
25
|
|
26
26
|
obj_needs :CloudObject, :internet_network
|
27
27
|
obj_needs :CloudObject, :server
|
@@ -119,7 +119,7 @@ class Lorj::BaseDefinition
|
|
119
119
|
obj_needs :data, :keypair_path
|
120
120
|
obj_needs :data, :keypair_base
|
121
121
|
# By default optional. But required by the import case if needed.
|
122
|
-
obj_needs :data, :public_key,
|
122
|
+
obj_needs :data, :public_key, :for => [:create_e]
|
123
123
|
|
124
124
|
def_attribute :public_key
|
125
125
|
end
|
@@ -333,9 +333,9 @@ class CloudProcess
|
|
333
333
|
begin
|
334
334
|
loc_pubkey = File.read(File.join(loc_kpair[:keypair_path],
|
335
335
|
loc_kpair[:public_key_name]))
|
336
|
-
|
337
|
-
|
338
|
-
|
336
|
+
rescue => e
|
337
|
+
PrcLib.error("Unable to read '%s'.\n%s",
|
338
|
+
loc_kpair[:public_key_file], e.message)
|
339
339
|
else
|
340
340
|
if loc_pubkey.split(' ')[1].strip == pub_keypair.split(' ')[1].strip
|
341
341
|
is_coherent = true
|
@@ -46,8 +46,8 @@ class CloudProcess
|
|
46
46
|
# Process Delete handler
|
47
47
|
def forj_delete_network(sCloudObj, hParams)
|
48
48
|
oProvider.delete(sCloudObj, hParams)
|
49
|
-
|
50
|
-
|
49
|
+
rescue => e
|
50
|
+
PrcLib.error("%s\n%s", e.message, e.backtrace.join("\n"))
|
51
51
|
end
|
52
52
|
|
53
53
|
def forj_get_network(sCloudObj, sID, hParams)
|
@@ -67,10 +67,10 @@ class Lorj::BaseDefinition
|
|
67
67
|
:delete_e => :forj_delete_network
|
68
68
|
)
|
69
69
|
obj_needs :CloudObject, :network_connection
|
70
|
-
obj_needs :data, :network_name,
|
70
|
+
obj_needs :data, :network_name, :for => [:create_e]
|
71
71
|
|
72
72
|
obj_needs_optional
|
73
|
-
obj_needs :data,
|
73
|
+
obj_needs :data, :subnetwork_name, :for => [:create_e]
|
74
74
|
|
75
75
|
# Any attribute are queriable
|
76
76
|
def_attribute :external # true if network is external or not.
|
@@ -87,8 +87,8 @@ class CloudProcess
|
|
87
87
|
PrcLib.state("Creating network '%s'", name)
|
88
88
|
network = controller_create(sCloudObj)
|
89
89
|
PrcLib.info("Network '%s' created", network[:name])
|
90
|
-
|
91
|
-
|
90
|
+
rescue => e
|
91
|
+
PrcLib.fatal(1, "Unable to create network '%s'", name, e)
|
92
92
|
end
|
93
93
|
network
|
94
94
|
end
|
@@ -101,7 +101,7 @@ class CloudProcess
|
|
101
101
|
query = { :name => hParams[:network_name] }
|
102
102
|
|
103
103
|
query_single(sCloudObj, query, hParams[:network_name])
|
104
|
-
|
105
|
-
|
104
|
+
rescue => e
|
105
|
+
PrcLib.error("%s\n%s", e.message, e.backtrace.join("\n"))
|
106
106
|
end
|
107
107
|
end
|
@@ -98,8 +98,8 @@ class CloudProcess
|
|
98
98
|
end
|
99
99
|
PrcLib.info("Public IP '%s' for server '%s' "\
|
100
100
|
'assigned.', ip_address[:public_ip], name)
|
101
|
-
|
102
|
-
|
101
|
+
rescue => e
|
102
|
+
PrcLib.fatal(1, "Unable to assign a public IP to server '%s'", name, e)
|
103
103
|
end
|
104
104
|
ip_address
|
105
105
|
end
|
@@ -65,7 +65,7 @@ class Lorj::BaseDefinition
|
|
65
65
|
obj_needs :CloudObject, :network, :for => [:create_e]
|
66
66
|
obj_needs :CloudObject, :subnetwork, :for => [:create_e]
|
67
67
|
obj_needs_optional
|
68
|
-
obj_needs :data,
|
68
|
+
obj_needs :data, :router_name, :for => [:create_e]
|
69
69
|
|
70
70
|
def_attribute :gateway_network_id
|
71
71
|
end
|
@@ -73,9 +73,9 @@ end
|
|
73
73
|
# Port Object
|
74
74
|
# Identify port attached to network
|
75
75
|
class Lorj::BaseDefinition
|
76
|
-
define_obj :port,
|
76
|
+
define_obj :port, :nohandler => true
|
77
77
|
|
78
|
-
obj_needs :CloudObject,
|
78
|
+
obj_needs :CloudObject, :network_connection
|
79
79
|
def_attribute :device_id
|
80
80
|
|
81
81
|
def_attribute :network_id
|
@@ -88,7 +88,7 @@ end
|
|
88
88
|
# To keep the network model more generic.
|
89
89
|
class Lorj::BaseDefinition
|
90
90
|
# No process handler defined. Just Controller object
|
91
|
-
define_obj :router_interface,
|
91
|
+
define_obj :router_interface, :nohandler => true
|
92
92
|
|
93
93
|
obj_needs :CloudObject, :network_connection
|
94
94
|
obj_needs :CloudObject, :router, :for => [:create_e]
|
@@ -132,9 +132,9 @@ class CloudProcess
|
|
132
132
|
PrcLib.info("Router '%s' created without external Network.",
|
133
133
|
router_name)
|
134
134
|
end
|
135
|
-
|
136
|
-
|
137
|
-
|
135
|
+
rescue => e
|
136
|
+
PrcLib.error "Unable to create '%s' router\n%s\n%s", router_name,
|
137
|
+
e.message, e.backtrace.join("\n")
|
138
138
|
end
|
139
139
|
router
|
140
140
|
end
|
@@ -144,9 +144,9 @@ class CloudProcess
|
|
144
144
|
begin
|
145
145
|
#################
|
146
146
|
provider_delete_router(net_conn_obj, router_obj)
|
147
|
-
|
148
|
-
|
149
|
-
|
147
|
+
# net_conn_obj.routers.get(router.id).destroy
|
148
|
+
rescue => e
|
149
|
+
PrcLib.error("Unable to delete '%s' router ID", router_id, e)
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
@@ -233,8 +233,8 @@ class CloudProcess
|
|
233
233
|
networks = net_conn_obj
|
234
234
|
begin
|
235
235
|
netty = networks.get(name)
|
236
|
-
|
237
|
-
|
236
|
+
rescue => e
|
237
|
+
PrcLib.error("%s\n%s", e.message, e.backtrace.join("\n"))
|
238
238
|
end
|
239
239
|
PrcLib.state("Found gateway '%s'", name) if netty
|
240
240
|
PrcLib.state("Unable to find gateway '%s'", name) unless netty
|
@@ -79,7 +79,7 @@ class Lorj::BaseDefinition
|
|
79
79
|
# :delete_e => :forj_delete_rule
|
80
80
|
)
|
81
81
|
|
82
|
-
undefine_attribute :name
|
82
|
+
undefine_attribute :name # Do not return any predefined name attribute
|
83
83
|
|
84
84
|
obj_needs :CloudObject, :network_connection
|
85
85
|
obj_needs :CloudObject, :security_groups, :for => [:create_e]
|
@@ -87,7 +87,7 @@ class Lorj::BaseDefinition
|
|
87
87
|
:extract_from => [:security_groups,
|
88
88
|
:attrs, :id]
|
89
89
|
|
90
|
-
obj_needs :data,
|
90
|
+
obj_needs :data, :dir, :for => [:create_e]
|
91
91
|
predefine_data_value :IN, :desc => 'Input NAT/firewall rule map type'
|
92
92
|
predefine_data_value :OUT, :desc => 'Output NAT/firewall rule map type'
|
93
93
|
|
@@ -58,7 +58,7 @@ class CloudProcess
|
|
58
58
|
# Need to set runtime data to get or if missing
|
59
59
|
# create the required rule.
|
60
60
|
params = {}
|
61
|
-
params[:dir]
|
61
|
+
params[:dir] = :IN
|
62
62
|
params[:proto] = 'tcp'
|
63
63
|
params[:port_min] = portmin.to_i
|
64
64
|
params[:port_max] = portmax.to_i
|
@@ -111,7 +111,7 @@ class Lorj::BaseDefinition
|
|
111
111
|
)
|
112
112
|
|
113
113
|
obj_needs :CloudObject, :network_connection
|
114
|
-
obj_needs :data, :security_group,
|
114
|
+
obj_needs :data, :security_group, :for => [:create_e]
|
115
115
|
obj_needs_optional
|
116
116
|
obj_needs :data, 'server#ports', :for => [:create_e]
|
117
117
|
obj_needs :data, :sg_desc, :for => [:create_e]
|
@@ -58,8 +58,8 @@ class CloudProcess
|
|
58
58
|
begin
|
59
59
|
subnet = controller_create(sCloudObj, hParams)
|
60
60
|
PrcLib.info("Subnet '%s' created.", subnet[:name])
|
61
|
-
|
62
|
-
|
61
|
+
rescue => e
|
62
|
+
PrcLib.fatal(1, "Unable to create '%s' subnet.", name, e)
|
63
63
|
end
|
64
64
|
subnet
|
65
65
|
end
|
@@ -72,8 +72,8 @@ class CloudProcess
|
|
72
72
|
begin
|
73
73
|
provider_delete_subnetwork(net_conn_obj, sub_net_obj)
|
74
74
|
net_conn_obj.subnets.get(sub_net_obj.id).destroy
|
75
|
-
|
76
|
-
|
75
|
+
rescue => e
|
76
|
+
PrcLib.error("%s\n%s", e.message, e.backtrace.join("\n"))
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -48,6 +48,7 @@ class HpcloudController # rubocop: disable Metrics/ClassLength
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
51
|
+
|
51
52
|
def self.update_method(crud_type)
|
52
53
|
define_method(crud_type) do |sObjectType, obj, hParams|
|
53
54
|
method_name = "#{crud_type}_#{sObjectType}"
|
@@ -206,6 +207,7 @@ class HpcloudController # rubocop: disable Metrics/ClassLength
|
|
206
207
|
hParams[:server])
|
207
208
|
end
|
208
209
|
end
|
210
|
+
|
209
211
|
# rubocop: disable CyclomaticComplexity,
|
210
212
|
def get(sObjectType, sUniqId, hParams)
|
211
213
|
case sObjectType
|
@@ -56,7 +56,7 @@ class Hpcloud
|
|
56
56
|
def_attr_mapping :external, :router_external
|
57
57
|
|
58
58
|
define_obj :rule
|
59
|
-
obj_needs :data, :dir,
|
59
|
+
obj_needs :data, :dir, :mapping => :direction
|
60
60
|
attr_value_mapping :IN, 'ingress'
|
61
61
|
attr_value_mapping :OUT, 'egress'
|
62
62
|
|
@@ -75,7 +75,7 @@ class Hpcloud
|
|
75
75
|
|
76
76
|
define_obj :keypairs
|
77
77
|
|
78
|
-
undefine_attribute :id
|
78
|
+
undefine_attribute :id # Do not return any predefined ID
|
79
79
|
|
80
80
|
# ************************************ Router Object
|
81
81
|
define_obj :router
|
@@ -118,7 +118,7 @@ class Hpcloud
|
|
118
118
|
define_obj :server_log
|
119
119
|
|
120
120
|
# Excon::Response object type
|
121
|
-
def_attr_mapping :output,
|
121
|
+
def_attr_mapping :output, 'output'
|
122
122
|
|
123
123
|
# ************************************* Public IP Object
|
124
124
|
define_obj :public_ip
|
@@ -73,11 +73,11 @@ module HPNetwork
|
|
73
73
|
else
|
74
74
|
max_value = range_used.max
|
75
75
|
new_subnet = max_value.to_i + 1
|
76
|
-
new_cidr
|
76
|
+
new_cidr = format('10.0.%s.0/24', new_subnet)
|
77
77
|
end
|
78
78
|
new_cidr
|
79
|
-
|
80
|
-
|
79
|
+
rescue => e
|
80
|
+
Logging.error("%s\n%s", e.message, e.backtrace.join("\n"))
|
81
81
|
end
|
82
82
|
|
83
83
|
# router driver
|
@@ -117,17 +117,17 @@ class MockController
|
|
117
117
|
attributes = oControlerObject
|
118
118
|
|
119
119
|
attributes.rh_get(key)
|
120
|
-
|
121
|
-
|
120
|
+
rescue => e
|
121
|
+
controller_error "Unable to map '%s'.\n%s", key, e.message
|
122
122
|
end
|
123
123
|
|
124
124
|
def set_attr(oControlerObject, key, value)
|
125
125
|
attributes = oControlerObject
|
126
126
|
|
127
127
|
attributes.rh_set(value, key)
|
128
|
-
|
129
|
-
|
130
|
-
|
128
|
+
rescue => e
|
129
|
+
controller_error "Unable to map '%s' on '%s'.\n%s",
|
130
|
+
key, sObjectType, e.message
|
131
131
|
end
|
132
132
|
|
133
133
|
def update(sObjectType, oObject, hParams)
|
@@ -56,7 +56,7 @@ class Openstack
|
|
56
56
|
:decrypt => true
|
57
57
|
obj_needs :data, 'credentials#auth_uri', :mapping => :openstack_auth_url
|
58
58
|
obj_needs :data, 'credentials#tenant', :mapping => :openstack_tenant
|
59
|
-
obj_needs :data, 'services#compute',
|
59
|
+
obj_needs :data, 'services#compute', :mapping => :openstack_region
|
60
60
|
|
61
61
|
obj_needs_optional # Data required if uri contains v3
|
62
62
|
obj_needs :data, :user_domain, :mapping => :openstack_user_domain
|
@@ -68,7 +68,7 @@ class Openstack
|
|
68
68
|
:decrypt => true
|
69
69
|
obj_needs :data, 'credentials#auth_uri', :mapping => :openstack_auth_url
|
70
70
|
obj_needs :data, 'credentials#tenant', :mapping => :openstack_tenant
|
71
|
-
obj_needs :data, 'services#network',
|
71
|
+
obj_needs :data, 'services#network', :mapping => :openstack_region
|
72
72
|
|
73
73
|
obj_needs_optional # Data required if uri contains v3
|
74
74
|
obj_needs :data, :user_domain, :mapping => :openstack_user_domain
|
@@ -86,7 +86,7 @@ class Openstack
|
|
86
86
|
|
87
87
|
define_obj :keypairs
|
88
88
|
|
89
|
-
undefine_attribute :id
|
89
|
+
undefine_attribute :id # Do not return any predefined ID
|
90
90
|
|
91
91
|
define_obj :server_log
|
92
92
|
|
@@ -98,7 +98,7 @@ class Openstack
|
|
98
98
|
obj_needs :CloudObject, :tenants
|
99
99
|
|
100
100
|
define_obj :rule
|
101
|
-
obj_needs :data, :dir,
|
101
|
+
obj_needs :data, :dir, :mapping => :direction
|
102
102
|
attr_value_mapping :IN, 'ingress'
|
103
103
|
attr_value_mapping :OUT, 'egress'
|
104
104
|
|
@@ -460,6 +460,7 @@ class OpenstackController
|
|
460
460
|
end
|
461
461
|
build_result(version, body)
|
462
462
|
end
|
463
|
+
|
463
464
|
# Function to provide a wel formatted standard data, usable by openstack
|
464
465
|
# provider
|
465
466
|
#
|
data/lorj_cloud.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_runtime_dependency "lorj", ">= 1.0.19"
|
27
27
|
spec.add_runtime_dependency 'subhash', '>= 0.1.5'
|
28
28
|
spec.add_runtime_dependency "fog", "~> 1.30.0"
|
29
|
+
spec.add_runtime_dependency "net-ssh", "~> 2.9.2"
|
29
30
|
|
30
31
|
# Ruby 1.8 restrictions - BEGIN - To be removed at next major release.
|
31
32
|
# NOTE that gemspec is used at build time. Do not use RUBY_VERSION check
|
@@ -37,9 +38,9 @@ Gem::Specification.new do |spec|
|
|
37
38
|
spec.add_development_dependency "ruby-debug"
|
38
39
|
elsif RUBY_VERSION.match(/1\.9/)
|
39
40
|
spec.add_development_dependency "debugger"
|
40
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
41
|
+
spec.add_development_dependency "rubocop", "~> 0.34.2"
|
41
42
|
else
|
42
43
|
spec.add_development_dependency "byebug"
|
43
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
44
|
+
spec.add_development_dependency "rubocop", "~> 0.34.2"
|
44
45
|
end
|
45
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lorj_cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christophe Larsonneur
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 1.30.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: net-ssh
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.9.2
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.9.2
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: mime-types
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +156,14 @@ dependencies:
|
|
142
156
|
requirements:
|
143
157
|
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
159
|
+
version: 0.34.2
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
166
|
+
version: 0.34.2
|
153
167
|
description: 'simplify cloud management, thanks to predefined process to manage cloud
|
154
168
|
obj and make it work. '
|
155
169
|
email:
|
@@ -229,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
229
243
|
version: '0'
|
230
244
|
requirements: []
|
231
245
|
rubyforge_project:
|
232
|
-
rubygems_version: 2.
|
246
|
+
rubygems_version: 2.4.8
|
233
247
|
signing_key:
|
234
248
|
specification_version: 4
|
235
249
|
summary: Lorj cloud process.
|