diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d78404cb5..6cdb4790e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -54,7 +54,8 @@ Building Libraries - Run `make save` from top-level directory (or `godep restore && godep save ./...`). * When you're ready to create a pull request, be sure to: - Have test cases for the new code. If you have questions about how to do it, please ask in your pull request. - - Run `go fmt` + - Run `go fmt + - Run `golint` (`go get github.com/golang/lint/golint`) - Squash your commits into a single commit. `git rebase -i`. It's okay to force update your pull request. - Make sure `go test -race ./...` and `go build` completes. * Read [Effective Go](https://github.com/golang/go/wiki/CodeReviewComments) article from Golang project diff --git a/main.go b/main.go index eb0790de5..0af36198b 100644 --- a/main.go +++ b/main.go @@ -27,14 +27,14 @@ import ( func getStorageType(input string) server.StorageType { switch { case input == "file": - return server.FileStorage + return server.File case input == "inmemory": - return server.InMemoryStorage + return server.InMemory default: { log.Println("Unknown storage type:", input) log.Println("Choosing default storage type as 'file'..") - return server.FileStorage + return server.File } } } @@ -51,24 +51,24 @@ func runCmd(c *cli.Context) { } tls := (certFile != "" && keyFile != "") storageType := getStorageType(storageTypeStr) - var serverConfigs []server.ServerConfig - apiServerConfig := server.ServerConfig{ + var serverConfigs []server.Config + apiServerConfig := server.Config{ Domain: domain, Address: apiaddress, - Tls: tls, + TLS: tls, CertFile: certFile, KeyFile: keyFile, - ApiType: server.MinioApi{ + APIType: server.MinioAPI{ StorageType: storageType, }, } - webUIServerConfig := server.ServerConfig{ + webUIServerConfig := server.Config{ Domain: domain, Address: webaddress, - Tls: false, + TLS: false, CertFile: "", KeyFile: "", - ApiType: server.WebUIApi{ + APIType: server.WebAPI{ Websocket: false, }, } diff --git a/pkg/server/httpserver/httpserver.go b/pkg/server/httpserver/httpserver.go index 1f83c0d9d..eeb3ae3ad 100644 --- a/pkg/server/httpserver/httpserver.go +++ b/pkg/server/httpserver/httpserver.go @@ -34,10 +34,10 @@ type Config struct { type Server struct{} // Start http server -func Start(handler http.Handler, config HttpServerConfig) (chan<- string, <-chan error, *Server) { +func Start(handler http.Handler, config Config) (chan<- string, <-chan error, *Server) { ctrlChannel := make(chan string) errorChannel := make(chan error) - server := HttpServer{} + server := Server{} go start(ctrlChannel, errorChannel, handler, config, &server) return ctrlChannel, errorChannel, &server } diff --git a/pkg/server/server.go b/pkg/server/server.go index ccd4e92c5..4fcbdea58 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -45,8 +45,8 @@ type MinioAPI struct { StorageType StorageType } -// WebUIApi - webui related -type WebUIApi struct { +// WebAPI - webui related +type WebAPI struct { Websocket bool // TODO } @@ -66,15 +66,15 @@ func getHTTPChannels(configs []Config) (ctrlChans []chan<- string, statusChans [ var statusChan <-chan error for _, config := range configs { - switch k := config.ApiType.(type) { - case MinioApi: + switch k := config.APIType.(type) { + case MinioAPI: { // configure web server var storage mstorage.Storage var httpConfig = httpserver.Config{} httpConfig.Address = config.Address httpConfig.Websocket = false - httpConfig.TLS = config.Tls + httpConfig.TLS = config.TLS if config.CertFile != "" { httpConfig.CertFile = config.CertFile @@ -85,22 +85,22 @@ func getHTTPChannels(configs []Config) (ctrlChans []chan<- string, statusChans [ ctrlChans, statusChans, storage = getStorageChannels(k.StorageType) // start minio api in a web server, pass storage driver into it - ctrlChan, statusChan, _ = httpserver.Start(minioapi.HttpHandler(config.Domain, storage), httpConfig) + ctrlChan, statusChan, _ = httpserver.Start(minioapi.HTTPHandler(config.Domain, storage), httpConfig) ctrlChans = append(ctrlChans, ctrlChan) statusChans = append(statusChans, statusChan) } - case WebUIApi: + case WebAPI: { var httpConfig = httpserver.Config{} httpConfig.Address = config.Address - httpConfig.TLS = config.Tls + httpConfig.TLS = config.TLS httpConfig.CertFile = config.CertFile httpConfig.KeyFile = config.KeyFile httpConfig.Websocket = k.Websocket - ctrlChan, statusChan, _ = httpserver.Start(webuiapi.HttpHandler(), httpConfig) + ctrlChan, statusChan, _ = httpserver.Start(webuiapi.HTTPHandler(), httpConfig) ctrlChans = append(ctrlChans, ctrlChan) statusChans = append(statusChans, statusChan) diff --git a/pkg/storage/donut/erasure/erasure_v1/erasure.go b/pkg/storage/donut/erasure/erasure_v1/erasure.go index 4281934ef..476a3ae10 100644 --- a/pkg/storage/donut/erasure/erasure_v1/erasure.go +++ b/pkg/storage/donut/erasure/erasure_v1/erasure.go @@ -24,8 +24,10 @@ import ( "io" ) +// Metadata map type Metadata map[string]string +// DataHeader struct type DataHeader struct { Key string Part uint8 @@ -33,13 +35,16 @@ type DataHeader struct { EncoderParams EncoderParams } +// EncoderTechnique type type EncoderTechnique int +// EncoderTechniques const ( Vandermonde EncoderTechnique = iota Cauchy ) +// EncoderParams struct type EncoderParams struct { Length uint32 K uint8 @@ -47,7 +52,7 @@ type EncoderParams struct { Technique EncoderTechnique } -// populate new header +// NewHeader populate new header func NewHeader(key string, part uint8, metadata Metadata, encoderParams EncoderParams) DataHeader { header := DataHeader{} header.Key = key @@ -62,7 +67,7 @@ func NewHeader(key string, part uint8, metadata Metadata, encoderParams EncoderP return header } -// validate populated header +// ValidateHeader validate populated header func ValidateHeader(header DataHeader) bool { if header.Key == "" || header.Part < 0 || len(header.Metadata) < 2 { return false @@ -75,7 +80,7 @@ func ValidateHeader(header DataHeader) bool { return true } -// Write data, returns error upon any failure +// WriteData write data, returns error upon any failure func WriteData(target io.Writer, header DataHeader, data io.Reader) error { if !ValidateHeader(header) { return fmt.Errorf("Invalid header") diff --git a/pkg/storage/donut/fragment/fragment_v1/fragment.go b/pkg/storage/donut/fragment/fragment_v1/fragment.go index 9d3080d68..9326b00ac 100644 --- a/pkg/storage/donut/fragment/fragment_v1/fragment.go +++ b/pkg/storage/donut/fragment/fragment_v1/fragment.go @@ -44,30 +44,49 @@ import ( */ +// Magic list var ( MagicMINI = binary.LittleEndian.Uint32([]byte{'M', 'I', 'N', 'I'}) MagicDATA = binary.LittleEndian.Uint32([]byte{'D', 'A', 'T', 'A'}) MagicINIM = binary.LittleEndian.Uint32([]byte{'I', 'N', 'I', 'M'}) ) +// DonutFrameHeader - +// -------------- +// BlockStart uint32 +// VersionMajor uint32 +// Reserved uint64 +// DataLen uint64 +// -------------- type DonutFrameHeader struct { MagicMINI uint32 Version uint32 Reserved uint64 DataLength uint64 } + +// Crc32c checksum type Crc32c uint32 + +// Sha512 checksum type Sha512 [sha512.Size]byte +// DonutFrameFooter - +// -------------- +// DataSha512 [64]byte +// BlockLen uint64 +// BlockEnd uint32 +// -------------- type DonutFrameFooter struct { DataSha512 Sha512 OffsetToMINI uint64 MagicINIM uint32 } +// Data buffer type Data bytes.Buffer -// Write Donut format to input io.Writer, returns error upon any failure +// WriteFrame - write donut format to input io.Writer, returns error upon any failure func WriteFrame(target io.Writer, reader io.Reader, length uint64) error { // write header header := DonutFrameHeader{ diff --git a/pkg/utils/config/config_test.go b/pkg/utils/config/config_test.go index 8485cd1bb..9670d66ba 100644 --- a/pkg/utils/config/config_test.go +++ b/pkg/utils/config/config_test.go @@ -46,8 +46,8 @@ func (s *MySuite) TestConfig(c *C) { } conf.configLock = new(sync.RWMutex) - accesskey, _ := keys.GenerateRandomAlphaNumeric(keys.MINIO_ACCESS_ID) - secretkey, _ := keys.GenerateRandomBase64(keys.MINIO_SECRET_ID) + accesskey, _ := keys.GenerateRandomAlphaNumeric(keys.MinioAccessID) + secretkey, _ := keys.GenerateRandomBase64(keys.MinioSecretID) user := User{ Name: "gnubot", @@ -62,8 +62,8 @@ func (s *MySuite) TestConfig(c *C) { err = conf.ReadConfig() c.Assert(err, IsNil) - accesskey, _ = keys.GenerateRandomAlphaNumeric(keys.MINIO_ACCESS_ID) - secretkey, _ = keys.GenerateRandomBase64(keys.MINIO_SECRET_ID) + accesskey, _ = keys.GenerateRandomAlphaNumeric(keys.MinioAccessID) + secretkey, _ = keys.GenerateRandomBase64(keys.MinioSecretID) user = User{ Name: "minio", AccessKey: string(accesskey), diff --git a/pkg/utils/crypto/x509/generator_test.go b/pkg/utils/crypto/x509/generator_test.go index 3ac81d70b..c342e5a2c 100644 --- a/pkg/utils/crypto/x509/generator_test.go +++ b/pkg/utils/crypto/x509/generator_test.go @@ -31,7 +31,7 @@ var _ = Suite(&MySuite{}) func (s *MySuite) Testing(c *C) { certObj := Certificates{} - params := X509Params{ + params := Params{ Hostname: "example.com", IsCA: false, EcdsaCurve: "P224",