knife-cssh 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b75656ede8c6472b81c390adcd7dbb30e5a587fe
4
+ data.tar.gz: 95698d86e540563eaab5d69d30430454cb775e42
5
+ SHA512:
6
+ metadata.gz: 572f2bd3d0509286abc3d1ec1f7a5cd5bb9ff84e3fd8326d857d81d44ab75b033b663889c5c7fb8e013bd1b535462a6d5f2cf336eee9fab7ce9471786007276f
7
+ data.tar.gz: a1076952adf9013a75bfa3a8ee3169bb2608fb7e4bf877dd7aeeac25783af740ebfc7469dfaab8f732b4532b0a92671bb653fe8ef9dda6be821ae35e6063d53a
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ Knife cssh
2
+ ===========
3
+
4
+ How to use
5
+ ----------
6
+
7
+ It's easy as pie :
8
+
9
+ cssh all the machines with the postgresql recipe ?
10
+
11
+ ```knife cssh summon recipes:postgresql```
12
+
13
+ cssh ALL THE THINGS !!!
14
+
15
+ ```knife cssh summon fqdn:*```
16
+
17
+ License
18
+ -------
19
+ 3 clauses BSD
20
+
21
+ Author
22
+ ------
23
+
24
+ Nicolas Szalay : < nicolas.szalay _at_ fotolia _dot_ com >
@@ -0,0 +1,35 @@
1
+ require 'chef/knife'
2
+
3
+ module KnifeCssh
4
+ class CsshSummon < Chef::Knife
5
+
6
+ banner "knife cssh summon QUERY"
7
+
8
+ deps do
9
+ require 'chef/node'
10
+ require 'chef/environment'
11
+ require 'chef/api_client'
12
+ require 'chef/knife/search'
13
+ end
14
+
15
+ def run
16
+ # this chef is mainly from chef own knife search command
17
+ query = name_args[0]
18
+ q = Chef::Search::Query.new
19
+ escaped_query = URI.escape(query, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
20
+ result_items = []
21
+
22
+ begin
23
+ q.search('node', escaped_query, 'X_CHEF_id_CHEF_X asc', 0, 100) do |item|
24
+ result_items.push(item["fqdn"]) if item.has_key?("fqdn")
25
+ end
26
+ rescue Net::HTTPServerException => e
27
+ msg = Chef::JSONCompat.from_json(e.response.body)["error"].first
28
+ ui.error("search failed: #{msg}")
29
+ exit 1
30
+ end
31
+
32
+ %x[cssh #{result_items.join(" ")}]
33
+ end
34
+ end
35
+ end
data/lib/knife-cssh.rb ADDED
@@ -0,0 +1,3 @@
1
+ module KnifeCssh
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: knife-cssh
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Nicolas Szalay
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-05 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Summon cssh from a chef search
14
+ email: nico@rottenbytes.info
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - README.md
20
+ - lib/chef/knife/cssh-summon.rb
21
+ - lib/knife-cssh.rb
22
+ homepage: http://www.rottenbytes.info
23
+ licenses:
24
+ - 3 clauses BSD
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.2.2
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: Knife cssh plugin
46
+ test_files: []