Merge pull request #557 from harshavardhana/pr_out_make_builddate_universal

This commit is contained in:
Harshavardhana 2015-04-30 21:19:04 -07:00
commit c01fb92eca
6 changed files with 20 additions and 37 deletions

View file

@ -49,7 +49,7 @@ minio: pre-build build-all test-all
install: minio
@echo "Installing minio:"
@godep go install -a -ldflags "-X main.BuildDate `date '+%FT%T.%N%:z'`" github.com/minio-io/minio
@godep go install -a -ldflags "-X main.BuildDate `date --universal '+%FT%T.%N%:z'`" github.com/minio-io/minio
save: restore
@godep save ./...

14
main.go
View file

@ -93,11 +93,11 @@ EXAMPLES:
}
var flags = []cli.Flag{
cli.StringFlag{
Name: "domain",
Value: "",
Usage: "domain used for routing incoming API requests",
},
// cli.StringFlag{
// Name: "domain",
// Value: "",
// Usage: "domain used for routing incoming API requests",
// },
cli.StringFlag{
Name: "api-address",
Value: ":9000",
@ -191,7 +191,7 @@ func getAPIServerConfig(c *cli.Context) httpserver.Config {
}
tls := (certFile != "" && keyFile != "")
return httpserver.Config{
Domain: c.GlobalString("domain"),
// Domain: c.GlobalString("domain"),
Address: c.GlobalString("api-address"),
TLS: tls,
CertFile: certFile,
@ -201,7 +201,7 @@ func getAPIServerConfig(c *cli.Context) httpserver.Config {
func getWebServerConfigFunc(c *cli.Context) server.StartServerFunc {
config := httpserver.Config{
Domain: c.GlobalString("domain"),
// Domain: c.GlobalString("domain"),
Address: c.GlobalString("web-address"),
TLS: false,
CertFile: "",

View file

@ -47,6 +47,7 @@ func pathMux(api minioAPI, mux *router.Router) *router.Router {
return mux
}
/*
// Domain based routing
func domainMux(api minioAPI, mux *router.Router) *router.Router {
mux.HandleFunc("/",
@ -63,15 +64,16 @@ func domainMux(api minioAPI, mux *router.Router) *router.Router {
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)
// case api.domain != "":
// s := mux.Host(api.domain).Subrouter()
// return domainMux(api, s)
}
return nil
}

View file

@ -24,13 +24,13 @@ import (
"errors"
"fmt"
"io"
"net"
"net/http"
"net/url"
"sort"
"strings"
"time"
"github.com/gorilla/mux"
"github.com/minio-io/minio/pkg/api/config"
)
@ -175,8 +175,8 @@ var subResList = []string{
// <HTTP-Request-URI, from the protocol name up to the query string> +
// [ sub-resource, if present. For example "?acl", "?location", "?logging", or "?torrent"];
func writeCanonicalizedResource(buf *bytes.Buffer, req *http.Request) {
// Grab bucket name from hostname
bucket := bucketFromHostname(req)
vars := mux.Vars(req)
bucket := vars["bucket"]
if bucket != "" {
buf.WriteByte('/')
buf.WriteString(bucket)
@ -203,23 +203,3 @@ func writeCanonicalizedResource(buf *bytes.Buffer, req *http.Request) {
}
}
}
// Convert subdomain http request into bucketname if possible
func bucketFromHostname(req *http.Request) string {
host, _, _ := net.SplitHostPort(req.Host)
// Verify incoming request if only IP with no bucket subdomain
if net.ParseIP(host) != nil {
return ""
}
if host == "" {
host = req.URL.Host
}
// Grab the bucket from the incoming hostname
host = strings.TrimSpace(host)
hostParts := strings.Split(host, ".")
if len(hostParts) > 2 {
return hostParts[0]
}
return ""
}

View file

@ -29,7 +29,7 @@ type Config struct {
CertFile string
KeyFile string
Websocket bool // TODO
Domain string
// Domain string
}
// Server - http server related

View file

@ -41,7 +41,8 @@ type MemoryFactory struct {
func (f MemoryFactory) GetStartServerFunc() StartServerFunc {
return func() (chan<- string, <-chan error) {
_, _, driver := memory.Start(f.MaxMemory, 1*time.Hour)
ctrl, status, _ := httpserver.Start(api.HTTPHandler(f.Domain, driver), f.Config)
//ctrl, status, _ := httpserver.Start(api.HTTPHandler(f.Domain, driver), f.Config)
ctrl, status, _ := httpserver.Start(api.HTTPHandler("", driver), f.Config)
return ctrl, status
}
}
@ -69,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(f.Domain, driver), f.Config)
ctrl, status, _ := httpserver.Start(api.HTTPHandler("", driver), f.Config)
return ctrl, status
}
}