本文整理汇总了Golang中github.com/flynn/flynn/pkg/httphelper.ObjectNotFoundError函数的典型用法代码示例。如果您正苦于以下问题:Golang ObjectNotFoundError函数的具体用法?Golang ObjectNotFoundError怎么用?Golang ObjectNotFoundError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ObjectNotFoundError函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Send
func (api *HTTPAPI) Send(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
volumeID := ps.ByName("volume_id")
if !strings.Contains(r.Header.Get("Accept"), snapshotContentType) {
httphelper.ValidationError(w, "", fmt.Sprintf("must be prepared to accept a content type of %q", snapshotContentType))
return
}
w.Header().Set("Content-Type", snapshotContentType)
var haves []json.RawMessage
if err := httphelper.DecodeJSON(r, &haves); err != nil {
httphelper.Error(w, err)
return
}
err := api.vman.SendSnapshot(volumeID, haves, w)
if err != nil {
switch err {
case volume.ErrNoSuchVolume:
httphelper.ObjectNotFoundError(w, fmt.Sprintf("no volume with id %q", volumeID))
return
default:
httphelper.Error(w, err)
return
}
}
}
示例2: serveGetLeader
// serveGetLeader returns the current leader for a service.
func (h *Handler) serveGetLeader(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
// Process as a stream if that's what the client wants.
if strings.Contains(r.Header.Get("Accept"), "text/event-stream") {
if !h.Store.IsLeader() {
h.redirectToLeader(w, r)
return
}
h.serveStream(w, params, discoverd.EventKindLeader)
return
}
// Otherwise retrieve the current leader.
service := params.ByName("service")
leader, err := h.Store.ServiceLeader(service)
if err != nil {
hh.Error(w, err)
return
} else if leader == nil {
hh.ObjectNotFoundError(w, "no leader found")
return
}
// Write leader to the response.
hh.JSON(w, 200, leader)
}
示例3: EventsHandler
func (api *httpAPI) EventsHandler(w http.ResponseWriter, req *http.Request, params httprouter.Params) {
api.InstallerStackMtx.Lock()
s := api.InstallerStacks[params.ByName("id")]
api.InstallerStackMtx.Unlock()
if s == nil {
httphelper.ObjectNotFoundError(w, "install instance not found")
return
}
eventChan := make(chan *httpEvent)
doneChan, errChan := s.Subscribe(eventChan)
stream := sse.NewStream(w, eventChan, s.logger)
stream.Serve()
s.logger.Info(fmt.Sprintf("streaming events for %s", s.ID))
go func() {
for {
select {
case err := <-errChan:
s.logger.Info(err.Error())
stream.Error(err)
case <-doneChan:
stream.Close()
return
}
}
}()
stream.Wait()
}
示例4: GetCloudRegions
func (api *httpAPI) GetCloudRegions(w http.ResponseWriter, req *http.Request, _ httprouter.Params) {
params := req.URL.Query()
cloud := params.Get("cloud")
if cloud != "digital_ocean" && cloud != "azure" {
httphelper.ObjectNotFoundError(w, "")
return
}
credentialID := params.Get("credential_id")
creds, err := api.Installer.FindCredentials(credentialID)
if err != nil {
httphelper.ValidationError(w, "credential_id", "Invalid credential id")
return
}
var res interface{}
switch cloud {
case "digital_ocean":
res, err = api.Installer.ListDigitalOceanRegions(creds)
case "azure":
res, err = api.Installer.ListAzureRegions(creds)
}
if err != nil {
httphelper.Error(w, err)
return
}
httphelper.JSON(w, 200, res)
}
示例5: servePutInstance
// servePutInstance adds an instance to a service.
func (h *Handler) servePutInstance(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
// Read path parameter.
service := params.ByName("service")
// Read instance from request.
inst := &discoverd.Instance{}
if err := json.NewDecoder(r.Body).Decode(inst); err != nil {
hh.Error(w, err)
return
}
// Ensure instance is valid.
if err := inst.Valid(); err != nil {
hh.ValidationError(w, "", err.Error())
return
}
// Add instance to service in the store.
if err := h.Store.AddInstance(service, inst); err == ErrNotLeader {
h.redirectToLeader(w, r)
return
} else if IsNotFound(err) {
hh.ObjectNotFoundError(w, err.Error())
return
} else if err != nil {
hh.Error(w, err)
return
}
}
示例6: ServeTemplate
func (api *httpAPI) ServeTemplate(w http.ResponseWriter, req *http.Request, params httprouter.Params) {
if req.Header.Get("Accept") == "application/json" {
s, err := api.Installer.FindBaseCluster(params.ByName("id"))
if err != nil {
httphelper.ObjectNotFoundError(w, err.Error())
return
}
httphelper.JSON(w, 200, s)
return
}
manifest, err := api.AssetManifest()
if err != nil {
httphelper.Error(w, err)
api.logger.Debug(err.Error())
return
}
w.Header().Add("Content-Type", "text/html; charset=utf-8")
w.Header().Add("Cache-Control", "max-age=0")
err = htmlTemplate.Execute(w, &htmlTemplateData{
ApplicationJSPath: manifest.Assets["application.js"],
ApplicationCSSPath: manifest.Assets["application.css"],
ReactJSPath: manifest.Assets["react.js"],
})
if err != nil {
httphelper.Error(w, err)
api.logger.Debug(err.Error())
return
}
}
示例7: GetServiceMeta
func (h *httpAPI) GetServiceMeta(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
meta := h.Store.GetServiceMeta(params.ByName("service"))
if meta == nil {
hh.ObjectNotFoundError(w, "service meta not found")
return
}
hh.JSON(w, 200, meta)
}
示例8: GetCert
func (api *httpAPI) GetCert(w http.ResponseWriter, req *http.Request, params httprouter.Params) {
cluster, err := api.Installer.FindBaseCluster(params.ByName("id"))
if err != nil {
httphelper.ObjectNotFoundError(w, err.Error())
return
}
w.Header().Set("Content-Type", "application/x-x509-ca-cert")
w.Header().Set("Content-Disposition", `attachment; filename="flynn-ca.cer"`)
w.Write([]byte(cluster.CACert))
}
示例9: RemoveInstance
func (h *httpAPI) RemoveInstance(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
if err := h.Store.RemoveInstance(params.ByName("service"), params.ByName("instance_id")); err != nil {
if IsNotFound(err) {
hh.ObjectNotFoundError(w, err.Error())
} else {
hh.Error(w, err)
}
return
}
}
示例10: Inspect
func (api *HTTPAPI) Inspect(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
volumeID := ps.ByName("volume_id")
vol := api.vman.GetVolume(volumeID)
if vol == nil {
httphelper.ObjectNotFoundError(w, fmt.Sprintf("no volume with id %q", volumeID))
return
}
httphelper.JSON(w, 200, vol.Info())
}
示例11: Create
func (api *HTTPAPI) Create(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
providerID := ps.ByName("provider_id")
vol, err := api.vman.NewVolumeFromProvider(providerID)
if err == volumemanager.NoSuchProvider {
httphelper.ObjectNotFoundError(w, fmt.Sprintf("no volume provider with id %q", providerID))
return
}
httphelper.JSON(w, 200, vol.Info())
}
示例12: Prompt
func (api *httpAPI) Prompt(w http.ResponseWriter, req *http.Request, params httprouter.Params) {
s, err := api.Installer.FindBaseCluster(params.ByName("id"))
if err != nil {
httphelper.ObjectNotFoundError(w, "cluster not found")
return
}
prompt, err := s.findPrompt(params.ByName("prompt_id"))
if err != nil {
httphelper.ObjectNotFoundError(w, "prompt not found")
return
}
var input *Prompt
if err := httphelper.DecodeJSON(req, &input); err != nil {
httphelper.Error(w, err)
return
}
prompt.Resolve(input)
w.WriteHeader(200)
}
示例13: DeleteCluster
func (api *httpAPI) DeleteCluster(w http.ResponseWriter, req *http.Request, params httprouter.Params) {
if err := api.Installer.DeleteCluster(params.ByName("id")); err != nil {
if err == ClusterNotFoundError {
httphelper.ObjectNotFoundError(w, err.Error())
return
}
httphelper.Error(w, err)
return
}
w.WriteHeader(200)
}
示例14: GetLeader
func (h *httpAPI) GetLeader(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
if strings.Contains(r.Header.Get("Accept"), "text/event-stream") {
h.handleStream(w, params, discoverd.EventKindLeader)
return
}
leader := h.Store.GetLeader(params.ByName("service"))
if leader == nil {
hh.ObjectNotFoundError(w, "no leader found")
return
}
hh.JSON(w, 200, leader)
}
示例15: GetInstances
func (h *httpAPI) GetInstances(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
if strings.Contains(r.Header.Get("Accept"), "text/event-stream") {
h.handleStream(w, params, discoverd.EventKindUp|discoverd.EventKindUpdate|discoverd.EventKindDown)
return
}
instances := h.Store.Get(params.ByName("service"))
if instances == nil {
hh.ObjectNotFoundError(w, "service not found")
return
}
hh.JSON(w, 200, instances)
}