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 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