scandb 0.1.1 → 0.1.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.
data/History.txt CHANGED
@@ -1,3 +1,11 @@
1
+ === 0.1.2 / 2008-10-19
2
+
3
+ * Have ScanDB use it's own DataMapper Repository name-space to avoid
4
+ conflicts with other DataMapper libraries.
5
+ * Bug fix for Runner.command_line, where it was not setting up the DataMapper
6
+ repository.
7
+ * Minor performance improvement for Nmap.import_xml.
8
+
1
9
  === 0.1.1 / 2008-08-17
2
10
 
3
11
  * Added a work-around to DataMappers current problem with lazy-loading
data/Manifest.txt CHANGED
@@ -17,6 +17,7 @@ lib/scandb/os_match.rb
17
17
  lib/scandb/os_match_guess.rb
18
18
  lib/scandb/host_name.rb
19
19
  lib/scandb/host.rb
20
+ lib/scandb/persistence.rb
20
21
  lib/scandb/nmap.rb
21
22
  lib/scandb/runner.rb
22
23
  lib/scandb/scandb.rb
data/README.txt CHANGED
@@ -1,6 +1,7 @@
1
1
  = ScanDB
2
2
 
3
- * http://rubyforge.org/projects/scandb/
3
+ * http://scandb.rubyforge.org/
4
+ * Postmodern Modulus III (postmodern.mod3 at gmail.com)
4
5
 
5
6
  == DESCRIPTION:
6
7
 
data/Rakefile CHANGED
@@ -7,6 +7,7 @@ require './lib/scandb/version.rb'
7
7
  Hoe.new('scandb', ScanDB::VERSION) do |p|
8
8
  p.rubyforge_name = 'scandb'
9
9
  p.developer('Postmodern Modulus III', 'postmodern.mod3@gmail.com')
10
+ p.remote_rdoc_dir = ''
10
11
  p.extra_deps = [
11
12
  ['do_sqlite3', '>=0.9.3'],
12
13
  ['dm-core', '>=0.9.3'],
@@ -39,15 +39,15 @@ module ScanDB
39
39
  # Database configuration file
40
40
  CONFIG_FILE = File.join(Config::PATH,'database.yml')
41
41
 
42
- # Default database configuration
43
- DEFAULT_CONFIG = "sqlite3://" + File.join(Config::PATH,'scandb.db')
44
-
45
42
  # Default log path
46
43
  DEFAULT_LOG_PATH = File.join(Config::PATH,'scandb.log')
47
44
 
48
45
  # Default log level
49
46
  DEFAULT_LOG_LEVEL = :info
50
47
 
48
+ # Default database configuration
49
+ DEFAULT_CONFIG = "sqlite3://" + File.join(Config::PATH,'scandb.db')
50
+
51
51
  #
52
52
  # Returns the Database configuration that is stored in the
53
53
  # +CONFIG_FILE+. Defaults to +DEFAULT_CONFIG+ if +CONFIG_FILE+ does not
@@ -103,7 +103,7 @@ module ScanDB
103
103
  #
104
104
  def Database.setup(configuration=Database.config,&block)
105
105
  Database.setup_log
106
- DataMapper.setup(:default, configuration)
106
+ DataMapper.setup(Model::REPOSITORY_NAME, configuration)
107
107
 
108
108
  block.call if block
109
109
 
@@ -118,10 +118,8 @@ module ScanDB
118
118
  model.relationships.each_value { |r| r.child_key if r.child_model == model }
119
119
  end
120
120
 
121
- DataMapper.auto_upgrade!
121
+ DataMapper.auto_upgrade!(Model::REPOSITORY_NAME)
122
122
  return nil
123
123
  end
124
-
125
- Database.setup
126
124
  end
127
125
  end
data/lib/scandb/model.rb CHANGED
@@ -21,6 +21,8 @@
21
21
  #++
22
22
  #
23
23
 
24
+ require 'scandb/database'
25
+
24
26
  require 'dm-core'
25
27
  require 'dm-serializer'
26
28
 
@@ -28,11 +30,18 @@ module ScanDB
28
30
  module Model
29
31
  include DataMapper::Types
30
32
 
33
+ # Name of the DataMapper repository
34
+ REPOSITORY_NAME = :scandb
35
+
31
36
  def self.included(base)
32
37
  base.module_eval do
33
38
  include DataMapper::Resource
34
39
  include DataMapper::AutoMigrations
35
40
 
41
+ def self.default_repository_name
42
+ Model::REPOSITORY_NAME
43
+ end
44
+
36
45
  property :id, Serial
37
46
  end
38
47
  end
data/lib/scandb/nmap.rb CHANGED
@@ -40,7 +40,7 @@ module ScanDB
40
40
  #
41
41
  def Nmap.import_xml(path,&block)
42
42
  doc = XML::Document.file(path)
43
- hosts = []
43
+ host_count = 0
44
44
 
45
45
  doc.find("/nmaprun/host[status[@state='up']]").each do |host|
46
46
  ip = host.find_first("address[@addr and @addrtype='ipv4']")['addr']
@@ -98,12 +98,12 @@ module ScanDB
98
98
  end
99
99
 
100
100
  new_host.save
101
+ host_count += 1
101
102
 
102
103
  block.call(new_host) if block
103
- hosts << new_host
104
104
  end
105
105
 
106
- return hosts
106
+ return host_count
107
107
  end
108
108
  end
109
109
  end
@@ -0,0 +1,28 @@
1
+ #
2
+ #--
3
+ # ScanDB - A library for importing and analyzing information generated by
4
+ # various network scanning utilities.
5
+ #
6
+ # Copyright (c) 2008 Hal Brodigan (postmodern.mod3 at gmail.com)
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License along
19
+ # with this program; if not, write to the Free Software Foundation, Inc.,
20
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21
+ #++
22
+ #
23
+
24
+ require 'scandb/database'
25
+
26
+ module ScanDB
27
+ Database.setup
28
+ end
data/lib/scandb/runner.rb CHANGED
@@ -98,18 +98,24 @@ module ScanDB
98
98
 
99
99
  opts.parse!(args)
100
100
 
101
+ Database.setup(options.database || Database.config)
102
+
101
103
  if options.import
102
104
  case options.import
103
105
  when :nmap then
104
- hosts = Nmap.import_xml(options.import_file)
106
+ hosts = Nmap.import_xml(options.import_file) do |host|
107
+ if options.verbose
108
+ puts ">>> Imported #{host.ip}"
109
+ end
110
+ end
105
111
 
106
- case hosts.length
112
+ case hosts
107
113
  when 0
108
114
  puts "No hosts where imported."
109
115
  when 1
110
- puts "Imported #{hosts.length} host."
116
+ puts "Imported #{hosts} host."
111
117
  else
112
- puts "Imported #{hosts.length} hosts."
118
+ puts "Imported #{hosts} hosts."
113
119
  end
114
120
  end
115
121
  else
@@ -23,5 +23,5 @@
23
23
 
24
24
  module ScanDB
25
25
  # ScanDB version
26
- VERSION = '0.1.1'
26
+ VERSION = '0.1.2'
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scandb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern Modulus III
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-17 00:00:00 -07:00
12
+ date: 2008-10-19 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -70,7 +70,7 @@ dependencies:
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 1.7.0
73
+ version: 1.8.0
74
74
  version:
75
75
  description: ScanDB is a library for importing and analyzing information generated by various network scanning utilities.
76
76
  email:
@@ -103,13 +103,14 @@ files:
103
103
  - lib/scandb/os_match_guess.rb
104
104
  - lib/scandb/host_name.rb
105
105
  - lib/scandb/host.rb
106
+ - lib/scandb/persistence.rb
106
107
  - lib/scandb/nmap.rb
107
108
  - lib/scandb/runner.rb
108
109
  - lib/scandb/scandb.rb
109
110
  - lib/scandb/version.rb
110
111
  - lib/scandb.rb
111
112
  has_rdoc: true
112
- homepage: http://rubyforge.org/projects/scandb/
113
+ homepage: http://scandb.rubyforge.org/
113
114
  post_install_message:
114
115
  rdoc_options:
115
116
  - --main
@@ -131,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
132
  requirements: []
132
133
 
133
134
  rubyforge_project: scandb
134
- rubygems_version: 1.2.0
135
+ rubygems_version: 1.3.0
135
136
  signing_key:
136
137
  specification_version: 2
137
138
  summary: ScanDB is a library for importing and analyzing information generated by various network scanning utilities.