From 11c3ca418f8c37c69ed251b2c5a7811da50573a9 Mon Sep 17 00:00:00 2001 From: clime Date: Jul 24 2018 10:07:02 +0000 Subject: [PATCH 1/2] for server services, switch json and simplejson for faster ujson --- diff --git a/backend/backend/actions.py b/backend/backend/actions.py index c45d3f0..4fa6f66 100644 --- a/backend/backend/actions.py +++ b/backend/backend/actions.py @@ -1,4 +1,4 @@ -import json +import ujson as json import os import os.path import shutil diff --git a/backend/backend/ans_utils.py b/backend/backend/ans_utils.py index 50deecb..68d90b4 100644 --- a/backend/backend/ans_utils.py +++ b/backend/backend/ans_utils.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json import subprocess from subprocess import CalledProcessError diff --git a/backend/backend/daemons/log.py b/backend/backend/daemons/log.py index 4fd7cae..6d5f61b 100644 --- a/backend/backend/daemons/log.py +++ b/backend/backend/daemons/log.py @@ -1,6 +1,6 @@ # coding: utf-8 -import json +import ujson as json import logging import logging.handlers diff --git a/backend/backend/frontend.py b/backend/backend/frontend.py index 289bc99..6001759 100644 --- a/backend/backend/frontend.py +++ b/backend/backend/frontend.py @@ -1,4 +1,4 @@ -import json +import ujson as json import time from requests import post, RequestException diff --git a/backend/backend/helpers.py b/backend/backend/helpers.py index 655a6f4..6213658 100644 --- a/backend/backend/helpers.py +++ b/backend/backend/helpers.py @@ -1,4 +1,4 @@ -import json +import ujson as json import logging import logging.handlers import optparse diff --git a/backend/backend/msgbus.py b/backend/backend/msgbus.py index dd42f23..dc40af7 100644 --- a/backend/backend/msgbus.py +++ b/backend/backend/msgbus.py @@ -4,7 +4,7 @@ Message buses abstraction. import logging import copy -import json +import ujson as json from .constants import BuildStatus diff --git a/backend/backend/sign.py b/backend/backend/sign.py index 024d23b..71d03b5 100644 --- a/backend/backend/sign.py +++ b/backend/backend/sign.py @@ -5,7 +5,7 @@ Wrapper for /bin/sign from obs-sign package """ from subprocess import Popen, PIPE -import json +import ujson as json import os from requests import request diff --git a/backend/backend/vm_manage/check.py b/backend/backend/vm_manage/check.py index b484213..02caa57 100644 --- a/backend/backend/vm_manage/check.py +++ b/backend/backend/vm_manage/check.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json #from setproctitle import setproctitle # from multiprocessing import Process #from threading import Thread diff --git a/backend/backend/vm_manage/event_handle.py b/backend/backend/vm_manage/event_handle.py index cdbc3e9..966195f 100644 --- a/backend/backend/vm_manage/event_handle.py +++ b/backend/backend/vm_manage/event_handle.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json from multiprocessing import Process from threading import Thread import time diff --git a/backend/backend/vm_manage/manager.py b/backend/backend/vm_manage/manager.py index 42d78aa..c47f46c 100644 --- a/backend/backend/vm_manage/manager.py +++ b/backend/backend/vm_manage/manager.py @@ -1,6 +1,6 @@ # coding: utf-8 -import json +import ujson as json import time import weakref import datetime diff --git a/backend/backend/vm_manage/spawn.py b/backend/backend/vm_manage/spawn.py index 7d2b0b9..9f928e1 100644 --- a/backend/backend/vm_manage/spawn.py +++ b/backend/backend/vm_manage/spawn.py @@ -1,6 +1,6 @@ # coding: utf-8 -import json +import ujson as json import os import re import time diff --git a/backend/backend/vm_manage/terminate.py b/backend/backend/vm_manage/terminate.py index d2842b8..9716299 100644 --- a/backend/backend/vm_manage/terminate.py +++ b/backend/backend/vm_manage/terminate.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json import os import time from backend.ans_utils import ans_extra_vars_encode, run_ansible_playbook_cli diff --git a/backend/copr-backend.spec b/backend/copr-backend.spec index ce9ea1a..f3e8758 100644 --- a/backend/copr-backend.spec +++ b/backend/copr-backend.spec @@ -42,6 +42,7 @@ BuildRequires: python3-dateutil BuildRequires: python3-pytz BuildRequires: python3-sphinx BuildRequires: python3-fedmsg +BuildRequires: python3-ujson Requires: ansible Requires: obs-signd @@ -64,6 +65,7 @@ Requires: python3-netaddr Requires: python3-modulemd Requires: python3-configparser Requires: python3-fedmsg +Requires: python3-ujson Requires: redis Requires: logrotate Requires: gawk diff --git a/backend/run/copr_log_hitcounter.py b/backend/run/copr_log_hitcounter.py index 38525f2..fe3590c 100755 --- a/backend/run/copr_log_hitcounter.py +++ b/backend/run/copr_log_hitcounter.py @@ -8,7 +8,7 @@ import re import sys import requests -import json +import ujson as json import os import logging import argparse diff --git a/backend/tests/daemons/test_dispatcher.py b/backend/tests/daemons/test_dispatcher.py index 49b1464..6c29347 100644 --- a/backend/tests/daemons/test_dispatcher.py +++ b/backend/tests/daemons/test_dispatcher.py @@ -1,4 +1,4 @@ -import json +import ujson as json import multiprocessing import os import pprint diff --git a/backend/tests/daemons/test_job_grab.py b/backend/tests/daemons/test_job_grab.py index cd01b64..51e1a07 100644 --- a/backend/tests/daemons/test_job_grab.py +++ b/backend/tests/daemons/test_job_grab.py @@ -1,7 +1,7 @@ # coding: utf-8 import copy -import json +import ujson as json import logging from munch import Munch diff --git a/backend/tests/daemons/test_vm_master.py b/backend/tests/daemons/test_vm_master.py index aad8703..3d99d0e 100644 --- a/backend/tests/daemons/test_vm_master.py +++ b/backend/tests/daemons/test_vm_master.py @@ -3,7 +3,7 @@ import copy from collections import defaultdict -import json +import ujson as json from random import choice import types from munch import Munch diff --git a/backend/tests/test_action.py b/backend/tests/test_action.py index 687aae5..e8cff73 100644 --- a/backend/tests/test_action.py +++ b/backend/tests/test_action.py @@ -1,5 +1,5 @@ import os -import json +import ujson as json import tempfile import shutil import time diff --git a/backend/tests/vm_manager/test_check.py b/backend/tests/vm_manager/test_check.py index 8039bb2..94ddd71 100644 --- a/backend/tests/vm_manager/test_check.py +++ b/backend/tests/vm_manager/test_check.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json import shutil from subprocess import CalledProcessError import tempfile diff --git a/backend/tests/vm_manager/test_event_handle.py b/backend/tests/vm_manager/test_event_handle.py index 41344cc..091bffa 100644 --- a/backend/tests/vm_manager/test_event_handle.py +++ b/backend/tests/vm_manager/test_event_handle.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json import shutil import tempfile import time diff --git a/backend/tests/vm_manager/test_manager.py b/backend/tests/vm_manager/test_manager.py index a5213a5..a116501 100644 --- a/backend/tests/vm_manager/test_manager.py +++ b/backend/tests/vm_manager/test_manager.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json import random import types diff --git a/dist-git/copr-dist-git.spec b/dist-git/copr-dist-git.spec index 2f42f03..23330e8 100644 --- a/dist-git/copr-dist-git.spec +++ b/dist-git/copr-dist-git.spec @@ -20,6 +20,7 @@ BuildRequires: python3-requests BuildRequires: python3-rpkg BuildRequires: python3-pytest BuildRequires: python3-pytest-cov +BuildRequires: python3-ujson Requires: systemd Requires: httpd @@ -27,6 +28,7 @@ Requires: dist-git Requires: python3-requests Requires: python3-rpkg Requires: python3-munch +Requires: python3-ujson %{?fedora:Requires(post): policycoreutils-python-utils} %{?rhel:Requires(post): policycoreutils-python} diff --git a/dist-git/dist_git/import_task.py b/dist-git/dist_git/import_task.py index 606c037..0a754cc 100644 --- a/dist-git/dist_git/import_task.py +++ b/dist-git/dist_git/import_task.py @@ -1,6 +1,6 @@ # coding: utf-8 -import json +import ujson as json from .exceptions import PackageImportException diff --git a/dist-git/dist_git/importer.py b/dist-git/dist_git/importer.py index 524ec8f..745a17b 100644 --- a/dist-git/dist_git/importer.py +++ b/dist-git/dist_git/importer.py @@ -1,5 +1,5 @@ import os -import json +import ujson as json import time import logging import tempfile diff --git a/dist-git/tests/base.py b/dist-git/tests/base.py index 21bf4bc..0776c2c 100644 --- a/dist-git/tests/base.py +++ b/dist-git/tests/base.py @@ -3,7 +3,7 @@ import shutil import tempfile import munch import time -import json +import ujson as json from dist_git import importer from dist_git import import_task diff --git a/dist-git/tests/test_importer.py b/dist-git/tests/test_importer.py index 5c2526d..ac33710 100644 --- a/dist-git/tests/test_importer.py +++ b/dist-git/tests/test_importer.py @@ -1,6 +1,6 @@ # coding: utf-8 -import json +import ujson as json import os import copy diff --git a/frontend/copr-frontend.spec b/frontend/copr-frontend.spec index d24bc8d..87cb94a 100644 --- a/frontend/copr-frontend.spec +++ b/frontend/copr-frontend.spec @@ -95,7 +95,7 @@ BuildRequires: python3-CommonMark BuildRequires: python3-pygments BuildRequires: python3-flask-whooshee BuildRequires: python3-modulemd -BuildRequires: python3-simplejson +BuildRequires: python3-ujson BuildRequires: redis %endif @@ -131,7 +131,7 @@ Requires: python3-pygments Requires: python3-CommonMark Requires: python3-psycopg2 Requires: python3-zmq -Requires: python3-simplejson +Requires: python3-ujson Requires: xstatic-patternfly-common Requires: js-jquery1 Requires: xstatic-jquery-ui-common diff --git a/frontend/coprs_frontend/alembic/schema/versions/3fdedd58ac73_add_module_table.py b/frontend/coprs_frontend/alembic/schema/versions/3fdedd58ac73_add_module_table.py index 31027be..40e60d5 100644 --- a/frontend/coprs_frontend/alembic/schema/versions/3fdedd58ac73_add_module_table.py +++ b/frontend/coprs_frontend/alembic/schema/versions/3fdedd58ac73_add_module_table.py @@ -16,7 +16,7 @@ import sqlalchemy as sa from coprs.models import Module, Action, Copr, User, Group from sqlalchemy.orm import sessionmaker -import json +import ujson as json import base64 import modulemd import yaml diff --git a/frontend/coprs_frontend/alembic/schema/versions/512ff2b9eb6c_unify_scm_source_types_for_packages.py b/frontend/coprs_frontend/alembic/schema/versions/512ff2b9eb6c_unify_scm_source_types_for_packages.py index 82660ed..ec716e7 100644 --- a/frontend/coprs_frontend/alembic/schema/versions/512ff2b9eb6c_unify_scm_source_types_for_packages.py +++ b/frontend/coprs_frontend/alembic/schema/versions/512ff2b9eb6c_unify_scm_source_types_for_packages.py @@ -12,7 +12,7 @@ down_revision = 'a8654abcec65' from alembic import op import sqlalchemy as sa -import json +import ujson as json from coprs import models diff --git a/frontend/coprs_frontend/alembic/schema/versions/552455e5910e_new_table_packages.py b/frontend/coprs_frontend/alembic/schema/versions/552455e5910e_new_table_packages.py index cb7205b..8ad74ce 100644 --- a/frontend/coprs_frontend/alembic/schema/versions/552455e5910e_new_table_packages.py +++ b/frontend/coprs_frontend/alembic/schema/versions/552455e5910e_new_table_packages.py @@ -15,7 +15,7 @@ import sqlalchemy as sa from sqlalchemy import and_ from coprs.helpers import splitFilename import os -import json +import ujson as json def parse_package_name(pkg): if pkg.count(".") >= 3 and pkg.count("-") >= 2: diff --git a/frontend/coprs_frontend/alembic/schema/versions/a8654abcec65_unify_scm_source_types.py b/frontend/coprs_frontend/alembic/schema/versions/a8654abcec65_unify_scm_source_types.py index 4402de9..3f90b45 100644 --- a/frontend/coprs_frontend/alembic/schema/versions/a8654abcec65_unify_scm_source_types.py +++ b/frontend/coprs_frontend/alembic/schema/versions/a8654abcec65_unify_scm_source_types.py @@ -12,7 +12,7 @@ down_revision = 'fdec9947f8a1' from alembic import op import sqlalchemy as sa -import json +import ujson as json from coprs import models, db diff --git a/frontend/coprs_frontend/coprs/forms.py b/frontend/coprs_frontend/coprs/forms.py index 7c43028..a659fc2 100644 --- a/frontend/coprs_frontend/coprs/forms.py +++ b/frontend/coprs_frontend/coprs/forms.py @@ -3,7 +3,7 @@ from six.moves.urllib.parse import urlparse import flask import wtforms -import json +import ujson as json from flask_wtf.file import FileAllowed, FileRequired, FileField diff --git a/frontend/coprs_frontend/coprs/helpers.py b/frontend/coprs_frontend/coprs/helpers.py index 8c88f23..3c21073 100644 --- a/frontend/coprs_frontend/coprs/helpers.py +++ b/frontend/coprs_frontend/coprs/helpers.py @@ -14,7 +14,7 @@ from dateutil import parser as dt_parser from netaddr import IPAddress, IPNetwork from redis import StrictRedis from sqlalchemy.types import TypeDecorator, VARCHAR -import json +import ujson as json from coprs import constants from coprs import app @@ -154,8 +154,8 @@ class JSONEncodedDict(TypeDecorator): value = json.loads(value) return value -class Paginator(object): +class Paginator(object): def __init__(self, query, total_count, page=1, per_page_override=None, urls_count_override=None, additional_params=None): @@ -209,6 +209,10 @@ class Paginator(object): return flask.url_for(request.endpoint, **args) +def jsonify(data): + return flask.Response(json.dumps(data), content_type='application/json') + + def chroot_to_branch(chroot): """ Get a git branch name from chroot. Follow the fedora naming standard. diff --git a/frontend/coprs_frontend/coprs/logic/actions_logic.py b/frontend/coprs_frontend/coprs/logic/actions_logic.py index 0e302b5..071d4ad 100644 --- a/frontend/coprs_frontend/coprs/logic/actions_logic.py +++ b/frontend/coprs_frontend/coprs/logic/actions_logic.py @@ -1,4 +1,4 @@ -import json +import ujson as json import time import base64 import os diff --git a/frontend/coprs_frontend/coprs/logic/backend_logic.py b/frontend/coprs_frontend/coprs/logic/backend_logic.py index 972cd26..61f7c14 100644 --- a/frontend/coprs_frontend/coprs/logic/backend_logic.py +++ b/frontend/coprs_frontend/coprs/logic/backend_logic.py @@ -1,6 +1,6 @@ # coding: utf-8 -import json +import ujson as json from sqlalchemy import or_ from sqlalchemy import and_ from sqlalchemy.sql import false diff --git a/frontend/coprs_frontend/coprs/logic/builds_logic.py b/frontend/coprs_frontend/coprs/logic/builds_logic.py index 46f4f21..87450ca 100644 --- a/frontend/coprs_frontend/coprs/logic/builds_logic.py +++ b/frontend/coprs_frontend/coprs/logic/builds_logic.py @@ -1,6 +1,6 @@ import tempfile import shutil -import json +import ujson as json import os import pprint import time diff --git a/frontend/coprs_frontend/coprs/logic/modules_logic.py b/frontend/coprs_frontend/coprs/logic/modules_logic.py index a060d5a..ecf092d 100644 --- a/frontend/coprs_frontend/coprs/logic/modules_logic.py +++ b/frontend/coprs_frontend/coprs/logic/modules_logic.py @@ -1,7 +1,7 @@ import os import time import base64 -import json +import ujson as json import requests import modulemd from collections import defaultdict diff --git a/frontend/coprs_frontend/coprs/logic/packages_logic.py b/frontend/coprs_frontend/coprs/logic/packages_logic.py index 5602d8d..85403c2 100644 --- a/frontend/coprs_frontend/coprs/logic/packages_logic.py +++ b/frontend/coprs_frontend/coprs/logic/packages_logic.py @@ -1,4 +1,4 @@ -import json +import ujson as json import time import re diff --git a/frontend/coprs_frontend/coprs/logic/stat_logic.py b/frontend/coprs_frontend/coprs/logic/stat_logic.py index 74512fb..a1fc5bf 100644 --- a/frontend/coprs_frontend/coprs/logic/stat_logic.py +++ b/frontend/coprs_frontend/coprs/logic/stat_logic.py @@ -1,5 +1,5 @@ import time -import json +import ujson as json from collections import defaultdict diff --git a/frontend/coprs_frontend/coprs/logic/users_logic.py b/frontend/coprs_frontend/coprs/logic/users_logic.py index 7c78fdf..fbaf896 100644 --- a/frontend/coprs_frontend/coprs/logic/users_logic.py +++ b/frontend/coprs_frontend/coprs/logic/users_logic.py @@ -1,5 +1,4 @@ -import json -import simplejson +import ujson as json from coprs import exceptions from flask import url_for @@ -130,7 +129,7 @@ class UserDataDumper(object): def dumps(self, pretty=False): if pretty: - return simplejson.dumps(self.data, indent=2) + return json.dumps(self.data, indent=2) return json.dumps(self.data) @property diff --git a/frontend/coprs_frontend/coprs/models.py b/frontend/coprs_frontend/coprs/models.py index e53fb65..93e554d 100644 --- a/frontend/coprs_frontend/coprs/models.py +++ b/frontend/coprs_frontend/coprs/models.py @@ -2,7 +2,7 @@ import copy import datetime import os import flask -import json +import ujson as json import base64 import modulemd diff --git a/frontend/coprs_frontend/coprs/rest_api/__init__.py b/frontend/coprs_frontend/coprs/rest_api/__init__.py index d1e8337..25a7e55 100644 --- a/frontend/coprs_frontend/coprs/rest_api/__init__.py +++ b/frontend/coprs_frontend/coprs/rest_api/__init__.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json from flask import Response, url_for, Blueprint, make_response from flask_restful import Resource, Api diff --git a/frontend/coprs_frontend/coprs/rest_api/util.py b/frontend/coprs_frontend/coprs/rest_api/util.py index ef5a3e7..547c704 100644 --- a/frontend/coprs_frontend/coprs/rest_api/util.py +++ b/frontend/coprs_frontend/coprs/rest_api/util.py @@ -1,5 +1,5 @@ # coding: utf-8 -import json +import ujson as json from flask import Response, url_for, Blueprint import sqlalchemy.orm.exc diff --git a/frontend/coprs_frontend/coprs/views/api_ns/__init__.py b/frontend/coprs_frontend/coprs/views/api_ns/__init__.py index 80e7f33..73b682e 100644 --- a/frontend/coprs_frontend/coprs/views/api_ns/__init__.py +++ b/frontend/coprs_frontend/coprs/views/api_ns/__init__.py @@ -1,4 +1,4 @@ -import json +import ujson as json import flask from flask import make_response diff --git a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py index d4227a1..d879171 100755 --- a/frontend/coprs_frontend/coprs/views/api_ns/api_general.py +++ b/frontend/coprs_frontend/coprs/views/api_ns/api_general.py @@ -4,7 +4,7 @@ from functools import wraps import os import flask import sqlalchemy -import json +import ujson as json import requests from requests.exceptions import RequestException, InvalidSchema from wtforms import ValidationError @@ -109,7 +109,7 @@ def api_status(): "waiting": builds_logic.BuildsLogic.get_build_tasks(helpers.StatusEnum("pending")).count(), # change to "pending"" "running": builds_logic.BuildsLogic.get_build_tasks(helpers.StatusEnum("running")).count(), } - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs//new/", methods=["POST"]) @@ -193,7 +193,7 @@ def api_new_copr(username): errormsg = errormsg.replace('"', "'") raise LegacyApiError(errormsg) - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs///delete/", methods=["POST"]) @@ -220,7 +220,7 @@ def api_copr_delete(copr): else: raise LegacyApiError("Invalid request: {0}".format(form.errors)) - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs///fork/", methods=["POST"]) @@ -259,7 +259,7 @@ def api_copr_fork(copr): else: raise LegacyApiError("Invalid request: {0}".format(form.errors)) - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs/") @@ -310,7 +310,7 @@ def api_coprs_by_owner(username=None): "auto_prune": repo.auto_prune, }) - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs///detail/") @@ -348,14 +348,14 @@ def api_coprs_by_owner_detail(copr): "auto_prune": copr.auto_prune, "use_bootstrap_container": copr.use_bootstrap_container, } - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/auth_check/", methods=["POST"]) @api_login_required def api_auth_check(): output = {"output": "ok"} - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs///new_build/", methods=["POST"]) @@ -577,7 +577,7 @@ def process_creating_new_build(copr, form, create_new_build): "ids": ids, "message": "\n".join(infos)} - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs/build_status//", methods=["GET"]) @@ -585,7 +585,7 @@ def build_status(build_id): build = ComplexLogic.get_build_safe(build_id) output = {"output": "ok", "status": build.state} - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs/build_detail//", methods=["GET"]) @@ -619,7 +619,7 @@ def build_detail(build_id): "submitted_by": build.user.name if build.user else None, # there is no user for webhook builds "results_by_chroot": results_by_chroot } - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs/cancel_build//", methods=["POST"]) @@ -634,7 +634,7 @@ def cancel_build(build_id): raise LegacyApiError("Invalid request: {}".format(e)) output = {'output': 'ok', 'status': "Build canceled"} - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs/delete_build//", methods=["POST"]) @@ -649,7 +649,7 @@ def delete_build(build_id): raise LegacyApiError("Invalid request: {}".format(e)) output = {'output': 'ok', 'status': "Build deleted"} - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route('/coprs///modify/', methods=["POST"]) @@ -703,7 +703,7 @@ def copr_modify(copr): 'chroots': [c.name for c in copr.mock_chroots], } - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route('/coprs///modify//', methods=["POST"]) @@ -722,7 +722,7 @@ def copr_modify_chroot(copr, chrootname): db.session.commit() output = {'output': 'ok', 'buildroot_pkgs': chroot.buildroot_pkgs} - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route('/coprs///chroot/edit//', methods=["POST"]) @@ -754,7 +754,7 @@ def copr_edit_chroot(copr, chrootname): "message": "Edit chroot operation was successful.", "chroot": chroot.to_dict(), } - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route('/coprs///detail//', methods=["GET"]) @@ -763,14 +763,14 @@ def copr_chroot_details(copr, chrootname): """Deprecated to copr_get_chroot""" chroot = ComplexLogic.get_copr_chroot_safe(copr, chrootname) output = {'output': 'ok', 'buildroot_pkgs': chroot.buildroot_pkgs} - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route('/coprs///chroot/get//', methods=["GET"]) @api_req_with_copr def copr_get_chroot(copr, chrootname): chroot = ComplexLogic.get_copr_chroot_safe(copr, chrootname) output = {'output': 'ok', 'chroot': chroot.to_dict()} - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/coprs/search/") @api_ns.route("/coprs/search//") @@ -798,7 +798,7 @@ def api_coprs_search_by_project(project=None): except ValueError as e: raise LegacyApiError("Server error: {}".format(e)) - return flask.jsonify(output) + return helpers.jsonify(output) @api_ns.route("/playground/list/") @@ -812,7 +812,7 @@ def playground_list(): "coprname": repo.name, "chroots": [chroot.name for chroot in repo.active_chroots]}) - jsonout = flask.jsonify(output) + jsonout = helpers.jsonify(output) jsonout.status_code = 200 return jsonout @@ -822,7 +822,7 @@ def playground_list(): def monitor(copr): monitor_data = builds_logic.BuildsMonitorLogic.get_monitor_data(copr) output = MonitorWrapper(copr, monitor_data).to_dict() - return flask.jsonify(output) + return helpers.jsonify(output) ############################################################################### @@ -874,7 +874,7 @@ def process_package_add_or_edit(copr, source_type_text, package=None): else: raise LegacyApiError(form.errors) - return flask.jsonify({ + return helpers.jsonify({ "output": "ok", "message": "Create or edit operation was successful.", "package": package.to_dict(), @@ -921,7 +921,7 @@ def copr_list_packages(copr): packages = PackagesLogic.get_all(copr.id) params = get_package_record_params() return flask.Response(generate_package_list(packages, params), content_type='application/json') - #return flask.jsonify({"packages": [package.to_dict(**params) for package in packages]}) + #return helpers.jsonify({"packages": [package.to_dict(**params) for package in packages]}) @api_ns.route("/coprs///package/get//", methods=["GET"]) @@ -933,7 +933,7 @@ def copr_get_package(copr, package_name): raise LegacyApiError("No package with name {name} in copr {copr}".format(name=package_name, copr=copr.name)) params = get_package_record_params() - return flask.jsonify({'package': package.to_dict(**params)}) + return helpers.jsonify({'package': package.to_dict(**params)}) @api_ns.route("/coprs///package/delete//", methods=["POST"]) @@ -951,7 +951,7 @@ def copr_delete_package(copr, package_name): except (InsufficientRightsException, ActionInProgressException) as e: raise LegacyApiError(str(e)) - return flask.jsonify({ + return helpers.jsonify({ "output": "ok", "message": "Package was successfully deleted.", 'package': package.to_dict(), @@ -973,7 +973,7 @@ def copr_reset_package(copr, package_name): except InsufficientRightsException as e: raise LegacyApiError(str(e)) - return flask.jsonify({ + return helpers.jsonify({ "output": "ok", "message": "Package's default source was successfully reseted.", 'package': package.to_dict(), @@ -1000,7 +1000,7 @@ def copr_build_package(copr, package_name): else: raise LegacyApiError(form.errors) - return flask.jsonify({ + return helpers.jsonify({ "output": "ok", "ids": [build.id], "message": "Build was added to {0}.".format(copr.name) @@ -1022,7 +1022,7 @@ def copr_build_module(copr): module = facade.submit_build() db.session.commit() - return flask.jsonify({ + return helpers.jsonify({ "output": "ok", "message": "Created module {}".format(module.nsv), }) @@ -1050,4 +1050,4 @@ def copr_build_config(copr, chroot): if not output['build_config']: raise LegacyApiError('Chroot not found.') - return flask.jsonify(output) + return helpers.jsonify(output) diff --git a/frontend/coprs_frontend/coprs/views/backend_ns/backend_general.py b/frontend/coprs_frontend/coprs/views/backend_ns/backend_general.py index edccd28..6270544 100644 --- a/frontend/coprs_frontend/coprs/views/backend_ns/backend_general.py +++ b/frontend/coprs_frontend/coprs/views/backend_ns/backend_general.py @@ -17,7 +17,7 @@ from coprs.views import misc from coprs.views.backend_ns import backend_ns from sqlalchemy.sql import false, true -import json +import ujson as json import urllib import logging @@ -48,7 +48,7 @@ def dist_git_importing_queue(): "srpm_url": build.srpm_url, }) - return flask.jsonify(tasks) + return helpers.jsonify(tasks) @backend_ns.route("/import-completed/", methods=["POST", "PUT"]) @@ -62,7 +62,7 @@ def dist_git_upload_completed(): try: build = ComplexLogic.get_build_safe(build_id) except ObjectNotFound: - return flask.jsonify({"updated": False}) + return helpers.jsonify({"updated": False}) collected_branch_chroots = [] for branch, git_hash in flask.request.json.get("branch_commits", {}).items(): @@ -98,7 +98,7 @@ def dist_git_upload_completed(): db.session.commit() BuildsLogic.delete_local_source(build) - return flask.jsonify({"updated": True}) + return helpers.jsonify({"updated": True}) def get_build_record(task): @@ -178,7 +178,7 @@ def pending_action(): action_record = action.to_dict(options={ "__columns_except__": ["result", "message", "ended_on"] }) - return flask.jsonify(action_record) + return helpers.jsonify(action_record) @backend_ns.route("/pending-jobs/") @@ -189,7 +189,7 @@ def pending_jobs(): build_records = ([get_build_record(task) for task in BuildsLogic.get_pending_build_tasks()] + [get_srpm_build_record(task) for task in BuildsLogic.get_pending_srpm_build_tasks()]) log.info('Selected build records: {}'.format(build_records)) - return flask.jsonify(build_records) + return helpers.jsonify(build_records) @backend_ns.route("/get-build-task/") @@ -197,15 +197,15 @@ def get_build_task(task_id): try: task = BuildsLogic.get_build_task(task_id) except exceptions.MalformedArgumentException: - jsonout = flask.jsonify({'msg': 'Invalid task ID'}) + jsonout = helpers.jsonify({'msg': 'Invalid task ID'}) jsonout.status_code = 500 return jsonout except sqlalchemy.orm.exc.NoResultFound: - jsonout = flask.jsonify({'msg': 'Specified task ID not found'}) + jsonout = helpers.jsonify({'msg': 'Specified task ID not found'}) jsonout.status_code = 404 return jsonout build_record = get_build_record(task) - return flask.jsonify(build_record) + return helpers.jsonify(build_record) @backend_ns.route("/get-srpm-build-task/") @@ -213,11 +213,11 @@ def get_srpm_build_task(build_id): try: task = BuildsLogic.get_srpm_build_task(build_id) except sqlalchemy.orm.exc.NoResultFound: - jsonout = flask.jsonify({'msg': 'Specified task ID not found'}) + jsonout = helpers.jsonify({'msg': 'Specified task ID not found'}) jsonout.status_code = 404 return jsonout build_record = get_srpm_build_record(task) - return flask.jsonify(build_record) + return helpers.jsonify(build_record) @backend_ns.route("/update/", methods=["POST", "PUT"]) @@ -249,7 +249,7 @@ def update(): result.update({"updated_{0}_ids".format(typ): list(existing.keys()), "non_existing_{0}_ids".format(typ): non_existing_ids}) - return flask.jsonify(result) + return helpers.jsonify(result) @backend_ns.route("/starting_build/", methods=["POST", "PUT"]) @@ -263,14 +263,14 @@ def starting_build(): try: build = ComplexLogic.get_build_safe(data.get('build_id')) except ObjectNotFound: - return flask.jsonify({"can_start": False}) + return helpers.jsonify({"can_start": False}) if build.canceled: - return flask.jsonify({"can_start": False}) + return helpers.jsonify({"can_start": False}) BuildsLogic.update_state_from_dict(build, data) db.session.commit() - return flask.jsonify({"can_start": True}) + return helpers.jsonify({"can_start": True}) @backend_ns.route("/reschedule_all_running/", methods=["POST", "PUT"]) @@ -310,12 +310,12 @@ def reschedule_build_chroot(): except ObjectNotFound: response["result"] = "noop" response["msg"] = "Build {} wasn't found".format(build_id) - return flask.jsonify(response) + return helpers.jsonify(response) if build.canceled: response["result"] = "noop" response["msg"] = "build was cancelled, ignoring" - return flask.jsonify(response) + return helpers.jsonify(response) run_statuses = set([StatusEnum("starting"), StatusEnum("running")]) @@ -346,4 +346,4 @@ def reschedule_build_chroot(): response["result"] = "noop" response["msg"] = "build chroot is not in running states, ignoring" - return flask.jsonify(response) + return helpers.jsonify(response) diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_packages.py b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_packages.py index b7c08a0..d274f51 100644 --- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_packages.py +++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_packages.py @@ -1,5 +1,5 @@ import flask -import json +import ujson as json from flask import Response, stream_with_context, url_for from flask import send_file diff --git a/frontend/coprs_frontend/coprs/views/misc.py b/frontend/coprs_frontend/coprs/views/misc.py index 6505b7d..82340eb 100644 --- a/frontend/coprs_frontend/coprs/views/misc.py +++ b/frontend/coprs_frontend/coprs/views/misc.py @@ -282,7 +282,7 @@ def api_login_required(f): "output": "notok", "error": "Login invalid/expired. Please visit {0}/api to get or renew your API token.".format(url), } - jsonout = flask.jsonify(output) + jsonout = helpers.jsonify(output) jsonout.status_code = 500 return jsonout return f(*args, **kwargs) diff --git a/frontend/coprs_frontend/coprs/views/stats_ns/stats_receiver.py b/frontend/coprs_frontend/coprs/views/stats_ns/stats_receiver.py index 85dfa9b..dcfb091 100644 --- a/frontend/coprs_frontend/coprs/views/stats_ns/stats_receiver.py +++ b/frontend/coprs_frontend/coprs/views/stats_ns/stats_receiver.py @@ -1,7 +1,7 @@ # coding: utf-8 import flask -import json +import ujson as json from coprs import rcp from coprs import app from coprs import db diff --git a/frontend/coprs_frontend/run/build_on_pagure_commit.py b/frontend/coprs_frontend/run/build_on_pagure_commit.py index 39b991e..f01c6ad 100755 --- a/frontend/coprs_frontend/run/build_on_pagure_commit.py +++ b/frontend/coprs_frontend/run/build_on_pagure_commit.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import json +import ujson as json import pprint import zmq import sys diff --git a/frontend/coprs_frontend/run/check_for_anitya_version_updates.py b/frontend/coprs_frontend/run/check_for_anitya_version_updates.py index 5f310e2..bef18a5 100755 --- a/frontend/coprs_frontend/run/check_for_anitya_version_updates.py +++ b/frontend/coprs_frontend/run/check_for_anitya_version_updates.py @@ -4,7 +4,7 @@ import subprocess import argparse import sys import os -import json +import ujson as json import time import re import logging diff --git a/frontend/coprs_frontend/run/pagure-ci.py b/frontend/coprs_frontend/run/pagure-ci.py index d55b5f2..a8fbe45 100755 --- a/frontend/coprs_frontend/run/pagure-ci.py +++ b/frontend/coprs_frontend/run/pagure-ci.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import json +import ujson as json import zmq import sys import os diff --git a/frontend/coprs_frontend/run/src-fp-stg-ci.py b/frontend/coprs_frontend/run/src-fp-stg-ci.py index 51afea3..c77129b 100755 --- a/frontend/coprs_frontend/run/src-fp-stg-ci.py +++ b/frontend/coprs_frontend/run/src-fp-stg-ci.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import json +import ujson as json import zmq import sys import os diff --git a/frontend/coprs_frontend/tests/coprs_test_case.py b/frontend/coprs_frontend/tests/coprs_test_case.py index dc525cb..3a77b49 100644 --- a/frontend/coprs_frontend/tests/coprs_test_case.py +++ b/frontend/coprs_frontend/tests/coprs_test_case.py @@ -1,6 +1,6 @@ import base64 from collections import defaultdict -import json +import ujson as json import os import time import glob diff --git a/frontend/coprs_frontend/tests/test_api/test_build_r.py b/frontend/coprs_frontend/tests/test_api/test_build_r.py index e2f3dbb..1e9ab05 100644 --- a/frontend/coprs_frontend/tests/test_api/test_build_r.py +++ b/frontend/coprs_frontend/tests/test_api/test_build_r.py @@ -1,6 +1,6 @@ # coding: utf-8 from io import BytesIO -import json +import ujson as json import math import random from marshmallow import pprint diff --git a/frontend/coprs_frontend/tests/test_api/test_build_task_r.py b/frontend/coprs_frontend/tests/test_api/test_build_task_r.py index 192574b..61d2a24 100644 --- a/frontend/coprs_frontend/tests/test_api/test_build_task_r.py +++ b/frontend/coprs_frontend/tests/test_api/test_build_task_r.py @@ -1,7 +1,7 @@ # coding: utf-8 import copy -import json +import ujson as json from marshmallow import pprint from six.moves.urllib.parse import urlparse, parse_qs diff --git a/frontend/coprs_frontend/tests/test_api/test_mock_chroot_r.py b/frontend/coprs_frontend/tests/test_api/test_mock_chroot_r.py index 16d6c3f..4f7f3d4 100644 --- a/frontend/coprs_frontend/tests/test_api/test_mock_chroot_r.py +++ b/frontend/coprs_frontend/tests/test_api/test_mock_chroot_r.py @@ -1,6 +1,6 @@ # coding: utf-8 -import json +import ujson as json from marshmallow import pprint import pytest diff --git a/frontend/coprs_frontend/tests/test_api/test_project_chroot_r.py b/frontend/coprs_frontend/tests/test_api/test_project_chroot_r.py index f18db77..7251a77 100644 --- a/frontend/coprs_frontend/tests/test_api/test_project_chroot_r.py +++ b/frontend/coprs_frontend/tests/test_api/test_project_chroot_r.py @@ -2,7 +2,7 @@ import base64 import copy -import json +import ujson as json import pytest import sqlalchemy diff --git a/frontend/coprs_frontend/tests/test_api/test_project_r.py b/frontend/coprs_frontend/tests/test_api/test_project_r.py index b88af46..fb0d685 100644 --- a/frontend/coprs_frontend/tests/test_api/test_project_r.py +++ b/frontend/coprs_frontend/tests/test_api/test_project_r.py @@ -2,7 +2,7 @@ import base64 import copy -import json +import ujson as json from marshmallow import pprint from flask_whooshee import Whooshee diff --git a/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py b/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py index abf35d6..fbb4d4c 100644 --- a/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py +++ b/frontend/coprs_frontend/tests/test_logic/test_builds_logic.py @@ -1,5 +1,5 @@ # -*- encoding: utf-8 -*- -import json +import ujson as json import pytest import time diff --git a/frontend/coprs_frontend/tests/test_logic/test_complex_logic.py b/frontend/coprs_frontend/tests/test_logic/test_complex_logic.py index d73f7cd..aa35668 100644 --- a/frontend/coprs_frontend/tests/test_logic/test_complex_logic.py +++ b/frontend/coprs_frontend/tests/test_logic/test_complex_logic.py @@ -1,4 +1,4 @@ -import json +import ujson as json from unittest import mock from coprs.helpers import ActionTypeEnum diff --git a/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py b/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py index 9056e49..1caa63b 100644 --- a/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py +++ b/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py @@ -1,4 +1,4 @@ -import json +import ujson as json import pytest import subprocess diff --git a/frontend/coprs_frontend/tests/test_logic/test_users_logic.py b/frontend/coprs_frontend/tests/test_logic/test_users_logic.py index 4308714..c8658a5 100644 --- a/frontend/coprs_frontend/tests/test_logic/test_users_logic.py +++ b/frontend/coprs_frontend/tests/test_logic/test_users_logic.py @@ -1,5 +1,5 @@ import flask -import json +import ujson as json from coprs import app from coprs.logic.users_logic import UsersLogic, UserDataDumper from tests.coprs_test_case import CoprsTestCase diff --git a/frontend/coprs_frontend/tests/test_views/test_api_ns/test_api_general.py b/frontend/coprs_frontend/tests/test_views/test_api_ns/test_api_general.py index 2b0e436..e4c1a8b 100644 --- a/frontend/coprs_frontend/tests/test_views/test_api_ns/test_api_general.py +++ b/frontend/coprs_frontend/tests/test_views/test_api_ns/test_api_general.py @@ -1,5 +1,5 @@ import base64 -import json +import ujson as json import pytest import sqlalchemy diff --git a/frontend/coprs_frontend/tests/test_views/test_backend_ns/test_backend_general.py b/frontend/coprs_frontend/tests/test_views/test_backend_ns/test_backend_general.py index 69aa6c5..9719e88 100644 --- a/frontend/coprs_frontend/tests/test_views/test_backend_ns/test_backend_general.py +++ b/frontend/coprs_frontend/tests/test_views/test_backend_ns/test_backend_general.py @@ -1,4 +1,4 @@ -import json +import ujson as json from tests.coprs_test_case import CoprsTestCase from coprs.logic.builds_logic import BuildsLogic diff --git a/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_builds.py b/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_builds.py index e359bdb..c2a64d3 100644 --- a/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_builds.py +++ b/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_builds.py @@ -1,4 +1,4 @@ -import json +import ujson as json import os from coprs import models diff --git a/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_general.py b/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_general.py index e9d5c8f..fb8f4bd 100644 --- a/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_general.py +++ b/frontend/coprs_frontend/tests/test_views/test_coprs_ns/test_coprs_general.py @@ -1,4 +1,4 @@ -import json +import ujson as json import flask import pytest diff --git a/frontend/coprs_frontend/tests/test_webhooks.py b/frontend/coprs_frontend/tests/test_webhooks.py index d7580f5..9224b0f 100644 --- a/frontend/coprs_frontend/tests/test_webhooks.py +++ b/frontend/coprs_frontend/tests/test_webhooks.py @@ -1,5 +1,5 @@ import os -import json +import ujson as json import requests from tests.coprs_test_case import CoprsTestCase diff --git a/keygen/src/copr_keygen/__init__.py b/keygen/src/copr_keygen/__init__.py index 7112f8a..57c0953 100644 --- a/keygen/src/copr_keygen/__init__.py +++ b/keygen/src/copr_keygen/__init__.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from __future__ import division from __future__ import absolute_import -import json +import ujson as json import logging from logging import getLogger from logging import FileHandler diff --git a/keygen/tests/test_handles.py b/keygen/tests/test_handles.py index 2fc1277..d347de9 100644 --- a/keygen/tests/test_handles.py +++ b/keygen/tests/test_handles.py @@ -1,4 +1,4 @@ -import json +import ujson as json import six if six.PY3: From 5e661f0158c1ddce9081935e666e44f533c57ab4 Mon Sep 17 00:00:00 2001 From: clime Date: Jul 24 2018 10:18:51 +0000 Subject: [PATCH 2/2] [rpmbuild] get rid of simplejson dep --- diff --git a/rpmbuild/copr-rpmbuild.spec b/rpmbuild/copr-rpmbuild.spec index 95be90c..c8cbdf8 100644 --- a/rpmbuild/copr-rpmbuild.spec +++ b/rpmbuild/copr-rpmbuild.spec @@ -45,7 +45,6 @@ Requires: %python Requires: %python_pfx-jinja2 Requires: %python_pfx-munch Requires: %python-configparser -Requires: %python-simplejson Requires: %python-requests Requires: mock diff --git a/rpmbuild/main.py b/rpmbuild/main.py index 9430272..b4bce6e 100755 --- a/rpmbuild/main.py +++ b/rpmbuild/main.py @@ -16,7 +16,7 @@ import stat import pipes import pkg_resources -from simplejson.scanner import JSONDecodeError +from json.decoder import JSONDecodeError from copr_rpmbuild import providers from copr_rpmbuild.builders.mock import MockBuilder