本文整理匯總了Golang中github.com/flynn/flynn/pkg/ctxhelper.ParamsFromContext函數的典型用法代碼示例。如果您正苦於以下問題:Golang ParamsFromContext函數的具體用法?Golang ParamsFromContext怎麽用?Golang ParamsFromContext使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了ParamsFromContext函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: UpdateRoute
func (api *API) UpdateRoute(ctx context.Context, w http.ResponseWriter, req *http.Request) {
log, _ := ctxhelper.LoggerFromContext(ctx)
params, _ := ctxhelper.ParamsFromContext(ctx)
var route *router.Route
if err := json.NewDecoder(req.Body).Decode(&route); err != nil {
log.Error(err.Error())
httphelper.Error(w, err)
return
}
route.Type = params.ByName("route_type")
route.ID = params.ByName("id")
l := api.router.ListenerFor(route.Type)
if l == nil {
httphelper.ValidationError(w, "type", "Invalid route type")
return
}
if err := l.UpdateRoute(route); err != nil {
if err == ErrNotFound {
w.WriteHeader(404)
return
}
log.Error(err.Error())
httphelper.Error(w, err)
return
}
httphelper.JSON(w, 200, route)
}
示例2: KillJob
func (c *controllerAPI) KillJob(ctx context.Context, w http.ResponseWriter, req *http.Request) {
params, _ := ctxhelper.ParamsFromContext(ctx)
job, err := c.jobRepo.Get(params.ByName("jobs_id"))
if err != nil {
respondWithError(w, err)
return
} else if job.HostID == "" {
httphelper.ValidationError(w, "", "cannot kill a job which has not been placed on a host")
return
}
client, err := c.clusterClient.Host(job.HostID)
if err != nil {
respondWithError(w, err)
return
}
if err = client.StopJob(job.ID); err != nil {
if _, ok := err.(ct.NotFoundError); ok {
err = ErrNotFound
}
respondWithError(w, err)
return
}
}
示例3: DeleteRoute
func (api *API) DeleteRoute(ctx context.Context, w http.ResponseWriter, req *http.Request) {
log, _ := ctxhelper.LoggerFromContext(ctx)
params, _ := ctxhelper.ParamsFromContext(ctx)
l := api.router.ListenerFor(params.ByName("route_type"))
if l == nil {
w.WriteHeader(404)
return
}
err := l.RemoveRoute(params.ByName("id"))
if err != nil {
switch err {
case ErrNotFound:
w.WriteHeader(404)
return
case ErrInvalid:
httphelper.Error(w, httphelper.JSONError{
Code: httphelper.ValidationErrorCode,
Message: "Route has dependent routes",
})
return
default:
log.Error(err.Error())
httphelper.Error(w, err)
return
}
}
w.WriteHeader(200)
}
示例4: UpdateApp
func (c *controllerAPI) UpdateApp(ctx context.Context, rw http.ResponseWriter, req *http.Request) {
params, _ := ctxhelper.ParamsFromContext(ctx)
var data appUpdate
if err := httphelper.DecodeJSON(req, &data); err != nil {
respondWithError(rw, err)
return
}
if v, ok := data["meta"]; ok && v == nil {
// handle {"meta": null}
delete(data, "meta")
}
if err := schema.Validate(data); err != nil {
respondWithError(rw, err)
return
}
app, err := c.appRepo.Update(params.ByName("apps_id"), data)
if err != nil {
respondWithError(rw, err)
return
}
httphelper.JSON(rw, 200, app)
}
示例5: DeleteResource
func (c *controllerAPI) DeleteResource(ctx context.Context, w http.ResponseWriter, req *http.Request) {
params, _ := ctxhelper.ParamsFromContext(ctx)
id := params.ByName("resources_id")
p, err := c.getProvider(ctx)
if err != nil {
respondWithError(w, err)
return
}
res, err := c.resourceRepo.Get(id)
if err != nil {
respondWithError(w, err)
return
}
if err := resource.Deprovision(p.URL, res.ExternalID); err != nil {
respondWithError(w, err)
return
}
if err := c.resourceRepo.Remove(res); err != nil {
respondWithError(w, err)
return
}
httphelper.JSON(w, 200, res)
}
示例6: PutResource
func (c *controllerAPI) PutResource(ctx context.Context, w http.ResponseWriter, req *http.Request) {
params, _ := ctxhelper.ParamsFromContext(ctx)
p, err := c.getProvider(ctx)
if err != nil {
respondWithError(w, err)
return
}
var resource ct.Resource
if err = httphelper.DecodeJSON(req, &resource); err != nil {
respondWithError(w, err)
return
}
resource.ID = params.ByName("resources_id")
resource.ProviderID = p.ID
if err := schema.Validate(resource); err != nil {
respondWithError(w, err)
return
}
if err := c.resourceRepo.Add(&resource); err != nil {
respondWithError(w, err)
return
}
httphelper.JSON(w, 200, &resource)
}
示例7: UpdateAppMeta
func (c *controllerAPI) UpdateAppMeta(ctx context.Context, rw http.ResponseWriter, req *http.Request) {
params, _ := ctxhelper.ParamsFromContext(ctx)
var data appUpdate
if err := httphelper.DecodeJSON(req, &data); err != nil {
respondWithError(rw, err)
return
}
if err := schema.Validate(data); err != nil {
respondWithError(rw, err)
return
}
if data["meta"] == nil {
data["meta"] = make(map[string]interface{})
}
app, err := c.appRepo.Update(params.ByName("apps_id"), data)
if err != nil {
respondWithError(rw, err)
return
}
httphelper.JSON(rw, 200, app)
}
示例8: getRelease
func (c *controllerAPI) getRelease(ctx context.Context) (*ct.Release, error) {
params, _ := ctxhelper.ParamsFromContext(ctx)
data, err := c.releaseRepo.Get(params.ByName("releases_id"))
if err != nil {
return nil, err
}
return data.(*ct.Release), nil
}
示例9: getProvider
func (c *controllerAPI) getProvider(ctx context.Context) (*ct.Provider, error) {
params, _ := ctxhelper.ParamsFromContext(ctx)
data, err := c.providerRepo.Get(params.ByName("providers_id"))
if err != nil {
return nil, err
}
return data.(*ct.Provider), nil
}
示例10: GetLog
func (a *aggregatorAPI) GetLog(ctx context.Context, w http.ResponseWriter, req *http.Request) {
ctx, cancel := context.WithCancel(ctx)
if cn, ok := w.(http.CloseNotifier); ok {
ch := cn.CloseNotify()
go func() {
select {
case <-ch:
cancel()
case <-ctx.Done():
}
}()
}
defer cancel()
params, _ := ctxhelper.ParamsFromContext(ctx)
follow := false
if strFollow := req.FormValue("follow"); strFollow == "true" {
follow = true
}
var (
backlog bool
lines int
err error
)
if strLines := req.FormValue("lines"); strLines != "" {
if lines, err = strconv.Atoi(strLines); err != nil {
httphelper.ValidationError(w, "lines", err.Error())
return
}
if lines < 0 || lines > 10000 {
httphelper.ValidationError(w, "lines", "lines must be an integer between 0 and 10000")
return
}
backlog = lines > 0
}
filters := make(filterSlice, 0)
if jobID := req.FormValue("job_id"); jobID != "" {
filters = append(filters, filterJobID(jobID))
}
if processTypeVals, ok := req.Form["process_type"]; ok && len(processTypeVals) > 0 {
val := processTypeVals[len(processTypeVals)-1]
filters = append(filters, filterProcessType(val))
}
iter := &Iterator{
id: params.ByName("channel_id"),
follow: follow,
backlog: backlog,
lines: lines,
filter: filters,
donec: ctx.Done(),
}
writeMessages(ctx, w, iter.Scan(a.agg))
}
示例11: GetJob
func (c *controllerAPI) GetJob(ctx context.Context, w http.ResponseWriter, req *http.Request) {
params, _ := ctxhelper.ParamsFromContext(ctx)
job, err := c.jobRepo.Get(params.ByName("jobs_id"))
if err != nil {
respondWithError(w, err)
return
}
httphelper.JSON(w, 200, job)
}
示例12: GetDeployment
func (c *controllerAPI) GetDeployment(ctx context.Context, w http.ResponseWriter, req *http.Request) {
params, _ := ctxhelper.ParamsFromContext(ctx)
deployment, err := c.deploymentRepo.Get(params.ByName("deployment_id"))
if err != nil {
respondWithError(w, err)
return
}
httphelper.JSON(w, 200, deployment)
}
示例13: connectHost
func (c *controllerAPI) connectHost(ctx context.Context) (utils.HostClient, string, error) {
params, _ := ctxhelper.ParamsFromContext(ctx)
hostID, jobID, err := cluster.ParseJobID(params.ByName("jobs_id"))
if err != nil {
log.Printf("Unable to parse hostID from %q", params.ByName("jobs_id"))
return nil, jobID, err
}
host, err := c.clusterClient.Host(hostID)
return host, jobID, err
}
示例14: getRoute
func (c *controllerAPI) getRoute(ctx context.Context) (*router.Route, error) {
params, _ := ctxhelper.ParamsFromContext(ctx)
route, err := c.routerc.GetRoute(params.ByName("routes_type"), params.ByName("routes_id"))
if err == routerc.ErrNotFound || err == nil && route.ParentRef != routeParentRef(c.getApp(ctx).ID) {
err = ErrNotFound
}
if err != nil {
return nil, err
}
return route, err
}
示例15: GetCertRoutes
func (api *API) GetCertRoutes(ctx context.Context, w http.ResponseWriter, req *http.Request) {
params, _ := ctxhelper.ParamsFromContext(ctx)
l := api.router.HTTP.(*HTTPListener)
routes, err := l.GetCertRoutes(params.ByName("id"))
if err != nil {
httphelper.Error(w, err)
return
}
httphelper.JSON(w, 200, routes)
}