|
43 | 43 | ServerEchoError,
|
44 | 44 | ServerEncryptionError,
|
45 | 45 | ServerEngineError,
|
| 46 | + ServerLicenseGetError, |
| 47 | + ServerLicenseSetError, |
46 | 48 | ServerLogLevelError,
|
47 | 49 | ServerLogLevelSetError,
|
48 | 50 | ServerMetricsError,
|
@@ -348,6 +350,54 @@ def response_handler(resp: Response) -> Json:
|
348 | 350 |
|
349 | 351 | return self._execute(request, response_handler)
|
350 | 352 |
|
| 353 | + def license(self) -> Result[Json]: |
| 354 | + """View the license information and status of an |
| 355 | + Enterprise Edition instance. Can be called on |
| 356 | + single servers, Coordinators, and DB-Servers. |
| 357 | +
|
| 358 | + :return: Server license. |
| 359 | + :rtype: dict |
| 360 | + :raise arango.exceptions.ServerLicenseGetError: If retrieval fails. |
| 361 | + """ |
| 362 | + request = Request(method="get", endpoint="/_admin/license") |
| 363 | + |
| 364 | + def response_handler(resp: Response) -> Json: |
| 365 | + if resp.is_success: |
| 366 | + result: Json = resp.body |
| 367 | + return result |
| 368 | + raise ServerLicenseGetError(resp, request) |
| 369 | + |
| 370 | + return self._execute(request, response_handler) |
| 371 | + |
| 372 | + def set_license(self, license: str, force: bool = False) -> Result[Json]: |
| 373 | + """Set a new license for an Enterprise Edition |
| 374 | + instance. Can be called on single servers, Coordinators, |
| 375 | + and DB-Servers. |
| 376 | +
|
| 377 | + :param license: The Base64-encoded license string. |
| 378 | + :type license: str |
| 379 | + :param force: If set to True, the new license will be set even if |
| 380 | + it expires sooner than the current license. |
| 381 | + :type force: bool |
| 382 | + :return: Server license. |
| 383 | + :rtype: dict |
| 384 | + :raise arango.exceptions.ServerLicenseError: If retrieval fails. |
| 385 | + """ |
| 386 | + request = Request( |
| 387 | + method="put", |
| 388 | + endpoint="/_admin/license", |
| 389 | + params={"force": force}, |
| 390 | + data=license, |
| 391 | + ) |
| 392 | + |
| 393 | + def response_handler(resp: Response) -> Json: |
| 394 | + if resp.is_success: |
| 395 | + result: Json = resp.body |
| 396 | + return result |
| 397 | + raise ServerLicenseSetError(resp, request) |
| 398 | + |
| 399 | + return self._execute(request, response_handler) |
| 400 | + |
351 | 401 | def status(self) -> Result[Json]:
|
352 | 402 | """Return ArangoDB server status.
|
353 | 403 |
|
|
0 commit comments