def __init__(self, container, scan_type): """ Initialize object variables specific to per container scanning """ self.scanner = "scanner-analytics-integration" self.container = container # scan_type = [register, scan, get_report] self.scan_type = scan_type self.run_object = atomic_run.Run() # following are the labels must be present in image self.needed_labels_names = ["git-url", "git-sha", "email-ids"] # following three variables need to be processed later self.label_data = None self.image_name = None self.server_url = None # This will contain the result/error data self.respone = None self.errors = [] self.failure = True # the labels needed for calling server APIs self.recorded_labels = {} # the needed data to be logged in scanner output self.data = {} # the templated data this scanner will export print container[1:] self.json_out = self.template_json_data(self.scanner, self.scan_type, container[1:])
def run_scanner(image): run_object = run.Run() run_object.image = image return DockerBackend.check_args(run_object.get_label("RUN"))
# import docker import json import logging import os import subprocess import sys from Atomic import run from datetime import datetime INDIR = "/scanin" OUTDIR = "/scanout" IMAGE_NAME = os.environ.get("IMAGE_NAME") # object of atomic run run_object = run.Run() run_object.image = IMAGE_NAME # client = docker.Client(base_url="unix:///var/run/docker.sock") # set up logging logger = logging.getLogger("container-capabilities-scanner") logger.setLevel(logging.DEBUG) ch = logging.StreamHandler(sys.stdout) ch.setLevel(logging.DEBUG) formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) logger.addHandler(ch)