lorj_cloud 0.1.11 → 0.1.12
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|