예제 #1
0
 def delete(self):
     request_debug(r, logger)
     args = host_delete_parser.parse_args()
     host_id = args.get('host_id')
     # if "id" in r.form:
     #     host_id = r.form["id"]
     # elif "id" in request_data:
     #     host_id = request_data.get("id")
     # else:
     #     error_msg = "host delete without enough data"
     #     logger.warning(error_msg)
     #     return make_fail_resp(error=error_msg, data=r.form)
     if not host_id:
         error_msg = "缺少参数"
         logger.warning(error_msg)
         return make_fail_resp(error=error_msg)
     logger.debug("host delete with id={0}".format(host_id))
     try:
         host = HostModel.objects.get(id=host_id)
     except Exception:
         logger.warning("Cannot delete non-existed host")
         return make_fail_resp(error='无法删除不存在的主机')
     if ClusterModel.objects(host=host).count() > 0:
         return {'stat': 1000, 'msg': '主机存在已创建的区块链,无法删除'}
     if host_handler.delete(host):
         return make_ok_resp()
     else:
         error_msg = "Failed to delete host {}".format(host_id)
         logger.warning(error_msg)
         return make_fail_resp(error=error_msg)
예제 #2
0
파일: host_api.py 프로젝트: skbodwell/cello
def host_delete():
    request_debug(r, logger)
    if "id" not in r.form or not r.form["id"]:
        error_msg = "host delete without enough data"
        logger.warning(error_msg)
        return make_fail_response(error=error_msg, data=r.form)
    else:
        logger.debug("host delete with id={0}".format(r.form["id"]))
        if host_handler.delete(id=r.form["id"]):
            return make_ok_response()
        else:
            error_msg = "Failed to delete host {}".format(r.form["id"])
            logger.warning(error_msg)
            return make_fail_response(error=error_msg)
예제 #3
0
def host_delete():
    request_debug(r, logger)
    request_data = r.get_json(force=True, silent=True)
    if "id" in r.form:
        host_id = r.form["id"]
    elif "id" in request_data:
        host_id = request_data.get("id")
    else:
        error_msg = "host delete without enough data"
        logger.warning(error_msg)
        return make_fail_resp(error=error_msg, data=r.form)

    logger.debug("host delete with id={0}".format(host_id))
    if host_handler.delete(id=host_id):
        return make_ok_resp()
    else:
        error_msg = "Failed to delete host {}".format(host_id)
        logger.warning(error_msg)
        return make_fail_resp(error=error_msg)
예제 #4
0
파일: host_api.py 프로젝트: fabroux/cello
def host_delete():
    request_debug(r, logger)
    request_data = r.get_json(force=True, silent=True)
    if "id" in r.form:
        host_id = r.form["id"]
    elif "id" in request_data:
        host_id = request_data.get("id")
    else:
        error_msg = "host delete without enough data"
        logger.warning(error_msg)
        return make_fail_resp(error=error_msg, data=r.form)

    logger.debug("host delete with id={0}".format(host_id))
    if host_handler.delete(id=host_id):
        return make_ok_resp()
    else:
        error_msg = "Failed to delete host {}".format(host_id)
        logger.warning(error_msg)
        return make_fail_resp(error=error_msg)
예제 #5
0
파일: host.py 프로젝트: JasonZhouPW/cello
def host_api():
    request_debug(r, logger)
    if r.method == 'GET':
        if "id" not in r.args and "id" not in r.form:
            logger.warn("host get without enough data")
            response_fail["error"] = "host GET without enough data"
            response_fail["data"] = r.form
            return jsonify(response_fail), CODE_BAD_REQUEST
        else:
            host_id = request_get(r, "id")
            result = host_handler.get_by_id(host_id)
            if result:
                return jsonify(result), CODE_OK
            else:
                logger.warn("host not found with id=" + host_id)
                response_fail["data"] = r.form
                return jsonify(response_fail), CODE_BAD_REQUEST
    elif r.method == 'POST':
        name, daemon_url, capacity, log_type, log_server, log_level = \
            r.form['name'], r.form['daemon_url'], r.form['capacity'], \
            r.form['log_type'], r.form['log_server'], r.form['log_level']

        if "autofill" in r.form and r.form["autofill"] == "on":
            autofill = "true"
        else:
            autofill = "false"

        if "schedulable" in r.form and r.form["schedulable"] == "on":
            schedulable = "true"
        else:
            schedulable = "false"

        logger.debug("name={}, daemon_url={}, capacity={}"
                     "fillup={}, schedulable={}, log={}/{}".format(
                         name, daemon_url, capacity, autofill, schedulable,
                         log_type, log_server))
        if not name or not daemon_url or not capacity or not log_type:
            logger.warn("host post without enough data")
            response_fail["error"] = "host POST without enough data"
            response_fail["data"] = r.form
            return jsonify(response_fail), CODE_BAD_REQUEST
        else:
            result = host_handler.create(name=name,
                                         daemon_url=daemon_url,
                                         capacity=int(capacity),
                                         autofill=autofill,
                                         schedulable=schedulable,
                                         log_level=log_level,
                                         log_type=log_type,
                                         log_server=log_server)
            if result:
                logger.debug("host creation successfully")
                return jsonify(response_ok), CODE_CREATED
            else:
                logger.debug("host creation failed")
                response_fail["error"] = "Failed to create host {}".format(
                    r.form["name"])
                return jsonify(response_fail), CODE_BAD_REQUEST
    elif r.method == 'PUT':
        if "id" not in r.form:
            logger.warn("host put without enough data")
            response_fail["error"] = "host PUT without enough data"
            response_fail["data"] = r.form
            return jsonify(response_fail), CODE_BAD_REQUEST
        else:
            id, d = r.form["id"], {}
            for k in r.form:
                if k != "id":
                    d[k] = r.form.get(k)
            result = host_handler.update(id, d)
            if result:
                logger.debug("host PUT successfully")
                return jsonify(response_ok), CODE_OK
            else:
                logger.debug("host PUT failed")
                response_fail["error"] = "Failed to update host {}".format(
                    result.get("name"))
                return jsonify(response_fail), CODE_BAD_REQUEST
    elif r.method == 'DELETE':
        if "id" not in r.form or not r.form["id"]:
            logger.warn("host operation post without enough data")
            response_fail["error"] = "host delete without enough data"
            response_fail["data"] = r.form
            return jsonify(response_fail), CODE_BAD_REQUEST
        else:
            logger.debug("host delete with id={0}".format(r.form["id"]))
            if host_handler.delete(id=r.form["id"]):
                return jsonify(response_ok), CODE_OK
            else:
                response_fail["error"] = "Failed to delete host {}".format(
                    r.form["id"])
                return jsonify(response_fail), CODE_BAD_REQUEST
    else:
        response_fail["error"] = "unknown operation method"
        response_fail["data"] = r.form
        return jsonify(response_fail), CODE_BAD_REQUEST
예제 #6
0
def host_delete():
    request_debug(r, logger)
    request_data = r.get_json(force=True, silent=True)

    # add operating log
    cur_time = datetime.datetime.utcnow()
    opName = sys._getframe().f_code.co_name
    opObject = "Host"
    operator = "admin"
    opResult = {}
    op_log_handler = OperatorLogHandler()
    opDetails = {}

    if "id" in r.form:
        host_id = r.form["id"]
    elif "id" in request_data:
        host_id = request_data.get("id")
        opDetails['host_id'] = host_id

    else:
        error_msg = "host delete without enough data"
        logger.warning(error_msg)

        opResult['resDes'] = "ERROR"
        opResult['resCode'] = 404
        opResult['errorMsg'] = error_msg
        op_log_handler.create(opDate=cur_time,
                              opName=opName,
                              opObject=opObject,
                              opResult=opResult,
                              operator=operator)

        return make_fail_resp(error=error_msg, data=r.form, code=404)

    logger.debug("host delete with id={0}".format(host_id))
    if host_handler.delete(id=host_id):

        opResult['resDes'] = "OK"
        opResult['resCode'] = 200
        opResult['errorMsg'] = ''
        op_log_handler.create(opDate=cur_time,
                              opName=opName,
                              opObject=opObject,
                              opResult=opResult,
                              operator=operator,
                              opDetails=opDetails)

        return make_ok_resp()
    else:
        error_msg = "Failed to delete host {}".format(host_id)
        logger.warning(error_msg)

        opResult['resDes'] = "ERROR"
        opResult['resCode'] = 500
        opResult['errorMsg'] = error_msg
        op_log_handler.create(opDate=cur_time,
                              opName=opName,
                              opObject=opObject,
                              opResult=opResult,
                              operator=operator,
                              opDetails=opDetails)

        return make_fail_resp(error=error_msg, code=500)