dns_load 0.1.0 → 0.2.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.
data/README.md CHANGED
@@ -18,4 +18,4 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- $ dns-load -r 5000 -i 1 -d google.com,yahoo.com
21
+ $ dns-load -r 5000 -i 1 -d google.com,yahoo.com, -a 127.0.0.1 -p 53 --pool-size 4
data/lib/dns_load/cli.rb CHANGED
@@ -15,7 +15,9 @@ EOS
15
15
  opt :domains, "One or more domains to query for", short: '-d', type: String
16
16
  opt :num_requests, "The number of requests to perform per iteration", default: 5000, short: '-r', type: Integer
17
17
  opt :num_iterations, "The number of iterations to perform", default: 1, short: '-i', type: Integer
18
- opt :pool_size, "The size of the execution pool", default: 2, short: '-p', type: Integer
18
+ opt :pool_size, "The size of the execution pool", default: 2, type: Integer
19
+ opt :address, "The address of the DNS server", short: '-a', type: String
20
+ opt :port, "The port of the DNS server", default: 53, short: '-p', type: Integer
19
21
  end
20
22
 
21
23
 
@@ -30,7 +32,12 @@ pool = DnsLoad::Dig.pool( size: opts[:pool_size] )
30
32
  future = nil
31
33
 
32
34
  opts[:num_iterations].times do
33
- future = pool.future.execute( opts[:num_requests], opts[:domains].split( ',' ))
35
+ #future = pool.future.execute( opts[:num_requests], opts[:domains].split( ',' ))
36
+ future = pool.future.execute( domains: opts[:domains],
37
+ num_requests: opts[:num_requests],
38
+ domains: opts[:domains],
39
+ address: opts[:address],
40
+ port: opts[:port] )
34
41
  end
35
42
 
36
43
  future.value
data/lib/dns_load/dig.rb CHANGED
@@ -5,13 +5,18 @@ module DnsLoad
5
5
 
6
6
  include Celluloid
7
7
 
8
- def cmd( domain )
9
- "dig @127.0.0.1 -p 5300 #{domain}"
8
+ def cmd( domain, address, port )
9
+ "dig @#{address} -p #{port} #{domain}"
10
10
  end
11
11
 
12
- def execute( num_requests, domains )
12
+ def execute( options )
13
13
  cmds = []
14
- num_requests.times { cmds << cmd( domains.sample ) }
14
+ domains = options[:domains].split( ',' )
15
+
16
+ options[:num_requests].times do
17
+ cmds << cmd( domains.sample, options[:address], options[:port] )
18
+ end
19
+
15
20
  `#{cmds.join( '; ' )}`
16
21
  end
17
22
 
@@ -1,3 +1,3 @@
1
1
  module DnsLoad
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dns_load
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - C. Jason Harrelson
@@ -13,20 +14,23 @@ dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: celluloid
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: trollop
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: bundler
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ~>
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
@@ -55,15 +62,17 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rake
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  description: Toolset for testing DNS server loads.
@@ -92,25 +101,32 @@ files:
92
101
  homepage: ''
93
102
  licenses:
94
103
  - MIT
95
- metadata: {}
96
104
  post_install_message:
97
105
  rdoc_options: []
98
106
  require_paths:
99
107
  - lib
100
108
  required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
101
110
  requirements:
102
- - - '>='
111
+ - - ! '>='
103
112
  - !ruby/object:Gem::Version
104
113
  version: '0'
114
+ segments:
115
+ - 0
116
+ hash: 2674427705972842551
105
117
  required_rubygems_version: !ruby/object:Gem::Requirement
118
+ none: false
106
119
  requirements:
107
- - - '>='
120
+ - - ! '>='
108
121
  - !ruby/object:Gem::Version
109
122
  version: '0'
123
+ segments:
124
+ - 0
125
+ hash: 2674427705972842551
110
126
  requirements: []
111
127
  rubyforge_project:
112
- rubygems_version: 2.0.5
128
+ rubygems_version: 1.8.25
113
129
  signing_key:
114
- specification_version: 4
130
+ specification_version: 3
115
131
  summary: Toolset for testing DNS server loads.
116
132
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 4529541759b3ce008a1aab7c48a1c3658b297d14
4
- data.tar.gz: cc9d0d1459def84df042f43138db0b172f86f34d
5
- SHA512:
6
- metadata.gz: 38c92d275ec020d8e23f384c6dc44a88fff36faadcb5ffd751e2961164f40318f1aef2503b1ecaf43d649fe6a95dde206adc53de4bb4be61b16de0be0c7905fb
7
- data.tar.gz: 3e0a81f7fe9963c0ef605de04501495bff367040fee8c2662c15b2fc5edf0b1a40968751517cf2083cd2a53ba81b8d242b1bbd5d14c41f6d0017c0ff8ad87dc1