def _initialize(self, module_name): """Read configuration. @param module_name: module name. """ self.module_name = module_name mmanager_opts = self.options.get(module_name) for machine_id in mmanager_opts["machines"].strip().split(","): try: machine_opts = self.options.get(machine_id.strip()) machine = Dictionary() machine.id = machine_id.strip() machine.label = machine_opts[self.LABEL] machine.platform = machine_opts["platform"] machine.tags = machine_opts.get("tags") machine.ip = machine_opts["ip"] # If configured, use specific network interface for this # machine, else use the default value. if machine_opts.get("interface"): machine.interface = machine_opts["interface"] else: machine.interface = mmanager_opts.get("interface") # If configured, use specific snapshot name, else leave it # empty and use default behaviour. machine.snapshot = machine_opts.get("snapshot") # If configured, use specific resultserver IP and port, # else use the default value. opt_resultserver = self.options_globals.resultserver # the resultserver port might have been dynamically changed # -> get the current one from the resultserver singelton opt_resultserver.port = ResultServer().port ip = machine_opts.get("resultserver_ip", opt_resultserver.ip) port = machine_opts.get("resultserver_port", opt_resultserver.port) machine.resultserver_ip = ip machine.resultserver_port = port # Strip parameters. for key, value in machine.items(): if value and isinstance(value, basestring): machine[key] = value.strip() self.db.add_machine(name=machine.id, label=machine.label, ip=machine.ip, platform=machine.platform, tags=machine.tags, interface=machine.interface, snapshot=machine.snapshot, resultserver_ip=ip, resultserver_port=port) except (AttributeError, CuckooOperationalError) as e: log.warning("Configuration details about machine %s " "are missing: %s", machine_id.strip(), e) continue
def _initialize(self, module_name): """Read configuration. @param module_name: module name. """ self.module_name = module_name mmanager_opts = self.options.get(module_name) for machine_id in mmanager_opts["machines"].strip().split(","): try: machine_opts = self.options.get(machine_id.strip()) machine = Dictionary() machine.id = machine_id.strip() machine.label = machine_opts[self.LABEL] machine.platform = machine_opts["platform"] machine.options = machine_opts.get("options", "") machine.tags = machine_opts.get("tags") machine.ip = machine_opts["ip"] # If configured, use specific network interface for this # machine, else use the default value. if machine_opts.get("interface"): machine.interface = machine_opts["interface"] else: machine.interface = mmanager_opts.get("interface") # If configured, use specific snapshot name, else leave it # empty and use default behaviour. machine.snapshot = machine_opts.get("snapshot") # If configured, use specific resultserver IP and port, # else use the default value. opt_resultserver = self.options_globals.resultserver # the resultserver port might have been dynamically changed # -> get the current one from the resultserver singleton opt_resultserver.port = self._get_resultserver_port() ip = machine_opts.get("resultserver_ip", opt_resultserver.ip) port = machine_opts.get("resultserver_port", opt_resultserver.port) machine.resultserver_ip = ip machine.resultserver_port = port # Strip parameters. for key, value in machine.items(): if value and isinstance(value, basestring): machine[key] = value.strip() self.db.add_machine(name=machine.id, label=machine.label, ip=machine.ip, platform=machine.platform, options=machine.options, tags=machine.tags, interface=machine.interface, snapshot=machine.snapshot, resultserver_ip=ip, resultserver_port=port) except (AttributeError, CuckooOperationalError) as e: log.warning("Configuration details about machine %s " "are missing: %s", machine_id.strip(), e) continue
def _initialize(self, module_name): """Read configuration. @param module_name: module name. """ self.module_name = module_name mmanager_opts = self.options.get(module_name) for name in mmanager_opts["machines"].split(","): if not name.strip(): continue try: options = self.options.get(name.strip()) machine = Dictionary() machine.name = name.strip() machine.label = options[self.LABEL] machine.platform = options["platform"] machine.tags = options.get("tags") machine.ip = options["ip"] # If configured, use specific network interface for this # machine, else use the default value. machine.interface = options.get("interface") # If configured, use specific snapshot name, else leave it # empty and use default behaviour. machine.snapshot = options.get("snapshot") machine.rdp_port = options.get("rdp_port", "") # If configured, use specific resultserver IP and port, # else use the default value. opt_resultserver = self.options_globals.resultserver if "resultserver_ip" in options and "resultserver_port" in options: machine.resultserver_ip = options["resultserver_ip"] machine.resultserver_port = options["resultserver_port"] else: machine.resultserver_ip = opt_resultserver.ip machine.resultserver_port = opt_resultserver.port # Strip parameters. for key, value in machine.items(): if value and isinstance(value, basestring): machine[key] = value.strip() experiment = self.db.view_experiment(machine_name=machine.name) if experiment is not None: machine.locked_by = experiment.id else: machine.locked_by = None self.db.add_machine(name=machine.name, label=machine.label, ip=machine.ip, platform=machine.platform, tags=machine.tags, interface=machine.interface, snapshot=machine.snapshot, resultserver_ip=machine.resultserver_ip, resultserver_port=machine.resultserver_port, rdp_port=machine.rdp_port, locked_by=machine.locked_by) except (AttributeError, CuckooOperationalError) as e: log.warning("Configuration details about machine %s " "are missing: %s", name, e) continue