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,71 @@
1
+ ##############################################################################
2
+ # File:: gdl.rb
3
+ # Purpose:: filedescription
4
+ #
5
+ # Author:: Jeff McAffee 2014-06-28
6
+ #
7
+ ##############################################################################
8
+
9
+ module AdminModule
10
+ module Command
11
+ class Gdl < Thor
12
+ include AdminModule::Command::ClientAccess
13
+
14
+ class_option :environment, :banner => "dev", :aliases => :e
15
+
16
+ desc "deploy <srcdir> <comments>",
17
+ "Deploy all XML files in <srcdir> with version <comments>"
18
+ long_desc <<-LD
19
+ Deploy all XML files in <srcdir> with version <comments>.
20
+
21
+ With -e <env>, sets the environment to work with.
22
+
23
+ With -f <file_xml>, only deploy a single file.
24
+
25
+ With -t <target_gdl>, sets the guideline to update (only valid with -f option).
26
+ LD
27
+ option :file, :banner => "<file_xml>", :aliases => :f
28
+ option :target, :banner => "<target_gdl>", :aliases => :t
29
+ def deploy(srcdir, comments = nil)
30
+ gdl = client.guideline
31
+
32
+ if options[:file]
33
+ srcfile = Pathname(srcdir) + options[:file]
34
+ gdl.deploy_file(srcfile, comments)
35
+ else
36
+ gdl.deploy(srcdir, comments)
37
+ end
38
+
39
+ client.logout
40
+ end
41
+
42
+ desc "version <comments>",
43
+ "Version guidelines with <comments>"
44
+ long_desc <<-LD
45
+ Version guidelines with provided comments. Comments are optional.
46
+
47
+ By default, all configured guidelines are versioned.
48
+ Use -t option to version a specific guideline.
49
+
50
+ With -e <env>, sets the environment to work with.
51
+
52
+ With -t <gdlname>, versions a specific guideline.
53
+ LD
54
+ option :target, :banner => "<target_gdl>", :aliases => :t
55
+ def version(comments = nil)
56
+ gdl = client.guideline
57
+
58
+ gdls = [options[:target]] unless options[:target].nil?
59
+ gdls = AdminModule.configuration.xmlmaps.values.uniq if options[:target].nil?
60
+ if gdls.empty?
61
+ say "aborting version. no guidelines configured", :red
62
+ return
63
+ end
64
+
65
+ gdl.version(gdls, comments)
66
+
67
+ client.logout
68
+ end
69
+ end # Gdl
70
+ end
71
+ end # AdminModule
@@ -0,0 +1,110 @@
1
+ ##############################################################################
2
+ # File:: lock.rb
3
+ # Purpose:: Lock command line interface
4
+ #
5
+ # Author:: Jeff McAffee 2014-06-28
6
+ #
7
+ ##############################################################################
8
+
9
+ module AdminModule
10
+ module Command
11
+ class Lock < Thor
12
+ include AdminModule::Command::ClientAccess
13
+
14
+ class_option :environment, :banner => "dev", :aliases => :e
15
+
16
+ desc "rename <srcname> <destname>",
17
+ "Rename a lock named <srcname> to <destname>"
18
+ long_desc <<-LD
19
+ Rename a lock 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 lock does not exist or
24
+ if the destination lock name already exists.
25
+ LD
26
+ def rename(src, dest)
27
+ cl = client.locks
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 locks in the environment"
40
+ long_desc <<-LD
41
+ List all locks in the current environment.
42
+
43
+ With -e <env>, sets the environment to work with.
44
+ LD
45
+ def list
46
+ cl = client.locks
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 lock configuration file into the environment"
57
+ long_desc <<-LD
58
+ Import a lock 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.locks
66
+ cl.import filepath
67
+
68
+ ensure
69
+ client.logout
70
+ end
71
+
72
+ desc "export <filepath>",
73
+ "Export a lock configuration file from the environment"
74
+ long_desc <<-LD
75
+ Export a lock 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.locks
83
+ cl.export filepath
84
+
85
+ ensure
86
+ client.logout
87
+ end
88
+
89
+ desc "read <name>",
90
+ "Emit a lock's configuration from the environment in YAML format"
91
+ long_desc <<-LD
92
+ Emit a lock's configuration from the environment in YAML format.
93
+
94
+ <name> of lock to dump.
95
+
96
+ With -e <env>, sets the environment to work with.
97
+ LD
98
+ def read name
99
+ cl = client.locks
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 # Lock
109
+ end
110
+ end # AdminModule
@@ -0,0 +1,142 @@
1
+ ##############################################################################
2
+ # File:: ppm.rb
3
+ # Purpose:: PPM command line interface
4
+ #
5
+ # Author:: Jeff McAffee 2015-06-23
6
+ #
7
+ ##############################################################################
8
+
9
+ module AdminModule
10
+ module Command
11
+ class Ppm < Thor
12
+ include AdminModule::Command::ClientAccess
13
+
14
+ class_option :environment, :banner => "dev", :aliases => :e
15
+
16
+ #desc "rename <srcname> <destname>",
17
+ # "Rename a lock named <srcname> to <destname>"
18
+ #long_desc <<-LD
19
+ # Rename a lock 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 lock does not exist or
24
+ # if the destination lock name already exists.
25
+ #LD
26
+ #def rename(src, dest)
27
+ # cl = client.locks
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 PPMs in the environment"
40
+ long_desc <<-LD
41
+ List PPMs in the current environment.
42
+
43
+ With -e <env>, sets the environment to work with.
44
+ LD
45
+ def list
46
+ cl = client.ppms
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 PPM configuration file into the environment"
57
+ long_desc <<-LD
58
+ Import a PPM 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.ppms
66
+ cl.import filepath
67
+
68
+ ensure
69
+ client.logout
70
+ end
71
+
72
+ desc "export <filepath>",
73
+ "Export a PPM configuration file from the environment"
74
+ long_desc <<-LD
75
+ Export a PPM 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.ppms
83
+ cl.export filepath
84
+
85
+ ensure
86
+ client.logout
87
+ end
88
+
89
+ method_option :format, :default => "txt", :aliases => '-f', :banner => "format=FMT", :desc => "output format", :type => :string, :enum => ['txt','csv']
90
+ desc "dups",
91
+ "List duplicate PPMs in the environment"
92
+ long_desc <<-LD
93
+ List duplicate PPMs found in the environment.
94
+
95
+ With -e <env>, sets the environment to work with.
96
+ LD
97
+ def dups
98
+ cl = client.ppms
99
+ data = cl.dups
100
+ output_method = "output_as_#{options[:format]}"
101
+
102
+ if self.respond_to? output_method
103
+ self.send(output_method, data)
104
+ else
105
+ $stderr << "Invalid format: #{options[:format]}"
106
+ end
107
+
108
+ ensure
109
+ client.logout
110
+ end
111
+
112
+ private
113
+
114
+ def output_as_txt data
115
+ if data.count > 0
116
+ $stdout << " Name ID\n"
117
+ $stdout << '-'*79 << "\n"
118
+ else
119
+ $stdout << 'No duplicates found'
120
+ return
121
+ end
122
+
123
+ data.each do |dp|
124
+ $stdout << "#{dp[:name]}\t#{dp[:id]}\n"
125
+ end
126
+ end
127
+
128
+ def output_as_csv data
129
+ if data.count > 0
130
+ $stdout << "Name,ID\n"
131
+ else
132
+ $stdout << 'No duplicates found'
133
+ return
134
+ end
135
+
136
+ data.each do |dp|
137
+ $stdout << "#{dp[:name]},#{dp[:id]}\n"
138
+ end
139
+ end
140
+ end # Ppm
141
+ end
142
+ end # AdminModule
@@ -0,0 +1,77 @@
1
+ ##############################################################################
2
+ # File:: rule.rb
3
+ # Purpose:: Rule command line interface
4
+ #
5
+ # Author:: Jeff McAffee 2014-06-28
6
+ #
7
+ ##############################################################################
8
+
9
+ module AdminModule
10
+ module Command
11
+ class Rule < Thor
12
+ include AdminModule::Command::ClientAccess
13
+
14
+ class_option :environment, :banner => "dev", :aliases => :e
15
+
16
+ desc "rename <srcname> <destname>",
17
+ "Rename a rule named <srcname> to <destname>"
18
+ long_desc <<-LD
19
+ Rename a rule 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 rule does not exist or
24
+ if the destination rule name already exists.
25
+ LD
26
+ def rename(src, dest)
27
+ rs = client.rules
28
+
29
+ rs.rename src, dest
30
+
31
+ rescue ArgumentError => e
32
+ say e.message, :red
33
+
34
+ ensure
35
+ client.logout
36
+ end
37
+
38
+ desc "delete <rulename>",
39
+ "Delete a rule named <rulename>"
40
+ long_desc <<-LD
41
+ Delete a rule with the name <rulename>.
42
+
43
+ With -e <env>, sets the environment to work with.
44
+
45
+ This operation will fail if the rule does not exist.
46
+ LD
47
+ def delete(rule)
48
+ rs = client.rules
49
+
50
+ rs.delete rule
51
+
52
+ rescue ArgumentError => e
53
+ say e.message, :red
54
+
55
+ ensure
56
+ client.logout
57
+ end
58
+
59
+ desc "list",
60
+ "List all rules in the environment"
61
+ long_desc <<-LD
62
+ List all rules in the current environment.
63
+
64
+ With -e <env>, sets the environment to work with.
65
+ LD
66
+ def list
67
+ rs = client.rules
68
+ list = rs.list
69
+
70
+ list.each { |r| say r; }
71
+
72
+ ensure
73
+ client.logout
74
+ end
75
+ end # Rule
76
+ end
77
+ end # AdminModule
@@ -0,0 +1,56 @@
1
+ ##############################################################################
2
+ # File:: ruleset.rb
3
+ # Purpose:: filedescription
4
+ #
5
+ # Author:: Jeff McAffee 2014-06-28
6
+ #
7
+ ##############################################################################
8
+
9
+ module AdminModule
10
+ module Command
11
+ class Ruleset < Thor
12
+ include AdminModule::Command::ClientAccess
13
+
14
+ class_option :environment, :banner => "dev", :aliases => :e
15
+
16
+ desc "rename <srcname> <destname>",
17
+ "Rename a ruleset named <srcname> to <destname>"
18
+ long_desc <<-LD
19
+ Renme a ruleset 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 ruleset does not exist or
24
+ if the destination ruleset name already exists.
25
+ LD
26
+ def rename(src, dest)
27
+ rs = client.rulesets
28
+
29
+ rs.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 rulesets in the environment"
40
+ long_desc <<-LD
41
+ List all rulesets in the current environment.
42
+
43
+ With -e <env>, sets the environment to work with.
44
+ LD
45
+ def list
46
+ rs = client.rulesets
47
+ list = rs.list
48
+
49
+ list.each { |r| say r; }
50
+
51
+ ensure
52
+ client.logout
53
+ end
54
+ end # Ruleset
55
+ end
56
+ end # AdminModule