lorj_cloud 0.1.8 → 0.1.9
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/data.yaml +13 -0
- data/lib/process/cloud/process/server.rb +2 -1
- data/lib/process/cloud/providers/hpcloud/hpcloud.rb +55 -0
- data/lib/process/cloud/providers/hpcloud/hpcloud_refresh.rb +38 -0
- data/lib/process/cloud/providers/openstack/openstack.rb +5 -4
- data/lib/process/cloud/providers/openstack/openstack_refresh.rb +39 -0
- data/lorj_cloud.gemspec +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b519cccf1d258aa732b00a8f2cddd12be2880a4e
|
4
|
+
data.tar.gz: 8bdf938b94e3d18c99b254d4d7bbf35a192828d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e65120fb8287d9ba0399e3b79837ab95e0fd19da9b0f3fa97d3028829083a6928cb5040202c4c518a1c112568533b978b77f1301b9207a9e18abc4bfc5f0b3b
|
7
|
+
data.tar.gz: 596c0c88b342bad2eb3c2ff99c0783f88a4dfab32d9619dc7bbd5252d436ab5522707bfb5b94062ec0d58467b02c8e3c332e2e0ef00e5448b221f140df225227
|
data/lib/lorj_cloud/version.rb
CHANGED
data/lib/process/cloud/data.yaml
CHANGED
@@ -50,11 +50,13 @@
|
|
50
50
|
:desc: "Service identification for compute"
|
51
51
|
:account_exclusive: true
|
52
52
|
:account: true
|
53
|
+
:export: true
|
53
54
|
:step: :provider_config
|
54
55
|
:network:
|
55
56
|
:desc: "Service identification for network"
|
56
57
|
:account_exclusive: true
|
57
58
|
:account: true
|
59
|
+
:export: true
|
58
60
|
:step: :provider_config
|
59
61
|
|
60
62
|
# Defines ssh keys credentials
|
@@ -68,23 +70,27 @@
|
|
68
70
|
:keypair_name:
|
69
71
|
:desc: "keypair name defined in your cloud to access your server."
|
70
72
|
:ask_step: :provider_config
|
73
|
+
:export: true
|
71
74
|
:auth_uri:
|
72
75
|
:desc: "Generic service auth url"
|
73
76
|
:ask_step: :provider_config
|
74
77
|
:account_exclusive: true
|
75
78
|
:account: true
|
76
79
|
:required: true
|
80
|
+
:export: true
|
77
81
|
:user_domain:
|
78
82
|
:ask_step: :provider_config
|
79
83
|
:account_exclusive: true
|
80
84
|
:account: true
|
81
85
|
:required: false
|
86
|
+
:export: true
|
82
87
|
:account_id:
|
83
88
|
:desc: "Generic Cloud Account name."
|
84
89
|
:ask_step: :provider_config
|
85
90
|
:account_exclusive: true
|
86
91
|
:account: true
|
87
92
|
:required: true
|
93
|
+
:export: true
|
88
94
|
:account_key:
|
89
95
|
:desc: "Generic cloud account key"
|
90
96
|
:ask_step: :provider_config
|
@@ -92,25 +98,30 @@
|
|
92
98
|
:account: true
|
93
99
|
:required: true
|
94
100
|
:encrypted: true
|
101
|
+
:export: true
|
95
102
|
:tenant:
|
96
103
|
:desc: "Tenant Name (Project name)"
|
97
104
|
:ask_step: :provider_config
|
98
105
|
:account_exclusive: true
|
99
106
|
:account: true
|
100
107
|
:required: true
|
108
|
+
:export: true
|
101
109
|
:prj_domain:
|
102
110
|
:ask_step: :provider_config
|
103
111
|
:account_exclusive: true
|
104
112
|
:account: true
|
105
113
|
:required: false
|
114
|
+
:export: true
|
106
115
|
|
107
116
|
:server:
|
108
117
|
:network_name:
|
109
118
|
:ask_step: :cloud_config
|
110
119
|
:desc: "Network name to attach to each forge boxes. By default we use 'forj'. If it doesn't exist, it will be created."
|
120
|
+
:export: true
|
111
121
|
:security_group:
|
112
122
|
:desc: "Security group name to configure and attach to each forge boxes."
|
113
123
|
:ask_step: :cloud_config
|
124
|
+
:export: true
|
114
125
|
:box_name:
|
115
126
|
:desc: "Box name"
|
116
127
|
:flavor_name:
|
@@ -122,6 +133,7 @@
|
|
122
133
|
:object: :flavor
|
123
134
|
:value: :name
|
124
135
|
:validate: :list_strict
|
136
|
+
:export: true
|
125
137
|
:image_name:
|
126
138
|
:desc: "Image name"
|
127
139
|
:ask_step: :cloud_config
|
@@ -131,6 +143,7 @@
|
|
131
143
|
:object: :image
|
132
144
|
:value: :name
|
133
145
|
:validate: :list_strict
|
146
|
+
:export: true
|
134
147
|
:ports:
|
135
148
|
:desc: "List of security group rules (1 port or range of ports) to open to the external network."
|
136
149
|
:ask_step: :cloud_config
|
@@ -76,7 +76,8 @@ class Lorj::BaseDefinition
|
|
76
76
|
:query_e => :forj_query_server,
|
77
77
|
:get_e => :forj_get_server,
|
78
78
|
# :update_e => :forj_update_server,
|
79
|
-
:delete_e => :forj_delete_server
|
79
|
+
:delete_e => :forj_delete_server,
|
80
|
+
:refresh_e => :controller_refresh
|
80
81
|
)
|
81
82
|
|
82
83
|
obj_needs :CloudObject, :compute_connection
|
@@ -24,6 +24,7 @@ hpcloud_path = File.expand_path(File.dirname(__FILE__))
|
|
24
24
|
load File.join(hpcloud_path, 'hpcloud_declare.rb')
|
25
25
|
load File.join(hpcloud_path, 'hpcloud_generic.rb')
|
26
26
|
load File.join(hpcloud_path, 'hpcloud_query.rb')
|
27
|
+
load File.join(hpcloud_path, 'hpcloud_refresh.rb')
|
27
28
|
|
28
29
|
load File.join(hpcloud_path, 'compute.rb')
|
29
30
|
load File.join(hpcloud_path, 'network.rb')
|
@@ -33,6 +34,60 @@ load File.join(hpcloud_path, 'security_groups.rb')
|
|
33
34
|
# Except Cloud connection, all HPCloud objects management are described/called
|
34
35
|
# in HP* modules.
|
35
36
|
class HpcloudController # rubocop: disable Metrics/ClassLength
|
37
|
+
# Ready to convert the controller in more maintainable code
|
38
|
+
# Only refresh is currently used.
|
39
|
+
def self.def_cruds(*crud_types)
|
40
|
+
crud_types.each do |crud_type|
|
41
|
+
case crud_type
|
42
|
+
when :create, :delete, :refresh
|
43
|
+
base_method(crud_type)
|
44
|
+
when :query, :get
|
45
|
+
query_method(crud_type)
|
46
|
+
when :update
|
47
|
+
update_method(crud_type)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
def self.update_method(crud_type)
|
52
|
+
define_method(crud_type) do |sObjectType, obj, hParams|
|
53
|
+
method_name = "#{crud_type}_#{sObjectType}"
|
54
|
+
if self.class.method_defined? method_name
|
55
|
+
send(method_name, obj, hParams)
|
56
|
+
else
|
57
|
+
controller_error "'%s' is not a valid object for '%s'",
|
58
|
+
sObjectType, crud_type
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.query_method(crud_type)
|
64
|
+
define_method(crud_type) do |sObjectType, sCondition, hParams|
|
65
|
+
method_name = "#{crud_type}_#{sObjectType}"
|
66
|
+
if self.class.method_defined? method_name
|
67
|
+
send(method_name, hParams, sCondition)
|
68
|
+
else
|
69
|
+
controller_error "'%s' is not a valid object for '%s'",
|
70
|
+
sObjectType, crud_type
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def self.base_method(crud_type)
|
76
|
+
define_method(crud_type) do |sObjectType, p1|
|
77
|
+
method_name = "#{crud_type}_#{sObjectType}"
|
78
|
+
if self.class.method_defined? method_name
|
79
|
+
send(method_name, p1)
|
80
|
+
else
|
81
|
+
controller_error "'%s' is not a valid object for '%s'",
|
82
|
+
sObjectType, crud_type
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# Define the hpcloud controller handlers
|
88
|
+
# def_cruds :create, :delete, :get, :query, :update, :refresh
|
89
|
+
def_cruds :refresh
|
90
|
+
|
36
91
|
def connect(sObjectType, hParams)
|
37
92
|
case sObjectType
|
38
93
|
when :services
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
# Defined Openstack object refresh.
|
18
|
+
class HpcloudController
|
19
|
+
def self.def_refresh(name)
|
20
|
+
define_method("refresh_#{name}") do |_object_type, object|
|
21
|
+
if object.class.method_defined?(:reload)
|
22
|
+
begin
|
23
|
+
object.reload
|
24
|
+
rescue => e
|
25
|
+
PrcLib.error("'%s': %s", object.class, e)
|
26
|
+
ret = false
|
27
|
+
else
|
28
|
+
ret = true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
# Uses :[] or :<key> to match object and query attr.
|
32
|
+
Lorj.debug(4, "'%s' refreshed '%s'", __method__, object.class)
|
33
|
+
ret
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def_refresh :server
|
38
|
+
end
|
@@ -26,6 +26,7 @@ load File.join(hpcloud_path, 'openstack_get.rb')
|
|
26
26
|
load File.join(hpcloud_path, 'openstack_delete.rb')
|
27
27
|
load File.join(hpcloud_path, 'openstack_create.rb')
|
28
28
|
load File.join(hpcloud_path, 'openstack_update.rb')
|
29
|
+
load File.join(hpcloud_path, 'openstack_refresh.rb')
|
29
30
|
|
30
31
|
# Defines Meta Openstack object
|
31
32
|
class Openstack
|
@@ -260,7 +261,7 @@ class OpenstackController
|
|
260
261
|
def self.def_cruds(*crud_types)
|
261
262
|
crud_types.each do |crud_type|
|
262
263
|
case crud_type
|
263
|
-
when :create, :delete
|
264
|
+
when :create, :delete, :refresh
|
264
265
|
base_method(crud_type)
|
265
266
|
when :query, :get
|
266
267
|
query_method(crud_type)
|
@@ -295,10 +296,10 @@ class OpenstackController
|
|
295
296
|
end
|
296
297
|
|
297
298
|
def self.base_method(crud_type)
|
298
|
-
define_method(crud_type) do |sObjectType,
|
299
|
+
define_method(crud_type) do |sObjectType, p1|
|
299
300
|
method_name = "#{crud_type}_#{sObjectType}"
|
300
301
|
if self.class.method_defined? method_name
|
301
|
-
send(method_name,
|
302
|
+
send(method_name, p1)
|
302
303
|
else
|
303
304
|
controller_error "'%s' is not a valid object for '%s'",
|
304
305
|
sObjectType, crud_type
|
@@ -307,7 +308,7 @@ class OpenstackController
|
|
307
308
|
end
|
308
309
|
|
309
310
|
# Define the Openstack controller handlers
|
310
|
-
def_cruds :create, :delete, :get, :query, :update
|
311
|
+
def_cruds :create, :delete, :get, :query, :update, :refresh
|
311
312
|
|
312
313
|
def connect(sObjectType, hParams)
|
313
314
|
case sObjectType
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
# Defined Openstack object refresh.
|
18
|
+
class OpenstackController
|
19
|
+
def self.def_refresh(name)
|
20
|
+
define_method("refresh_#{name}") do |object|
|
21
|
+
ret = false
|
22
|
+
if object.class.method_defined?(:reload)
|
23
|
+
begin
|
24
|
+
object.reload
|
25
|
+
rescue => e
|
26
|
+
PrcLib.error("'%s': %s", object.class, e)
|
27
|
+
else
|
28
|
+
Lorj.debug(4, "'%s' refreshed '%s'", __method__, object.class)
|
29
|
+
ret = true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
ret
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
dcl = %w(server)
|
37
|
+
|
38
|
+
dcl.each { |t| def_refresh t.to_sym }
|
39
|
+
end
|
data/lorj_cloud.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
24
|
spec.add_development_dependency "rspec", "~> 3.1.0"
|
25
25
|
|
26
|
-
spec.add_runtime_dependency "lorj", ">= 1.0.
|
26
|
+
spec.add_runtime_dependency "lorj", ">= 1.0.19"
|
27
27
|
spec.add_runtime_dependency 'subhash', '>= 0.1.3'
|
28
28
|
spec.add_runtime_dependency "fog", "~> 1.30.0"
|
29
29
|
|
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.9
|
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-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.0.
|
61
|
+
version: 1.0.19
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.0.
|
68
|
+
version: 1.0.19
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: subhash
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,6 +193,7 @@ files:
|
|
193
193
|
- lib/process/cloud/providers/hpcloud/hpcloud_declare.rb
|
194
194
|
- lib/process/cloud/providers/hpcloud/hpcloud_generic.rb
|
195
195
|
- lib/process/cloud/providers/hpcloud/hpcloud_query.rb
|
196
|
+
- lib/process/cloud/providers/hpcloud/hpcloud_refresh.rb
|
196
197
|
- lib/process/cloud/providers/hpcloud/network.rb
|
197
198
|
- lib/process/cloud/providers/hpcloud/security_groups.rb
|
198
199
|
- lib/process/cloud/providers/mock/mock.rb
|
@@ -202,6 +203,7 @@ files:
|
|
202
203
|
- lib/process/cloud/providers/openstack/openstack_get.rb
|
203
204
|
- lib/process/cloud/providers/openstack/openstack_process.rb
|
204
205
|
- lib/process/cloud/providers/openstack/openstack_query.rb
|
206
|
+
- lib/process/cloud/providers/openstack/openstack_refresh.rb
|
205
207
|
- lib/process/cloud/providers/openstack/openstack_update.rb
|
206
208
|
- lib/process/cloud/providers/templates/compute.rb
|
207
209
|
- lib/process/cloud/providers/templates/mycloud.rb
|