Args: sid: Server ID Creates a new job for backup task (Backup Database(s)/Schema(s)/Table(s)) Returns: None
(sid)
| 406 | @permissions_required(AllPermissionTypes.tools_backup) |
| 407 | @pga_login_required |
| 408 | def create_backup_objects_job(sid): |
| 409 | """ |
| 410 | Args: |
| 411 | sid: Server ID |
| 412 | |
| 413 | Creates a new job for backup task |
| 414 | (Backup Database(s)/Schema(s)/Table(s)) |
| 415 | |
| 416 | Returns: |
| 417 | None |
| 418 | """ |
| 419 | |
| 420 | data = json.loads(request.data) |
| 421 | backup_obj_type = data.get('type', 'objects') |
| 422 | |
| 423 | try: |
| 424 | backup_file = filename_with_file_manager_path( |
| 425 | data['file'], (data.get('format', '') != 'directory')) |
| 426 | except PermissionError as e: |
| 427 | return unauthorized(errormsg=str(e)) |
| 428 | except Exception as e: |
| 429 | return bad_request(errormsg=str(e)) |
| 430 | |
| 431 | # Fetch the server details like hostname, port, roles etc |
| 432 | server = get_server(sid) |
| 433 | |
| 434 | if server is None: |
| 435 | return make_json_response( |
| 436 | success=0, |
| 437 | errormsg=SERVER_NOT_FOUND |
| 438 | ) |
| 439 | |
| 440 | # To fetch MetaData for the server |
| 441 | from pgadmin.utils.driver import get_driver |
| 442 | driver = get_driver(PG_DEFAULT_DRIVER) |
| 443 | manager = driver.connection_manager(server.id) |
| 444 | conn = manager.connection() |
| 445 | connected = conn.connected() |
| 446 | |
| 447 | if not connected: |
| 448 | return make_json_response( |
| 449 | success=0, |
| 450 | errormsg=gettext("Please connect to the server first.") |
| 451 | ) |
| 452 | |
| 453 | utility = manager.utility('backup') if backup_obj_type == 'objects' \ |
| 454 | else manager.utility('backup_server') |
| 455 | |
| 456 | ret_val = does_utility_exist(utility) |
| 457 | if ret_val: |
| 458 | return make_json_response( |
| 459 | success=0, |
| 460 | errormsg=ret_val |
| 461 | ) |
| 462 | |
| 463 | args = _get_args_params_values( |
| 464 | data, conn, backup_obj_type, backup_file, server, manager) |
| 465 |
nothing calls this directly
no test coverage detected