admin_module 0.1.4
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 +7 -0
- data/.gitignore +19 -0
- data/.rspec +3 -0
- data/Gemfile +14 -0
- data/Guardfile +24 -0
- data/LICENSE +22 -0
- data/README.md +281 -0
- data/Rakefile +98 -0
- data/admin_module.gemspec +34 -0
- data/bin/admin_module +13 -0
- data/lib/admin_module.rb +260 -0
- data/lib/admin_module/cli.rb +54 -0
- data/lib/admin_module/cli/cli_guideline.rb +80 -0
- data/lib/admin_module/cli/cli_lock.rb +149 -0
- data/lib/admin_module/cli/cli_parameter.rb +66 -0
- data/lib/admin_module/cli/cli_task.rb +149 -0
- data/lib/admin_module/cli_old.rb +92 -0
- data/lib/admin_module/client.rb +146 -0
- data/lib/admin_module/command.rb +25 -0
- data/lib/admin_module/command/client_access.rb +43 -0
- data/lib/admin_module/command/config.rb +310 -0
- data/lib/admin_module/command/dc.rb +110 -0
- data/lib/admin_module/command/gdl.rb +71 -0
- data/lib/admin_module/command/lock.rb +110 -0
- data/lib/admin_module/command/ppm.rb +142 -0
- data/lib/admin_module/command/rule.rb +77 -0
- data/lib/admin_module/command/ruleset.rb +56 -0
- data/lib/admin_module/command/snapshot.rb +110 -0
- data/lib/admin_module/command/stage.rb +131 -0
- data/lib/admin_module/command/task.rb +110 -0
- data/lib/admin_module/config_helper.rb +33 -0
- data/lib/admin_module/dc.rb +133 -0
- data/lib/admin_module/guideline.rb +86 -0
- data/lib/admin_module/locks.rb +142 -0
- data/lib/admin_module/page_factory.rb +55 -0
- data/lib/admin_module/pages.rb +120 -0
- data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
- data/lib/admin_module/pages/dc_detail_page.rb +187 -0
- data/lib/admin_module/pages/guideline_page.rb +35 -0
- data/lib/admin_module/pages/guideline_version_page.rb +140 -0
- data/lib/admin_module/pages/guidelines_page.rb +59 -0
- data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
- data/lib/admin_module/pages/lock_definition_page.rb +178 -0
- data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
- data/lib/admin_module/pages/login_page.rb +75 -0
- data/lib/admin_module/pages/parameter_page.rb +62 -0
- data/lib/admin_module/pages/parameters_page.rb +46 -0
- data/lib/admin_module/pages/ppms_page.rb +110 -0
- data/lib/admin_module/pages/rule_page.rb +68 -0
- data/lib/admin_module/pages/rules_page.rb +74 -0
- data/lib/admin_module/pages/ruleset_page.rb +64 -0
- data/lib/admin_module/pages/rulesets_page.rb +60 -0
- data/lib/admin_module/pages/select_list_syncable.rb +64 -0
- data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
- data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
- data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
- data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
- data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
- data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
- data/lib/admin_module/pages/workflow_details_page.rb +67 -0
- data/lib/admin_module/pages/workflow_task_page.rb +107 -0
- data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
- data/lib/admin_module/ppms.rb +78 -0
- data/lib/admin_module/rake.rb +22 -0
- data/lib/admin_module/rake/dc_tasks.rb +185 -0
- data/lib/admin_module/rake/deploy_task.rb +59 -0
- data/lib/admin_module/rake/gdl_tasks.rb +189 -0
- data/lib/admin_module/rake/lock_tasks.rb +189 -0
- data/lib/admin_module/rake/parameter_task.rb +86 -0
- data/lib/admin_module/rake/ppm_tasks.rb +248 -0
- data/lib/admin_module/rake/rule_tasks.rb +157 -0
- data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
- data/lib/admin_module/rake/stage_tasks.rb +197 -0
- data/lib/admin_module/rake/stages_task.rb +197 -0
- data/lib/admin_module/rake/task_tasks.rb +189 -0
- data/lib/admin_module/rules.rb +50 -0
- data/lib/admin_module/rulesets.rb +42 -0
- data/lib/admin_module/snapshots.rb +133 -0
- data/lib/admin_module/stages.rb +171 -0
- data/lib/admin_module/tasks.rb +147 -0
- data/lib/admin_module/version.rb +3 -0
- data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
- data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
- data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
- data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
- data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
- data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
- data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
- data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
- data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
- data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
- data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
- data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
- data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
- data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
- data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
- data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
- data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
- data/spec/data/build/test1.xml +0 -0
- data/spec/data/build/test2.xml +1 -0
- data/spec/data/import_dcs.yml +31 -0
- data/spec/data/import_locks.yml +4 -0
- data/spec/data/import_snapshots.yml +35 -0
- data/spec/data/import_stages.yml +4 -0
- data/spec/data/import_tasks.yml +25 -0
- data/spec/data/patch-test.xml +1 -0
- data/spec/data/remove_test_del_rule.xml +1 -0
- data/spec/data/stages.yml +518 -0
- data/spec/data/test_del_rule.xml +1 -0
- data/spec/lib/admin_module/admin_module_spec.rb +175 -0
- data/spec/lib/admin_module/cli_spec.rb +36 -0
- data/spec/lib/admin_module/client_spec.rb +158 -0
- data/spec/lib/admin_module/command/config_spec.rb +477 -0
- data/spec/lib/admin_module/command/dc_spec.rb +202 -0
- data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
- data/spec/lib/admin_module/command/lock_spec.rb +207 -0
- data/spec/lib/admin_module/command/rule_spec.rb +163 -0
- data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
- data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
- data/spec/lib/admin_module/command/stage_spec.rb +259 -0
- data/spec/lib/admin_module/command/task_spec.rb +207 -0
- data/spec/lib/admin_module/dc_spec.rb +192 -0
- data/spec/lib/admin_module/guideline_spec.rb +177 -0
- data/spec/lib/admin_module/locks_spec.rb +188 -0
- data/spec/lib/admin_module/rules_spec.rb +110 -0
- data/spec/lib/admin_module/rulesets_spec.rb +85 -0
- data/spec/lib/admin_module/snapshot_spec.rb +192 -0
- data/spec/lib/admin_module/stages_spec.rb +179 -0
- data/spec/lib/admin_module/tasks_spec.rb +196 -0
- data/spec/spec_helper.rb +54 -0
- data/spec/support/asserts.rb +13 -0
- data/spec/support/data_clearing.rb +28 -0
- data/spec/support/dirs.rb +54 -0
- data/spec/support/helpers.rb +83 -0
- data/spec/support/lock.rb +23 -0
- data/spec/support/mocks.rb +213 -0
- data/spec/support/snapshot.rb +28 -0
- data/spec/support/stage.rb +22 -0
- data/spec/support/stage_factory.rb +138 -0
- data/spec/support/task.rb +23 -0
- metadata +381 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: snapshot.rb
|
|
3
|
+
# Purpose:: Snapshot command line interface
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2015-04-05
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
|
|
9
|
+
module AdminModule
|
|
10
|
+
module Command
|
|
11
|
+
class Snapshot < Thor
|
|
12
|
+
include AdminModule::Command::ClientAccess
|
|
13
|
+
|
|
14
|
+
class_option :environment, :banner => "dev", :aliases => :e
|
|
15
|
+
|
|
16
|
+
desc "list",
|
|
17
|
+
"List snapshot definitions"
|
|
18
|
+
long_desc <<-LD
|
|
19
|
+
List all snapshot definitions
|
|
20
|
+
|
|
21
|
+
With -e <env>, sets the environment to work with
|
|
22
|
+
LD
|
|
23
|
+
def list
|
|
24
|
+
cl = client.snapshots
|
|
25
|
+
list = cl.list
|
|
26
|
+
|
|
27
|
+
list.each { |item| say item; }
|
|
28
|
+
|
|
29
|
+
ensure
|
|
30
|
+
client.logout
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
desc "import <filepath>",
|
|
34
|
+
"Import a snapshot definition file into the environment"
|
|
35
|
+
long_desc <<-LD
|
|
36
|
+
Import a snapshot definition file into the environment.
|
|
37
|
+
|
|
38
|
+
<filepath> is a path to a YAML definition file to import.
|
|
39
|
+
|
|
40
|
+
With -e <env>, sets the environment to work with.
|
|
41
|
+
LD
|
|
42
|
+
def import filepath
|
|
43
|
+
cl = client.snapshots
|
|
44
|
+
cl.import filepath
|
|
45
|
+
|
|
46
|
+
ensure
|
|
47
|
+
client.logout
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
desc "export <filepath>",
|
|
51
|
+
"Export a snapshot definition file from the environment"
|
|
52
|
+
long_desc <<-LD
|
|
53
|
+
Export a snapshot definition file from the environment.
|
|
54
|
+
|
|
55
|
+
<filepath> path to location YAML definition file will be exported to.
|
|
56
|
+
|
|
57
|
+
With -e <env>, sets the environment to work with.
|
|
58
|
+
LD
|
|
59
|
+
def export filepath
|
|
60
|
+
cl = client.snapshots
|
|
61
|
+
cl.export filepath
|
|
62
|
+
|
|
63
|
+
ensure
|
|
64
|
+
client.logout
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
desc "rename <srcname> <destname>",
|
|
68
|
+
"Rename a snapshot definition from <srcname> to <destname>"
|
|
69
|
+
long_desc <<-LD
|
|
70
|
+
Rename a snapshot definition from <srcname> to <destname>.
|
|
71
|
+
|
|
72
|
+
With -e <env>, sets the environment to work with.
|
|
73
|
+
|
|
74
|
+
This operation will fail if the source definition does not exist or
|
|
75
|
+
if the destination definition name already exists.
|
|
76
|
+
LD
|
|
77
|
+
def rename src, dest
|
|
78
|
+
cl = client.snapshots
|
|
79
|
+
|
|
80
|
+
cl.rename src, dest
|
|
81
|
+
|
|
82
|
+
rescue ArgumentError => e
|
|
83
|
+
say e.message, :red
|
|
84
|
+
|
|
85
|
+
ensure
|
|
86
|
+
client.logout
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
desc "read <name>",
|
|
90
|
+
"Emit a snapshot definition from the environment in YAML format"
|
|
91
|
+
long_desc <<-LD
|
|
92
|
+
Emit a snapshot's definition from the environment in YAML format.
|
|
93
|
+
|
|
94
|
+
<name> of snapshot definition to dump.
|
|
95
|
+
|
|
96
|
+
With -e <env>, sets the environment to work with.
|
|
97
|
+
LD
|
|
98
|
+
def read name
|
|
99
|
+
cl = client.snapshots
|
|
100
|
+
data = cl.read name
|
|
101
|
+
output = Hash.new
|
|
102
|
+
output[name] = data
|
|
103
|
+
$stdout << output.to_yaml
|
|
104
|
+
|
|
105
|
+
ensure
|
|
106
|
+
client.logout
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: stage.rb
|
|
3
|
+
# Purpose:: Stage command line interface
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 11/15/2013
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
|
|
9
|
+
module AdminModule
|
|
10
|
+
module Command
|
|
11
|
+
class Stage < Thor
|
|
12
|
+
include AdminModule::Command::ClientAccess
|
|
13
|
+
|
|
14
|
+
class_option :environment, :banner => "dev", :aliases => :e
|
|
15
|
+
|
|
16
|
+
desc "rename <srcname> <destname>",
|
|
17
|
+
"Rename a stage from <srcname> to <destname>"
|
|
18
|
+
long_desc <<-LD
|
|
19
|
+
Rename a stage from <srcname> to <destname>.
|
|
20
|
+
|
|
21
|
+
With -e <env>, sets the environment to work with.
|
|
22
|
+
|
|
23
|
+
This operation will fail if the source stage does not exist or
|
|
24
|
+
if the destination stage name already exists.
|
|
25
|
+
LD
|
|
26
|
+
def rename src, dest
|
|
27
|
+
cs = client.stages
|
|
28
|
+
cs.rename src, dest
|
|
29
|
+
|
|
30
|
+
rescue ArgumentError => e
|
|
31
|
+
say e.message, :red
|
|
32
|
+
|
|
33
|
+
ensure
|
|
34
|
+
client.logout
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
desc "list",
|
|
38
|
+
"List all stages in the environment"
|
|
39
|
+
long_desc <<-LD
|
|
40
|
+
List all stages in the current environment.
|
|
41
|
+
|
|
42
|
+
With -e <env>, sets the environment to work with.
|
|
43
|
+
LD
|
|
44
|
+
def list
|
|
45
|
+
cs = client.stages
|
|
46
|
+
list = cs.list
|
|
47
|
+
|
|
48
|
+
list.each { |s| say s; }
|
|
49
|
+
|
|
50
|
+
ensure
|
|
51
|
+
client.logout
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
desc "import <filepath>",
|
|
55
|
+
"Import a stage configuration file into the environment"
|
|
56
|
+
long_desc <<-LD
|
|
57
|
+
Import a stage configuration file into the environment.
|
|
58
|
+
|
|
59
|
+
<filepath> is a path to a YAML configuration file to import.
|
|
60
|
+
|
|
61
|
+
With -e <env>, sets the environment to work with.
|
|
62
|
+
|
|
63
|
+
With -c, allow creation of new stages
|
|
64
|
+
LD
|
|
65
|
+
option :create, :type => :boolean, :default => false, :aliases => :c
|
|
66
|
+
def import filepath
|
|
67
|
+
cs = client.stages
|
|
68
|
+
cs.import filepath, options[:create]
|
|
69
|
+
|
|
70
|
+
return
|
|
71
|
+
ensure
|
|
72
|
+
client.logout
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
desc "export <filepath>",
|
|
76
|
+
"Export a stage configuration file from the environment"
|
|
77
|
+
long_desc <<-LD
|
|
78
|
+
Export a stage configuration file from the environment.
|
|
79
|
+
|
|
80
|
+
<filepath> path where the YAML configuration file will be exported to.
|
|
81
|
+
|
|
82
|
+
With -e <env>, sets the environment to work with.
|
|
83
|
+
LD
|
|
84
|
+
def export filepath
|
|
85
|
+
cs = client.stages
|
|
86
|
+
cs.export filepath
|
|
87
|
+
|
|
88
|
+
return
|
|
89
|
+
ensure
|
|
90
|
+
client.logout
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
desc "delete <name>",
|
|
94
|
+
"Delete a stage from the environment"
|
|
95
|
+
long_desc <<-LD
|
|
96
|
+
Delete a stage from the environment.
|
|
97
|
+
|
|
98
|
+
<name> of stage to delete.
|
|
99
|
+
|
|
100
|
+
With -e <env>, sets the environment to work with.
|
|
101
|
+
LD
|
|
102
|
+
def delete name
|
|
103
|
+
cs = client.stages
|
|
104
|
+
cs.delete name
|
|
105
|
+
|
|
106
|
+
ensure
|
|
107
|
+
client.logout
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
desc "read <name>",
|
|
111
|
+
"Emit a stage's configuration from the environment in YAML format"
|
|
112
|
+
long_desc <<-LD
|
|
113
|
+
Emit a stage's configuration from the environment in YAML format.
|
|
114
|
+
|
|
115
|
+
<name> of stage to dump.
|
|
116
|
+
|
|
117
|
+
With -e <env>, sets the environment to work with.
|
|
118
|
+
LD
|
|
119
|
+
def read name
|
|
120
|
+
cs = client.stages
|
|
121
|
+
data = cs.read(name)
|
|
122
|
+
output = Hash.new
|
|
123
|
+
output[name] = data
|
|
124
|
+
$stdout << output.to_yaml
|
|
125
|
+
|
|
126
|
+
ensure
|
|
127
|
+
client.logout
|
|
128
|
+
end
|
|
129
|
+
end # class
|
|
130
|
+
end
|
|
131
|
+
end # module
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: task.rb
|
|
3
|
+
# Purpose:: Task command line interface
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2014-06-28
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
|
|
9
|
+
module AdminModule
|
|
10
|
+
module Command
|
|
11
|
+
class Task < Thor
|
|
12
|
+
include AdminModule::Command::ClientAccess
|
|
13
|
+
|
|
14
|
+
class_option :environment, :banner => "dev", :aliases => :e
|
|
15
|
+
|
|
16
|
+
desc "rename <srcname> <destname>",
|
|
17
|
+
"Rename a task named <srcname> to <destname>"
|
|
18
|
+
long_desc <<-LD
|
|
19
|
+
Rename a task with the name <srcname> to <destname>.
|
|
20
|
+
|
|
21
|
+
With -e <env>, sets the environment to work with.
|
|
22
|
+
|
|
23
|
+
This operation will fail if the source task does not exist or
|
|
24
|
+
if the destination task name already exists.
|
|
25
|
+
LD
|
|
26
|
+
def rename(src, dest)
|
|
27
|
+
cl = client.tasks
|
|
28
|
+
|
|
29
|
+
cl.rename src, dest
|
|
30
|
+
|
|
31
|
+
rescue ArgumentError => e
|
|
32
|
+
say e.message, :red
|
|
33
|
+
|
|
34
|
+
ensure
|
|
35
|
+
client.logout
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
desc "list",
|
|
39
|
+
"List all tasks in the environment"
|
|
40
|
+
long_desc <<-LD
|
|
41
|
+
List all tasks in the current environment.
|
|
42
|
+
|
|
43
|
+
With -e <env>, sets the environment to work with.
|
|
44
|
+
LD
|
|
45
|
+
def list
|
|
46
|
+
cl = client.tasks
|
|
47
|
+
list = cl.list
|
|
48
|
+
|
|
49
|
+
list.each { |r| say r; }
|
|
50
|
+
|
|
51
|
+
ensure
|
|
52
|
+
client.logout
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
desc "import <filepath>",
|
|
56
|
+
"Import a task configuration file into the environment"
|
|
57
|
+
long_desc <<-LD
|
|
58
|
+
Import a task configuration file into the environment.
|
|
59
|
+
|
|
60
|
+
<filepath> is a path to a YAML configuration file to import.
|
|
61
|
+
|
|
62
|
+
With -e <env>, sets the environment to work with.
|
|
63
|
+
LD
|
|
64
|
+
def import filepath
|
|
65
|
+
cl = client.tasks
|
|
66
|
+
cl.import filepath
|
|
67
|
+
|
|
68
|
+
ensure
|
|
69
|
+
client.logout
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
desc "export <filepath>",
|
|
73
|
+
"Export a task configuration file from the environment"
|
|
74
|
+
long_desc <<-LD
|
|
75
|
+
Export a task configuration file from the environment.
|
|
76
|
+
|
|
77
|
+
<filepath> path where the YAML configuration file will be exported to.
|
|
78
|
+
|
|
79
|
+
With -e <env>, sets the environment to work with.
|
|
80
|
+
LD
|
|
81
|
+
def export filepath
|
|
82
|
+
cl = client.tasks
|
|
83
|
+
cl.export filepath
|
|
84
|
+
|
|
85
|
+
ensure
|
|
86
|
+
client.logout
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
desc "read <name>",
|
|
90
|
+
"Emit a task's configuration from the environment in YAML format"
|
|
91
|
+
long_desc <<-LD
|
|
92
|
+
Emit a task's configuration from the environment in YAML format.
|
|
93
|
+
|
|
94
|
+
<name> of task to dump.
|
|
95
|
+
|
|
96
|
+
With -e <env>, sets the environment to work with.
|
|
97
|
+
LD
|
|
98
|
+
def read name
|
|
99
|
+
cl = client.tasks
|
|
100
|
+
data = cl.read(name)
|
|
101
|
+
output = Hash.new
|
|
102
|
+
output[name] = data
|
|
103
|
+
$stdout << output.to_yaml
|
|
104
|
+
|
|
105
|
+
ensure
|
|
106
|
+
client.logout
|
|
107
|
+
end
|
|
108
|
+
end # Task
|
|
109
|
+
end
|
|
110
|
+
end # AdminModule
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: config_helper.rb
|
|
3
|
+
# Purpose:: Configuration object wrapper
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 07/01/2014
|
|
6
|
+
# Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
|
|
7
|
+
# Website:: http://ktechsystems.com
|
|
8
|
+
##############################################################################
|
|
9
|
+
|
|
10
|
+
module AdminModule
|
|
11
|
+
class ConfigHelper
|
|
12
|
+
|
|
13
|
+
def self.env=(env)
|
|
14
|
+
@env = env.to_sym
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.env
|
|
18
|
+
@env ||= AdminModule.configuration.default_environment
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.page_factory=(factory)
|
|
22
|
+
@page_factory = factory
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.page_factory
|
|
26
|
+
@page_factory ||= PageFactory.new
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.credentials
|
|
30
|
+
AdminModule.configuration.credentials[env]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end # AdminModule
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: dc.rb
|
|
3
|
+
# Purpose:: Interface to DataClearing functionality in admin module1
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 04/01/2015
|
|
6
|
+
##############################################################################
|
|
7
|
+
|
|
8
|
+
require 'admin_module/pages'
|
|
9
|
+
|
|
10
|
+
module AdminModule
|
|
11
|
+
|
|
12
|
+
class DC
|
|
13
|
+
attr_reader :page_factory
|
|
14
|
+
|
|
15
|
+
def initialize page_factory
|
|
16
|
+
@page_factory = page_factory
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def list
|
|
20
|
+
dc_page.get_definitions
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def rename src, dest
|
|
24
|
+
src = assert_definition_exists src
|
|
25
|
+
dest = assert_definition_does_not_exist dest
|
|
26
|
+
|
|
27
|
+
dc_page
|
|
28
|
+
.modify(src)
|
|
29
|
+
.set_name(dest)
|
|
30
|
+
.save
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def import file_path
|
|
34
|
+
assert_file_exists file_path
|
|
35
|
+
|
|
36
|
+
defns = {}
|
|
37
|
+
File.open(file_path, 'r') do |f|
|
|
38
|
+
# Read array of definition hashes
|
|
39
|
+
defns = YAML.load(f)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
existing_defns = list
|
|
43
|
+
|
|
44
|
+
defns.each do |name, data|
|
|
45
|
+
if existing_defns.include?(name)
|
|
46
|
+
update(data)
|
|
47
|
+
else
|
|
48
|
+
create(data)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def export file_path
|
|
54
|
+
defns = list
|
|
55
|
+
export_data = {}
|
|
56
|
+
|
|
57
|
+
defns.each do |defn|
|
|
58
|
+
export_data[defn] = read defn
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
File.open(file_path, 'w') do |f|
|
|
62
|
+
f.write export_data.to_yaml
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
rescue Exception => e
|
|
66
|
+
if e.message.include? 'No such file or directory'
|
|
67
|
+
raise IOError, "No such directory - #{file_path}"
|
|
68
|
+
else
|
|
69
|
+
raise e
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def read name
|
|
74
|
+
name = assert_definition_exists name
|
|
75
|
+
|
|
76
|
+
dc_page
|
|
77
|
+
.modify(name)
|
|
78
|
+
.get_definition_data
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
private
|
|
82
|
+
|
|
83
|
+
def dc_page
|
|
84
|
+
page_factory.dc_definitions_page
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def assert_definition_exists name
|
|
88
|
+
unless list.include? name
|
|
89
|
+
fail ArgumentError.new("A data clearing definition named '#{name}' does not exist")
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
name
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def assert_definition_does_not_exist name
|
|
96
|
+
if list.include? name
|
|
97
|
+
fail ArgumentError.new("A data clearing definition named '#{name}' already exists")
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
name
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def assert_file_exists file_path
|
|
104
|
+
raise IOError, "File not found: #{file_path}" unless File.exists?(file_path)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def update data
|
|
108
|
+
name = assert_definition_exists( extract_defn_name(data) )
|
|
109
|
+
|
|
110
|
+
dc_page
|
|
111
|
+
.modify(name)
|
|
112
|
+
.set_definition_data(data)
|
|
113
|
+
.save
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def create data
|
|
117
|
+
name = assert_definition_does_not_exist( extract_defn_name(data) )
|
|
118
|
+
|
|
119
|
+
dc_page
|
|
120
|
+
.add
|
|
121
|
+
.set_definition_data(data)
|
|
122
|
+
.save
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def extract_defn_name data
|
|
126
|
+
name = if data.is_a? Hash
|
|
127
|
+
data[:name]
|
|
128
|
+
else
|
|
129
|
+
String(data)
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end # module
|