mirror of
https://github.com/minio/minio.git
synced 2025-01-13 16:03:21 -05:00
Merge pull request #573 from harshavardhana/pr_out_get_rid_of_sub_domain_code_and_some_other_formatting_changes
This commit is contained in:
commit
f1dbdbd234
17
main.go
17
main.go
@ -61,10 +61,10 @@ USAGE:
|
||||
minio mode {{.Name}} limit SIZE expire TIME
|
||||
|
||||
EXAMPLES:
|
||||
1. Limit maximum memory usage to 64MB with 1h expiration
|
||||
1. Limit maximum memory usage to 64MB with 1 hour expiration
|
||||
$ minio mode {{.Name}} limit 64MB expire 1h
|
||||
|
||||
2. Limit maximum memory usage to 4GB with no time expiration
|
||||
2. Limit maximum memory usage to 4GB with no expiration
|
||||
$ minio mode {{.Name}} limit 4GB
|
||||
`,
|
||||
}
|
||||
@ -93,11 +93,6 @@ EXAMPLES:
|
||||
}
|
||||
|
||||
var flags = []cli.Flag{
|
||||
// cli.StringFlag{
|
||||
// Name: "domain",
|
||||
// Value: "",
|
||||
// Usage: "domain used for routing incoming API requests",
|
||||
// },
|
||||
cli.StringFlag{
|
||||
Name: "api-address",
|
||||
Value: ":9000",
|
||||
@ -154,7 +149,7 @@ func runMemory(c *cli.Context) {
|
||||
case "limit":
|
||||
{
|
||||
if maxMemorySet {
|
||||
Fatalf("Limit should be set only once")
|
||||
Fatalln("Limit should be set only once")
|
||||
}
|
||||
args = args.Tail()
|
||||
maxMemory, err = humanize.ParseBytes(args.First())
|
||||
@ -170,7 +165,7 @@ func runMemory(c *cli.Context) {
|
||||
case "expire":
|
||||
{
|
||||
if expirationSet {
|
||||
Fatalf("Expiration should be set only once")
|
||||
Fatalln("Expiration should be set only once")
|
||||
}
|
||||
args = args.Tail()
|
||||
expiration, err = time.ParseDuration(args.First())
|
||||
@ -203,7 +198,7 @@ func runMemory(c *cli.Context) {
|
||||
func runDonut(c *cli.Context) {
|
||||
u, err := user.Current()
|
||||
if err != nil {
|
||||
Fatalln("Unable to determine current user. Reason: %s\n", err)
|
||||
Fatalf("Unable to determine current user. Reason: %s\n", err)
|
||||
}
|
||||
if len(c.Args()) < 1 {
|
||||
cli.ShowCommandHelpAndExit(c, "donut", 1) // last argument is exit code
|
||||
@ -238,7 +233,6 @@ func getAPIServerConfig(c *cli.Context) httpserver.Config {
|
||||
}
|
||||
tls := (certFile != "" && keyFile != "")
|
||||
return httpserver.Config{
|
||||
// Domain: c.GlobalString("domain"),
|
||||
Address: c.GlobalString("api-address"),
|
||||
TLS: tls,
|
||||
CertFile: certFile,
|
||||
@ -248,7 +242,6 @@ func getAPIServerConfig(c *cli.Context) httpserver.Config {
|
||||
|
||||
func getWebServerConfigFunc(c *cli.Context) server.StartServerFunc {
|
||||
config := httpserver.Config{
|
||||
// Domain: c.GlobalString("domain"),
|
||||
Address: c.GlobalString("web-address"),
|
||||
TLS: false,
|
||||
CertFile: "",
|
||||
|
@ -30,12 +30,16 @@ import (
|
||||
|
||||
// private use
|
||||
type minioAPI struct {
|
||||
domain string
|
||||
driver drivers.Driver
|
||||
}
|
||||
|
||||
// Path based routing
|
||||
func pathMux(api minioAPI, mux *router.Router) *router.Router {
|
||||
// HTTPHandler - http wrapper handler
|
||||
func HTTPHandler(driver drivers.Driver) http.Handler {
|
||||
var mux *router.Router
|
||||
var api = minioAPI{}
|
||||
api.driver = driver
|
||||
|
||||
mux = router.NewRouter()
|
||||
mux.HandleFunc("/", api.listBucketsHandler).Methods("GET")
|
||||
mux.HandleFunc("/{bucket}", api.listObjectsHandler).Methods("GET")
|
||||
mux.HandleFunc("/{bucket}", api.putBucketHandler).Methods("PUT")
|
||||
@ -44,53 +48,9 @@ func pathMux(api minioAPI, mux *router.Router) *router.Router {
|
||||
mux.HandleFunc("/{bucket}/{object:.*}", api.headObjectHandler).Methods("HEAD")
|
||||
mux.HandleFunc("/{bucket}/{object:.*}", api.putObjectHandler).Methods("PUT")
|
||||
|
||||
return mux
|
||||
}
|
||||
|
||||
/*
|
||||
// Domain based routing
|
||||
func domainMux(api minioAPI, mux *router.Router) *router.Router {
|
||||
mux.HandleFunc("/",
|
||||
api.listObjectsHandler).Host("{bucket}" + "." + api.domain).Methods("GET")
|
||||
mux.HandleFunc("/{object:.*}",
|
||||
api.getObjectHandler).Host("{bucket}" + "." + api.domain).Methods("GET")
|
||||
mux.HandleFunc("/{object:.*}",
|
||||
api.headObjectHandler).Host("{bucket}" + "." + api.domain).Methods("HEAD")
|
||||
mux.HandleFunc("/{object:.*}",
|
||||
api.putObjectHandler).Host("{bucket}" + "." + api.domain).Methods("PUT")
|
||||
mux.HandleFunc("/", api.listBucketsHandler).Methods("GET")
|
||||
mux.HandleFunc("/{bucket}", api.putBucketHandler).Methods("PUT")
|
||||
mux.HandleFunc("/{bucket}", api.headBucketHandler).Methods("HEAD")
|
||||
|
||||
return mux
|
||||
}
|
||||
*/
|
||||
|
||||
// Get proper router based on domain availability
|
||||
func getMux(api minioAPI, mux *router.Router) *router.Router {
|
||||
switch true {
|
||||
case api.domain == "":
|
||||
return pathMux(api, mux)
|
||||
// case api.domain != "":
|
||||
// s := mux.Host(api.domain).Subrouter()
|
||||
// return domainMux(api, s)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// HTTPHandler - http wrapper handler
|
||||
func HTTPHandler(domain string, driver drivers.Driver) http.Handler {
|
||||
var mux *router.Router
|
||||
var api = minioAPI{}
|
||||
api.driver = driver
|
||||
api.domain = domain
|
||||
|
||||
r := router.NewRouter()
|
||||
mux = getMux(api, r)
|
||||
|
||||
var conf = config.Config{}
|
||||
if err := conf.SetupConfig(); err != nil {
|
||||
log.Fatal(iodine.New(err, map[string]string{"domain": domain}))
|
||||
log.Fatal(iodine.New(err, nil))
|
||||
}
|
||||
h := timeValidityHandler(mux)
|
||||
h = ignoreResourcesHandler(h)
|
||||
|
@ -135,7 +135,7 @@ func (s *MySuite) TestNonExistantBucket(c *C) {
|
||||
}
|
||||
}
|
||||
driver := s.Driver
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -173,7 +173,7 @@ func (s *MySuite) TestEmptyObject(c *C) {
|
||||
typedDriver.On("GetObjectMetadata", "bucket", "object", "").Return(metadata, nil).Once()
|
||||
typedDriver.On("GetObject", mock.Anything, "bucket", "object").Return(int64(0), nil).Once()
|
||||
typedDriver.On("GetObjectMetadata", "bucket", "object", "").Return(metadata, nil).Once()
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -216,7 +216,7 @@ func (s *MySuite) TestBucket(c *C) {
|
||||
typedDriver.On("CreateBucket", "bucket", "private").Return(nil).Once()
|
||||
typedDriver.On("GetBucketMetadata", "bucket").Return(metadata, nil).Once()
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -256,7 +256,7 @@ func (s *MySuite) TestObject(c *C) {
|
||||
typedDriver.SetGetObjectWriter("bucket", "object", []byte("hello world"))
|
||||
typedDriver.On("GetObject", mock.Anything, "bucket", "object").Return(int64(0), nil).Once()
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -315,7 +315,7 @@ func (s *MySuite) TestMultipleObjects(c *C) {
|
||||
Md5: "5eb63bbbe01eeed093cb22bb8f5acdc3", // TODO correct md5
|
||||
Size: 11,
|
||||
}
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -445,7 +445,7 @@ func (s *MySuite) TestNotImplemented(c *C) {
|
||||
}
|
||||
}
|
||||
driver := s.Driver
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -470,7 +470,7 @@ func (s *MySuite) TestHeader(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
typedDriver.AssertExpectations(c)
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -539,7 +539,7 @@ func (s *MySuite) TestPutBucket(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -576,7 +576,7 @@ func (s *MySuite) TestPutObject(c *C) {
|
||||
}
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -665,7 +665,7 @@ func (s *MySuite) TestListBuckets(c *C) {
|
||||
}
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -803,7 +803,7 @@ func (s *MySuite) TestXMLNameNotInBucketListJson(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -836,7 +836,7 @@ func (s *MySuite) TestXMLNameNotInObjectListJson(c *C) {
|
||||
}
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -881,7 +881,7 @@ func (s *MySuite) TestContentTypePersists(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -996,7 +996,7 @@ func (s *MySuite) TestPartialContent(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
|
||||
@ -1054,7 +1054,7 @@ func (s *MySuite) TestListObjectsHandlerErrors(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
client := http.Client{}
|
||||
@ -1121,7 +1121,7 @@ func (s *MySuite) TestListBucketsErrors(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
client := http.Client{}
|
||||
@ -1158,7 +1158,7 @@ func (s *MySuite) TestPutBucketErrors(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
client := http.Client{}
|
||||
@ -1218,7 +1218,7 @@ func (s *MySuite) TestGetObjectErrors(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
client := http.Client{}
|
||||
@ -1291,7 +1291,7 @@ func (s *MySuite) TestGetObjectRangeErrors(c *C) {
|
||||
driver := s.Driver
|
||||
typedDriver := s.MockDriver
|
||||
|
||||
httpHandler := HTTPHandler("", driver)
|
||||
httpHandler := HTTPHandler(driver)
|
||||
testServer := httptest.NewServer(httpHandler)
|
||||
defer testServer.Close()
|
||||
client := http.Client{}
|
||||
|
@ -24,12 +24,10 @@ import (
|
||||
|
||||
// Config - http server config
|
||||
type Config struct {
|
||||
Address string
|
||||
TLS bool
|
||||
CertFile string
|
||||
KeyFile string
|
||||
Websocket bool // TODO
|
||||
// Domain string
|
||||
Address string
|
||||
TLS bool
|
||||
CertFile string
|
||||
KeyFile string
|
||||
}
|
||||
|
||||
// Server - http server related
|
||||
@ -59,11 +57,12 @@ func start(ctrlChannel <-chan string, errorChannel chan<- error,
|
||||
}
|
||||
log.Println("Starting HTTP Server on:", config.Address)
|
||||
|
||||
if config.TLS {
|
||||
switch {
|
||||
default:
|
||||
err = httpServer.ListenAndServe()
|
||||
case config.TLS == true:
|
||||
httpServer.TLSConfig = getDefaultTLSConfig()
|
||||
err = httpServer.ListenAndServeTLS(config.CertFile, config.KeyFile)
|
||||
} else {
|
||||
err = httpServer.ListenAndServe()
|
||||
}
|
||||
errorChannel <- err
|
||||
close(errorChannel)
|
||||
|
@ -42,8 +42,7 @@ type MemoryFactory struct {
|
||||
func (f MemoryFactory) GetStartServerFunc() StartServerFunc {
|
||||
return func() (chan<- string, <-chan error) {
|
||||
_, _, driver := memory.Start(f.MaxMemory, f.Expiration)
|
||||
//ctrl, status, _ := httpserver.Start(api.HTTPHandler(f.Domain, driver), f.Config)
|
||||
ctrl, status, _ := httpserver.Start(api.HTTPHandler("", driver), f.Config)
|
||||
ctrl, status, _ := httpserver.Start(api.HTTPHandler(driver), f.Config)
|
||||
return ctrl, status
|
||||
}
|
||||
}
|
||||
@ -71,7 +70,7 @@ type DonutFactory struct {
|
||||
func (f DonutFactory) GetStartServerFunc() StartServerFunc {
|
||||
return func() (chan<- string, <-chan error) {
|
||||
_, _, driver := donut.Start(f.Paths)
|
||||
ctrl, status, _ := httpserver.Start(api.HTTPHandler("", driver), f.Config)
|
||||
ctrl, status, _ := httpserver.Start(api.HTTPHandler(driver), f.Config)
|
||||
return ctrl, status
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user