fix: Fetch nodeinfo endpoint address from .well-known/nodeinfo when checking instance availability
Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2561>
This commit is contained in:
parent
cc0d642215
commit
e78191c917
|
@ -643,8 +643,7 @@ def check_all_remote_instance_availability():
|
|||
@celery.app.task(name="federation.check_single_remote_instance_availability")
|
||||
def check_single_remote_instance_availability(domain):
|
||||
try:
|
||||
response = requests.get(f"https://{domain.name}/api/v1/instance/nodeinfo/2.0/")
|
||||
nodeinfo = response.json()
|
||||
nodeinfo = fetch_nodeinfo(domain.name)
|
||||
except Exception as e:
|
||||
logger.info(
|
||||
f"Domain {domain.name} could not be reached because of the following error : {e}. \
|
||||
|
|
|
@ -669,7 +669,18 @@ def test_fetch_collection(mocker, r_mock):
|
|||
def test_check_all_remote_instance_reachable(factories, r_mock):
|
||||
domain = factories["federation.Domain"]()
|
||||
r_mock.get(
|
||||
f"https://{domain.name}/api/v1/instance/nodeinfo/2.0/", json={"version": "2"}
|
||||
f"https://{domain.name}/api/v1/instance/nodeinfo/2.0", json={"version": "2"}
|
||||
)
|
||||
r_mock.get(
|
||||
f"https://{domain.name}/.well-known/nodeinfo",
|
||||
json={
|
||||
"links": [
|
||||
{
|
||||
"rel": "http://nodeinfo.diaspora.software/ns/schema/2.0",
|
||||
"href": f"https://{domain.name}/api/v1/instance/nodeinfo/2.0",
|
||||
}
|
||||
]
|
||||
},
|
||||
)
|
||||
tasks.check_all_remote_instance_availability()
|
||||
domain = models.Domain.objects.get(name=domain.name)
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
Fetch the nodeinfo endpoint from .well-known/nodeinfo when checking instance availability
|
Loading…
Reference in New Issue