Return a JSON document listing the server groups for the user
(self, gid, sid)
| 710 | |
| 711 | @pga_login_required |
| 712 | def node(self, gid, sid): |
| 713 | """Return a JSON document listing the server groups for the user""" |
| 714 | server = get_server(sid) |
| 715 | |
| 716 | if server is None: |
| 717 | return make_json_response( |
| 718 | status=410, |
| 719 | success=0, |
| 720 | errormsg=gettext( |
| 721 | "Could not find the server with id# {0}." |
| 722 | ).format(sid) |
| 723 | ) |
| 724 | |
| 725 | if _is_non_owner(server): |
| 726 | shared_server = ServerModule.get_shared_server(server, gid) |
| 727 | server = ServerModule.get_shared_server_properties(server, |
| 728 | shared_server) |
| 729 | |
| 730 | manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(server.id) |
| 731 | conn = manager.connection() |
| 732 | connected = conn.connected() |
| 733 | errmsg = None |
| 734 | in_recovery = None |
| 735 | wal_paused = None |
| 736 | if connected: |
| 737 | try: |
| 738 | status, result, in_recovery, wal_paused =\ |
| 739 | recovery_state(conn, manager.version) |
| 740 | |
| 741 | if not status: |
| 742 | connected = False |
| 743 | manager.release() |
| 744 | errmsg = "{0} : {1}".format(server.name, result) |
| 745 | |
| 746 | except ConnectionLost: |
| 747 | connected = False |
| 748 | manager.release() |
| 749 | |
| 750 | return make_json_response( |
| 751 | result=self.blueprint.generate_browser_node( |
| 752 | "%d" % (server.id), |
| 753 | gid, |
| 754 | server.name, |
| 755 | server_icon_and_background(connected, manager, server), |
| 756 | True, |
| 757 | self.node_type, |
| 758 | connected=connected, |
| 759 | server_type=manager.server_type if connected else 'pg', |
| 760 | version=manager.version, |
| 761 | db=manager.db, |
| 762 | user=manager.user_info if connected else None, |
| 763 | in_recovery=in_recovery, |
| 764 | wal_pause=wal_paused, |
| 765 | host=server.host, |
| 766 | is_password_saved=bool(server.save_password), |
| 767 | is_tunnel_password_saved=True |
| 768 | if server.tunnel_password is not None else False, |
| 769 | errmsg=errmsg, |
nothing calls this directly
no test coverage detected