lorj_cloud 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c78228ebae857de831a11eff87d55bb65d376c4a
4
- data.tar.gz: ee39d199148951c639823b494cc7c7b558d32668
3
+ metadata.gz: b519cccf1d258aa732b00a8f2cddd12be2880a4e
4
+ data.tar.gz: 8bdf938b94e3d18c99b254d4d7bbf35a192828d9
5
5
  SHA512:
6
- metadata.gz: 1ec6f569ee8c095e2c372b472dd89b80094ad82ce8e9701332159aabd7229ee5ec1f2d837d3b882d7b9f0e8c6760e3e3d238d05057c546c24923cc95a05307de
7
- data.tar.gz: 4ea13e6447d00816bfd945e02006e7fe53a75264369416c14b0e32532e9db6682fcb7dbb493c3cb67bf58f50eaab2c18afc0e771cbe1c449bbbc5205af1024e8
6
+ metadata.gz: 4e65120fb8287d9ba0399e3b79837ab95e0fd19da9b0f3fa97d3028829083a6928cb5040202c4c518a1c112568533b978b77f1301b9207a9e18abc4bfc5f0b3b
7
+ data.tar.gz: 596c0c88b342bad2eb3c2ff99c0783f88a4dfab32d9619dc7bbd5252d436ab5522707bfb5b94062ec0d58467b02c8e3c332e2e0ef00e5448b221f140df225227
@@ -1,5 +1,5 @@
1
1
  # LorjCloud module
2
2
  module LorjCloud
3
- VERSION = '0.1.8'
4
- DATE = '2015-06-30'
3
+ VERSION = '0.1.9'
4
+ DATE = '2015-07-02'
5
5
  end
@@ -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, hParams|
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, hParams)
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.17"
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.8
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-06-30 00:00:00.000000000 Z
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.17
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.17
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