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"
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
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