lorj 0.2.0 → 1.0.0
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/.gitignore +1 -0
- data/.rubocop.yml +46 -0
- data/Gemfile +15 -15
- data/README.md +22 -17
- data/Rakefile +12 -2
- data/bin/cloud_test.rb +13 -65
- data/example/students_1/process/students.rb +39 -0
- data/example/students_1/students.rb +22 -5
- data/example/students_2/process/students.rb +48 -0
- data/example/students_2/students.rb +39 -16
- data/example/students_3/controller/yaml_students.rb +50 -43
- data/example/students_3/controller/yaml_students_controller.rb +100 -87
- data/example/students_3/process/students.rb +161 -97
- data/example/students_3/students.rb +85 -56
- data/example/yaml_students/students.rb +40 -40
- data/example/yaml_students/yaml_students.rb +103 -90
- data/lib/core/core.rb +356 -696
- data/lib/core/core_controller.rb +227 -0
- data/lib/core/core_internal.rb +339 -0
- data/lib/core/core_model.rb +328 -0
- data/lib/core/core_object_data.rb +330 -0
- data/lib/core/core_object_params.rb +230 -0
- data/lib/core/core_process.rb +391 -0
- data/lib/core/core_process_setup.rb +353 -0
- data/lib/core/core_setup_ask.rb +241 -0
- data/lib/core/core_setup_encrypt.rb +146 -0
- data/lib/core/core_setup_init.rb +229 -0
- data/lib/core/core_setup_list.rb +160 -0
- data/lib/core/definition.rb +647 -469
- data/lib/core/definition_internal.rb +264 -308
- data/lib/core/lorj_basecontroller.rb +95 -0
- data/lib/core/lorj_basedefinition.rb +307 -0
- data/lib/core/lorj_baseprocess.rb +265 -0
- data/lib/core/lorj_data.rb +583 -0
- data/lib/core/lorj_keypath.rb +119 -0
- data/lib/core_process/cloud/process/common.rb +63 -0
- data/lib/core_process/cloud/process/connection.rb +93 -0
- data/lib/core_process/cloud/process/external_network.rb +94 -0
- data/lib/core_process/cloud/process/flavor.rb +99 -0
- data/lib/core_process/cloud/process/images.rb +87 -0
- data/lib/core_process/cloud/process/internet_network.rb +34 -0
- data/lib/core_process/cloud/process/internet_server.rb +30 -0
- data/lib/core_process/cloud/process/keypairs.rb +276 -0
- data/lib/core_process/cloud/process/network.rb +108 -0
- data/lib/core_process/cloud/process/public_ip.rb +100 -0
- data/lib/core_process/cloud/process/router.rb +260 -0
- data/lib/core_process/cloud/process/rules.rb +120 -0
- data/lib/core_process/cloud/process/security_groups.rb +121 -0
- data/lib/core_process/cloud/process/server.rb +127 -0
- data/lib/core_process/cloud/process/server_log.rb +35 -0
- data/lib/core_process/cloud/process/subnetwork.rb +108 -0
- data/lib/core_process/cloud_process.rb +30 -0
- data/lib/logging.rb +298 -0
- data/lib/lorj/version.rb +18 -1
- data/lib/lorj.rb +58 -18
- data/lib/lorj_account.rb +556 -0
- data/lib/lorj_config.rb +468 -0
- data/lib/lorj_defaults.rb +278 -0
- data/lib/prc.rb +136 -104
- data/lib/prc_base_config.rb +285 -0
- data/lib/prc_core_config.rb +878 -0
- data/lib/prc_section_config.rb +57 -0
- data/lib/providers/hpcloud/compute.rb +81 -93
- data/lib/providers/hpcloud/hpcloud.rb +462 -0
- data/lib/providers/hpcloud/network.rb +96 -98
- data/lib/providers/hpcloud/security_groups.rb +41 -40
- data/lib/providers/mock/mock.rb +144 -0
- data/lib/providers/openstack/openstack.rb +45 -0
- data/lib/providers/templates/compute.rb +21 -23
- data/lib/providers/templates/mycloud.rb +72 -0
- data/lib/providers/templates/network.rb +11 -12
- data/lib/rh.rb +339 -0
- data/lorj-spec/defaults.yaml +4 -0
- data/lorj.gemspec +6 -0
- data/spec/00_lorj_log_spec.rb +53 -0
- data/spec/01_hash_rh_spec.rb +243 -0
- data/spec/02_prc_base_config_spec.rb +216 -0
- data/spec/04_prc_core_config_spec.rb +83 -0
- data/spec/11_lorj_config_spec.rb +263 -0
- data/spec/12_lorj_account_spec.rb +181 -0
- metadata +76 -28
- data/Gemfile.lock +0 -37
- data/example/students_1/process/Students.rb +0 -20
- data/example/students_2/process/Students.rb +0 -27
- data/example/students_4/controller/yaml_students.rb +0 -82
- data/example/students_4/controller/yaml_students_controller.rb +0 -141
- data/example/students_4/process/students.rb +0 -112
- data/example/students_4/students.rb +0 -103
- data/lib/core/lorj-basecontroller.rb +0 -90
- data/lib/core/lorj-basedefinition.rb +0 -1139
- data/lib/core/lorj-baseprocess.rb +0 -236
- data/lib/core/lorj-data.rb +0 -567
- data/lib/core/lorj-keypath.rb +0 -115
- data/lib/core_process/CloudProcess.rb +0 -337
- data/lib/core_process/global_process.rb +0 -502
- data/lib/core_process/network_process.rb +0 -605
- data/lib/prc-account.rb +0 -339
- data/lib/prc-config.rb +0 -1030
- data/lib/prc-logging.rb +0 -261
- data/lib/providers/hpcloud/Hpcloud.rb +0 -426
- data/lib/providers/mock/Mock.rb +0 -141
- data/lib/providers/openstack/Openstack.rb +0 -47
- data/lib/providers/templates/core.rb +0 -61
- data/spec/forj-account_spec.rb +0 -75
- data/spec/forj-config_spec.rb +0 -196
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# encoding: UTF-8
|
|
3
|
+
|
|
4
|
+
# (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
|
|
18
|
+
# require 'rubygems'
|
|
19
|
+
# require 'byebug'
|
|
20
|
+
# require 'bundler/setup'
|
|
21
|
+
|
|
22
|
+
app_path = File.dirname(File.dirname(__FILE__))
|
|
23
|
+
|
|
24
|
+
$LOAD_PATH << '../lib'
|
|
25
|
+
|
|
26
|
+
require 'lorj' # Load lorj framework
|
|
27
|
+
|
|
28
|
+
describe 'class: Lorj::Account,' do
|
|
29
|
+
context 'Lorj::Account.new,' do
|
|
30
|
+
it 'instance is created.' do
|
|
31
|
+
PrcLib.log_file = 'lorj-rspec.log'
|
|
32
|
+
PrcLib.level = Logger::FATAL
|
|
33
|
+
PrcLib.app_name = 'lorj-spec'
|
|
34
|
+
PrcLib.app_defaults = File.join(app_path, 'lorj-spec')
|
|
35
|
+
|
|
36
|
+
account = Lorj::Account.new
|
|
37
|
+
expect(account).to be
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'account.layers is compliant' do
|
|
41
|
+
account = Lorj::Account.new
|
|
42
|
+
expect(account.layers).to eq(%w(runtime account local default))
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
context "Key | runtime | accounts | local | default)\n"\
|
|
47
|
+
" :keypair | nil | nil | nova_local| default_key\n"\
|
|
48
|
+
" :data | nil | nil | no effect | None\n"\
|
|
49
|
+
" :data is account exclusive\n => accounts/test1 not set:" do
|
|
50
|
+
before(:all) do
|
|
51
|
+
File.open(File.join(PrcLib.data_path, 'config.yaml'),
|
|
52
|
+
'w+') do |file|
|
|
53
|
+
file.write(":default:\n :keypair_name: nova_local\n :data: no effect")
|
|
54
|
+
end
|
|
55
|
+
File.open(File.join(PrcLib.data_path, 'accounts', 'test1'),
|
|
56
|
+
'w+') do |file|
|
|
57
|
+
file.write(":credentials:\n :keypair_name: nova_test1\n "\
|
|
58
|
+
":tenant_name: test\n :data: ac_data")
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
@account = Lorj::Account.new
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it 'account.exist?(:keypair_name) return true, stored only in local.' do
|
|
65
|
+
expect(@account.exist?(:keypair_name)).to equal(true)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "account[:keypair_name] return 'nova_local', stored only in local." do
|
|
69
|
+
expect(@account[:keypair_name]).to eq('nova_local')
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 'account.where?(:keypair_name) return %w(local default)' do
|
|
73
|
+
expect(@account.where?(:keypair_name)).to eq(%w(local default))
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it "after account.local_del(:keypair_name) value is 'default_key'" do
|
|
77
|
+
expect(@account.local_del(:keypair_name)).to eq('nova_local')
|
|
78
|
+
expect(@account.where?(:keypair_name)).to eq(%w(default))
|
|
79
|
+
expect(@account[:keypair_name]).to eq('default_key')
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it 'account.exist?(:data) return false, stored only in local.' do
|
|
83
|
+
expect(@account.exist?(:data)).to equal(false)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it "account[:data] return 'nova_local', stored only in local." do
|
|
87
|
+
expect(@account[:data]).to eq(nil)
|
|
88
|
+
end
|
|
89
|
+
it 'account.where?(:data) return false, as account not loaded.' do
|
|
90
|
+
expect(@account.where?(:data)).to equal(false)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
context "Key | runtime | accounts | local | default)\n"\
|
|
95
|
+
" :keypair | none | nova_test1 | nova_local| default_key\n"\
|
|
96
|
+
" :data | none | ac_data | no effect | None\n"\
|
|
97
|
+
" :data is account exclusive\n => accounts/test1 not set:" do
|
|
98
|
+
before(:all) do
|
|
99
|
+
@account = Lorj::Account.new
|
|
100
|
+
end
|
|
101
|
+
it 'account.load return true' do
|
|
102
|
+
expect(@account.ac_load 'test1').to equal(true)
|
|
103
|
+
expect(@account.where?(:data)).to eq(%w(account))
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it "account[:data] = 'value' return 'value'" do
|
|
107
|
+
expect(@account[:data] = 'value').to eq('value')
|
|
108
|
+
expect(@account.where?(:data)).to eq(%w(runtime account))
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
it 'runtime data structure is valid' do
|
|
112
|
+
runtime = @account.config_dump(%w(runtime))
|
|
113
|
+
expect(runtime).to eq(:data => 'value')
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
it "account[:data] return 'value'" do
|
|
117
|
+
expect(@account[:data]).to eq('value')
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
it 'account.where?(:keypair_name) return %w(account local default)' do
|
|
121
|
+
expect(@account.where?(:keypair_name)).to eq(%w(account local default))
|
|
122
|
+
end
|
|
123
|
+
it "account[:keypair_name] = 'value' return 'value'" do
|
|
124
|
+
expect(@account[:keypair_name] = 'value').to eq('value')
|
|
125
|
+
expect(@account.where?(:keypair_name)).to eq(%w(runtime account local
|
|
126
|
+
default))
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
it "account.del(:keypair_name) return 'value'" do
|
|
130
|
+
expect(@account.del(:keypair_name)).to eq('value')
|
|
131
|
+
expect(@account.where?(:keypair_name)).to eq(%w(account local default))
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
it "account.get(:keypair_name) return back default value 'nova_test1'" do
|
|
135
|
+
expect(@account.get(:keypair_name)).to eq('nova_test1')
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
it "account.set(:keypair_name, 'nova_test2', :name => 'account') return "\
|
|
139
|
+
" 'nova_test2'" do
|
|
140
|
+
expect(@account.set(:keypair_name, 'nova_test2',
|
|
141
|
+
:name => 'account')).to eq('nova_test2')
|
|
142
|
+
expect(@account.where?(:keypair_name)).to eq(%w(account local default))
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
it "account.get(:keypair_name, :name => 'account') return 'nova_test2'" do
|
|
146
|
+
expect(@account.get(:keypair_name,
|
|
147
|
+
:name => 'account')).to eq('nova_test2')
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
it 'account.ac_save return false - '\
|
|
151
|
+
'file has no valid provider name' do
|
|
152
|
+
expect(@account.ac_save).to equal(false)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
it 'set provider name' do
|
|
156
|
+
expect(@account.set(:provider, 'myprovider',
|
|
157
|
+
:name => 'account',
|
|
158
|
+
:section => :account)).to eq('myprovider')
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
it 'account.ac_save return true' do
|
|
162
|
+
expect(@account.ac_save).to equal(true)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
it 'account.ac_new return true, and :data disappeared.' do
|
|
166
|
+
expect(@account.ac_new 'test1').to equal(true)
|
|
167
|
+
expect(@account.where?(:data)).to eq(%w(runtime))
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
it 'account.load return true, and :data is back' do
|
|
171
|
+
expect(@account.ac_load 'test1').to equal(true)
|
|
172
|
+
expect(@account.where?(:data)).to eq(%w(runtime account))
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
it "account.get(:keypair_name, :name => 'account') return "\
|
|
176
|
+
"saved 'nova_test2'" do
|
|
177
|
+
expect(@account.get(:keypair_name,
|
|
178
|
+
:name => 'account')).to eq('nova_test2')
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lorj
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- forj team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2015-01-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - ~>
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: 3.1.0
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: byebug
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - '>='
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - '>='
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: highline
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -106,61 +120,91 @@ extra_rdoc_files: []
|
|
|
106
120
|
files:
|
|
107
121
|
- .gitignore
|
|
108
122
|
- .gitreview
|
|
123
|
+
- .rubocop.yml
|
|
109
124
|
- Gemfile
|
|
110
|
-
- Gemfile.lock
|
|
111
125
|
- LICENSE.txt
|
|
112
126
|
- README.md
|
|
113
127
|
- Rakefile
|
|
114
128
|
- bin/cloud_test.rb
|
|
115
|
-
- example/students_1/process/
|
|
129
|
+
- example/students_1/process/students.rb
|
|
116
130
|
- example/students_1/students.rb
|
|
117
|
-
- example/students_2/process/
|
|
131
|
+
- example/students_2/process/students.rb
|
|
118
132
|
- example/students_2/students.rb
|
|
119
133
|
- example/students_3/controller/yaml_students.rb
|
|
120
134
|
- example/students_3/controller/yaml_students_controller.rb
|
|
121
135
|
- example/students_3/process/students.rb
|
|
122
136
|
- example/students_3/students.rb
|
|
123
|
-
- example/students_4/controller/yaml_students.rb
|
|
124
|
-
- example/students_4/controller/yaml_students_controller.rb
|
|
125
|
-
- example/students_4/process/students.rb
|
|
126
|
-
- example/students_4/students.rb
|
|
127
137
|
- example/yaml_students/students.rb
|
|
128
138
|
- example/yaml_students/yaml_students.rb
|
|
129
139
|
- lib/concept.md
|
|
130
140
|
- lib/core/core.rb
|
|
141
|
+
- lib/core/core_controller.rb
|
|
142
|
+
- lib/core/core_internal.rb
|
|
143
|
+
- lib/core/core_model.rb
|
|
144
|
+
- lib/core/core_object_data.rb
|
|
145
|
+
- lib/core/core_object_params.rb
|
|
146
|
+
- lib/core/core_process.rb
|
|
147
|
+
- lib/core/core_process_setup.rb
|
|
148
|
+
- lib/core/core_setup_ask.rb
|
|
149
|
+
- lib/core/core_setup_encrypt.rb
|
|
150
|
+
- lib/core/core_setup_init.rb
|
|
151
|
+
- lib/core/core_setup_list.rb
|
|
131
152
|
- lib/core/definition.rb
|
|
132
153
|
- lib/core/definition_internal.rb
|
|
133
|
-
- lib/core/
|
|
134
|
-
- lib/core/
|
|
135
|
-
- lib/core/
|
|
136
|
-
- lib/core/
|
|
137
|
-
- lib/core/
|
|
138
|
-
- lib/core_process/
|
|
139
|
-
- lib/core_process/
|
|
140
|
-
- lib/core_process/
|
|
154
|
+
- lib/core/lorj_basecontroller.rb
|
|
155
|
+
- lib/core/lorj_basedefinition.rb
|
|
156
|
+
- lib/core/lorj_baseprocess.rb
|
|
157
|
+
- lib/core/lorj_data.rb
|
|
158
|
+
- lib/core/lorj_keypath.rb
|
|
159
|
+
- lib/core_process/cloud/process/common.rb
|
|
160
|
+
- lib/core_process/cloud/process/connection.rb
|
|
161
|
+
- lib/core_process/cloud/process/external_network.rb
|
|
162
|
+
- lib/core_process/cloud/process/flavor.rb
|
|
163
|
+
- lib/core_process/cloud/process/images.rb
|
|
164
|
+
- lib/core_process/cloud/process/internet_network.rb
|
|
165
|
+
- lib/core_process/cloud/process/internet_server.rb
|
|
166
|
+
- lib/core_process/cloud/process/keypairs.rb
|
|
167
|
+
- lib/core_process/cloud/process/network.rb
|
|
168
|
+
- lib/core_process/cloud/process/public_ip.rb
|
|
169
|
+
- lib/core_process/cloud/process/router.rb
|
|
170
|
+
- lib/core_process/cloud/process/rules.rb
|
|
171
|
+
- lib/core_process/cloud/process/security_groups.rb
|
|
172
|
+
- lib/core_process/cloud/process/server.rb
|
|
173
|
+
- lib/core_process/cloud/process/server_log.rb
|
|
174
|
+
- lib/core_process/cloud/process/subnetwork.rb
|
|
175
|
+
- lib/core_process/cloud_process.rb
|
|
141
176
|
- lib/img/.directory
|
|
142
177
|
- lib/img/account_data_access.png
|
|
143
178
|
- lib/img/config_data_access.png
|
|
144
179
|
- lib/img/forj-lib-concept.png
|
|
180
|
+
- lib/logging.rb
|
|
145
181
|
- lib/lorj.rb
|
|
146
182
|
- lib/lorj/version.rb
|
|
147
|
-
- lib/
|
|
148
|
-
- lib/
|
|
149
|
-
- lib/
|
|
183
|
+
- lib/lorj_account.rb
|
|
184
|
+
- lib/lorj_config.rb
|
|
185
|
+
- lib/lorj_defaults.rb
|
|
150
186
|
- lib/prc.rb
|
|
151
|
-
- lib/
|
|
187
|
+
- lib/prc_base_config.rb
|
|
188
|
+
- lib/prc_core_config.rb
|
|
189
|
+
- lib/prc_section_config.rb
|
|
152
190
|
- lib/providers/hpcloud/compute.rb
|
|
191
|
+
- lib/providers/hpcloud/hpcloud.rb
|
|
153
192
|
- lib/providers/hpcloud/network.rb
|
|
154
193
|
- lib/providers/hpcloud/security_groups.rb
|
|
155
|
-
- lib/providers/mock/
|
|
156
|
-
- lib/providers/openstack/
|
|
194
|
+
- lib/providers/mock/mock.rb
|
|
195
|
+
- lib/providers/openstack/openstack.rb
|
|
157
196
|
- lib/providers/templates/compute.rb
|
|
158
|
-
- lib/providers/templates/
|
|
197
|
+
- lib/providers/templates/mycloud.rb
|
|
159
198
|
- lib/providers/templates/network.rb
|
|
199
|
+
- lib/rh.rb
|
|
160
200
|
- lorj-spec/defaults.yaml
|
|
161
201
|
- lorj.gemspec
|
|
162
|
-
- spec/
|
|
163
|
-
- spec/
|
|
202
|
+
- spec/00_lorj_log_spec.rb
|
|
203
|
+
- spec/01_hash_rh_spec.rb
|
|
204
|
+
- spec/02_prc_base_config_spec.rb
|
|
205
|
+
- spec/04_prc_core_config_spec.rb
|
|
206
|
+
- spec/11_lorj_config_spec.rb
|
|
207
|
+
- spec/12_lorj_account_spec.rb
|
|
164
208
|
homepage: https://github.com/forj-oss/lorj
|
|
165
209
|
licenses:
|
|
166
210
|
- Apache License, Version 2.0.
|
|
@@ -188,6 +232,10 @@ signing_key:
|
|
|
188
232
|
specification_version: 4
|
|
189
233
|
summary: Process Controllers framework system
|
|
190
234
|
test_files:
|
|
191
|
-
- spec/
|
|
192
|
-
- spec/
|
|
235
|
+
- spec/00_lorj_log_spec.rb
|
|
236
|
+
- spec/01_hash_rh_spec.rb
|
|
237
|
+
- spec/02_prc_base_config_spec.rb
|
|
238
|
+
- spec/04_prc_core_config_spec.rb
|
|
239
|
+
- spec/11_lorj_config_spec.rb
|
|
240
|
+
- spec/12_lorj_account_spec.rb
|
|
193
241
|
has_rdoc:
|
data/Gemfile.lock
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
lorj (0.2.0)
|
|
5
|
-
ansi (>= 1.4.3)
|
|
6
|
-
encryptor (= 1.3.0)
|
|
7
|
-
highline (~> 1.6.21)
|
|
8
|
-
|
|
9
|
-
GEM
|
|
10
|
-
remote: https://rubygems.org/
|
|
11
|
-
specs:
|
|
12
|
-
ansi (1.4.3)
|
|
13
|
-
diff-lcs (1.2.5)
|
|
14
|
-
encryptor (1.3.0)
|
|
15
|
-
highline (1.6.21)
|
|
16
|
-
rake (10.4.2)
|
|
17
|
-
rspec (3.1.0)
|
|
18
|
-
rspec-core (~> 3.1.0)
|
|
19
|
-
rspec-expectations (~> 3.1.0)
|
|
20
|
-
rspec-mocks (~> 3.1.0)
|
|
21
|
-
rspec-core (3.1.7)
|
|
22
|
-
rspec-support (~> 3.1.0)
|
|
23
|
-
rspec-expectations (3.1.2)
|
|
24
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
25
|
-
rspec-support (~> 3.1.0)
|
|
26
|
-
rspec-mocks (3.1.3)
|
|
27
|
-
rspec-support (~> 3.1.0)
|
|
28
|
-
rspec-support (3.1.2)
|
|
29
|
-
|
|
30
|
-
PLATFORMS
|
|
31
|
-
ruby
|
|
32
|
-
|
|
33
|
-
DEPENDENCIES
|
|
34
|
-
bundler
|
|
35
|
-
lorj!
|
|
36
|
-
rake (~> 10.0)
|
|
37
|
-
rspec (~> 3.1.0)
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Students process
|
|
2
|
-
class StudentsProcess
|
|
3
|
-
def create_student(sObjectType, hParams)
|
|
4
|
-
puts "Running creation process for object '%s' = '%s'" % [sObjectType, hParams[:student_name] ]
|
|
5
|
-
# If you prefer to print out to the log system instead:
|
|
6
|
-
# PrcLib::debug("Running creation process for object '%s' = '%s'" % [sObjectType, hParams[:student_name] ])
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
# Declaring your data model and handlers.
|
|
11
|
-
class Lorj::BaseDefinition
|
|
12
|
-
|
|
13
|
-
# We need to define the student object and the handler to use while we need to create it.
|
|
14
|
-
define_obj(:student,
|
|
15
|
-
{
|
|
16
|
-
:create_e => :create_student # The function to call in the class Students
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
obj_needs :data, :student_name, { :for => [:create_e] }
|
|
20
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Students process
|
|
2
|
-
class StudentsProcess
|
|
3
|
-
def create_student(sObjectType, hParams)
|
|
4
|
-
PrcLib::state ("Running creation process for object '%s' = '%s'" % [sObjectType, hParams[:student_name] ])
|
|
5
|
-
|
|
6
|
-
oObject = controller_create(sObjectType)
|
|
7
|
-
raise "Student '%s' not created." % hParams[:student_name] if oObject.nil?
|
|
8
|
-
PrcLib::info ("'%s': '%s' created with id %s" % [sObjectType, hParams[:student_name], oObject[:id]])
|
|
9
|
-
oObject
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Declaring your data model and handlers.
|
|
15
|
-
class Lorj::BaseDefinition
|
|
16
|
-
|
|
17
|
-
# We need to define the student object and the handler to use while we need to create it.
|
|
18
|
-
define_obj(:student,
|
|
19
|
-
{
|
|
20
|
-
:create_e => :create_student, # The function to call in the class Students
|
|
21
|
-
:query_e => :controller_query, # We use predefined call to the controller query
|
|
22
|
-
:get_e => :controller_get, # We use predefined call to the controller get
|
|
23
|
-
:delete_e => :controller_delete # We use predefined call to the controller delete
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
obj_needs :data, :student_name, { :for => [:create_e], :mapping => :name }
|
|
27
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
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
|
-
|
|
18
|
-
# This class describes how to process some actions, and will do everything prior
|
|
19
|
-
# this task to make it to work.
|
|
20
|
-
|
|
21
|
-
# This Mock controller keep the data in memory in hash/Array data.
|
|
22
|
-
|
|
23
|
-
# declare yaml student API to the controller
|
|
24
|
-
cur_path = File.dirname(__FILE__)
|
|
25
|
-
api_file = File.expand_path(File.join(cur_path, "..", "..", "yaml_students", 'yaml_students.rb'))
|
|
26
|
-
require api_file
|
|
27
|
-
|
|
28
|
-
# The controller is a combination of 2 elements:
|
|
29
|
-
# - Controller class
|
|
30
|
-
# Code which will interfere with the external API.
|
|
31
|
-
#
|
|
32
|
-
# The file name must respect the name of the class. 1st letter already capitalized and letter after _ is capitalized.
|
|
33
|
-
# file: my_code.rb => needs to create MyCodeController class
|
|
34
|
-
#
|
|
35
|
-
# - Definition class
|
|
36
|
-
# This class declare any kind of mapping or additional fields to consider.
|
|
37
|
-
# Additionnal fields are unknow by the process. So, those fields will needs to be setup before.
|
|
38
|
-
#
|
|
39
|
-
# file name convention is identical than controller class.
|
|
40
|
-
# file: my_code.rb => needs to create MyCode class
|
|
41
|
-
|
|
42
|
-
controller_file = File.expand_path(File.join(cur_path,'yaml_students_controller.rb'))
|
|
43
|
-
require controller_file # Load controller mapping
|
|
44
|
-
|
|
45
|
-
# Declare
|
|
46
|
-
# - additional objects and their specific process (:connection using basic predefined :controller_create process)
|
|
47
|
-
# - data_mapping :
|
|
48
|
-
# :connection_string => :file_name
|
|
49
|
-
# :course => :training
|
|
50
|
-
#
|
|
51
|
-
# If some data has been added by the controller, the main and process, won't take care and the framework will fails.
|
|
52
|
-
# To eliminate this errors, there is 2 cases:
|
|
53
|
-
# - detect this change in the process or the main.
|
|
54
|
-
# - set it up, using lorj setup function, if the data is declared askable by the controller.
|
|
55
|
-
# The controller can define how the setup have to ask values, and even can get data
|
|
56
|
-
# from itself.
|
|
57
|
-
|
|
58
|
-
class YamlStudents
|
|
59
|
-
|
|
60
|
-
define_obj(:connection,{
|
|
61
|
-
:create_e => :controller_create # Nothing complex to do. So, simply call the controller create.
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
obj_needs :data, :connection_string, :mapping => :file_name
|
|
65
|
-
undefine_attribute :id # Do not return any predefined ID
|
|
66
|
-
undefine_attribute :name # Do not return any predefined NAME
|
|
67
|
-
|
|
68
|
-
# The student model has been expanded. The object name will be built from first and last name
|
|
69
|
-
define_obj(:student)
|
|
70
|
-
obj_needs :CloudObject, :connection
|
|
71
|
-
|
|
72
|
-
set_hdata :first_name
|
|
73
|
-
set_hdata :last_name
|
|
74
|
-
set_hdata :course, :mapping => :training
|
|
75
|
-
|
|
76
|
-
get_attr_mapping :course, :training
|
|
77
|
-
|
|
78
|
-
# This controller will know how to manage a student file with those data.
|
|
79
|
-
# But note that the file can have a lot of more data than what the process
|
|
80
|
-
# usually manage. It is up to you to increase your process to manage more data.
|
|
81
|
-
# Then each controller may need to define mapping fields.
|
|
82
|
-
end
|
|
@@ -1,141 +0,0 @@
|
|
|
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
|
-
|
|
18
|
-
# This class describes how to process some actions, and will do everything prior
|
|
19
|
-
# this task to make it to work.
|
|
20
|
-
|
|
21
|
-
# This Mock controller keep the data in memory in hash/Array data.
|
|
22
|
-
|
|
23
|
-
# declare yaml student API to the controller
|
|
24
|
-
cur_file = File.expand_path(File.join(File.dirname(File.dirname(__FILE__)), "..", "yaml_students", 'yaml_students.rb'))
|
|
25
|
-
require cur_file
|
|
26
|
-
|
|
27
|
-
# The controller is a combination of 2 elements:
|
|
28
|
-
# - Controller class
|
|
29
|
-
# Code which will interfere with the external API.
|
|
30
|
-
#
|
|
31
|
-
# The file name must respect the name of the class. 1st letter already capitalized and letter after _ is capitalized.
|
|
32
|
-
# file: my_code.rb => needs to create MyCodeController class
|
|
33
|
-
#
|
|
34
|
-
# - Definition class
|
|
35
|
-
# This class declare any kind of mapping or additional fields to consider.
|
|
36
|
-
# Additionnal fields are unknow by the process. So, those fields will needs to be setup before.
|
|
37
|
-
#
|
|
38
|
-
# file name convention is identical than controller class.
|
|
39
|
-
# file: my_code.rb => needs to create MyCode class
|
|
40
|
-
|
|
41
|
-
class YamlStudentsController
|
|
42
|
-
def initialize()
|
|
43
|
-
@@valid_attributes = [:name, :first_name, :last_name, :id, :status, :training]
|
|
44
|
-
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def create(sObjectType, hParams)
|
|
48
|
-
case sObjectType
|
|
49
|
-
when :connection
|
|
50
|
-
required?(hParams, :hdata, :file_name)
|
|
51
|
-
YamlSchool.new(hParams[:hdata, :file_name])
|
|
52
|
-
when :student
|
|
53
|
-
required?(hParams, :connection)
|
|
54
|
-
required?(hParams, :student_name)
|
|
55
|
-
|
|
56
|
-
hParams[:connection].create_student(hParams[:student_name], hParams[:hdata])
|
|
57
|
-
else
|
|
58
|
-
Error "'%s' is not a valid object for 'create'" % sObjectType
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# This function return a collection which have to provide:
|
|
63
|
-
# functions: [], length, each
|
|
64
|
-
# Used by network process.
|
|
65
|
-
def query(sObjectType, sQuery, hParams)
|
|
66
|
-
case sObjectType
|
|
67
|
-
when :student
|
|
68
|
-
required?(hParams, :connection)
|
|
69
|
-
|
|
70
|
-
hParams[:connection].query_student(sQuery)
|
|
71
|
-
else
|
|
72
|
-
Error "'%s' is not a valid object for 'create'" % sObjectType
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def delete(sObjectType, hParams)
|
|
78
|
-
case sObjectType
|
|
79
|
-
when :student
|
|
80
|
-
required?(hParams, :connection)
|
|
81
|
-
|
|
82
|
-
hParams[:connection].delete_student(hParams[sObjectType][:id])
|
|
83
|
-
else
|
|
84
|
-
Error "'%s' is not a valid object for 'create'" % sObjectType
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def get(sObjectType, sUniqId, hParams)
|
|
89
|
-
case sObjectType
|
|
90
|
-
when :student
|
|
91
|
-
required?(hParams, :connection)
|
|
92
|
-
|
|
93
|
-
list = hParams[:connection].query_student({:id => sUniqId})
|
|
94
|
-
if list.length == 0
|
|
95
|
-
nil
|
|
96
|
-
else
|
|
97
|
-
list[0]
|
|
98
|
-
end
|
|
99
|
-
else
|
|
100
|
-
Error "'%s' is not a valid object for 'create'" % sObjectType
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def get_attr(oControlerObject, key)
|
|
105
|
-
# This controller function read the data and
|
|
106
|
-
# extract the information requested by the framework.
|
|
107
|
-
# Those data will be mapped to the process data model.
|
|
108
|
-
# The key is an array, to get data from a level tree.
|
|
109
|
-
# [data_l1, data_l2, data_l3] => should retrieve data from structure like data[ data_l2[ data_l3 ] ]
|
|
110
|
-
begin
|
|
111
|
-
attributes = oControlerObject
|
|
112
|
-
raise "get_attr: attribute '%s' is unknown in '%s'. Valid one are : '%s'" % [key[0], oControlerObject.class, @@valid_attributes ] unless @@valid_attributes.include?(key[0])
|
|
113
|
-
Lorj::rhGet(attributes, key)
|
|
114
|
-
rescue => e
|
|
115
|
-
Error "get_attr: Unable to map '%s'. %s" % [key, e.message]
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def set_attr(oControlerObject, key, value)
|
|
120
|
-
begin
|
|
121
|
-
attributes = oControlerObject
|
|
122
|
-
raise "set_attr: attribute '%s' is unknown in '%s'. Valid one are : '%s'" % [key[0], oControlerObject.class, @@valid_attributes ] unless @@valid_attributes.include?(key[0])
|
|
123
|
-
Lorj::rhSet(attributes, value, key)
|
|
124
|
-
rescue => e
|
|
125
|
-
Error "set_attr: Unable to map '%s' on '%s'" % [key, sObjectType]
|
|
126
|
-
end
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
def update(sObjectType, oObject, hParams)
|
|
131
|
-
case sObjectType
|
|
132
|
-
when :student
|
|
133
|
-
required?(hParams, :connection)
|
|
134
|
-
|
|
135
|
-
hParams[:connection].update_student(oObject)
|
|
136
|
-
else
|
|
137
|
-
Error "'%s' is not a valid object for 'create'" % sObjectType
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
end
|