本文整理汇总了Golang中github.com/bitly/nsq/util.NewReqParams函数的典型用法代码示例。如果您正苦于以下问题:Golang NewReqParams函数的具体用法?Golang NewReqParams怎么用?Golang NewReqParams使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewReqParams函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: indexHandler
func (s *httpServer) indexHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err.Error())
http.Error(w, "INVALID_REQUEST", 500)
return
}
var topics []string
if len(s.context.nsqadmin.options.NSQLookupdHTTPAddresses) != 0 {
topics, _ = lookupd.GetLookupdTopics(s.context.nsqadmin.options.NSQLookupdHTTPAddresses)
} else {
topics, _ = lookupd.GetNSQDTopics(s.context.nsqadmin.options.NSQDHTTPAddresses)
}
p := struct {
Title string
GraphOptions *GraphOptions
Topics Topics
Version string
}{
Title: "NSQ",
GraphOptions: NewGraphOptions(w, req, reqParams, s.context),
Topics: TopicsFromStrings(topics),
Version: util.BINARY_VERSION,
}
err = templates.T.ExecuteTemplate(w, "index.html", p)
if err != nil {
log.Printf("Template Error %s", err.Error())
http.Error(w, "Template Error", 500)
}
}
示例2: nodesHandler
func nodesHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err.Error())
http.Error(w, "INVALID_REQUEST", 500)
return
}
producers, _ := getLookupdProducers(lookupdHTTPAddrs)
p := struct {
Title string
Version string
GraphOptions *GraphOptions
Producers []*Producer
}{
Title: "NSQ Nodes",
Version: util.BINARY_VERSION,
GraphOptions: NewGraphOptions(w, req, reqParams),
Producers: producers,
}
err = templates.ExecuteTemplate(w, "nodes.html", p)
if err != nil {
log.Printf("Template Error %s", err.Error())
http.Error(w, "Template Error", 500)
}
}
示例3: doTombstoneTopicProducer
func (s *httpServer) doTombstoneTopicProducer(req *http.Request) (interface{}, error) {
reqParams, err := util.NewReqParams(req)
if err != nil {
return nil, util.HTTPError{400, "INVALID_REQUEST"}
}
topicName, err := reqParams.Get("topic")
if err != nil {
return nil, util.HTTPError{400, "MISSING_ARG_TOPIC"}
}
node, err := reqParams.Get("node")
if err != nil {
return nil, util.HTTPError{400, "MISSING_ARG_NODE"}
}
log.Printf("DB: setting tombstone for [email protected]%s of topic(%s)", node, topicName)
producers := s.context.nsqlookupd.DB.FindProducers("topic", topicName, "")
for _, p := range producers {
thisNode := fmt.Sprintf("%s:%d", p.peerInfo.BroadcastAddress, p.peerInfo.HttpPort)
if thisNode == node {
p.Tombstone()
}
}
return nil, nil
}
示例4: statsHandler
func (s *httpServer) statsHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err)
if acceptVersion(req) == 1 {
util.V1ApiResponse(w, 400, "INVALID_REQUEST")
} else {
// this handler always returns 500 for backwards compatibility
util.ApiResponse(w, 500, "INVALID_REQUEST", nil)
}
return
}
formatString, _ := reqParams.Get("format")
jsonFormat := formatString == "json"
stats := s.context.nsqd.GetStats()
if !jsonFormat {
s.doTextStats(stats, w)
return
}
if acceptVersion(req) == 1 {
util.V1ApiResponse(w, 200, struct {
Version string `json:"version"`
Topics []TopicStats `json:"topics"`
}{util.BINARY_VERSION, stats})
} else {
util.ApiResponse(w, 200, "OK", struct {
Version string `json:"version"`
Topics []TopicStats `json:"topics"`
}{util.BINARY_VERSION, stats})
}
}
示例5: doLookup
func (s *httpServer) doLookup(req *http.Request) (interface{}, error) {
reqParams, err := util.NewReqParams(req)
if err != nil {
return nil, util.HTTPError{400, "INVALID_REQUEST"}
}
topicName, err := reqParams.Get("topic")
if err != nil {
return nil, util.HTTPError{400, "MISSING_ARG_TOPIC"}
}
registration := s.context.nsqlookupd.DB.FindRegistrations("topic", topicName, "")
if len(registration) == 0 {
return nil, util.HTTPError{404, "TOPIC_NOT_FOUND"}
}
channels := s.context.nsqlookupd.DB.FindRegistrations("channel", topicName, "*").SubKeys()
producers := s.context.nsqlookupd.DB.FindProducers("topic", topicName, "")
producers = producers.FilterByActive(s.context.nsqlookupd.options.InactiveProducerTimeout,
s.context.nsqlookupd.options.TombstoneLifetime)
return map[string]interface{}{
"channels": channels,
"producers": producers.PeerInfo(),
}, nil
}
示例6: tombstoneTopicProducerHandler
func tombstoneTopicProducerHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
util.ApiResponse(w, 500, "INVALID_REQUEST", nil)
return
}
topicName, err := reqParams.Get("topic")
if err != nil {
util.ApiResponse(w, 500, "MISSING_ARG_TOPIC", nil)
return
}
node, err := reqParams.Get("node")
if err != nil {
util.ApiResponse(w, 500, "MISSING_ARG_NODE", nil)
return
}
log.Printf("DB: setting tombstone for [email protected]%s of topic(%s)", node, topicName)
producers := lookupd.DB.FindProducers("topic", topicName, "")
for _, p := range producers {
thisNode := fmt.Sprintf("%s:%d", p.peerInfo.BroadcastAddress, p.peerInfo.HttpPort)
if thisNode == node {
p.Tombstone()
}
}
util.ApiResponse(w, 200, "OK", nil)
}
示例7: doPauseTopic
func (s *httpServer) doPauseTopic(req *http.Request) error {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err)
return httpError{400, "INVALID_REQUEST"}
}
topicName, err := reqParams.Get("topic")
if err != nil {
return httpError{400, "MISSING_ARG_TOPIC"}
}
topic, err := s.context.nsqd.GetExistingTopic(topicName)
if err != nil {
return httpError{404, "TOPIC_NOT_FOUND"}
}
if strings.Contains(req.URL.Path, "unpause") {
err = topic.UnPause()
} else {
err = topic.Pause()
}
if err != nil {
log.Printf("ERROR: failure in %s - %s", req.URL.Path, err)
return httpError{500, "INTERNAL_ERROR"}
}
return nil
}
示例8: deleteChannelHandler
func deleteChannelHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
util.ApiResponse(w, 500, "INVALID_REQUEST", nil)
return
}
topicName, channelName, err := util.GetTopicChannelArgs(reqParams)
if err != nil {
util.ApiResponse(w, 500, err.Error(), nil)
return
}
registrations := lookupd.DB.FindRegistrations("channel", topicName, channelName)
if len(registrations) == 0 {
util.ApiResponse(w, 404, "NOT_FOUND", nil)
return
}
log.Printf("DB: removing channel(%s) from topic(%s)", channelName, topicName)
for _, registration := range registrations {
lookupd.DB.RemoveRegistration(*registration)
}
util.ApiResponse(w, 200, "OK", nil)
}
示例9: doEmptyTopic
func (s *httpServer) doEmptyTopic(req *http.Request) error {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err)
return httpError{400, "INVALID_REQUEST"}
}
topicName, err := reqParams.Get("topic")
if err != nil {
return httpError{400, "MISSING_ARG_TOPIC"}
}
if !util.IsValidTopicName(topicName) {
return httpError{400, "INVALID_TOPIC"}
}
topic, err := s.context.nsqd.GetExistingTopic(topicName)
if err != nil {
return httpError{404, "TOPIC_NOT_FOUND"}
}
err = topic.Empty()
if err != nil {
return httpError{500, "INTERNAL_ERROR"}
}
return nil
}
示例10: putHandler
func putHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err.Error())
util.ApiResponse(w, 500, "INVALID_REQUEST", nil)
return
}
topicName, err := reqParams.Get("topic")
if err != nil {
util.ApiResponse(w, 500, "MISSING_ARG_TOPIC", nil)
return
}
if !nsq.IsValidTopicName(topicName) {
util.ApiResponse(w, 500, "INVALID_ARG_TOPIC", nil)
return
}
if int64(len(reqParams.Body)) > nsqd.options.maxMessageSize {
util.ApiResponse(w, 500, "MSG_TOO_BIG", nil)
return
}
topic := nsqd.GetTopic(topicName)
msg := nsq.NewMessage(<-nsqd.idChan, reqParams.Body)
err = topic.PutMessage(msg)
if err != nil {
util.ApiResponse(w, 500, "NOK", nil)
return
}
w.Header().Set("Content-Length", "2")
io.WriteString(w, "OK")
}
示例11: emptyChannelHandler
func emptyChannelHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err.Error())
util.ApiResponse(w, 500, "INVALID_REQUEST", nil)
return
}
topicName, channelName, err := util.GetTopicChannelArgs(reqParams)
if err != nil {
util.ApiResponse(w, 500, err.Error(), nil)
return
}
topic, err := nsqd.GetExistingTopic(topicName)
if err != nil {
util.ApiResponse(w, 500, "INVALID_TOPIC", nil)
return
}
channel, err := topic.GetExistingChannel(channelName)
if err != nil {
util.ApiResponse(w, 500, "INVALID_CHANNEL", nil)
return
}
err = channel.Empty()
if err != nil {
util.ApiResponse(w, 500, "INTERNAL_ERROR", nil)
return
}
util.ApiResponse(w, 200, "OK", nil)
}
示例12: pauseTopicHandler
func (s *httpServer) pauseTopicHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err.Error())
util.ApiResponse(w, 500, "INVALID_REQUEST", nil)
return
}
topicName, err := reqParams.Get("topic")
if err != nil {
util.ApiResponse(w, 500, "MISSING_ARG_TOPIC", nil)
return
}
topic, err := s.context.nsqd.GetExistingTopic(topicName)
if err != nil {
util.ApiResponse(w, 500, "INVALID_TOPIC", nil)
return
}
if strings.HasPrefix(req.URL.Path, "/pause") {
err = topic.Pause()
} else {
err = topic.UnPause()
}
if err != nil {
log.Printf("ERROR: failure in %s - %s", req.URL.Path, err.Error())
}
util.ApiResponse(w, 200, "OK", nil)
}
示例13: nodesHandler
func (s *httpServer) nodesHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
log.Printf("ERROR: failed to parse request params - %s", err.Error())
http.Error(w, "INVALID_REQUEST", 500)
return
}
producers, _ := lookupd.GetLookupdProducers(s.context.nsqadmin.options.NSQLookupdHTTPAddresses)
p := struct {
Title string
Version string
GraphOptions *GraphOptions
Producers []*lookupd.Producer
Lookupd []string
}{
Title: "NSQ Nodes",
Version: util.BINARY_VERSION,
GraphOptions: NewGraphOptions(w, req, reqParams, s.context),
Producers: producers,
Lookupd: s.context.nsqadmin.options.NSQLookupdHTTPAddresses,
}
err = templates.T.ExecuteTemplate(w, "nodes.html", p)
if err != nil {
log.Printf("Template Error %s", err.Error())
http.Error(w, "Template Error", 500)
}
}
示例14: deleteTopicHandler
func deleteTopicHandler(w http.ResponseWriter, req *http.Request) {
reqParams, err := util.NewReqParams(req)
if err != nil {
util.ApiResponse(w, 500, "INVALID_REQUEST", nil)
return
}
topicName, err := reqParams.Get("topic")
if err != nil {
util.ApiResponse(w, 500, "MISSING_ARG_TOPIC", nil)
return
}
registrations := lookupd.DB.FindRegistrations("channel", topicName, "*")
for _, registration := range registrations {
log.Printf("DB: removing channel(%s) from topic(%s)", registration.SubKey, topicName)
lookupd.DB.RemoveRegistration(*registration)
}
registrations = lookupd.DB.FindRegistrations("topic", topicName, "")
for _, registration := range registrations {
log.Printf("DB: removing topic(%s)", topicName)
lookupd.DB.RemoveRegistration(*registration)
}
util.ApiResponse(w, 200, "OK", nil)
}
示例15: doDeleteTopic
func (s *httpServer) doDeleteTopic(req *http.Request) (interface{}, error) {
reqParams, err := util.NewReqParams(req)
if err != nil {
return nil, util.HTTPError{400, "INVALID_REQUEST"}
}
topicName, err := reqParams.Get("topic")
if err != nil {
return nil, util.HTTPError{400, "MISSING_ARG_TOPIC"}
}
registrations := s.context.nsqlookupd.DB.FindRegistrations("channel", topicName, "*")
for _, registration := range registrations {
log.Printf("DB: removing channel(%s) from topic(%s)", registration.SubKey, topicName)
s.context.nsqlookupd.DB.RemoveRegistration(registration)
}
registrations = s.context.nsqlookupd.DB.FindRegistrations("topic", topicName, "")
for _, registration := range registrations {
log.Printf("DB: removing topic(%s)", topicName)
s.context.nsqlookupd.DB.RemoveRegistration(registration)
}
return nil, nil
}