committed by
Yureka
co-authored by
Yureka
parent
f7b797b4e7
commit
b7b9f11c89
@@ -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):
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user