Skip to content

Commit 7fc1037

Browse files
authored
Skip _db prefix on /_open/auth (#374)
* Updating example version * No longer use _db/... prefix on /_open/auth * Fixing test dependant on version
1 parent 3769989 commit 7fc1037

File tree

3 files changed

+25
-8
lines changed

3 files changed

+25
-8
lines changed

arango/connection.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,22 @@ def prep_response(self, resp: Response, deserialize: bool = True) -> Response:
125125
return resp
126126

127127
def process_request(
128-
self, host_index: int, request: Request, auth: Optional[Tuple[str, str]] = None
128+
self,
129+
host_index: int,
130+
request: Request,
131+
auth: Optional[Tuple[str, str]] = None,
132+
skip_db_prefix: bool = False,
129133
) -> Response:
130134
"""Execute a request until a valid response has been returned.
131135
132136
:param host_index: The index of the first host to try
133137
:type host_index: int
134138
:param request: HTTP request.
135139
:type request: arango.request.Request
140+
:param auth: HTTP basic authentication tuple (username, password).
141+
:type auth: tuple[str, str] | None
142+
:param skip_db_prefix: Skip the database prefix in the URL.
143+
:type skip_db_prefix: bool
136144
:return: HTTP response.
137145
:rtype: arango.response.Response
138146
"""
@@ -152,11 +160,16 @@ def process_request(
152160
request.headers["accept-encoding"] = self._response_compression
153161

154162
while tries < self._host_resolver.max_tries:
163+
if skip_db_prefix:
164+
url = self._hosts[host_index] + request.endpoint
165+
else:
166+
url = self._url_prefixes[host_index] + request.endpoint
167+
155168
try:
156169
resp = self._http.send_request(
157170
session=self._sessions[host_index],
158171
method=request.method,
159-
url=self._url_prefixes[host_index] + request.endpoint,
172+
url=url,
160173
params=request.params,
161174
data=data,
162175
headers=request.headers,
@@ -165,7 +178,6 @@ def process_request(
165178

166179
return self.prep_response(resp, request.deserialize)
167180
except ConnectionError:
168-
url = self._url_prefixes[host_index] + request.endpoint
169181
logging.debug(f"ConnectionError: {url}")
170182

171183
if len(indexes_to_filter) == self._host_resolver.host_count - 1:
@@ -425,7 +437,7 @@ def refresh_token(self) -> None:
425437

426438
host_index = self._host_resolver.get_host_index()
427439

428-
resp = self.process_request(host_index, request)
440+
resp = self.process_request(host_index, request, skip_db_prefix=True)
429441

430442
if not resp.is_success:
431443
raise JWTAuthError(resp, request)

starter.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# Usage:
77
# ./starter.sh [single|cluster] [community|enterprise] [version]
88
# Example:
9-
# ./starter.sh cluster enterprise 3.12.1
9+
# ./starter.sh cluster enterprise 3.12.5
1010

1111
setup="${1:-single}"
1212
license="${2:-community}"

tests/test_database.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -439,18 +439,23 @@ def test_database_utf8(sys_db, special_db_names):
439439
assert sys_db.delete_database(name)
440440

441441

442-
def test_license(sys_db, enterprise):
442+
def test_license(sys_db, enterprise, db_version):
443443
license = sys_db.license()
444444
assert isinstance(license, dict)
445445

446-
if enterprise:
447-
assert set(license.keys()) == {
446+
if db_version >= version.parse("3.12.5"):
447+
expected_keys = {"diskUsage", "upgrading"}
448+
else:
449+
expected_keys = {
448450
"upgrading",
449451
"features",
450452
"license",
451453
"version",
452454
"status",
453455
}
456+
457+
if enterprise:
458+
assert set(license.keys()) == expected_keys
454459
else:
455460
assert license == {"license": "none"}
456461
with pytest.raises(ServerLicenseSetError):

0 commit comments

Comments
 (0)