def create(self, gid): """Add a server node to the settings database""" required_args = [ u'name', u'host', u'port', u'db', u'username', u'sslmode' ] data = request.form if request.form else json.loads(request.data) for arg in required_args: if arg not in data: return make_json_response( status=410, success=0, errormsg=gettext( "Couldn't find the required parameter (%s)." % arg ) ) try: server = Server( user_id=current_user.id, servergroup_id=gid, name=data[u'name'], host=data[u'host'], port=data[u'port'], maintenance_db=data[u'db'], username=data[u'username'], ssl_mode=data['sslmode'], comment=data['comment'] if 'comment' in data else None ) db.session.add(server) db.session.commit() return jsonify(node=generate_browser_node( '%s' % server.id, '%s' % gid, '%s' % server.name, "icon-{0}-not-connected".format(ServerModule.NODE_TYPE), True, ServerModule.NODE_TYPE)) except Exception as e: return make_json_response( status=410, success=0, errormsg=e.message )
def get_nodes(self, server_group): """Return a JSON document listing the server groups for the user""" servers = Server.query.filter_by(user_id=current_user.id, servergroup_id=server_group) # TODO: Move this JSON generation to a Server method for server in servers: node = generate_browser_node( "%d" % (server.id), "%d" % server_group, server.name, "icon-%s-not-connected" % self.NODE_TYPE, True, self.NODE_TYPE) yield node
def list(self, gid): res = [] """Return a JSON document listing the server groups for the user""" servers = Server.query.filter_by(user_id=current_user.id, servergroup_id=gid) for server in servers: res.append( generate_browser_node( "%s" % server.id, "%s" % gid, server.name, "icon-%s-not-connected" % ServerModule.NODE_TYPE, True, ServerModule.NODE_TYPE) ) return make_json_response(result=res)