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.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +14 -0
  5. data/Guardfile +24 -0
  6. data/LICENSE +22 -0
  7. data/README.md +281 -0
  8. data/Rakefile +98 -0
  9. data/admin_module.gemspec +34 -0
  10. data/bin/admin_module +13 -0
  11. data/lib/admin_module.rb +260 -0
  12. data/lib/admin_module/cli.rb +54 -0
  13. data/lib/admin_module/cli/cli_guideline.rb +80 -0
  14. data/lib/admin_module/cli/cli_lock.rb +149 -0
  15. data/lib/admin_module/cli/cli_parameter.rb +66 -0
  16. data/lib/admin_module/cli/cli_task.rb +149 -0
  17. data/lib/admin_module/cli_old.rb +92 -0
  18. data/lib/admin_module/client.rb +146 -0
  19. data/lib/admin_module/command.rb +25 -0
  20. data/lib/admin_module/command/client_access.rb +43 -0
  21. data/lib/admin_module/command/config.rb +310 -0
  22. data/lib/admin_module/command/dc.rb +110 -0
  23. data/lib/admin_module/command/gdl.rb +71 -0
  24. data/lib/admin_module/command/lock.rb +110 -0
  25. data/lib/admin_module/command/ppm.rb +142 -0
  26. data/lib/admin_module/command/rule.rb +77 -0
  27. data/lib/admin_module/command/ruleset.rb +56 -0
  28. data/lib/admin_module/command/snapshot.rb +110 -0
  29. data/lib/admin_module/command/stage.rb +131 -0
  30. data/lib/admin_module/command/task.rb +110 -0
  31. data/lib/admin_module/config_helper.rb +33 -0
  32. data/lib/admin_module/dc.rb +133 -0
  33. data/lib/admin_module/guideline.rb +86 -0
  34. data/lib/admin_module/locks.rb +142 -0
  35. data/lib/admin_module/page_factory.rb +55 -0
  36. data/lib/admin_module/pages.rb +120 -0
  37. data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
  38. data/lib/admin_module/pages/dc_detail_page.rb +187 -0
  39. data/lib/admin_module/pages/guideline_page.rb +35 -0
  40. data/lib/admin_module/pages/guideline_version_page.rb +140 -0
  41. data/lib/admin_module/pages/guidelines_page.rb +59 -0
  42. data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
  43. data/lib/admin_module/pages/lock_definition_page.rb +178 -0
  44. data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
  45. data/lib/admin_module/pages/login_page.rb +75 -0
  46. data/lib/admin_module/pages/parameter_page.rb +62 -0
  47. data/lib/admin_module/pages/parameters_page.rb +46 -0
  48. data/lib/admin_module/pages/ppms_page.rb +110 -0
  49. data/lib/admin_module/pages/rule_page.rb +68 -0
  50. data/lib/admin_module/pages/rules_page.rb +74 -0
  51. data/lib/admin_module/pages/ruleset_page.rb +64 -0
  52. data/lib/admin_module/pages/rulesets_page.rb +60 -0
  53. data/lib/admin_module/pages/select_list_syncable.rb +64 -0
  54. data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
  55. data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
  56. data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
  57. data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
  58. data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
  59. data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
  60. data/lib/admin_module/pages/workflow_details_page.rb +67 -0
  61. data/lib/admin_module/pages/workflow_task_page.rb +107 -0
  62. data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
  63. data/lib/admin_module/ppms.rb +78 -0
  64. data/lib/admin_module/rake.rb +22 -0
  65. data/lib/admin_module/rake/dc_tasks.rb +185 -0
  66. data/lib/admin_module/rake/deploy_task.rb +59 -0
  67. data/lib/admin_module/rake/gdl_tasks.rb +189 -0
  68. data/lib/admin_module/rake/lock_tasks.rb +189 -0
  69. data/lib/admin_module/rake/parameter_task.rb +86 -0
  70. data/lib/admin_module/rake/ppm_tasks.rb +248 -0
  71. data/lib/admin_module/rake/rule_tasks.rb +157 -0
  72. data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
  73. data/lib/admin_module/rake/stage_tasks.rb +197 -0
  74. data/lib/admin_module/rake/stages_task.rb +197 -0
  75. data/lib/admin_module/rake/task_tasks.rb +189 -0
  76. data/lib/admin_module/rules.rb +50 -0
  77. data/lib/admin_module/rulesets.rb +42 -0
  78. data/lib/admin_module/snapshots.rb +133 -0
  79. data/lib/admin_module/stages.rb +171 -0
  80. data/lib/admin_module/tasks.rb +147 -0
  81. data/lib/admin_module/version.rb +3 -0
  82. data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
  83. data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
  84. data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
  85. data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
  86. data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
  87. data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
  88. data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
  89. data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
  90. data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
  91. data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
  92. data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
  93. data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
  94. data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
  95. data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
  96. data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
  97. data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
  98. data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
  99. data/spec/data/build/test1.xml +0 -0
  100. data/spec/data/build/test2.xml +1 -0
  101. data/spec/data/import_dcs.yml +31 -0
  102. data/spec/data/import_locks.yml +4 -0
  103. data/spec/data/import_snapshots.yml +35 -0
  104. data/spec/data/import_stages.yml +4 -0
  105. data/spec/data/import_tasks.yml +25 -0
  106. data/spec/data/patch-test.xml +1 -0
  107. data/spec/data/remove_test_del_rule.xml +1 -0
  108. data/spec/data/stages.yml +518 -0
  109. data/spec/data/test_del_rule.xml +1 -0
  110. data/spec/lib/admin_module/admin_module_spec.rb +175 -0
  111. data/spec/lib/admin_module/cli_spec.rb +36 -0
  112. data/spec/lib/admin_module/client_spec.rb +158 -0
  113. data/spec/lib/admin_module/command/config_spec.rb +477 -0
  114. data/spec/lib/admin_module/command/dc_spec.rb +202 -0
  115. data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
  116. data/spec/lib/admin_module/command/lock_spec.rb +207 -0
  117. data/spec/lib/admin_module/command/rule_spec.rb +163 -0
  118. data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
  119. data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
  120. data/spec/lib/admin_module/command/stage_spec.rb +259 -0
  121. data/spec/lib/admin_module/command/task_spec.rb +207 -0
  122. data/spec/lib/admin_module/dc_spec.rb +192 -0
  123. data/spec/lib/admin_module/guideline_spec.rb +177 -0
  124. data/spec/lib/admin_module/locks_spec.rb +188 -0
  125. data/spec/lib/admin_module/rules_spec.rb +110 -0
  126. data/spec/lib/admin_module/rulesets_spec.rb +85 -0
  127. data/spec/lib/admin_module/snapshot_spec.rb +192 -0
  128. data/spec/lib/admin_module/stages_spec.rb +179 -0
  129. data/spec/lib/admin_module/tasks_spec.rb +196 -0
  130. data/spec/spec_helper.rb +54 -0
  131. data/spec/support/asserts.rb +13 -0
  132. data/spec/support/data_clearing.rb +28 -0
  133. data/spec/support/dirs.rb +54 -0
  134. data/spec/support/helpers.rb +83 -0
  135. data/spec/support/lock.rb +23 -0
  136. data/spec/support/mocks.rb +213 -0
  137. data/spec/support/snapshot.rb +28 -0
  138. data/spec/support/stage.rb +22 -0
  139. data/spec/support/stage_factory.rb +138 -0
  140. data/spec/support/task.rb +23 -0
  141. 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