Populating http handler with test scaffolding

This commit is contained in:
Frederick F. Kautz IV 2015-01-18 16:10:48 -08:00
parent 8d20e81295
commit c766f3617b
2 changed files with 29 additions and 8 deletions

View File

@ -1,23 +1,25 @@
package server
import (
"io"
"log"
"net/http"
"reflect"
"github.com/gorilla/mux"
"github.com/minio-io/minio/pkg/httpserver"
"github.com/minio-io/minio/pkg/storage"
storageModule "github.com/minio-io/minio/pkg/storage"
)
var storage *storageModule.Storage
func Start() {
ctrlChans := make([]chan<- string, 0)
statusChans := make([]<-chan error, 0)
ctrlChan, statusChan := storage.Start()
ctrlChan, statusChan, storageSystem := storageModule.Start()
ctrlChans = append(ctrlChans, ctrlChan)
statusChans = append(statusChans, statusChan)
storage = storageSystem
ctrlChan, statusChan = httpserver.Start(getHttpHandler())
ctrlChans = append(ctrlChans, ctrlChan)
@ -58,10 +60,13 @@ func createSelectCases(channels []<-chan error) []reflect.SelectCase {
func getHttpHandler() http.Handler {
mux := mux.NewRouter()
mux.HandleFunc("/", storageHandler)
mux.HandleFunc("/{bucket}/{object:.*}", storageHandler)
return mux
}
func storageHandler(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "MINIO")
vars := mux.Vars(req)
bucket := vars["bucket"]
object := vars["object"]
storage.CopyObjectToWriter(w, bucket, object)
}

View File

@ -1,12 +1,28 @@
package storage
import "errors"
import (
"bytes"
"errors"
"io"
)
func Start() (chan<- string, <-chan error) {
type Storage struct{}
func (storage *Storage) CopyObjectToWriter(w io.Writer, bucket string, object string) error {
// TODO synchronize access
// get object
objectData := "OBJECT: " + bucket + " - " + object
objectBuffer := bytes.NewBufferString(objectData)
// copy object to writer
_, err := io.Copy(w, objectBuffer)
return err
}
func Start() (chan<- string, <-chan error, *Storage) {
ctrlChannel := make(chan string)
errorChannel := make(chan error)
go start(ctrlChannel, errorChannel)
return ctrlChannel, errorChannel
return ctrlChannel, errorChannel, &Storage{}
}
func start(ctrlChannel <-chan string, errorChannel chan<- error) {