func (p *Resource) ClustersListHandler(req *restful.Request, resp *restful.Response) { logrus.Infof("ClustersListHandler is called!") x_auth_token := req.HeaderParameter("X-Auth-Token") code, err := services.TokenValidation(x_auth_token) if err != nil { response.WriteStatusError(code, err, resp) return } var skip int = queryIntParam(req, "skip", 0) var limit int = queryIntParam(req, "limit", 0) var name string = req.QueryParameter("name") var user_id string = req.QueryParameter("user_id") var status string = req.QueryParameter("status") var sort string = req.QueryParameter("sort") total, clusters, code, err := services.GetClusterService().QueryCluster(name, user_id, status, skip, limit, sort, x_auth_token) if err != nil { response.WriteStatusError(code, err, resp) return } res := response.QueryStruct{Success: true, Data: clusters} if c, _ := strconv.ParseBool(req.QueryParameter("count")); c { res.Count = total resp.AddHeader("X-Object-Count", strconv.Itoa(total)) } resp.WriteEntity(res) return }
func (p *Resource) HostsListHandler(req *restful.Request, resp *restful.Response) { logrus.Infof("HostsListHandler is called!") x_auth_token := req.HeaderParameter("X-Auth-Token") code, err := services.TokenValidation(x_auth_token) if err != nil { logrus.Errorln("token validation error is %v", err) response.WriteStatusError(code, err, resp) return } clusterId := req.PathParameter(ParamID) var skip, limit int64 if param_skip := req.QueryParameter("skip"); len(param_skip) > 0 { skip, err = strconv.ParseInt(param_skip, 10, 0) if err != nil { response.WriteStatusError("E12002", err, resp) return } } if param_limit := req.QueryParameter("limit"); len(param_limit) > 0 { limit, err = strconv.ParseInt(req.QueryParameter("limit"), 10, 0) if err != nil { response.WriteStatusError("E12002", err, resp) return } } var status string = req.QueryParameter("status") total, hosts, errorCode, err := services.GetHostService().QueryHosts(clusterId, int(skip), int(limit), status, x_auth_token) if err != nil { logrus.Errorln("list hosts error is %v", err) response.WriteStatusError(errorCode, err, resp) return } res := response.QueryStruct{Success: true, Data: hosts} if c, _ := strconv.ParseBool(req.QueryParameter("count")); c { res.Count = total resp.AddHeader("X-Object-Count", strconv.Itoa(total)) } resp.WriteEntity(res) return }
func (p *Resource) successList(ret interface{}, limitnum int, lenth int, req *restful.Request, resp *restful.Response) { res := response.QueryStruct{Success: true, Data: ret} // Get limit amount limit := 10 if limitnum > 0 { limit = limitnum } // If got full limit set next link if lenth == limit { res.Prev, res.Next = prevnexturl(req) } // Count documents if count parameter is included in query if c, _ := strconv.ParseBool(req.QueryParameter("count")); c { res.Count = lenth resp.AddHeader("X-Object-Count", strconv.Itoa(lenth)) } // Write result back to client resp.WriteEntity(res) }