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
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 3c8c29c19b7d3792f8c9ca04979028f956df0583
|
|
4
|
+
data.tar.gz: 22ec04a187770d3dd9b1355b0290b511dca42dcb
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: efb79e23d04db36f2183b2a5e9b291af2c11140ddf327c54d1b0e04977e3bef5ea1d025bd9043fb04f488396ff1dbcf6e556f89f70ed215d504f5845ff8772ec
|
|
7
|
+
data.tar.gz: 43bcab64b34dab3222cf8522cf224ff08d67f362daa4a7c69db556810dfb7e3cce794266ba20294dc7d4a3cd560c7fd70814ecb4007abb8fd43dc612d8b6eb9a
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
group :development do
|
|
4
|
+
gem 'activesupport'
|
|
5
|
+
gem 'pry-byebug', :git => 'git://github.com/deivid-rodriguez/pry-byebug.git'#, :tag => 'v1.3.3'
|
|
6
|
+
gem 'pry-doc'
|
|
7
|
+
gem 'pry-docmore'
|
|
8
|
+
gem 'pry-rescue'
|
|
9
|
+
gem 'pry-stack_explorer'
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Specify your gem's dependencies in admin_module.gemspec
|
|
13
|
+
gemspec
|
|
14
|
+
|
data/Guardfile
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# A sample Guardfile
|
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
|
3
|
+
|
|
4
|
+
guard :rspec, cmd: "bundle exec rspec" do
|
|
5
|
+
watch(%r{^spec/.+_spec\.rb$})
|
|
6
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
|
7
|
+
watch('spec/spec_helper.rb') { "spec" }
|
|
8
|
+
|
|
9
|
+
# Rails example
|
|
10
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
|
11
|
+
watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
|
12
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
|
13
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
|
14
|
+
watch('config/routes.rb') { "spec/routing" }
|
|
15
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
|
16
|
+
|
|
17
|
+
# Capybara features specs
|
|
18
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
|
|
19
|
+
|
|
20
|
+
# Turnip features and steps
|
|
21
|
+
watch(%r{^spec/acceptance/(.+)\.feature$})
|
|
22
|
+
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
|
|
23
|
+
end
|
|
24
|
+
|
data/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2015 Jeff McAffee
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
data/README.md
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# AdminModule
|
|
2
|
+
|
|
3
|
+
AdminModule is a tool to allow maintenance and configuration of AMS
|
|
4
|
+
environments through the command line or Rake tasks.
|
|
5
|
+
|
|
6
|
+
Because it is scriptable, it can be used to create efficient and repeatable
|
|
7
|
+
migrations resulting in low risk deployments.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
Add this line to your application's Gemfile:
|
|
12
|
+
|
|
13
|
+
gem 'admin_module'
|
|
14
|
+
|
|
15
|
+
And then execute:
|
|
16
|
+
|
|
17
|
+
$ bundle install
|
|
18
|
+
|
|
19
|
+
Or install it yourself as:
|
|
20
|
+
|
|
21
|
+
$ gem install admin_module
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
### Command Line Help
|
|
26
|
+
|
|
27
|
+
Thor's usage help is messed up related to subcommands (ie. subcommand help is
|
|
28
|
+
sometimes listed without the subcommand's parent). For this reason, the 'help'
|
|
29
|
+
is listed here.
|
|
30
|
+
|
|
31
|
+
$ admin_module help
|
|
32
|
+
|
|
33
|
+
Commands:
|
|
34
|
+
admin_module help [COMMAND] # Describe available commands or one specific command
|
|
35
|
+
admin_module config [COMMAND] # modify configuration values
|
|
36
|
+
admin_module gdl [COMMAND] # run a guideline command
|
|
37
|
+
admin_module lock [COMMAND] # run a lock command
|
|
38
|
+
admin_module rule [COMMAND] # run a rule command
|
|
39
|
+
admin_module ruleset [COMMAND] # run a ruleset command
|
|
40
|
+
admin_module stage [COMMAND] # run a stage command
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
#### Config Commands
|
|
44
|
+
|
|
45
|
+
$ admin_module config help
|
|
46
|
+
|
|
47
|
+
Commands:
|
|
48
|
+
admin_module config help [COMMAND] # Describe subcommands or one specific subcommand
|
|
49
|
+
admin_module config defcomment '<comment>' # show or set the default comment
|
|
50
|
+
admin_module config defenv <envname> # show or set the default environment
|
|
51
|
+
admin_module config init <filedir> # create a configuration file
|
|
52
|
+
admin_module config timeout <seconds> # show or set the browser timeout period
|
|
53
|
+
admin_module config show [CATEGORY] # display configuration values for [CATEGORY]
|
|
54
|
+
admin_module config add [CATEGORY] # add a configuration value
|
|
55
|
+
admin_module config del [CATEGORY] # delete a configuration value for [CATEGORY]
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
##### Config Show Commands
|
|
59
|
+
|
|
60
|
+
$ admin_module config show help
|
|
61
|
+
|
|
62
|
+
Commands:
|
|
63
|
+
admin_module config show help [COMMAND] # Describe subcommands or one specific subcommand
|
|
64
|
+
admin_module config show credentials <envname> # display configured credentials for an environment
|
|
65
|
+
admin_module config show envs # display configured environments
|
|
66
|
+
admin_module config show xmlmaps # display configured xmlmaps
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
##### Config Add Commands
|
|
70
|
+
|
|
71
|
+
$ admin_module config add help
|
|
72
|
+
|
|
73
|
+
Commands:
|
|
74
|
+
admin_module config add help [COMMAND] # Describe subcommands or one specific subcommand
|
|
75
|
+
admin_module config add credentials <envname> <username> <pass> # add login credentials for an environment
|
|
76
|
+
admin_module config add env <envname> <url> # add a environment url
|
|
77
|
+
admin_module config add xmlmap <xmlfile> <gdlname> # map an xml file name to a guideline
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
##### Config Del Commands
|
|
81
|
+
|
|
82
|
+
$ admin_module config del help
|
|
83
|
+
|
|
84
|
+
Commands:
|
|
85
|
+
admin_module config del help [COMMAND] # Describe subcommands or one specific subcommand
|
|
86
|
+
admin_module config del credentials <envname> # delete credentials for an environment
|
|
87
|
+
admin_module config del env <envname> # delete an environment configuration
|
|
88
|
+
admin_module config del xmlmap <xmlfile> # delete an xml file to guideline mapping
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
#### Gdl Commands
|
|
92
|
+
|
|
93
|
+
$ admin_module gdl help
|
|
94
|
+
|
|
95
|
+
Commands:
|
|
96
|
+
admin_module gdl help [COMMAND] # Describe subcommands or one specific subcommand
|
|
97
|
+
admin_module gdl deploy <srcdir> <comments> # Deploy all XML files in <srcdir> with version <comments>
|
|
98
|
+
admin_module gdl version <comments> # Version guidelines with <comments>
|
|
99
|
+
|
|
100
|
+
Options:
|
|
101
|
+
e, [--environment=dev]
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
#### Lock Commands
|
|
105
|
+
|
|
106
|
+
$ admin_module lock help
|
|
107
|
+
|
|
108
|
+
Commands:
|
|
109
|
+
admin_module lock help [COMMAND] # Describe subcommands or one specific subcommand
|
|
110
|
+
admin_module lock export <filepath> # Export a lock configuration file from the environment
|
|
111
|
+
admin_module lock import <filepath> # Import a lock configuration file into the environment
|
|
112
|
+
admin_module lock list # List all locks in the environment
|
|
113
|
+
admin_module lock read <name> # Emit a lock's configuration from the environment in YAML format
|
|
114
|
+
admin_module lock rename <srcname> <destname> # Rename a lock named <srcname> to <destname>
|
|
115
|
+
|
|
116
|
+
Options:
|
|
117
|
+
e, [--environment=dev]
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
#### Rule Commands
|
|
121
|
+
|
|
122
|
+
$ admin_module rule help
|
|
123
|
+
|
|
124
|
+
Commands:
|
|
125
|
+
admin_module rule help [COMMAND] # Describe subcommands or one specific subcommand
|
|
126
|
+
admin_module rule delete <rulename> # Delete a rule named <rulename>
|
|
127
|
+
admin_module rule list # List all rules in the environment
|
|
128
|
+
admin_module rule rename <srcname> <destname> # Rename a rule named <srcname> to <destname>
|
|
129
|
+
|
|
130
|
+
Options:
|
|
131
|
+
e, [--environment=dev]
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
#### Ruleset Commands
|
|
135
|
+
|
|
136
|
+
$ admin_module ruleset help
|
|
137
|
+
|
|
138
|
+
Commands:
|
|
139
|
+
admin_module ruleset help [COMMAND] # Describe subcommands or one specific subcommand
|
|
140
|
+
admin_module ruleset list # List all rulesets in the environment
|
|
141
|
+
admin_module ruleset rename <srcname> <destname> # Rename a ruleset named <srcname> to <destname>
|
|
142
|
+
|
|
143
|
+
Options:
|
|
144
|
+
e, [--environment=dev]
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
#### Stage Commands
|
|
148
|
+
|
|
149
|
+
$ admin_module stage help
|
|
150
|
+
|
|
151
|
+
Commands:
|
|
152
|
+
admin_module stage help [COMMAND] # Describe subcommands or one specific subcommand
|
|
153
|
+
admin_module stage delete <name> # Delete a stage from the environment
|
|
154
|
+
admin_module stage export <filepath> # Export a stage configuration file from the environment
|
|
155
|
+
admin_module stage import <filepath> # Import a stage configuration file into the environment
|
|
156
|
+
admin_module stage list # List all stages in the environment
|
|
157
|
+
admin_module stage read <name> # Emit a stage's configuration from the environment in YAML format
|
|
158
|
+
admin_module stage rename <srcname> <destname> # Rename a stage from <srcname> to <destname>
|
|
159
|
+
|
|
160
|
+
Options:
|
|
161
|
+
e, [--environment=dev]
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
### Tasks
|
|
167
|
+
|
|
168
|
+
AdminModule provides tasks you can use in your rake file.
|
|
169
|
+
|
|
170
|
+
#### Stage Tasks
|
|
171
|
+
|
|
172
|
+
Add `require 'admin_module/rake/stage_tasks'` to your rake file and
|
|
173
|
+
`admin_module` will add a set of `stage` tasks for each configured
|
|
174
|
+
environment. All tasks are prefixed with `am:ENV_NAME:`.
|
|
175
|
+
|
|
176
|
+
Task options are displayed within brackets like so: `am:dev:stage:read[name]`.
|
|
177
|
+
If the option contains spaces, surround the option, or the entire task name
|
|
178
|
+
with single or double quotes:
|
|
179
|
+
|
|
180
|
+
rake am:dev:stage:read['Some Stage Name']
|
|
181
|
+
|
|
182
|
+
# or
|
|
183
|
+
|
|
184
|
+
rake 'am:dev:stage:read[Some Stage Name]'
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
Tasks include:
|
|
188
|
+
|
|
189
|
+
- `stage:delete` deletes a stage
|
|
190
|
+
- `stage:export` exports all stages to a yaml file
|
|
191
|
+
- `stage:import` imports stage configs from a yaml file
|
|
192
|
+
- the `allow_create` flag is optional. Default: `false`. If `true`, stages can be created during import.
|
|
193
|
+
- `stage:list` list all stage names
|
|
194
|
+
- `stage:read` output a stage configuration in yaml format
|
|
195
|
+
- `stage:rename` rename an existing stage
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
## Scripting
|
|
199
|
+
|
|
200
|
+
You can use the Client for scripting.
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
## Contributing
|
|
205
|
+
|
|
206
|
+
1. Fork it ( https://github.com/jmcaffee/admin_module/fork )
|
|
207
|
+
1. Clone it (`git clone git@github.com:[my-github-username]/admin_module.git`)
|
|
208
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
209
|
+
3. Create tests for your feature branch
|
|
210
|
+
4. Commit your changes (`git commit -am 'Add some feature'`)
|
|
211
|
+
5. Push to the branch (`git push origin my-new-feature`)
|
|
212
|
+
6. Create a new Pull Request
|
|
213
|
+
|
|
214
|
+
## ToDo
|
|
215
|
+
|
|
216
|
+
* complete conversion to `thor`
|
|
217
|
+
* PPM configuration specs
|
|
218
|
+
* clean up (remove) old `cli` files
|
|
219
|
+
* document new commands in README
|
|
220
|
+
+ PPMs
|
|
221
|
+
+ Tasks
|
|
222
|
+
+ Snapshots
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
## Process Flow (CLI)
|
|
226
|
+
|
|
227
|
+
- Command entered in console
|
|
228
|
+
- `lib/admin_module/cli.rb` processes args
|
|
229
|
+
- `cli.rb` hands command off to `lib/admin_module/cli/gdl.rb`
|
|
230
|
+
- `gdl.rb` validates command and hands off to `lib/admin_module/guideline.rb`
|
|
231
|
+
- `guideline.rb` processes command and uses `lib/admin_module/page_factory.rb`
|
|
232
|
+
to get instance of web page objects needed to fulfill command request
|
|
233
|
+
- `guideline.rb` completes command
|
|
234
|
+
|
|
235
|
+
## Process Flow (Rake Task)
|
|
236
|
+
|
|
237
|
+
- Rake imports/requires `lib/admin_module/rake/deploy_task.rb`
|
|
238
|
+
- Rake task requires API object `lib/admin_module/guideline.rb`
|
|
239
|
+
- API object processes task request, gets needed page objects from `page_factory.rb`
|
|
240
|
+
- API object completes task request, returns control to task
|
|
241
|
+
|
|
242
|
+
## Thor Conversion Process
|
|
243
|
+
|
|
244
|
+
Detailing the conversion steps taken while converting to Thor CLI interface.
|
|
245
|
+
|
|
246
|
+
1. Create CLI spec for new interface (`spec/lib/admin_module/cli/gdl_spec.rb`)
|
|
247
|
+
2. Create new CLI object (`lib/admin_module/cli/gdl.rb`)
|
|
248
|
+
3. Create API spec for API object (`spec/lib/admin_module/guideline_spec.rb`)
|
|
249
|
+
4. Create new/modify existing API object (`lib/admin_module/guideline.rb`)
|
|
250
|
+
5. Make tests/specs pass
|
|
251
|
+
6. Delete old CLI object (`lib/admin_module/cli/cli_guideline.rb`)
|
|
252
|
+
|
|
253
|
+
### Create CLI Spec
|
|
254
|
+
|
|
255
|
+
Create a new spec file `spec/lib/admin_module/cli/gdl_spec.rb`.
|
|
256
|
+
|
|
257
|
+
Create a new CLI object `lib/admin_module/cli/gdl.rb`.
|
|
258
|
+
|
|
259
|
+
Edit `lib/admin_module/cli.rb` creating new base command pointing to new object
|
|
260
|
+
(`AdminModule::Gdl` in this case).
|
|
261
|
+
|
|
262
|
+
Create `lib/admin_module/guideline.rb` which is an object that provides an API
|
|
263
|
+
interface to the actual Guideline page object.
|
|
264
|
+
|
|
265
|
+
- The Guideline page object only contains functionality that the actual webpage
|
|
266
|
+
contains, ie. Add, Modify, Delete
|
|
267
|
+
- The Guideline API object contains functionality that manipulates the webpage
|
|
268
|
+
object to provide results. Maybe this means it uses the page object to lookup
|
|
269
|
+
the available guidelines, throw an error if a guidline doesn't exist, or
|
|
270
|
+
deletes a guideline if exists.
|
|
271
|
+
- The API object also hides the fact that the app needs to go to a _Guidelines_
|
|
272
|
+
page, select a guideline, then go to the _GuidelineDetails_ page before it can
|
|
273
|
+
manipulate a guideline, say, to change its name.
|
|
274
|
+
|
|
275
|
+
## LICENSE
|
|
276
|
+
|
|
277
|
+
AdminModule is licensed under the MIT license.
|
|
278
|
+
|
|
279
|
+
See [LICENSE](https://github.com/jmcaffee/admin_module/blob/master/LICENSE) for
|
|
280
|
+
details.
|
|
281
|
+
|
data/Rakefile
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
require "bundler/gem_tasks"
|
|
2
|
+
require 'ktutils/os'
|
|
3
|
+
|
|
4
|
+
require 'rake/clean'
|
|
5
|
+
require 'rspec/core/rake_task'
|
|
6
|
+
|
|
7
|
+
# Windows Locations
|
|
8
|
+
|
|
9
|
+
CHROME_PATH = '"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"'
|
|
10
|
+
|
|
11
|
+
# Setup common clean and clobber targets
|
|
12
|
+
|
|
13
|
+
CLEAN.include("pkg")
|
|
14
|
+
CLOBBER.include("pkg")
|
|
15
|
+
|
|
16
|
+
##############################################################################
|
|
17
|
+
|
|
18
|
+
desc 'start a console'
|
|
19
|
+
task :console do
|
|
20
|
+
require 'pry'
|
|
21
|
+
require 'admin_module'
|
|
22
|
+
ARGV.clear
|
|
23
|
+
|
|
24
|
+
AdminModule.configure do |config|
|
|
25
|
+
config.credentials = { :dev => ['admin', 'Password1*'] }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def console_help
|
|
29
|
+
puts <<CONSOLE_HELP
|
|
30
|
+
CONSOLE HELP
|
|
31
|
+
-------------
|
|
32
|
+
|
|
33
|
+
'cli' returns an initialized CLI object
|
|
34
|
+
|
|
35
|
+
The default environment is :dev.
|
|
36
|
+
To interact with a different environment, add credentials
|
|
37
|
+
and activate the new environment:
|
|
38
|
+
|
|
39
|
+
Ex:
|
|
40
|
+
add_credentials ENV, USERNAME, PASSWORD
|
|
41
|
+
cli.environment = :ENV
|
|
42
|
+
cli.login
|
|
43
|
+
|
|
44
|
+
or, call 'activate_env ENV, USERNAME, PASSWORD'
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
Avaliable commands/methods:
|
|
48
|
+
|
|
49
|
+
cli
|
|
50
|
+
add_credentials ENV, USERNAME, PASSWORD
|
|
51
|
+
activate_env ENV, USERNAME, PASSWORD
|
|
52
|
+
console_help
|
|
53
|
+
|
|
54
|
+
CONSOLE_HELP
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def cli
|
|
58
|
+
@cli ||= AdminModule::CLI.new
|
|
59
|
+
@cli
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def add_credentials env, username, pwd
|
|
63
|
+
AdminModule.configure do |config|
|
|
64
|
+
config.credentials[env.to_sym] = [username, pwd]
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def activate_env env, username, pwd
|
|
69
|
+
add_credentials env, username, pwd
|
|
70
|
+
cli.environment = env.to_sym
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
console_help
|
|
74
|
+
Pry.start
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
##############################################################################
|
|
78
|
+
|
|
79
|
+
desc 'Start chrome with data dir'
|
|
80
|
+
task :start_chrome do
|
|
81
|
+
user_data_dir = File.expand_path('test/chrome-data')
|
|
82
|
+
mkdirs user_data_dir unless File.exists?(user_data_dir) and File.directory?(user_data_dir)
|
|
83
|
+
|
|
84
|
+
if Ktutils::OS.windows?
|
|
85
|
+
user_data_dir = user_data_dir.gsub('/', '\\')
|
|
86
|
+
sh("#{CHROME_PATH} --user-data-dir=#{user_data_dir}")
|
|
87
|
+
else
|
|
88
|
+
chrome = `which chromium-browser`.chomp
|
|
89
|
+
sh("#{chrome} --user-data-dir=#{user_data_dir}")
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
#############################################################################
|
|
94
|
+
desc "Run all specs"
|
|
95
|
+
RSpec::Core::RakeTask.new do |t|
|
|
96
|
+
#t.rcov = true
|
|
97
|
+
end
|
|
98
|
+
|