示例#1
0
    def create_event(self, tenant, service, user, action, committer_name=None):
        last_event = event_repo.get_last_event(tenant.tenant_id,
                                               service.service_id)
        # 提前从数据中心更新event信息
        if last_event:
            self.__sync_region_service_event_status(service.service_region,
                                                    tenant.tenant_name,
                                                    [last_event],
                                                    timeout=True)
        old_deploy_version = ""
        if last_event:
            if last_event.final_status == "":
                if not self.checkEventTimeOut(last_event):
                    return 409, "操作太频繁,请等待上次操作完成", None
            old_deploy_version = last_event.deploy_version

        if not action:
            return 400, "操作类型参数不存在", None
        event_id = make_uuid()
        if committer_name:
            event_info = {
                "event_id": event_id,
                "service_id": service.service_id,
                "tenant_id": tenant.tenant_id,
                "type": action,
                "deploy_version": service.deploy_version,
                "old_deploy_version": old_deploy_version,
                "user_name": committer_name,
                "region": service.service_region,
                "start_time": datetime.datetime.now()
            }
        else:
            event_info = {
                "event_id": event_id,
                "service_id": service.service_id,
                "tenant_id": tenant.tenant_id,
                "type": action,
                "deploy_version": service.deploy_version,
                "old_deploy_version": old_deploy_version,
                "region": service.service_region,
                "user_name": user.nick_name,
                "start_time": datetime.datetime.now()
            }

        if action == "deploy":
            last_deploy_event = event_repo.get_last_deploy_event(
                tenant.tenant_id, service.service_id)
            if last_deploy_event:
                old_code_version = last_deploy_event.code_version
            else:
                old_code_version = service.deploy_version
            event_info.update({"old_code_version": old_code_version})

        new_event = event_repo.create_event(**event_info)
        return 200, "success", new_event
示例#2
0
 def __create_service_delete_event(self, tenant, service, user):
     if not user:
         return None
     try:
         event_info = {
             "event_id": make_uuid(),
             "service_id": service.service_id,
             "tenant_id": tenant.tenant_id,
             "type": "truncate",
             "deploy_version": service.deploy_version,
             "old_deploy_version": "",
             "user_name": user.nick_name,
             "start_time": datetime.datetime.now(),
             "message": service.service_cname,
             "final_status": "complete",
             "status": "success",
             "region": service.service_region
         }
         return event_repo.create_event(**event_info)
     except Exception as e:
         logger.exception(e)
         return None