mirror of
https://github.com/projectatomic/atomic.git
synced 2026-02-06 12:45:57 +01:00
Get list of scanners returned to the user
This commit is contained in:
@@ -28,6 +28,9 @@ class Scan(Atomic):
|
||||
self.rootfs_mappings = {}
|
||||
self.scanner = None
|
||||
|
||||
def get_scanners_list(self):
|
||||
return json.dumps(self.scanners)
|
||||
|
||||
def scan(self):
|
||||
def get_scan_info(scanner, scan_type):
|
||||
for i in self.scanners:
|
||||
|
||||
@@ -3,6 +3,7 @@ import json
|
||||
import dbus
|
||||
import dbus.service
|
||||
import dbus.mainloop.glib
|
||||
from Atomic import util
|
||||
from slip.dbus import polkit
|
||||
|
||||
|
||||
@@ -42,6 +43,34 @@ class AtomicDBus (object):
|
||||
ret = self.dbus_object.diff(first, second, dbus_interface="org.atomic")
|
||||
return ret
|
||||
|
||||
@polkit.enable_proxy
|
||||
def scan_list(self):
|
||||
ret = self.dbus_object.scan_list(dbus_interface="org.atomic")
|
||||
return ret
|
||||
|
||||
#For outputting the list of scanners
|
||||
def print_scan_list(all_scanners):
|
||||
if len(all_scanners) == 0:
|
||||
util.write_out("There are no scanners configured for this system.")
|
||||
sys.exit(0)
|
||||
default_scanner = (util.get_atomic_config())['default_scanner']
|
||||
if default_scanner is None:
|
||||
default_scanner = ''
|
||||
for scanner in all_scanners:
|
||||
scanner_name = scanner['scanner_name']
|
||||
df = '* ' if scanner_name == default_scanner else ''
|
||||
default_scan_type = scanner.get('default_scan')
|
||||
if default_scan_type is None:
|
||||
raise ValueError("Invalid configuration file: At least one scan type must be "
|
||||
"declared as the default for {}.".format(scanner_name))
|
||||
util.write_out("Scanner: {} {}".format(scanner_name, df))
|
||||
util.write_out("{}Image Name: {}".format(" " * 2, scanner['image_name']))
|
||||
for scan_type in scanner['scans']:
|
||||
df = '* ' if default_scan_type == scan_type['name'] else ''
|
||||
util.write_out("{}Scan type: {} {}".format(" " * 5, scan_type['name'], df))
|
||||
util.write_out("{}Description: {}\n".format(" " * 5, scan_type['description']))
|
||||
util.write_out("\n* denotes defaults")
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
@@ -78,5 +107,10 @@ if __name__ == "__main__":
|
||||
#case where rpms flag is passed in
|
||||
resp = json.loads(dbus_proxy.diff(sys.argv[2], sys.argv[3]))
|
||||
print resp
|
||||
|
||||
elif(sys.argv[1] == "scan"):
|
||||
if(sys.argv[2] == "list"):
|
||||
all_scanners = json.loads(dbus_proxy.scan_list())
|
||||
print_scan_list(all_scanners)
|
||||
except dbus.DBusException as e:
|
||||
print (e)
|
||||
|
||||
@@ -10,6 +10,7 @@ from Atomic import Atomic
|
||||
from Atomic.verify import Verify
|
||||
from Atomic.storage import Storage
|
||||
from Atomic.diff import Diff
|
||||
from Atomic.scan import Scan
|
||||
|
||||
class atomic_dbus(slip.dbus.service.Object):
|
||||
default_polkit_auth_required = "org.atomic.readwrite"
|
||||
@@ -142,6 +143,18 @@ class atomic_dbus(slip.dbus.service.Object):
|
||||
diff.set_args(args)
|
||||
return diff.diff()
|
||||
|
||||
"""
|
||||
The get_scan_list method will return a list of all scanners.
|
||||
"""
|
||||
@slip.dbus.polkit.require_auth("org.atomic.read")
|
||||
@dbus.service.method("org.atomic", in_signature='',
|
||||
out_signature= 's')
|
||||
def scan_list(self):
|
||||
scan_list = Scan()
|
||||
args = self.Args()
|
||||
scan_list.set_args(args)
|
||||
return scan_list.get_scanners_list()
|
||||
|
||||
if __name__ == "__main__":
|
||||
mainloop = GLib.MainLoop()
|
||||
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
||||
|
||||
Reference in New Issue
Block a user