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