irrd: init at 4.3.0.post1

Co-authored-by: Yureka <yuka@yuka.dev>
This commit is contained in:
Jennifer Graul
2023-07-31 03:29:44 +02:00
committed by Yureka
co-authored by Yureka
parent f7b797b4e7
commit b7b9f11c89
3 changed files with 212 additions and 0 deletions
+159
View File
@@ -0,0 +1,159 @@
{ lib
, python3
, fetchPypi
, git
, postgresql
, postgresqlTestHook
, redis
}:
let
py = python3.override {
packageOverrides = final: prev: {
sqlalchemy = prev.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
version = "1.3.24";
src = fetchPypi {
inherit (oldAttrs) pname;
inherit version;
hash = "sha256-67t3fL+TEjWbiXv4G6ANrg9ctp+6KhgmXcwYpvXvdRk=";
};
doCheck = false;
});
starlette = prev.starlette.overridePythonAttrs (oldAttrs: rec {
version = "0.20.4";
src = fetchPypi {
inherit (oldAttrs) pname;
inherit version;
hash = "sha256-QvzzEi+Zj+/OPixa1+Xtvw8Cz2hdZGqDoI1ARyavUIQ=";
};
nativeBuildInputs = with final; [
setuptools
];
doCheck = false;
});
ariadne = prev.ariadne.overridePythonAttrs (oldAttrs: rec {
version = "0.17.1";
src = fetchPypi {
inherit (oldAttrs) pname;
inherit version;
hash = "sha256-B98wl/NkNOyq99AKsVQem9TZ0meOnvg7IdWIEAI2vy8=";
};
nativeBuildInputs = with final; [
setuptools
];
doCheck = false;
});
alembic = prev.alembic.overridePythonAttrs (lib.const {
doCheck = false;
});
beautifultable = prev.beautifultable.overridePythonAttrs (oldAttrs: rec {
version = "0.8.0";
src = fetchPypi {
inherit (oldAttrs) pname;
inherit version;
hash = "sha256-1E2VUbvte/qIZ1Mk+E77mqhXOE1E6fsh61MPCgutuBU=";
};
doCheck = false;
});
};
};
in
py.pkgs.buildPythonPackage rec {
pname = "irrd";
version = "4.3.0.post1";
format = "setuptools";
src = fetchPypi {
inherit pname version;
hash = "sha256-hayfdcYAgIopfUiAR/AUWMuTzwpXvXuq6iPp9uhWN1M=";
};
patches = [
./irrd-asgiref-3.8.0.diff
];
pythonRelaxDeps = true;
nativeBuildInputs = with python3.pkgs; [
pythonRelaxDepsHook
];
postPatch = ''
substituteInPlace setup.py --replace psycopg2-binary psycopg2
'';
nativeCheckInputs = [
git
redis
postgresql
postgresqlTestHook
] ++ (with py.pkgs; [
pytest-asyncio
pytest-freezegun
pytestCheckHook
]);
propagatedBuildInputs = with py.pkgs; [
python-gnupg
passlib
bcrypt
ipy
ordered-set
beautifultable
pyyaml
datrie
setproctitle
python-daemon
pid
py.pkgs.redis
hiredis
coredis
requests
pytz
ariadne
uvicorn
starlette
psutil
asgiref
pydantic
typing-extensions
py-radix-sr
psycopg2
sqlalchemy
alembic
ujson
wheel
websockets
] ++ py.pkgs.uvicorn.optional-dependencies.standard;
preCheck = ''
redis-server &
REDIS_PID=$!
while ! redis-cli --scan ; do
echo waiting for redis
sleep 1
done
export IRRD_DATABASE_URL="postgres:///$PGDATABASE"
export IRRD_REDIS_URL="redis://localhost/1"
'';
postCheck = ''
kill $REDIS_PID
'';
# skip tests that require internet access
disabledTests = [
"test_020_dash_o_noop"
"test_050_non_json_response"
];
meta = with lib; {
changelog = "https://irrd.readthedocs.io/en/v${version}/releases/";
description = "An Internet Routing Registry database server, processing IRR objects in the RPSL format";
license = licenses.mit;
homepage = "https://github.com/irrdnet/irrd";
maintainers = with maintainers; [ netali yuka ];
};
}
@@ -0,0 +1,51 @@
diff --git a/irrd/server/graphql/schema_builder.py b/irrd/server/graphql/schema_builder.py
index 65ddf5d..b3b385a 100644
--- a/irrd/server/graphql/schema_builder.py
+++ b/irrd/server/graphql/schema_builder.py
@@ -31,32 +31,32 @@ def build_executable_schema():
"""
schema = SchemaGenerator()
- schema.rpsl_object_type.set_type_resolver(sta(resolve_rpsl_object_type, False))
- schema.rpsl_contact_union_type.set_type_resolver(sta(resolve_rpsl_object_type, False))
+ schema.rpsl_object_type.set_type_resolver(sta(resolve_rpsl_object_type, thread_sensitive=False))
+ schema.rpsl_contact_union_type.set_type_resolver(sta(resolve_rpsl_object_type, thread_sensitive=False))
- schema.query_type.set_field("rpslObjects", sta(resolve_rpsl_objects, False))
- schema.query_type.set_field("databaseStatus", sta(resolve_database_status, False))
- schema.query_type.set_field("asnPrefixes", sta(resolve_asn_prefixes, False))
- schema.query_type.set_field("asSetPrefixes", sta(resolve_as_set_prefixes, False))
- schema.query_type.set_field("recursiveSetMembers", sta(resolve_recursive_set_members, False))
+ schema.query_type.set_field("rpslObjects", sta(resolve_rpsl_objects, thread_sensitive=False))
+ schema.query_type.set_field("databaseStatus", sta(resolve_database_status, thread_sensitive=False))
+ schema.query_type.set_field("asnPrefixes", sta(resolve_asn_prefixes, thread_sensitive=False))
+ schema.query_type.set_field("asSetPrefixes", sta(resolve_as_set_prefixes, thread_sensitive=False))
+ schema.query_type.set_field("recursiveSetMembers", sta(resolve_recursive_set_members, thread_sensitive=False))
- schema.rpsl_object_type.set_field("mntByObjs", sta(resolve_rpsl_object_mnt_by_objs, False))
- schema.rpsl_object_type.set_field("journal", sta(resolve_rpsl_object_journal, False))
+ schema.rpsl_object_type.set_field("mntByObjs", sta(resolve_rpsl_object_mnt_by_objs, thread_sensitive=False))
+ schema.rpsl_object_type.set_field("journal", sta(resolve_rpsl_object_journal, thread_sensitive=False))
for object_type in schema.object_types:
if "adminCObjs" in schema.graphql_types[object_type.name]:
- object_type.set_field("adminCObjs", sta(resolve_rpsl_object_adminc_objs, False))
+ object_type.set_field("adminCObjs", sta(resolve_rpsl_object_adminc_objs, thread_sensitive=False))
for object_type in schema.object_types:
if "techCObjs" in schema.graphql_types[object_type.name]:
- object_type.set_field("techCObjs", sta(resolve_rpsl_object_techc_objs, False))
+ object_type.set_field("techCObjs", sta(resolve_rpsl_object_techc_objs, thread_sensitive=False))
for object_type in schema.object_types:
if "mbrsByRefObjs" in schema.graphql_types[object_type.name]:
- object_type.set_field("mbrsByRefObjs", sta(resolve_rpsl_object_members_by_ref_objs, False))
+ object_type.set_field("mbrsByRefObjs", sta(resolve_rpsl_object_members_by_ref_objs, thread_sensitive=False))
for object_type in schema.object_types:
if "memberOfObjs" in schema.graphql_types[object_type.name]:
- object_type.set_field("memberOfObjs", sta(resolve_rpsl_object_member_of_objs, False))
+ object_type.set_field("memberOfObjs", sta(resolve_rpsl_object_member_of_objs, thread_sensitive=False))
for object_type in schema.object_types:
if "membersObjs" in schema.graphql_types[object_type.name]:
- object_type.set_field("membersObjs", sta(resolve_rpsl_object_members_objs, False))
+ object_type.set_field("membersObjs", sta(resolve_rpsl_object_members_objs, thread_sensitive=False))
@schema.asn_scalar_type.value_parser
def parse_asn_scalar(value):
+2
View File
@@ -9220,6 +9220,8 @@ with pkgs;
iroh = callPackage ../applications/networking/iroh { };
irrd = callPackage ../servers/misc/irrd { };
ised = callPackage ../tools/misc/ised { };
isl = isl_0_20;