knife-spork-berks 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/.gitignore +19 -0
  2. data/.ruby-gemset +1 -0
  3. data/.ruby-version +1 -0
  4. data/CHANGELOG.md +284 -0
  5. data/Gemfile +3 -0
  6. data/LICENSE +35 -0
  7. data/README.md +406 -0
  8. data/Rakefile +2 -0
  9. data/knife-spork-berks.gemspec +22 -0
  10. data/lib/chef/knife/spork-bump.rb +86 -0
  11. data/lib/chef/knife/spork-check.rb +149 -0
  12. data/lib/chef/knife/spork-databag-create.rb +53 -0
  13. data/lib/chef/knife/spork-databag-delete.rb +51 -0
  14. data/lib/chef/knife/spork-databag-edit.rb +54 -0
  15. data/lib/chef/knife/spork-databag-fromfile.rb +82 -0
  16. data/lib/chef/knife/spork-environment-create.rb +43 -0
  17. data/lib/chef/knife/spork-environment-delete.rb +36 -0
  18. data/lib/chef/knife/spork-environment-edit.rb +37 -0
  19. data/lib/chef/knife/spork-environment-fromfile.rb +42 -0
  20. data/lib/chef/knife/spork-info.rb +30 -0
  21. data/lib/chef/knife/spork-node-create.rb +38 -0
  22. data/lib/chef/knife/spork-node-delete.rb +38 -0
  23. data/lib/chef/knife/spork-node-edit.rb +45 -0
  24. data/lib/chef/knife/spork-node-fromfile.rb +43 -0
  25. data/lib/chef/knife/spork-node-runlistadd.rb +48 -0
  26. data/lib/chef/knife/spork-node-runlistremove.rb +42 -0
  27. data/lib/chef/knife/spork-node-runlistset.rb +42 -0
  28. data/lib/chef/knife/spork-omni.rb +107 -0
  29. data/lib/chef/knife/spork-promote.rb +166 -0
  30. data/lib/chef/knife/spork-role-create.rb +43 -0
  31. data/lib/chef/knife/spork-role-delete.rb +36 -0
  32. data/lib/chef/knife/spork-role-edit.rb +37 -0
  33. data/lib/chef/knife/spork-role-fromfile.rb +42 -0
  34. data/lib/chef/knife/spork-upload.rb +129 -0
  35. data/lib/knife-spork.rb +3 -0
  36. data/lib/knife-spork/plugins.rb +25 -0
  37. data/lib/knife-spork/plugins/campfire.rb +211 -0
  38. data/lib/knife-spork/plugins/eventinator.rb +317 -0
  39. data/lib/knife-spork/plugins/foodcritic.rb +46 -0
  40. data/lib/knife-spork/plugins/git.rb +197 -0
  41. data/lib/knife-spork/plugins/graphite.rb +25 -0
  42. data/lib/knife-spork/plugins/grove.rb +161 -0
  43. data/lib/knife-spork/plugins/hipchat.rb +131 -0
  44. data/lib/knife-spork/plugins/irccat.rb +298 -0
  45. data/lib/knife-spork/plugins/jabber.rb +129 -0
  46. data/lib/knife-spork/plugins/plugin.rb +105 -0
  47. data/lib/knife-spork/plugins/statusnet.rb +118 -0
  48. data/lib/knife-spork/runner.rb +277 -0
  49. data/plugins/Campfire.md +43 -0
  50. data/plugins/Eventinator.md +30 -0
  51. data/plugins/Foodcritic.md +53 -0
  52. data/plugins/Git.md +46 -0
  53. data/plugins/Graphite.md +30 -0
  54. data/plugins/Grove.md +31 -0
  55. data/plugins/HipChat.md +50 -0
  56. data/plugins/Irccat.md +50 -0
  57. data/plugins/Jabber.md +61 -0
  58. data/plugins/README.md +70 -0
  59. data/plugins/StatusNet.md +41 -0
  60. data/plugins/Template.md +34 -0
  61. metadata +170 -0
@@ -0,0 +1,43 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkEnvironmentCreate < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork environment create ENVIRONMENT (options)'
9
+
10
+ option :description,
11
+ :short => "-d DESC",
12
+ :long => "--description DESC",
13
+ :description => "The environment description"
14
+
15
+ def run
16
+ self.config = Chef::Config.merge!(config)
17
+
18
+ if @name_args.empty?
19
+ show_usage
20
+ ui.error("You must specify a environment name")
21
+ exit 1
22
+ end
23
+
24
+ @object_name = @name_args.first
25
+
26
+ run_plugins(:before_environmentcreate)
27
+ pre_environment = {}
28
+ environment_create
29
+ post_environment = load_environment(@object_name)
30
+ @object_difference = json_diff(pre_environment,post_environment).to_s
31
+ run_plugins(:after_environmentcreate)
32
+ end
33
+
34
+ private
35
+ def environment_create
36
+ rc = Chef::Knife::EnvironmentCreate.new
37
+ rc.name_args = @name_args
38
+ rc.config[:editor] = config[:editor]
39
+ rc.config[:description] = config[:description]
40
+ rc.run
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,36 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkEnvironmentDelete < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork environment delete ENVIRONMENT (options)'
9
+
10
+ def run
11
+ self.config = Chef::Config.merge!(config)
12
+
13
+ if @name_args.empty?
14
+ show_usage
15
+ ui.error("You must specify a environment name")
16
+ exit 1
17
+ end
18
+
19
+ @object_name = @name_args.first
20
+
21
+ run_plugins(:before_environmentdelete)
22
+ pre_environment = load_environment(@object_name)
23
+ environment_delete
24
+ post_environment = {}
25
+ @object_difference = json_diff(pre_environment,post_environment).to_s
26
+ run_plugins(:after_environmentdelete)
27
+ end
28
+
29
+ private
30
+ def environment_delete
31
+ rd = Chef::Knife::EnvironmentDelete.new
32
+ rd.name_args = @name_args
33
+ rd.run
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,37 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkEnvironmentEdit < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork environment edit ENVIRONMENT (options)'
9
+
10
+ def run
11
+ self.config = Chef::Config.merge!(config)
12
+
13
+ if @name_args.empty?
14
+ show_usage
15
+ ui.error("You must specify a environment name")
16
+ exit 1
17
+ end
18
+
19
+ @object_name = @name_args.first
20
+
21
+ run_plugins(:before_environmentedit)
22
+ pre_environment = load_environment(@object_name)
23
+ environment_edit
24
+ post_environment = load_environment(@object_name)
25
+ @object_difference = json_diff(pre_environment,post_environment).to_s
26
+ run_plugins(:after_environmentedit)
27
+ end
28
+
29
+ private
30
+ def environment_edit
31
+ re = Chef::Knife::EnvironmentEdit.new
32
+ re.name_args = @name_args
33
+ re.config[:editor] = config[:editor]
34
+ re.run
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,42 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+ require 'json'
4
+
5
+ module KnifeSpork
6
+ class SporkEnvironmentFromFile < Chef::Knife
7
+ include KnifeSpork::Runner
8
+
9
+ deps do
10
+ require 'chef/knife/environment_from_file'
11
+ end
12
+
13
+ banner 'knife spork environment from file FILENAME (options)'
14
+
15
+ def run
16
+ self.config = Chef::Config.merge!(config)
17
+
18
+ if @name_args.empty?
19
+ show_usage
20
+ ui.error("You must specify a environment name")
21
+ exit 1
22
+ end
23
+
24
+ @name_args.each do |arg|
25
+ @object_name = arg.split("/").last
26
+ run_plugins(:before_environmentfromfile)
27
+ pre_environment = load_environment(@object_name.gsub(".json","").gsub(".rb",""))
28
+ environment_from_file
29
+ post_environment = load_environment(@object_name.gsub(".json","").gsub(".rb",""))
30
+ @object_difference = json_diff(pre_environment,post_environment).to_s
31
+ run_plugins(:after_environmentfromfile)
32
+ end
33
+ end
34
+
35
+ private
36
+ def environment_from_file
37
+ rff = Chef::Knife::EnvironmentFromFile.new
38
+ rff.name_args = @name_args
39
+ rff.run
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,30 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkInfo < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork info'
9
+
10
+ def run
11
+ self.config = Chef::Config.merge!(config)
12
+
13
+ run_plugins(:before_info)
14
+ info
15
+ run_plugins(:after_info)
16
+ end
17
+
18
+ private
19
+ def info
20
+ ui.msg "Config Hash:"
21
+ ui.msg "#{spork_config.to_hash}"
22
+ ui.msg ""
23
+ ui.msg "Plugins:"
24
+ KnifeSpork::Plugins.klasses.each do |klass|
25
+ plugin = klass.new(:config => spork_config)
26
+ ui.msg "#{klass}: #{plugin.enabled? ? 'enabled' : 'disabled'}"
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,38 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkNodeCreate < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork node create NODE (options)'
9
+
10
+
11
+ def run
12
+ self.config = Chef::Config.merge!(config)
13
+
14
+ if @name_args.empty?
15
+ show_usage
16
+ ui.error("You must specify a node name")
17
+ exit 1
18
+ end
19
+
20
+ @object_name = @name_args.first
21
+
22
+ run_plugins(:before_nodecreate)
23
+ pre_node = {}
24
+ node_create
25
+ post_node = load_node(@object_name)
26
+ @object_difference = json_diff(pre_node,post_node).to_s
27
+ run_plugins(:after_nodecreate)
28
+ end
29
+
30
+ private
31
+ def node_create
32
+ ne = Chef::Knife::NodeCreate.new
33
+ ne.name_args = @name_args
34
+ ne.config[:editor] = config[:editor]
35
+ ne.run
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkNodeDelete < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork node delete NODE (options)'
9
+
10
+
11
+ def run
12
+ self.config = Chef::Config.merge!(config)
13
+
14
+ if @name_args.empty?
15
+ show_usage
16
+ ui.error("You must specify a node name")
17
+ exit 1
18
+ end
19
+
20
+ @object_name = @name_args.first
21
+
22
+ run_plugins(:before_nodedelete)
23
+ pre_node = load_node(@object_name)
24
+ node_delete
25
+ post_node = {}
26
+ @object_difference = json_diff(pre_node,post_node).to_s
27
+ run_plugins(:after_nodedelete)
28
+ end
29
+
30
+ private
31
+ def node_delete
32
+ ne = Chef::Knife::NodeDelete.new
33
+ ne.name_args = @name_args
34
+ ne.config[:editor] = config[:editor]
35
+ ne.run
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,45 @@
1
+ require 'chef/knife'
2
+ require 'chef/knife/core/node_editor'
3
+ require 'knife-spork/runner'
4
+
5
+ module KnifeSpork
6
+ class SporkNodeEdit < Chef::Knife
7
+ include KnifeSpork::Runner
8
+
9
+ banner 'knife spork node edit NODE (options)'
10
+
11
+ option :all_attributes,
12
+ :short => "-a",
13
+ :long => "--all",
14
+ :boolean => true,
15
+ :description => "Display all attributes when editing"
16
+
17
+ def run
18
+ self.config = Chef::Config.merge!(config)
19
+
20
+ if @name_args.empty?
21
+ show_usage
22
+ ui.error("You must specify a node name")
23
+ exit 1
24
+ end
25
+
26
+ @object_name = @name_args.first
27
+
28
+ run_plugins(:before_nodeedit)
29
+ pre_node = load_node(@object_name)
30
+ node_edit
31
+ post_node = load_node(@object_name)
32
+ @object_difference = json_diff(pre_node,post_node).to_s
33
+ run_plugins(:after_nodeedit)
34
+ end
35
+
36
+ private
37
+ def node_edit
38
+ ne = Chef::Knife::NodeEdit.new
39
+ ne.name_args = @name_args
40
+ ne.config[:editor] = config[:editor]
41
+ ne.config[:all] = config[:all]
42
+ ne.run
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,43 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkNodeFromFile < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork node from file FILE (options)'
9
+
10
+
11
+ def run
12
+ self.config = Chef::Config.merge!(config)
13
+
14
+ if @name_args.empty?
15
+ show_usage
16
+ ui.error("You must specify a filename")
17
+ exit 1
18
+ end
19
+
20
+ @object_name = JSON.parse(File.read(@name_args.first))["name"]
21
+ ui.info @object_name
22
+
23
+ run_plugins(:before_nodefromfile)
24
+ begin
25
+ pre_node = load_node(@object_name.gsub(".json",""))
26
+ rescue
27
+ pre_node = {}
28
+ end
29
+ node_fromfile
30
+ post_node = load_node(@object_name.gsub(".json",""))
31
+ @object_difference = json_diff(pre_node,post_node).to_s
32
+ run_plugins(:after_nodefromfile)
33
+ end
34
+
35
+ private
36
+ def node_fromfile
37
+ nff = Chef::Knife::NodeFromFile.new
38
+ nff.name_args = @name_args
39
+ nff.config[:editor] = config[:editor]
40
+ nff.run
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,48 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkNodeRunListAdd < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork node run_list add [NODE] [ENTRY[,ENTRY]] (options)'
9
+
10
+
11
+ option :after,
12
+ :short => "-a ITEM",
13
+ :long => "--after ITEM",
14
+ :description => "Place the ENTRY in the run list after ITEM"
15
+
16
+ def run
17
+ self.config = Chef::Config.merge!(config)
18
+
19
+ if @name_args.empty?
20
+ show_usage
21
+ ui.error("You must specify a node name and item to add")
22
+ exit 1
23
+ end
24
+
25
+ @object_name = @name_args.first
26
+
27
+ @object_secondary_name = @name_args[1..-1].map do |entry|
28
+ entry.split(',').map { |e| e.strip }
29
+ end.flatten.to_s
30
+
31
+ run_plugins(:before_noderunlistadd)
32
+ pre_node = load_node(@object_name)
33
+ node_runlistadd
34
+ post_node = load_node(@object_name)
35
+ @object_difference = json_diff(pre_node,post_node).to_s
36
+ run_plugins(:after_noderunlistadd)
37
+ end
38
+
39
+ private
40
+ def node_runlistadd
41
+ nrla = Chef::Knife::NodeRunListAdd.new
42
+ nrla.name_args = @name_args
43
+ nrla.config[:editor] = config[:editor]
44
+ nrla.config[:after] = config[:after]
45
+ nrla.run
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,42 @@
1
+ require 'chef/knife'
2
+ require 'knife-spork/runner'
3
+
4
+ module KnifeSpork
5
+ class SporkNodeRunListRemove < Chef::Knife
6
+ include KnifeSpork::Runner
7
+
8
+ banner 'knife spork node run_list add [NODE] [ENTRY[,ENTRY]] (options)'
9
+
10
+
11
+ def run
12
+ self.config = Chef::Config.merge!(config)
13
+
14
+ if @name_args.empty?
15
+ show_usage
16
+ ui.error("You must specify a node name and item to remove")
17
+ exit 1
18
+ end
19
+
20
+ @object_name = @name_args.first
21
+
22
+ @object_secondary_name = @name_args[1..-1].map do |entry|
23
+ entry.split(',').map { |e| e.strip }
24
+ end.flatten.to_s
25
+
26
+ run_plugins(:before_noderunlistremove)
27
+ pre_node = load_node(@object_name)
28
+ node_runlistremove
29
+ post_node = load_node(@object_name)
30
+ @object_difference = json_diff(pre_node,post_node).to_s
31
+ run_plugins(:after_noderunlistremove)
32
+ end
33
+
34
+ private
35
+ def node_runlistremove
36
+ nrla = Chef::Knife::NodeRunListRemove.new
37
+ nrla.name_args = @name_args
38
+ nrla.config[:editor] = config[:editor]
39
+ nrla.run
40
+ end
41
+ end
42
+ end