Exemplo n.º 1
0
 def delete_service_probe(self, tenant, service, probe_id):
     probe = probe_repo.get_probe_by_probe_id(service.service_id, probe_id)
     if not probe:
         return 404, u"未找到探针"
     body = {"probe_id": probe_id}
     region_api.delete_service_probe(service.service_region, tenant.tenant_name, service.service_alias, body)
     probe.delete()
     return 200, u"success"
Exemplo n.º 2
0
 def update_service_probea(self, tenant, service, data, user_name=''):
     code, msg = self.__check_probe_data(data)
     if code != 200:
         raise ServiceHandleException(status_code=code, msg_show=msg, msg="error")
     probes = probe_repo.get_service_probe(service.service_id)
     if not probes:
         if service.service_source == "third_party":
             code, msg, new_probe = self.add_service_probe(tenant, service, data)
             return new_probe
         raise ServiceHandleException(status_code=404, msg="no found", msg_show="组件未设置探针,无法进行修改操作")
     probe = probes[0]
     # delete more probe without first, one service will have one probe
     if len(probes) > 1:
         for index in range(len(probes)):
             if index > 0:
                 self.delete_service_probe(tenant, service, probes[index].probe_id)
     if not probe:
         raise ServiceHandleException(status_code=404, msg="no found", msg_show="组件未设置探针,无法进行修改操作")
     is_used = data.get("is_used", None)
     if is_used is None:
         is_used = probe.is_used
     else:
         is_used = 1 if is_used else 0
     prob_data = {
         "service_id": service.service_id,
         "scheme": data.get("scheme", probe.scheme),
         "path": data.get("path", probe.path),
         "port": data.get("port", probe.port),
         "cmd": data.get("cmd", probe.cmd),
         "http_header": data.get("http_header", probe.http_header),
         "initial_delay_second": data.get("initial_delay_second", probe.initial_delay_second),
         "period_second": data.get("period_second", probe.period_second),
         "timeout_second": data.get("timeout_second", probe.timeout_second),
         "failure_threshold": data.get("failure_threshold", probe.failure_threshold),
         "success_threshold": data.get("success_threshold", probe.success_threshold),
         "is_used": is_used,
         "probe_id": probe.probe_id,
         "mode": data["mode"]
     }
     console_probe = copy.deepcopy(prob_data)
     prob_data["enterprise_id"] = tenant.enterprise_id
     prob_data["operator"] = user_name
     if service.create_status == "complete":
         try:
             res, body = region_api.update_service_probec(service.service_region, tenant.tenant_name, service.service_alias,
                                                          prob_data)
             logger.debug("update probe action status {0}".format(res.status))
         except region_api.CallApiError as e:
             logger.debug(e)
             if e.message.get("httpcode") == 404:
                 probe.delete()
     console_probe.pop("probe_id")
     console_probe.pop("service_id")
     probe_repo.update_service_probeb(service_id=service.service_id, probe_id=probe.probe_id, **console_probe)
     new_probe = probe_repo.get_probe_by_probe_id(service.service_id, probe.probe_id)
     return new_probe
Exemplo n.º 3
0
 def update_service_probea(self, tenant, service, data):
     code, msg = self.__check_probe_data(data)
     if code != 200:
         return code, msg, None
     probes = probe_repo.get_service_probe(service.service_id)
     if not probes:
         return 404, u"应用未设置探针,无法进行修改操作", None
     probe = probes[0]
     # delete more probe without first, one service will have one probe
     if len(probes) > 1:
         for index in range(len(probes)):
             if index > 0:
                 self.delete_service_probe(tenant, service, probes[index].probe_id)
     if not probe:
         return 404, u"应用未设置探针,无法进行修改操作", None
     is_used = data.get("is_used", None)
     if is_used is None:
         is_used = probe.is_used
     else:
         is_used = 1 if is_used else 0
     prob_data = {
         "service_id": service.service_id,
         "scheme": data.get("scheme", probe.scheme),
         "path": data.get("path", probe.path),
         "port": data.get("port", probe.port),
         "cmd": data.get("cmd", probe.cmd),
         "http_header": data.get("http_header", probe.http_header),
         "initial_delay_second": data.get("initial_delay_second", probe.initial_delay_second),
         "period_second": data.get("period_second", probe.period_second),
         "timeout_second": data.get("timeout_second", probe.timeout_second),
         "failure_threshold": data.get("failure_threshold", probe.failure_threshold),
         "success_threshold": data.get("success_threshold", probe.success_threshold),
         "is_used": is_used,
         "probe_id": probe.probe_id,
         "mode": data["mode"]
     }
     console_probe = copy.deepcopy(prob_data)
     prob_data["enterprise_id"] = tenant.enterprise_id
     if service.create_status == "complete":
         res, body = region_api.update_service_probec(service.service_region, tenant.tenant_name, service.service_alias,
                                                      prob_data)
         logger.debug("update probe action status {0}".format(res.status))
     console_probe.pop("probe_id")
     console_probe.pop("service_id")
     probe_repo.update_service_probeb(service_id=service.service_id, probe_id=probe.probe_id, **console_probe)
     new_probe = probe_repo.get_probe_by_probe_id(service.service_id, probe.probe_id)
     return 200, "success", new_probe