train-puppetdb 0.0.2

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
+ SHA256:
3
+ metadata.gz: 07e8f49532bec3eeb4296a9aec4aeb77e93e40e1b9d65dbdb259ab68fd54b6c1
4
+ data.tar.gz: 51231e0083ff60cfb20f370f44faa7b3149313205b3393a73fcafe6ccd59708c
5
+ SHA512:
6
+ metadata.gz: ddcd297aa61500bf406fcbd06b1bf214d4d4486f441df1bbd19d2c2180bf5b201cd92772712f7d66754886b7050f29724ac4b3c91164f3756e45b4eb56721a92
7
+ data.tar.gz: 275339f99c68eb74bd73f2cec07e6dbd47e40ced122ce020b6bda818e71bc24b463c5cdac606cd5dac34c782a4b0326350b83189005a1e6e2c2bb361a551c3d7
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+ source 'https://rubygems.org'
3
+ gemspec
4
+
5
+ # Remaining group is only used for development.
6
+ group :development do
7
+ gem 'bundler'
8
+ gem 'byebug'
9
+ gem 'inspec', '>= 2.2.112' # We need InSpec for the test harness while developing.
10
+ gem 'minitest'
11
+ gem 'rake'
12
+ gem 'rubocop', '~> 0.59'
13
+ end
@@ -0,0 +1,46 @@
1
+ require 'puppetdb'
2
+ require 'train-puppetdb/platform'
3
+
4
+ module TrainPlugins
5
+ module PuppetDBInterface
6
+ class Connection < Train::Plugins::Transport::BaseConnection
7
+ include TrainPlugins::PuppetDBInterface::Platform
8
+
9
+ def initialize(options)
10
+ if options.nil? || options[:server].nil?
11
+ raise Train::TransportError, "You must set a PuppetDB server."
12
+ end
13
+
14
+ super(options)
15
+
16
+ # Check if target is reachable
17
+ begin
18
+ @client = PuppetDB::Client.new({
19
+ :server => options[:server],
20
+ :pem => {
21
+ 'key' => options[:key],
22
+ 'cert' => options[:cert],
23
+ 'ca_file' => options[:cacert],
24
+ }
25
+ })
26
+
27
+ @client.request('nodes', [:'~', 'certname', '.*'], {:limit => 1})
28
+ rescue => e
29
+ raise Train::TransportError, e.response
30
+ end
31
+ end
32
+
33
+ def local?
34
+ false
35
+ end
36
+
37
+ def uri
38
+ 'puppetdb://'
39
+ end
40
+
41
+ def puppetdb_client
42
+ @client
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,8 @@
1
+ module TrainPlugins::PuppetDBInterface
2
+ module Platform
3
+ def platform
4
+ Train::Platforms.name('puppetdb')
5
+ force_platform!('puppetdb', release: TrainPlugins::PuppetDBInterface::VERSION)
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,18 @@
1
+ require 'train-puppetdb/connection'
2
+
3
+ module TrainPlugins
4
+ module PuppetDBInterface
5
+ class Transport < Train.plugin(1)
6
+ name 'puppetdb'
7
+
8
+ option :server, required: true, default: ENV['PUPPETDB_SERVER']
9
+ option :key, default: ENV['PUPPETDB_KEY']
10
+ option :cert, default: ENV['PUPPETDB_CERT']
11
+ option :cacert, default: ENV['PUPPETDB_CACERT']
12
+
13
+ def connection(_instance_opts = nil)
14
+ @connection ||= TrainPlugins::PuppetDBInterface::Connection.new(@options)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ module TrainPlugins
2
+ module PuppetDBInterface
3
+ VERSION = '0.0.2'.freeze
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ libdir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
3
+
4
+ require 'train-puppetdb/version'
5
+ require 'train-puppetdb/transport'
6
+ require 'train-puppetdb/platform'
7
+ require 'train-puppetdb/connection'
@@ -0,0 +1,20 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'train-puppetdb/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'train-puppetdb'
7
+ spec.version = TrainPlugins::PuppetDBInterface::VERSION
8
+ spec.authors = ['Léo Depriester']
9
+ spec.email = ['leo.depriester@camptocamp.com']
10
+ spec.summary = "PuppetDB plugin for Inspec's Backend (WIP)"
11
+ spec.license = 'Apache-2.0'
12
+ spec.files = %w{
13
+ train-puppetdb.gemspec Gemfile
14
+ } + Dir.glob(
15
+ 'lib/**/*', File::FNM_DOTMATCH
16
+ ).reject { |f| File.directory?(f) }
17
+ spec.require_paths = ['lib']
18
+
19
+ spec.add_dependency 'puppetdb-ruby', '~> 1.1'
20
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: train-puppetdb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Léo Depriester
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-04-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: puppetdb-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
27
+ description:
28
+ email:
29
+ - leo.depriester@camptocamp.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - Gemfile
35
+ - lib/train-puppetdb.rb
36
+ - lib/train-puppetdb/connection.rb
37
+ - lib/train-puppetdb/platform.rb
38
+ - lib/train-puppetdb/transport.rb
39
+ - lib/train-puppetdb/version.rb
40
+ - train-puppetdb.gemspec
41
+ homepage:
42
+ licenses:
43
+ - Apache-2.0
44
+ metadata: {}
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project:
61
+ rubygems_version: 2.7.8
62
+ signing_key:
63
+ specification_version: 4
64
+ summary: PuppetDB plugin for Inspec's Backend (WIP)
65
+ test_files: []