@@ -26,20 +26,6 @@ import sys
26
26
from requests import exceptions
27
27
28
28
29
- def cve_scan(scan_target, other_scan_args):
30
- ''' Wrapper function for container/image scanning '''
31
- OS = OscapScan()
32
- result = OS.scan_cve(scan_target, other_scan_args)
33
- return result
34
-
35
-
36
- def scan(scan_target, other_scan_args):
37
- ''' Wrapper function to scan with openscap'''
38
- OS = OscapScan()
39
- result = OS.scan(scan_target, other_scan_args)
40
- return result
41
-
42
-
43
29
def ping_docker():
44
30
''' Simple check if the docker daemon is running '''
45
31
# Class docker.Client was renamed to docker.APIClient in
@@ -55,33 +41,34 @@ if __name__ == '__main__':
55
41
parser = argparse.ArgumentParser(description='oscap docker',
56
42
epilog='See `man oscap` to learn \
57
43
more about OSCAP-ARGUMENTS')
44
+ parser.add_argument('--oscap', dest='oscap_binary', default='', help='Set the oscap binary to use')
58
45
subparser = parser.add_subparsers(help="commands")
59
46
60
47
# Scan CVEs in image
61
48
image_cve = subparser.add_parser('image-cve', help='Scan a docker image \
62
49
for known vulnerabilities.')
63
- image_cve.set_defaults(func=cve_scan )
50
+ image_cve.set_defaults(func=OscapScan.scan_cve )
64
51
image_cve.add_argument('scan_target', help='Container or image to scan')
65
52
66
53
# Scan an Image
67
54
image = subparser.add_parser('image', help='Scan a docker image')
68
55
image.add_argument('scan_target',
69
56
help='Container or image to scan')
70
57
71
- image.set_defaults(func=scan)
58
+ image.set_defaults(func=OscapScan. scan)
72
59
# Scan a container
73
60
container = subparser.add_parser('container', help='Scan a running docker\
74
61
container of given name.')
75
62
container.add_argument('scan_target',
76
63
help='Container or image to scan')
77
- container.set_defaults(func=scan)
64
+ container.set_defaults(func=OscapScan. scan)
78
65
79
66
# Scan CVEs in container
80
67
container_cve = subparser.add_parser('container-cve', help='Scan a \
81
68
running container for known \
82
69
vulnerabilities.')
83
70
84
- container_cve.set_defaults(func=cve_scan )
71
+ container_cve.set_defaults(func=OscapScan.scan_cve )
85
72
container_cve.add_argument('scan_target',
86
73
help='Container or image to scan')
87
74
@@ -99,7 +86,8 @@ if __name__ == '__main__':
99
86
sys.exit(1)
100
87
101
88
try:
102
- rc = args.func(args.scan_target, leftover_args)
89
+ OS = OscapScan(oscap_binary=args.oscap_binary)
90
+ rc = args.func(OS, args.scan_target, leftover_args)
103
91
except Exception as exc:
104
92
sys.exit(255)
105
93
raise exc
0 commit comments