Esempio n. 1
0
 def _bulk_discovery_status(self, request):
     job = BulkDiscoveryBackgroundJob()
     status = job.get_status()
     return {
         "is_running": job.is_running(),
         "job": {
             "state": status["state"],
             "result_msg": "\n".join(status["loginfo"]["JobResult"]),
             "output": "\n".join(status["loginfo"]["JobProgressUpdate"]),
         },
     }
Esempio n. 2
0
    def _bulk_discovery_start(self, request):
        job = BulkDiscoveryBackgroundJob()
        if job.is_running():
            raise MKUserError(
                None,
                _("A bulk discovery job is already running. Please use the "
                  "\"bulk_discovery_status\" call to get the curent status."))

        mode, use_cache, do_scan, bulk_size, error_handling = self._get_parameters_from_request(
            request)
        tasks = get_tasks(self._get_hosts_from_request(request), bulk_size)

        try:
            job.set_function(job.do_execute, mode, use_cache, do_scan, error_handling, tasks)
            job.start()
            return {
                "started": True,
            }
        except Exception as e:
            logger.error("Failed to start bulk discovery", exc_info=True)
            raise MKUserError(None, _("Failed to start discovery: %s") % e)