Skip to content

Commit feff0a2

Browse files
committed
Still BROKEN :/
modified: ../.travis.yml modified: plugins/mongodb.py modified: report.py modified: reportjson.py modified: test/test_backend_plugin_factory.py
1 parent c977048 commit feff0a2

5 files changed

Lines changed: 23 additions & 15 deletions

File tree

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ script:
2121
- python test/report_test.py
2222
- python test/report_diff_test.py
2323
- python test/service_test.py
24+
- python test/test_backend_plugin_factory.py

libnmap/plugins/mongodb.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
#!/usr/bin/env python
2-
from libnmap.plugins.backendplugin import NmapBackendPlugin
2+
import json
33
from pymongo import MongoClient
44
from bson.objectid import ObjectId
55

6+
from libnmap import ReportDecoder, ReportEncoder
7+
from libnmap.plugins.backendplugin import NmapBackendPlugin
8+
69

710
class NmapMongoPlugin(NmapBackendPlugin):
811
def __init__(self, dbname=None, store=None, **kwargs):
@@ -14,8 +17,15 @@ def __init__(self, dbname=None, store=None, **kwargs):
1417
self.dbclient = MongoClient(**kwargs)
1518
self.collection = self.dbclient[self.dbname][self.store]
1619

17-
def insert(self, dict_data):
18-
self.collection.insert(dict_data)
20+
def insert(self, report):
21+
# create a json object from an NmapReport instance
22+
j = json.dumps(report, cls=ReportEncoder)
23+
try:
24+
id = self.collection.insert(json.loads(j))
25+
except:
26+
print "MONGODB cannot insert"
27+
raise
28+
return id
1929

2030
def get(self, report_id=None):
2131
rid = report_id
@@ -24,6 +34,7 @@ def get(self, report_id=None):
2434

2535
if isinstance(rid, ObjectId):
2636
r = self.collection.find({'_id': rid})
37+
nmapreport = json.loads(r, cls=ReportDecoder)
2738
else:
2839
r = self.collection.find()
2940
return r

libnmap/report.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
import sys
33
import inspect
44
from libnmap import NmapParser
5-
from libnmap import NmapDiff, NmapHost, NmapService
6-
#from plugins import backendpluginFactory
7-
from plugins import backendplugin
5+
from libnmap import NmapDiff
6+
from libnmap.plugins.backendplugin import NmapBackendPlugin
7+
#from libnmap.plugins.backendpluginFactory import BackendPluginFactory
88

99

1010
class NmapReport(object):
@@ -50,9 +50,10 @@ def save(self, backend):
5050
"""
5151
if backend is not None:
5252
#do stuff
53-
backend.insert(self._hosts)
53+
id = backend.insert(self)
5454
else:
5555
raise RuntimeError
56+
return id
5657

5758
def diff(self, other):
5859
if self._is_consistent() and other._is_consistent():

libnmap/reportjson.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
#!/usr/bin/env python
22
import json
3-
import sys
4-
import inspect
5-
from libnmap import NmapParser
6-
from libnmap import NmapDiff, NmapHost, NmapService
3+
from libnmap import NmapHost, NmapService, NmapReport, NmapParser
74

85

96
class ReportEncoder(json.JSONEncoder):

libnmap/test/test_backend_plugin_factory.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def mongo_test_factory(self):
7878
self.assertEqual(isinstance(mongodb, NmapSqlitePlugin), False)
7979

8080
def mongo_test_insert(self):
81-
"""best way to insert is to call save() of nmapreport"""
81+
""""best way to insert is to call save() of nmapreport"""
8282
for testfile in self.flist:
8383
fd = open(testfile['file'], 'r')
8484
s = fd.read()
@@ -88,9 +88,7 @@ def mongo_test_insert(self):
8888
#create the backend factory object
8989
factory = BackendPluginFactory()
9090
mongodb = factory.create(plugin_name="mongodb")
91-
nr.save(mongodb)
92-
print mongodb.dbclient
93-
print mongodb.collection
91+
self.assertNotEqual(nr.save(mongodb),None)
9492

9593
def mongo_test_update(self):
9694
pass

0 commit comments

Comments
 (0)