Skip to content
This repository was archived by the owner on Oct 10, 2020. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Atomic/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -790,6 +790,12 @@ def confirm_input(msg):
return confirm.strip().lower() in ['y', 'yes']


def load_scan_result_file(file_name):
"""
Read a specific json file
"""
return json.loads(open(os.path.join(file_name), "r").read())

class Decompose(object):
"""
Class for decomposing an input string in its respective parts like registry,
Expand Down
13 changes: 13 additions & 0 deletions atomic_dbus.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
from Atomic.update import Update
from Atomic.uninstall import Uninstall
from Atomic.verify import Verify
from Atomic import util

DBUS_NAME_FLAG_DO_NOT_QUEUE = 4
DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER = 1
Expand Down Expand Up @@ -571,6 +572,18 @@ def ImageVersion(self, image, recurse=False):
info.set_args(args)
return json.dumps(info.dbus_version())

@slip.dbus.polkit.require_auth("org.atomic.read")
@dbus.service.method("org.atomic", in_signature='s', out_signature='s')
def GetScanResultsById(self, iid):
vuln_summary = self.atomic.get_all_vulnerable_info()
summary_results = vuln_summary.get(iid, None)
if not summary_results:
raise ValueError("No history for scan of {}".format(iid))
file_name = summary_results.get('json_file')
return json.dumps(util.load_scan_result_file(file_name))



if __name__ == "__main__":
mainloop = GObject.MainLoop()
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
Expand Down
5 changes: 5 additions & 0 deletions atomic_dbus_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,11 @@ def Verify(self, image):
def vulnerable(self):
return self.dbus_object.VulnerableInfo(dbus_interface="org.atomic")

@polkit.enable_proxy
def GetScanResultsById(self, iid):
return self.dbus_object.GetScanResultsById(iid, dbus_interface="org.atomic")


#For outputting the list of scanners
def print_scan_list(all_scanners):
if len(all_scanners) == 0:
Expand Down