lorj_cloud 0.1.2 → 0.1.3
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/server.rb +3 -0
- data/lib/process/cloud/providers/hpcloud/hpcloud.rb +20 -1
- data/lib/process/cloud/providers/openstack/openstack.rb +15 -0
- data/lib/process/cloud/providers/openstack/openstack_query.rb +36 -56
- data/lorj_cloud.gemspec +10 -7
- metadata +55 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a6728ac07fa2967a77fccc30673346724180474
|
4
|
+
data.tar.gz: 0eda6415e42c3438d42ddd65a7e7225cd2c6254a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd1430bfbc8595a5b8d1300b73e29ddec98ee2ecde43a41863d167efeeaa96a7bcc8afc6b752ff4911b8f147052738dbad10db0a823972ccb064fc68ec8d304e
|
7
|
+
data.tar.gz: 9a7910cfb451762e16e04977b6e0e63c11d7500768eac414ef22f5aa03096a1a3d00fa9574145f0492f2025842fc42e0865a6b3394389324946bac2cf4d7c545
|
data/lib/lorj_cloud/version.rb
CHANGED
@@ -26,6 +26,8 @@ class CloudProcess
|
|
26
26
|
def forj_get_or_create_server(sCloudObj, hParams)
|
27
27
|
server_name = hParams[:server_name]
|
28
28
|
PrcLib.state("Searching for server '%s'", server_name)
|
29
|
+
|
30
|
+
config[:search_for] = server_name
|
29
31
|
servers = forj_query_server(sCloudObj, { :name => server_name }, hParams)
|
30
32
|
if servers.length > 0
|
31
33
|
# Get server details
|
@@ -103,6 +105,7 @@ class Lorj::BaseDefinition
|
|
103
105
|
|
104
106
|
def_attribute :image_id
|
105
107
|
def_attribute :key_name
|
108
|
+
def_attribute :meta_data
|
106
109
|
end
|
107
110
|
|
108
111
|
# Internal Process function
|
@@ -100,6 +100,7 @@ class Hpcloud
|
|
100
100
|
# ************************************ SERVER Object
|
101
101
|
define_obj :server
|
102
102
|
def_attr_mapping :private_ip_addresses, [:addresses, '{key}', [:addr]]
|
103
|
+
def_attr_mapping :meta_data, :metadata
|
103
104
|
def_attr_mapping :status, :state
|
104
105
|
attr_value_mapping :create, 'BUILD'
|
105
106
|
attr_value_mapping :boot, :boot
|
@@ -394,12 +395,30 @@ class HpcloudController # rubocop: disable Metrics/ClassLength
|
|
394
395
|
"Valid one are : '%s'",
|
395
396
|
key[0], oControlerObject.class,
|
396
397
|
def_attributes unless def_attributes.include?(key[0])
|
397
|
-
attributes.rh_get(key)
|
398
|
+
return attributes.rh_get(key) if attributes.rh_exist?(key)
|
399
|
+
_get_instance_attr(oControlerObject, key)
|
398
400
|
end
|
399
401
|
rescue => e
|
400
402
|
controller_error "Unable to map '%s'. %s", key, e.message
|
401
403
|
end
|
402
404
|
|
405
|
+
def _server_metadata_get(oControlerObject)
|
406
|
+
ret = {}
|
407
|
+
oControlerObject.metadata.each do |m|
|
408
|
+
k = m.attributes[:key]
|
409
|
+
v = m.attributes[:value]
|
410
|
+
ret[k] = v
|
411
|
+
end
|
412
|
+
ret
|
413
|
+
end
|
414
|
+
|
415
|
+
def _get_instance_attr(oControlerObject, key)
|
416
|
+
return _server_metadata_get(oControlerObject) if key[0] == :metadata
|
417
|
+
return nil if oControlerObject.send(key[0]).nil?
|
418
|
+
return oControlerObject.send(key[0]) if key.length == 1
|
419
|
+
oControlerObject.send(key[0]).rh_get(key[1..-1])
|
420
|
+
end
|
421
|
+
|
403
422
|
def set_attr(oControlerObject, key, value)
|
404
423
|
controller_class = oControlerObject.class
|
405
424
|
|
@@ -222,6 +222,7 @@ class Openstack
|
|
222
222
|
[:addresses, '{/.*/}',
|
223
223
|
'<%= data["OS-EXT-IPS:type"] == "floating" %>|addr']
|
224
224
|
def_attr_mapping :image_id, [:image, 'id']
|
225
|
+
def_attr_mapping :meta_data, :metadata
|
225
226
|
|
226
227
|
define_obj :router
|
227
228
|
obj_needs_optional
|
@@ -355,7 +356,21 @@ class OpenstackController
|
|
355
356
|
controller_error "==>Unable to map '%s'. %s", key, e.message
|
356
357
|
end
|
357
358
|
|
359
|
+
def _server_metadata_get(oControlerObject)
|
360
|
+
ret = {}
|
361
|
+
oControlerObject.metadata.each do |m|
|
362
|
+
k = m.attributes[:key]
|
363
|
+
v = m.attributes[:value]
|
364
|
+
ret[k] = v
|
365
|
+
end
|
366
|
+
ret
|
367
|
+
end
|
368
|
+
|
358
369
|
def _get_instance_attr(oControlerObject, key)
|
370
|
+
if key[0] == :metadata &&
|
371
|
+
oControlerObject.class == Fog::Compute::OpenStack::Server
|
372
|
+
return _server_metadata_get(oControlerObject)
|
373
|
+
end
|
359
374
|
return nil if oControlerObject.send(key[0]).nil?
|
360
375
|
return oControlerObject.send(key[0]) if key.length == 1
|
361
376
|
oControlerObject.send(key[0]).rh_get(key[1..-1])
|
@@ -16,81 +16,61 @@
|
|
16
16
|
|
17
17
|
# Defined Openstack object query.
|
18
18
|
class OpenstackController
|
19
|
-
def self.def_basic_query(connection, name, property_name = nil)
|
20
|
-
property_name = property_name.nil? ? name.to_s + 's' : property_name.to_s
|
21
|
-
|
22
|
-
define_method("query_#{name}") do |hParams, _query|
|
23
|
-
required?(hParams, connection)
|
24
|
-
hParams[connection].send(property_name).all
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# Implementation of API supporting query Hash
|
29
|
-
def self.def_simple_query(connection, name, property_name = nil)
|
30
|
-
property_name = property_name.nil? ? name.to_s + 's' : property_name.to_s
|
31
|
-
|
32
|
-
define_method("query_#{name}") do |hParams, query|
|
33
|
-
required?(hParams, connection)
|
34
|
-
hParams[connection].send(property_name).all query
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
19
|
# Implementation of API NOT supporting query Hash
|
39
20
|
# The function will filter itself.
|
40
|
-
|
21
|
+
# It must support
|
22
|
+
# - Regexp
|
23
|
+
# - simple value equality
|
24
|
+
def self.def_query(requires, name, property_name = nil)
|
41
25
|
property_name = property_name.nil? ? name.to_s + 's' : property_name.to_s
|
42
26
|
|
43
27
|
define_method("query_#{name}") do |hParams, query|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
results.push sElem if selected
|
28
|
+
requires = [requires] unless requires.is_a?(Array)
|
29
|
+
requires.each { |r| required?(hParams, r) }
|
30
|
+
|
31
|
+
connection = requires[0]
|
32
|
+
|
33
|
+
yield hParams, query if block_given?
|
34
|
+
|
35
|
+
func = hParams[connection].send(property_name).method(:all)
|
36
|
+
if func.parameters.length > 0
|
37
|
+
Lorj.debug(4, "'%s' uses Openstack API filter feature.", __method__)
|
38
|
+
objects = func.call ctrl_query_select(query, String)
|
39
|
+
else
|
40
|
+
objects = func.call
|
58
41
|
end
|
59
|
-
|
42
|
+
# Uses :[] or :<key> to match object and query attr.
|
43
|
+
Lorj.debug(4, "'%s' gets %d records", __method__, objects.length)
|
44
|
+
ctrl_query_each objects, query # Return the select objects.
|
60
45
|
end
|
61
46
|
end
|
62
47
|
|
63
|
-
|
64
|
-
|
65
|
-
def_simple_query :compute_connection, :image
|
48
|
+
def_query :compute_connection, :tenant
|
66
49
|
|
67
|
-
|
50
|
+
def_query :compute_connection, :image
|
68
51
|
|
69
|
-
|
52
|
+
def_query :compute_connection, :flavor
|
70
53
|
|
71
|
-
|
54
|
+
def_query :compute_connection, :server
|
72
55
|
|
73
|
-
|
56
|
+
def_query :network_connection, :network
|
74
57
|
|
75
|
-
|
58
|
+
def_query :network_connection, :subnetwork, :subnets
|
76
59
|
|
77
|
-
|
60
|
+
def_query :network_connection, :router
|
78
61
|
|
79
|
-
|
62
|
+
def_query :network_connection, :port
|
80
63
|
|
81
|
-
|
82
|
-
|
83
|
-
|
64
|
+
def_query([:network_connection, :tenants],
|
65
|
+
:security_groups, :security_groups) do |hParams, query|
|
66
|
+
query[:tenant_id] = hParams[:tenants].id
|
67
|
+
end
|
84
68
|
|
85
|
-
|
69
|
+
def_query :network_connection, :rule, :security_group_rules
|
86
70
|
|
87
|
-
|
71
|
+
def_query :compute_connection, :keypairs, :key_pairs
|
88
72
|
|
89
|
-
|
90
|
-
required?(hParams, :network_connection)
|
91
|
-
required?(hParams, :tenants)
|
73
|
+
def_query :compute_connection, :public_ip, :addresses
|
92
74
|
|
93
|
-
|
94
|
-
hParams[:network_connection].send(:security_groups).all query
|
95
|
-
end
|
75
|
+
def_query :compute_connection, :tenants, :tenants
|
96
76
|
end
|
data/lorj_cloud.gemspec
CHANGED
@@ -19,15 +19,18 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
# if spec.respond_to?(:metadata)
|
23
|
-
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com' to prevent pushes to rubygems.org, or delete to allow pushes to any server."
|
24
|
-
# end
|
25
|
-
|
26
22
|
spec.add_development_dependency "bundler", "~> 1.9"
|
27
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
28
|
-
|
29
|
-
|
24
|
+
spec.add_development_dependency "rspec", "~> 3.1.0"
|
25
|
+
|
26
|
+
spec.add_runtime_dependency "lorj", ">= 1.0.13"
|
30
27
|
spec.add_runtime_dependency 'subhash', '>= 0.1.3'
|
31
28
|
spec.add_runtime_dependency "fog", "~> 1.30.0"
|
32
|
-
|
29
|
+
|
30
|
+
# Ruby 1.8 restrictions - BEGIN - To be removed at next major release.
|
31
|
+
# NOTE that gemspec is used at build time. Do not use RUBY_VERSION check
|
32
|
+
# for runtime dependency. It will influence the content of the package.
|
33
|
+
spec.add_runtime_dependency "mime-types", '< 2.0'
|
34
|
+
spec.add_runtime_dependency "nokogiri", '< 1.6'
|
35
|
+
# Ruby 1.8 restrictions - END
|
33
36
|
end
|
metadata
CHANGED
@@ -1,99 +1,127 @@
|
|
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.3
|
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-
|
11
|
+
date: 2015-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.9'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.1.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.1.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: lorj
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- -
|
59
|
+
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.0.
|
61
|
+
version: 1.0.13
|
48
62
|
type: :runtime
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- -
|
66
|
+
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.0.
|
68
|
+
version: 1.0.13
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: subhash
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- -
|
73
|
+
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: 0.1.3
|
62
76
|
type: :runtime
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- -
|
80
|
+
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: 0.1.3
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: fog
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- - ~>
|
87
|
+
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: 1.30.0
|
76
90
|
type: :runtime
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- - ~>
|
94
|
+
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: 1.30.0
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: mime-types
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- -
|
101
|
+
- - "<"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
-
type: :
|
103
|
+
version: '2.0'
|
104
|
+
type: :runtime
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- -
|
108
|
+
- - "<"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
110
|
+
version: '2.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: nokogiri
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "<"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.6'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "<"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.6'
|
97
125
|
description: 'simplify cloud management, thanks to predefined process to manage cloud
|
98
126
|
obj and make it work. '
|
99
127
|
email:
|
@@ -102,10 +130,10 @@ executables: []
|
|
102
130
|
extensions: []
|
103
131
|
extra_rdoc_files: []
|
104
132
|
files:
|
105
|
-
- .gitignore
|
106
|
-
- .gitreview
|
107
|
-
- .rspec
|
108
|
-
- .rubocop.yml
|
133
|
+
- ".gitignore"
|
134
|
+
- ".gitreview"
|
135
|
+
- ".rspec"
|
136
|
+
- ".rubocop.yml"
|
109
137
|
- Gemfile
|
110
138
|
- README.md
|
111
139
|
- Rakefile
|
@@ -158,17 +186,17 @@ require_paths:
|
|
158
186
|
- lib
|
159
187
|
required_ruby_version: !ruby/object:Gem::Requirement
|
160
188
|
requirements:
|
161
|
-
- -
|
189
|
+
- - ">="
|
162
190
|
- !ruby/object:Gem::Version
|
163
191
|
version: '0'
|
164
192
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
193
|
requirements:
|
166
|
-
- -
|
194
|
+
- - ">="
|
167
195
|
- !ruby/object:Gem::Version
|
168
196
|
version: '0'
|
169
197
|
requirements: []
|
170
198
|
rubyforge_project:
|
171
|
-
rubygems_version: 2.
|
199
|
+
rubygems_version: 2.2.3
|
172
200
|
signing_key:
|
173
201
|
specification_version: 4
|
174
202
|
summary: Lorj cloud process.
|