openvas-cli 0.2.10 → 0.2.11
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/VERSION +1 -1
- data/lib/openvas-cli/vas_config.rb +4 -1
- data/lib/openvas-cli/vas_task.rb +5 -4
- data/lib/openvas-cli/vas_task_progress.rb +7 -5
- data/openvas-cli.gemspec +7 -3
- data/spec/openvas-cli/vas_config_spec.rb +20 -3
- data/spec/openvas-cli/vas_target_spec.rb +4 -0
- data/spec/openvas-cli/vas_task_progress_spec.rb +47 -0
- data/spec/openvas-cli/vas_task_spec.rb +145 -7
- data/spec/openvas-cli/xml_addin_spec.rb +43 -0
- data/vas_test.rb +0 -0
- metadata +53 -49
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.11
|
@@ -81,12 +81,15 @@ module OpenvasCli
|
|
81
81
|
ret
|
82
82
|
end
|
83
83
|
|
84
|
-
def self.copy_config(id, name)
|
84
|
+
def self.copy_config(id, name, comment = nil)
|
85
85
|
begin
|
86
86
|
req = Nokogiri::XML::Builder.new { |xml|
|
87
87
|
xml.create_config {
|
88
88
|
xml.copy { xml.text(id) }
|
89
89
|
xml.name { xml.text(name) }
|
90
|
+
if comment && !comment.empty?
|
91
|
+
xml.comment { xml.text(comment) }
|
92
|
+
end
|
90
93
|
}
|
91
94
|
}
|
92
95
|
|
data/lib/openvas-cli/vas_task.rb
CHANGED
@@ -83,8 +83,9 @@ module OpenvasCli
|
|
83
83
|
schedule_id = schedule.id
|
84
84
|
end
|
85
85
|
|
86
|
-
if config.changed?
|
86
|
+
if config && config.changed?
|
87
87
|
return unless config.save
|
88
|
+
config_id = config.id
|
88
89
|
end
|
89
90
|
|
90
91
|
req = Nokogiri::XML::Builder.new { |xml|
|
@@ -92,7 +93,7 @@ module OpenvasCli
|
|
92
93
|
xml.modify_task(:id => @id) {
|
93
94
|
xml.name { xml.text(@name) } if name_changed?
|
94
95
|
xml.comment { xml.text(@comment) } if comment_changed?
|
95
|
-
xml.schedule(:id => @schedule_id) if schedule_id && schedule_id_changed?
|
96
|
+
xml.schedule(:id => @schedule_id) if schedule_id && !schedule_id.blank? && schedule_id_changed?
|
96
97
|
}
|
97
98
|
else
|
98
99
|
xml.create_task {
|
@@ -100,7 +101,7 @@ module OpenvasCli
|
|
100
101
|
xml.comment { xml.text(@comment) } if @comment
|
101
102
|
xml.config(:id => @config_id)
|
102
103
|
xml.target(:id => @target_id)
|
103
|
-
xml.schedule(:id => @schedule_id) if @schedule_id
|
104
|
+
xml.schedule(:id => @schedule_id) if @schedule_id && !@schedule_id.blank?
|
104
105
|
}
|
105
106
|
end
|
106
107
|
}
|
@@ -159,7 +160,7 @@ module OpenvasCli
|
|
159
160
|
|
160
161
|
task = VasTask.connection.send_receive(req.doc)
|
161
162
|
|
162
|
-
|
163
|
+
@progress = VasTaskProgress.from_xml_node task.at_xpath('/get_tasks_response/task/progress')
|
163
164
|
end
|
164
165
|
@progress
|
165
166
|
end
|
@@ -5,10 +5,12 @@ module OpenvasCli
|
|
5
5
|
class VasTaskProgress
|
6
6
|
include XmlAddin
|
7
7
|
|
8
|
-
|
8
|
+
def overall
|
9
|
+
@overall ||= 0
|
10
|
+
end
|
9
11
|
|
10
|
-
def
|
11
|
-
@overall =
|
12
|
+
def overall=(val)
|
13
|
+
@overall = val
|
12
14
|
end
|
13
15
|
|
14
16
|
def ip_stats
|
@@ -17,8 +19,8 @@ module OpenvasCli
|
|
17
19
|
|
18
20
|
def self.from_xml_node(node)
|
19
21
|
ret = VasTaskProgress.new
|
20
|
-
ret.overall = extract_value_from("
|
21
|
-
node.xpath("
|
22
|
+
ret.overall = extract_value_from(".", node).to_i
|
23
|
+
node.xpath("./host_progress").each { |p_node|
|
22
24
|
prg = extract_value_from(".", p_node).to_i
|
23
25
|
hst = extract_value_from("host", p_node)
|
24
26
|
ret.ip_stats[hst] = prg
|
data/openvas-cli.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{openvas-cli}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.11"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Reed Swenson"]
|
12
|
-
s.date = %q{2011-04-
|
12
|
+
s.date = %q{2011-04-22}
|
13
13
|
s.description = %q{A full ruby implementation of the OpenVAS OMP (version 2.0) protocol.}
|
14
14
|
s.email = %q{fleureed@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -61,14 +61,16 @@ Gem::Specification.new do |s|
|
|
61
61
|
"spec/openvas-cli/vas_result_spec.rb",
|
62
62
|
"spec/openvas-cli/vas_schedule_spec.rb",
|
63
63
|
"spec/openvas-cli/vas_target_spec.rb",
|
64
|
+
"spec/openvas-cli/vas_task_progress_spec.rb",
|
64
65
|
"spec/openvas-cli/vas_task_spec.rb",
|
66
|
+
"spec/openvas-cli/xml_addin_spec.rb",
|
65
67
|
"spec/spec_helper.rb",
|
66
68
|
"vas_test.rb"
|
67
69
|
]
|
68
70
|
s.homepage = %q{http://reedswenson.github.com/openvas-cli/}
|
69
71
|
s.licenses = ["GPL v2 or greater"]
|
70
72
|
s.require_paths = ["lib", "lib/openvas-cli"]
|
71
|
-
s.rubygems_version = %q{1.
|
73
|
+
s.rubygems_version = %q{1.6.0}
|
72
74
|
s.summary = %q{A full ruby implementation of the OpenVAS OMP (version 2.0) protocol.}
|
73
75
|
s.test_files = [
|
74
76
|
"spec/openvas-cli/vas_administrator_spec.rb",
|
@@ -82,7 +84,9 @@ Gem::Specification.new do |s|
|
|
82
84
|
"spec/openvas-cli/vas_result_spec.rb",
|
83
85
|
"spec/openvas-cli/vas_schedule_spec.rb",
|
84
86
|
"spec/openvas-cli/vas_target_spec.rb",
|
87
|
+
"spec/openvas-cli/vas_task_progress_spec.rb",
|
85
88
|
"spec/openvas-cli/vas_task_spec.rb",
|
89
|
+
"spec/openvas-cli/xml_addin_spec.rb",
|
86
90
|
"spec/spec_helper.rb"
|
87
91
|
]
|
88
92
|
|
@@ -36,13 +36,30 @@ module OpenvasCli
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'be able to copy a configuration' do
|
39
|
-
cfg = VasConfig.get_all
|
40
|
-
|
41
|
-
|
39
|
+
cfg = VasConfig.get_all.first
|
40
|
+
|
41
|
+
new_name = "Test_#{Time.now.strftime('%Y-%m-%d_%H:%M:%S')}"
|
42
|
+
new_cfg = VasConfig.copy_config(cfg.id, new_name)
|
42
43
|
|
43
44
|
new_cfg.should_not be nil
|
44
45
|
new_cfg.id.should_not be cfg.id
|
46
|
+
new_cfg.name.should == new_name
|
47
|
+
|
48
|
+
new_cfg.destroy!
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'be able to copy a configuration with a description' do
|
52
|
+
cfg = VasConfig.get_all.first
|
53
|
+
|
54
|
+
new_name = "Test_#{Time.now.strftime('%Y-%m-%d_%H:%M:%S')}"
|
55
|
+
new_comment = "Test Configuration Named #{new_name}"
|
56
|
+
new_cfg = VasConfig.copy_config(cfg.id, new_name, new_comment)
|
45
57
|
|
58
|
+
new_cfg.should_not be nil
|
59
|
+
new_cfg.id.should_not be cfg.id
|
60
|
+
new_cfg.name.should == new_name
|
61
|
+
new_cfg.comment.should == new_comment
|
62
|
+
|
46
63
|
new_cfg.destroy!
|
47
64
|
end
|
48
65
|
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
module OpenvasCli
|
5
|
+
describe VasTaskProgress do
|
6
|
+
it 'should pull the progress correctly' do
|
7
|
+
task_xml = '<?xml version="1.0" encoding="UTF-8"?>
|
8
|
+
<get_tasks_response status="200" status_text="OK">
|
9
|
+
<task_count>1</task_count>
|
10
|
+
<sort>
|
11
|
+
<field>name<order>ascending</order></field>
|
12
|
+
</sort>
|
13
|
+
<apply_overrides>0</apply_overrides>
|
14
|
+
<task id="f4cb1a0a-f2d5-47f4-b4a3-a16e31319ca8">
|
15
|
+
<name>Test_Task_Runner_2011-04-22_09:17:24</name>
|
16
|
+
<comment>Going to run this one.</comment>
|
17
|
+
<config id="698f691e-7489-11df-9d8c-002264764cea">
|
18
|
+
<name>Full and fast ultimate</name>
|
19
|
+
</config>
|
20
|
+
<escalator id="">
|
21
|
+
<name/>
|
22
|
+
</escalator>
|
23
|
+
<target id="6bd29de5-f4e4-471a-9831-b1cdc14cd6bf">
|
24
|
+
<name>Target_Test_Gateway_2011-04-22_09:17:24</name>
|
25
|
+
</target>
|
26
|
+
<slave id="">
|
27
|
+
<name/>
|
28
|
+
</slave>
|
29
|
+
<status>Running</status>
|
30
|
+
<progress><host_progress><host>10.55.128.254</host>98</host_progress>98</progress>
|
31
|
+
<report_count>1<finished>0</finished></report_count>
|
32
|
+
<trend/>
|
33
|
+
<schedule id="">
|
34
|
+
<name/>
|
35
|
+
<next_time>over</next_time>
|
36
|
+
</schedule>
|
37
|
+
</task>
|
38
|
+
</get_tasks_response>'
|
39
|
+
x = Nokogiri::XML(task_xml)
|
40
|
+
|
41
|
+
prg = VasTaskProgress.from_xml_node(x.at_xpath("/get_tasks_response/task/progress"))
|
42
|
+
prg.overall.should == 98
|
43
|
+
prg.should have(1).ip_stats
|
44
|
+
prg.ip_stats["10.55.128.254"].should == 98
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -10,9 +10,13 @@ module OpenvasCli
|
|
10
10
|
all.each { |t| t.destroy! if t.name =~ /Target_Test_.*/i }
|
11
11
|
end
|
12
12
|
|
13
|
+
def time_stamp
|
14
|
+
Time.now.strftime('%Y-%m-%d_%H:%M:%S')
|
15
|
+
end
|
16
|
+
|
13
17
|
def valid_params
|
14
18
|
{
|
15
|
-
:name => "Test_#{
|
19
|
+
:name => "Test_#{time_stamp}",
|
16
20
|
:config_id => get_config_id,
|
17
21
|
:target_id => get_target_id,
|
18
22
|
:schedule => VasSchedule.new(schedule_params)
|
@@ -21,7 +25,7 @@ module OpenvasCli
|
|
21
25
|
|
22
26
|
def schedule_params
|
23
27
|
{
|
24
|
-
:name => "Test_#{
|
28
|
+
:name => "Test_#{time_stamp}",
|
25
29
|
:comment => "Test Schedule [Automatically Generated]",
|
26
30
|
:first_time => Time.now + 86400,
|
27
31
|
:period => VasPeriod.new(:number => 1, :period => :day)
|
@@ -45,11 +49,17 @@ module OpenvasCli
|
|
45
49
|
|
46
50
|
def valid_target_params
|
47
51
|
{
|
48
|
-
:name => "Test_Target_#{
|
52
|
+
:name => "Test_Target_#{time_stamp}",
|
49
53
|
:hosts => VasTarget.get_local_subnets
|
50
54
|
}
|
51
55
|
end
|
52
56
|
|
57
|
+
def get_gateway
|
58
|
+
`route -n`.split("\n").each { |rline|
|
59
|
+
return rline.split(/\s+/)[1] if rline =~ /\A\s*0\.0\.0\.0/
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
53
63
|
it 'should create a valid task' do
|
54
64
|
t = VasTask.new(valid_params)
|
55
65
|
t.should be_valid
|
@@ -95,9 +105,137 @@ module OpenvasCli
|
|
95
105
|
end
|
96
106
|
end
|
97
107
|
|
98
|
-
it 'should start a new task and run it to the end'
|
99
|
-
|
100
|
-
|
101
|
-
|
108
|
+
it 'should start a new task and run it to the end', :slow => true do
|
109
|
+
config = nil
|
110
|
+
VasConfig.get_all.each { |cfg|
|
111
|
+
config = cfg if cfg.name =~ /full and fast/i
|
112
|
+
}
|
113
|
+
config.should_not be nil
|
114
|
+
|
115
|
+
target = VasTarget.new(
|
116
|
+
:name => "Target_Test_Gateway_#{time_stamp}",
|
117
|
+
:hosts => [get_gateway]
|
118
|
+
)
|
119
|
+
target.save!
|
120
|
+
|
121
|
+
task = VasTask.new(
|
122
|
+
:name => "Test_Task_Runner_#{time_stamp}",
|
123
|
+
:comment => "Going to run this one.",
|
124
|
+
:config_id => config.id,
|
125
|
+
:target_id => target.id
|
126
|
+
)
|
127
|
+
task.save!
|
128
|
+
|
129
|
+
task.start
|
130
|
+
|
131
|
+
|
132
|
+
tsk = VasTask.get_by_id(task.id)
|
133
|
+
count = 0
|
134
|
+
while tsk.status =~ /requested/i && count < 360
|
135
|
+
sleep 1
|
136
|
+
tsk = VasTask.get_by_id(task.id)
|
137
|
+
count += 1
|
138
|
+
end
|
139
|
+
|
140
|
+
count.should be < 360
|
141
|
+
|
142
|
+
tsk.status.should =~ /running/i
|
143
|
+
|
144
|
+
overall = 0
|
145
|
+
max = -99999
|
146
|
+
while tsk.status =~ /running/i do
|
147
|
+
sleep 3
|
148
|
+
|
149
|
+
tsk = VasTask.get_by_id(task.id)
|
150
|
+
tsk.progress.overall.should >= overall unless tsk.progress.overall == -1
|
151
|
+
overall = tsk.progress.overall
|
152
|
+
max = overall if overall > max
|
153
|
+
end
|
154
|
+
|
155
|
+
max.should > 0
|
156
|
+
end
|
157
|
+
|
158
|
+
it 'should stop a task completely', :slow => true do
|
159
|
+
config = nil
|
160
|
+
VasConfig.get_all.each { |cfg|
|
161
|
+
config = cfg if cfg.name = "Full and fast"
|
162
|
+
}
|
163
|
+
config.should_not be nil
|
164
|
+
|
165
|
+
target = VasTarget.new(
|
166
|
+
:name => "Target_Test_Gateway_#{time_stamp}",
|
167
|
+
:hosts => [get_gateway]
|
168
|
+
)
|
169
|
+
target.save!
|
170
|
+
|
171
|
+
task = VasTask.new(
|
172
|
+
:name => "Test_Task_Runner_#{time_stamp}",
|
173
|
+
:comment => "Going to run this one.",
|
174
|
+
:config_id => config.id,
|
175
|
+
:target_id => target.id
|
176
|
+
)
|
177
|
+
task.save!
|
178
|
+
|
179
|
+
task.start
|
180
|
+
|
181
|
+
|
182
|
+
tsk = VasTask.get_by_id(task.id)
|
183
|
+
count = 0
|
184
|
+
while tsk.status =~ /requested/i && count < 360
|
185
|
+
sleep 1
|
186
|
+
tsk = VasTask.get_by_id(task.id)
|
187
|
+
count += 1
|
188
|
+
end
|
189
|
+
|
190
|
+
count.should be < 360
|
191
|
+
|
192
|
+
tsk.status.should =~ /running/i
|
193
|
+
|
194
|
+
sleep 30
|
195
|
+
tsk.stop
|
196
|
+
sleep 60
|
197
|
+
tsk = VasTask.get_by_id(task.id)
|
198
|
+
tsk.status.should =~ /stopped/i
|
199
|
+
|
200
|
+
end
|
201
|
+
|
202
|
+
it 'should pause a task and restart it' do
|
203
|
+
config = nil
|
204
|
+
VasConfig.get_all.each { |cfg|
|
205
|
+
config = cfg if cfg.name = "Full and fast"
|
206
|
+
}
|
207
|
+
config.should_not be nil
|
208
|
+
|
209
|
+
target = VasTarget.new(
|
210
|
+
:name => "Target_Test_Gateway_#{time_stamp}",
|
211
|
+
:hosts => [get_gateway]
|
212
|
+
)
|
213
|
+
target.save!
|
214
|
+
|
215
|
+
task = VasTask.new(
|
216
|
+
:name => "Test_Task_Runner_#{time_stamp}",
|
217
|
+
:comment => "Going to run this one.",
|
218
|
+
:config_id => config.id,
|
219
|
+
:target_id => target.id
|
220
|
+
)
|
221
|
+
task.save!
|
222
|
+
|
223
|
+
task.start
|
224
|
+
|
225
|
+
|
226
|
+
tsk = VasTask.get_by_id(task.id)
|
227
|
+
count = 0
|
228
|
+
while tsk.status =~ /requested/i && count < 360
|
229
|
+
sleep 1
|
230
|
+
tsk = VasTask.get_by_id(task.id)
|
231
|
+
count += 1
|
232
|
+
end
|
233
|
+
|
234
|
+
count.should be < 360
|
235
|
+
|
236
|
+
tsk.status.should =~ /running/i
|
237
|
+
|
238
|
+
sleep 30
|
239
|
+
end
|
102
240
|
end
|
103
241
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
module OpenvasCli
|
5
|
+
describe XmlAddin do
|
6
|
+
class DummyClass
|
7
|
+
include XmlAddin
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should have the extract_value_from method' do
|
11
|
+
DummyClass.public_methods.should include "extract_value_from"
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should extract the correct value from a node with only text decendants' do
|
15
|
+
bldr = Nokogiri::XML::Builder.new { |x|
|
16
|
+
x.base_node { x.text("Test Value") }
|
17
|
+
}
|
18
|
+
|
19
|
+
DummyClass.extract_value_from("/base_node", bldr.doc).should == "Test Value"
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should extract the correct value from a node with a single attribute' do
|
23
|
+
bldr = Nokogiri::XML::Builder.new { |x|
|
24
|
+
x.base_node({:t_attr => "Test Value"})
|
25
|
+
}
|
26
|
+
|
27
|
+
DummyClass.extract_value_from("/base_node/@t_attr", bldr.doc).should == "Test Value"
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should extract the text value from a node even if it has children' do
|
31
|
+
bldr = Nokogiri::XML::Builder.new { |x|
|
32
|
+
x.base_node {
|
33
|
+
x.child_node_one { x.text "Child 1 Value" }
|
34
|
+
x.child_node_two({:ch_one_attr => "Child 2 Value"})
|
35
|
+
x.text("Test Value")
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
DummyClass.extract_value_from("/base_node", bldr.doc).should == "Test Value"
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
data/vas_test.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openvas-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 11
|
10
|
+
version: 0.2.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Reed Swenson
|
@@ -15,12 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
18
|
+
date: 2011-04-22 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
|
22
|
+
type: :runtime
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
24
|
none: false
|
25
25
|
requirements:
|
26
26
|
- - "="
|
@@ -31,12 +31,12 @@ dependencies:
|
|
31
31
|
- 0
|
32
32
|
- 5
|
33
33
|
version: 3.0.5
|
34
|
+
version_requirements: *id001
|
35
|
+
name: activesupport
|
34
36
|
prerelease: false
|
35
|
-
type: :runtime
|
36
|
-
requirement: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
|
39
|
-
|
38
|
+
type: :runtime
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - "="
|
@@ -47,12 +47,12 @@ dependencies:
|
|
47
47
|
- 0
|
48
48
|
- 5
|
49
49
|
version: 3.0.5
|
50
|
+
version_requirements: *id002
|
51
|
+
name: activerecord
|
50
52
|
prerelease: false
|
51
|
-
type: :runtime
|
52
|
-
requirement: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
|
-
|
55
|
-
|
54
|
+
type: :runtime
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
56
|
none: false
|
57
57
|
requirements:
|
58
58
|
- - "="
|
@@ -63,12 +63,12 @@ dependencies:
|
|
63
63
|
- 0
|
64
64
|
- 5
|
65
65
|
version: 3.0.5
|
66
|
+
version_requirements: *id003
|
67
|
+
name: rails
|
66
68
|
prerelease: false
|
67
|
-
type: :runtime
|
68
|
-
requirement: *id003
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
|
71
|
-
|
70
|
+
type: :runtime
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ">="
|
@@ -79,12 +79,12 @@ dependencies:
|
|
79
79
|
- 4
|
80
80
|
- 4
|
81
81
|
version: 1.4.4
|
82
|
+
version_requirements: *id004
|
83
|
+
name: nokogiri
|
82
84
|
prerelease: false
|
83
|
-
type: :runtime
|
84
|
-
requirement: *id004
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
|
-
|
87
|
-
|
86
|
+
type: :runtime
|
87
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
88
88
|
none: false
|
89
89
|
requirements:
|
90
90
|
- - ">="
|
@@ -95,12 +95,12 @@ dependencies:
|
|
95
95
|
- 7
|
96
96
|
- 0
|
97
97
|
version: 0.7.0
|
98
|
+
version_requirements: *id005
|
99
|
+
name: ipaddress
|
98
100
|
prerelease: false
|
99
|
-
type: :runtime
|
100
|
-
requirement: *id005
|
101
101
|
- !ruby/object:Gem::Dependency
|
102
|
-
|
103
|
-
|
102
|
+
type: :development
|
103
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
104
104
|
none: false
|
105
105
|
requirements:
|
106
106
|
- - ~>
|
@@ -111,12 +111,12 @@ dependencies:
|
|
111
111
|
- 3
|
112
112
|
- 0
|
113
113
|
version: 2.3.0
|
114
|
+
version_requirements: *id006
|
115
|
+
name: rspec
|
114
116
|
prerelease: false
|
115
|
-
type: :development
|
116
|
-
requirement: *id006
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
|
-
|
119
|
-
|
118
|
+
type: :development
|
119
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
120
120
|
none: false
|
121
121
|
requirements:
|
122
122
|
- - ~>
|
@@ -127,12 +127,12 @@ dependencies:
|
|
127
127
|
- 0
|
128
128
|
- 0
|
129
129
|
version: 1.0.0
|
130
|
+
version_requirements: *id007
|
131
|
+
name: bundler
|
130
132
|
prerelease: false
|
131
|
-
type: :development
|
132
|
-
requirement: *id007
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
|
-
|
135
|
-
|
134
|
+
type: :development
|
135
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
136
136
|
none: false
|
137
137
|
requirements:
|
138
138
|
- - ~>
|
@@ -143,12 +143,12 @@ dependencies:
|
|
143
143
|
- 5
|
144
144
|
- 2
|
145
145
|
version: 1.5.2
|
146
|
+
version_requirements: *id008
|
147
|
+
name: jeweler
|
146
148
|
prerelease: false
|
147
|
-
type: :development
|
148
|
-
requirement: *id008
|
149
149
|
- !ruby/object:Gem::Dependency
|
150
|
-
|
151
|
-
|
150
|
+
type: :development
|
151
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
152
152
|
none: false
|
153
153
|
requirements:
|
154
154
|
- - ">="
|
@@ -157,12 +157,12 @@ dependencies:
|
|
157
157
|
segments:
|
158
158
|
- 0
|
159
159
|
version: "0"
|
160
|
+
version_requirements: *id009
|
161
|
+
name: rcov
|
160
162
|
prerelease: false
|
161
|
-
type: :development
|
162
|
-
requirement: *id009
|
163
163
|
- !ruby/object:Gem::Dependency
|
164
|
-
|
165
|
-
|
164
|
+
type: :development
|
165
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
166
166
|
none: false
|
167
167
|
requirements:
|
168
168
|
- - ">="
|
@@ -171,12 +171,12 @@ dependencies:
|
|
171
171
|
segments:
|
172
172
|
- 0
|
173
173
|
version: "0"
|
174
|
+
version_requirements: *id010
|
175
|
+
name: ZenTest
|
174
176
|
prerelease: false
|
175
|
-
type: :development
|
176
|
-
requirement: *id010
|
177
177
|
- !ruby/object:Gem::Dependency
|
178
|
-
|
179
|
-
|
178
|
+
type: :development
|
179
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
180
180
|
none: false
|
181
181
|
requirements:
|
182
182
|
- - ">="
|
@@ -185,9 +185,9 @@ dependencies:
|
|
185
185
|
segments:
|
186
186
|
- 0
|
187
187
|
version: "0"
|
188
|
+
version_requirements: *id011
|
189
|
+
name: log4r
|
188
190
|
prerelease: false
|
189
|
-
type: :development
|
190
|
-
requirement: *id011
|
191
191
|
description: A full ruby implementation of the OpenVAS OMP (version 2.0) protocol.
|
192
192
|
email: fleureed@gmail.com
|
193
193
|
executables: []
|
@@ -242,7 +242,9 @@ files:
|
|
242
242
|
- spec/openvas-cli/vas_result_spec.rb
|
243
243
|
- spec/openvas-cli/vas_schedule_spec.rb
|
244
244
|
- spec/openvas-cli/vas_target_spec.rb
|
245
|
+
- spec/openvas-cli/vas_task_progress_spec.rb
|
245
246
|
- spec/openvas-cli/vas_task_spec.rb
|
247
|
+
- spec/openvas-cli/xml_addin_spec.rb
|
246
248
|
- spec/spec_helper.rb
|
247
249
|
- vas_test.rb
|
248
250
|
has_rdoc: true
|
@@ -276,7 +278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
276
278
|
requirements: []
|
277
279
|
|
278
280
|
rubyforge_project:
|
279
|
-
rubygems_version: 1.
|
281
|
+
rubygems_version: 1.6.0
|
280
282
|
signing_key:
|
281
283
|
specification_version: 3
|
282
284
|
summary: A full ruby implementation of the OpenVAS OMP (version 2.0) protocol.
|
@@ -292,5 +294,7 @@ test_files:
|
|
292
294
|
- spec/openvas-cli/vas_result_spec.rb
|
293
295
|
- spec/openvas-cli/vas_schedule_spec.rb
|
294
296
|
- spec/openvas-cli/vas_target_spec.rb
|
297
|
+
- spec/openvas-cli/vas_task_progress_spec.rb
|
295
298
|
- spec/openvas-cli/vas_task_spec.rb
|
299
|
+
- spec/openvas-cli/xml_addin_spec.rb
|
296
300
|
- spec/spec_helper.rb
|