bind_docker 0.1.0

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/bind_docker.rb +58 -0
  3. metadata +74 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2ac306e6e5bd669549ff90c17abe64708ba87f91
4
+ data.tar.gz: 6387fdee8cd40f2384f04ff1e2aae1606e0f6ba6
5
+ SHA512:
6
+ metadata.gz: 56d85f08013a88ec99eb674a439409283687ae66c790ffca04b291d4ab79f6a18e73aec55f4074409d0d2fc87b8f8dd2a2c6e56681dadb5e781ff7ed4a8920a5
7
+ data.tar.gz: 76c59aa7342683118d57d4ef9d3af66b72f537b0b6ef119df7930391fdab2b8415c722ffddc8a88efc4e102c8e230cb9fd00c93fdecded586a65c3206ffbbd63
@@ -0,0 +1,58 @@
1
+ require 'json'
2
+ require 'dnsruby'
3
+ require 'resolv-replace'
4
+ include Dnsruby
5
+
6
+ class DNSHelper
7
+
8
+ IMAGE='clcloud/dnsuats'
9
+ CONTAINER_NAME='dns-funtime'
10
+
11
+ def self.run!
12
+ `docker run -d -p 1053:53/udp -p 1053:53/tcp --name=#{CONTAINER_NAME} #{IMAGE}`
13
+ end
14
+
15
+ def self.stop!
16
+ `docker rm -f #{CONTAINER_NAME} > /dev/null 2>&1`
17
+ end
18
+
19
+ def self.resolve address
20
+ Resolv.getaddress(address).to_s
21
+ end
22
+
23
+ def self.build zonefiles_glob, named_conf
24
+ Dir.chdir("spec/dns_files")
25
+ `docker build -t #{IMAGE} --build-arg zonefiles_glob=#{zonefiles_glob} --build-arg named_conf=#{named_conf} .`
26
+ Dir.chdir("../..")
27
+ end
28
+
29
+ def self.docker_ip
30
+ if (/darwin/ =~ RUBY_PLATFORM)
31
+ docker_machine_info = JSON.parse `docker-machine inspect default`
32
+ docker_machine_info['Driver']['Driver']['IPAddress']
33
+ else
34
+ "127.0.0.1"
35
+ end
36
+ end
37
+
38
+ def self.resolve_bucket_by_region bucket, tld
39
+ begin
40
+ Resolv.getaddress("#{bucket}.#{tld}").to_s
41
+ rescue Resolv::ResolvError
42
+ :nxdomain
43
+ end
44
+ end
45
+
46
+ end
47
+
48
+ class Resolv
49
+ def self.use_uat_dns! default_search='uat-os'
50
+ resolv = Resolv::DNS.new(nameserver_port:[[DNSHelper.docker_ip, 1053]],
51
+ search: [default_search],
52
+ ndots: 1)
53
+
54
+ remove_const :DefaultResolver
55
+ const_set :DefaultResolver, self.new([Resolv::Hosts.new, resolv])
56
+ end
57
+
58
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bind_docker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Brian Haggard
8
+ - Brian Felton
9
+ - Rebecca Skinner
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2016-01-20 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: json
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.4'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ version: '1.4'
29
+ - !ruby/object:Gem::Dependency
30
+ name: dnsruby
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ~>
34
+ - !ruby/object:Gem::Version
35
+ version: '1.58'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ version: '1.58'
43
+ description: Gem to create a docker container running bind9, used with rpsec for UATs
44
+ email: brihagg@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - lib/bind_docker.rb
50
+ homepage: http://rubygems.org/gems/bind_docker
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.0.14
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: Build Docker containers running Bind9
74
+ test_files: []