knife-atomic 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: aab05c2049595191c027e7d3a467afe3d3df57ec
4
+ data.tar.gz: 3bb493936fa8ee9c748345492fa746b0a7910473
5
+ SHA512:
6
+ metadata.gz: 492d06d3d8a0bb350ab696cf887957ffac0a51c966278662a6cefaf378e3f99780566c251da42dedceaf980d5e3342a0728a9aef1b51b4414815b143a391abc7
7
+ data.tar.gz: 6956768588f9893758c651b532456d4b65cc6ac4a7ce357054884c28421991d17c2487c28dcbc5ce11e4a9cac69b5d623b12403937d649f4f61c42be144478ca
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in knife-atomic.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Manoel Carvalho
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.
@@ -0,0 +1,3 @@
1
+ # knife-atomic
2
+
3
+ Knife plugin to retrieve Chef structures with pinned versions of the cookbooks.
@@ -0,0 +1,66 @@
1
+ require 'chef/knife'
2
+ require 'json'
3
+ # other require attributes, as needed
4
+
5
+ module KnifeAtomic
6
+ class EnvironmentShowAtomic < Chef::Knife
7
+ deps do
8
+ require 'chef/api_client'
9
+ require 'chef/search/query'
10
+ end
11
+
12
+ banner "knife environment show atomic ENVIRONMENT"
13
+
14
+ option :attribute,
15
+ :short => "-F FORMAT",
16
+ :long => "--format FORMAT",
17
+ :description => "Which format to use for output",
18
+ :default => "pp"
19
+
20
+ def run
21
+ # Ruby code goes here
22
+ if @name_args.empty?
23
+ puts "Invalid environment name"
24
+ else
25
+ puts full_conf(@name_args.first)
26
+ end
27
+ end
28
+
29
+ def full_conf(envname)
30
+ env_url = Chef::Environment.list[envname]
31
+ env_data = rest.get_rest(env_url)
32
+ all_cookbooks = cookbooks(env_url, env_data["cookbook_versions"])
33
+ env_data["cookbook_versions"] = all_cookbooks
34
+ ui.output(env_data)
35
+ end
36
+
37
+ def cookbooks(env_url, versions)
38
+ nodes = rest.get_rest("#{env_url}/nodes")
39
+ env_cookbooks = versions
40
+ unless nodes.nil?
41
+ nodes.each do |node_name, node_url|
42
+ node_data = rest.get_rest("#{node_url}")
43
+ if node_data["automatic"].has_key?("cookbooks")
44
+ node_cookbooks = node_data["automatic"]["cookbooks"]
45
+ unless node_cookbooks.nil?
46
+ node_cookbooks.each do |cookbook_name, cookbook_data|
47
+ cookbook_version = cookbook_data['version']
48
+ if env_cookbooks.has_key?(cookbook_name)
49
+ version = env_cookbooks[cookbook_name].split(' ').last
50
+ if version > cookbook_version
51
+ env_cookbooks[cookbook_name] = "<= #{version}"
52
+ elsif cookbook_version > version
53
+ env_cookbooks[cookbook_name] = "<= #{cookbook_version}"
54
+ end
55
+ else
56
+ env_cookbooks[cookbook_name] = "= #{cookbook_version}"
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ env_cookbooks
64
+ end
65
+ end
66
+ end
@@ -0,0 +1 @@
1
+ require "knife-atomic/version"
@@ -0,0 +1,5 @@
1
+ module Knife
2
+ module Atomic
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
data/y ADDED
@@ -0,0 +1,54 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: AES-128-CBC,C50C95D0F0839B89028DF3059CD2BCEE
4
+
5
+ YZStqKCrCF4fCGG0NNVN492Q/V213bGt2rcCy7pOKGGaZdIvdnu/m6wv7HxEactH
6
+ hxPq4CIR3vKMKolGe9kJDOkpbFAu/gnitx7eW6T4pno3k5OMckiUIBvvh9ZAG4oB
7
+ ngIzI3ycaSV0k1V1P3QhISMi778bKhxV3fbYMM4Ootv0s6jW8v6pjaE0TB5kUDf3
8
+ yHr80Wkdwcs0bgfC4Ao49Dx744JW3Qhp2li2rXd9aYdinWlYMtV1cuWHvzd1pF0W
9
+ Zcn5Ky860/6kVyu7xXqTXMB3/k9z5ALSPKtJ9upANp+DPJ2GIPBlPU3CiJ6wK/QK
10
+ aHo0od6zjoRZM9sUWb8W7ANYqfGLWQhi9If9VrQrgx8A4QdHbQrEOJslshu2RP72
11
+ 3ZOWksqNFlaQA/5LgSyPEL2Se1/PmyC6nUuNZthmQad1drXqUcLf2yV2aojYmiA/
12
+ KuUMIZv9Zc1KsdAFV1g/FOM3lXLdZkvTYyr2JvTGciiueAl0iBYgcvMhBSlAOc0y
13
+ xhjpvWZDKDr/X68qqR/1UQd+ciwVVlkGN4WaSNsBpUyOz6UnFEqOlHnQxEbeitTQ
14
+ hrSIDxMVDz9ciA6lK1EePdYUK9ztg81LT4GFdd3shIgG1HZVA8uTLlttBy6zqtBl
15
+ iI/Z6mFxjOIDWwTF6cydJ+YxCfUFEpaPR/d+yi6WjrUSeGmOl/oD+lKV+dVE86bG
16
+ oDmFiLOOKVxpM+bsIZpz54gm8R631HAk62OrmhOvDkwGFtC79UbPRpFXbt5FVxzd
17
+ JWpxt2cFTz9gJpIqCh96k15nk1ldaHltjopr8y8fgFu39jxGKS4x4hJ7udKgE1jQ
18
+ 8zmvREWR0TLkcMKdkcsf0dUkGh9BsKj0SdAnnY5csYEeFfxTQIjMKSyrGq1ZVyqo
19
+ 2NgGrotlIH9hStSZcVaaNmZvFFyQLWE0biNLRPlR9ZNLl8xnv8GLx3lg6Bn3CxeP
20
+ /ExfGJDdDkrTI1Kiv7Bxkyk2k4BOCkSTokDqBWmmMNL4PlqFrwB0ozCNnJlU/KMq
21
+ xdRNyql9NBv+1RYIksCamcSo5zT3UggEA4U8fBgyqatmC+J5XeXUre9InnZ28aAj
22
+ LeYmhA17BvpUrWHaLwqvh/l4JS2npRo8+5i5I3QEPPK1Kj3TvtJxeIlVHAat0cs+
23
+ kEqkZ11AdEmT7uHybMYYp+Ov2g75tgMuI0iEtUlKYx50Ux2WgKoKnUEiYdW+Y40V
24
+ +M08N+uTZiaXPiUsoGAJyk5pq7BTsnQ9H54lWR//TG458Xhd0aq3KelCa9nQ5M5L
25
+ oTN3NuN9j0E5bkVq5sKeC5rT0zzhpT0xZpwlHcgn/mPScnmGYckPnuU6fxUb/ZWH
26
+ 9DBUsuwbCK84ujjJ7p22GUNhmqQ7reO8WpuQzaDTRy1XrXzvpC9bCpipKSTFCLQG
27
+ wHNUIqX0wtTMgKQ3JIR0qlUBlW9hrMlzNzcfeZzoEYkTH5fe4yBK/RRSZHTxjOOa
28
+ OZoGadtiJI9nYGBcZ8K5VYgiVqtF8Tusdhw6NyAR5bz/rNczK7ijoFqnx17O9MBS
29
+ 2E/lkSrsECYXnvIlQcBS8b2swBiBj6J+nu7+cu9JM0NDxiX25ZTMCGMCtn8ssEMi
30
+ LfflxlJFvG2f/V/8sJg+HwRqk7IYpvmCehfBunbsFAU6Wdet7rwxU60N572drOvE
31
+ 6fg3mISTeA73GNHNJ4g4Zdjapv3iAP5jNU8gkqhBjBJBQ6puAe+3Trrqke/no81B
32
+ nSEdcpGMW1VidprAlObBnXBuLfugHaSvhHvr1lfUEtiRZA6uXEI3Rqo69RAT7wI0
33
+ PMv/QCFWL4j0vnZXEuciog6x6bB9xWqjclZOrLcbor1CEn3N6nxWcU4z8N2zbJVI
34
+ mpxYVxco6aF8S2AqfiBpdO6jo7lIbjOGZyTN55Vn1u9nU7DQG7yEL4pkRcRK2TAj
35
+ vWOXK4m11PrVu3hf3XI9j5iwXzh+A3UCpc20KjQqnE+J09NOMFpQAkN5plo38njc
36
+ sWDCji3Ici2LZQvhIhXiJ0k2RNkNHznnFhc55Q7yqajlopaZt+iFeRgskgsgIR37
37
+ Hh2LnCuQX51V4u6lztzqhADm9O4uUZ4sWfDghgnJT32zFQOW89chog/5mbySj5GP
38
+ Lue1SA9MBhLH8X+QJTl/5taTybl9IfnlwxFbR15q5HK55mW1jegGLb5ODlOkqjUx
39
+ HJX/qJjlh5CyBnwd5KD4ofow+M5RSSNnmK5xXU4J7/zi7dpDmAeTXr3lsAnzu0kD
40
+ SdfkxTncpFb3aDc7Y1T3cHquL0ycYNqRcbwJMbqrHW9qq+bh7X4FAqVAWss9pU1D
41
+ kKp8rA1Mwga82Y2BK2Yb20kgqsWhZo33rAF0YbUe8ds5B/YAnjpfw3Yq0rt4qZV/
42
+ IdTzMD4Ix/im1v5O40UsgOoULDL9mUddVHV35xu4mrg60vo1KQH263s5bZz3zYhw
43
+ vMrnL1SnvKAWU8jDLMmGUDF5DQjNOz3eP0IN5GwvmFmRu23hkXStSce0U7HAExZn
44
+ VeolnNAh06DyYMjFmRB3Xd24rb/E8fw9LEoLUy4AWCow788NZ7EVU55aCMj+JmVI
45
+ /6y3YY6nbSOAyt6iPiLrR7puO6ebWarTF4R1JSYiBRi17Dnwkt67tWCBUWqm1hFs
46
+ m14aBqm4+BpJRTuFJEcCVSDJcNo99/zzmadRlmYBE585BYeGWdI72/1CY89LYSUA
47
+ QLy82Zsmd+8l2QMdFU4EKFElZsyPBOxojUkj3q8iSxYTNt+mIpXV5doxujUhieSm
48
+ LSjfI0k2ULDaaFIhT2MK12OABnTlGPvga2BpnNFMAK4t5YgNGLsEvi5oFiE8HOIK
49
+ XUFApFl6t6PTAAQrTrIfKeOkNKAd1VN/gpYFSnjeKd7FselAGBv1AHgo4Aidxc/a
50
+ BxCmmE7p5uNiZeSXEdiP7bZUEaI3WnYFtDXo+nBrfIy8TX21VyD5XZnzyhZh9ktg
51
+ Ga9Fs4IvwtKWaz2W5U2lkrE1MkoiadAfrLbWTiCKHi6W/vMsJF7Q7R1B/xu1uDjp
52
+ G7IzuSd5LPnhMVlq4OCMNe8VuEoSG75dJdUn0nvgSm2b1hyxdtDa+LJBc22Mqit7
53
+ 704olaF0JHcvrIl4e+KkJnhx7q52B3LodjYM17Va9kCHTsUC8qvqtYAVoVP5Y9jV
54
+ -----END RSA PRIVATE KEY-----
data/y.pub ADDED
@@ -0,0 +1 @@
1
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCfjYgvBHJ93DbTyycg1h0suQMk+fopU7OCe60TgPqn80LQdsEXa6Rr+eoqJMg2j+GGid71kvUwN3IwsH24ufCOcXJEZWG5Q3kSwm3v3RAYd7GgBQvtvIpsZfDThfQx8TMw+qqJb3UfsuoXfu19e4EfIwBpnciiV35cP5AJV1Jr53niHqfo+yGP/+fzv9DD2w/+vmtrI/ql+dOUzvwO/U78F75pL0H4RlsBmzd5qj5HcK48RGEr7MADR7IQo6317QYosOVPoLAA9ssUh1ZxnXl/oqr3Xfv8DCM7DLKsHWMuD9ww04OispxGzyLrAyBm8sUadphBOC6rQRmuRYwcFOPnTAFjbUGvkvI0L2vZRraKIaaAvKm/gAelfxzXknU5c9Z+XWHwB9EY8wahk1y13jKM959mADrWACMBqdC63iRFl5wKJzam8RvMHLyhvl5O4/0cWk2Az2oxT7Q1JJjbAOsaAc2brHalkAZWaUcCT1GQap7xmcHu4oCi9scS1W8gPBHdDHgNMZzLXZYx4m+zUZqs9+iu4TdnMkzMNsx6wJHaLoSsFjKXnK67ZjHcwC9EjzBjX06lxSUer+cTinjI6JOzHp8lhmnlGT0JHI6ZVjHrKU8RH7hpIPa+M1UJ+XbnD+w9Y9B3ezFUyh0E0nL4zy5J9FMvWPMM5rU+q7jiEYhLww== manoelhc@gmail.com
metadata ADDED
@@ -0,0 +1,52 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: knife-atomic
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Manoel Carvalho
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-11-27 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Chef knife plugin to retrieve settings with the cookbook versions fixed
14
+ email:
15
+ - manoelhc@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - Gemfile
21
+ - LICENSE
22
+ - README.md
23
+ - lib/chef/knife/atomic_environment.rb
24
+ - lib/knife-atomic.rb
25
+ - lib/knife-atomic/version.rb
26
+ - y
27
+ - y.pub
28
+ homepage: https://github.com/manoelhc/knife-atomic
29
+ licenses:
30
+ - MIT
31
+ metadata: {}
32
+ post_install_message:
33
+ rdoc_options: []
34
+ require_paths:
35
+ - lib
36
+ required_ruby_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ requirements: []
47
+ rubyforge_project: knife-atomic
48
+ rubygems_version: 2.5.1
49
+ signing_key:
50
+ specification_version: 4
51
+ summary: 'knife-atomic: get the cookbook installed versions of your environment'
52
+ test_files: []