parent
2721bef8da
commit
674631f9d8
@ -1,45 +0,0 @@ |
||||
/* |
||||
* Minio Cloud Storage, (C) 2015 Minio, Inc. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package main |
||||
|
||||
import ( |
||||
"net/http" |
||||
"runtime" |
||||
) |
||||
|
||||
// VersionArgs basic json RPC params
|
||||
type VersionArgs struct{} |
||||
|
||||
// VersionService get version service
|
||||
type VersionService struct{} |
||||
|
||||
// VersionReply version reply
|
||||
type VersionReply struct { |
||||
Version string `json:"version"` |
||||
BuildDate string `json:"buildDate"` |
||||
Architecture string `json:"arch"` |
||||
OperatingSystem string `json:"os"` |
||||
} |
||||
|
||||
// Get version
|
||||
func (v *VersionService) Get(r *http.Request, args *VersionArgs, reply *VersionReply) error { |
||||
reply.Version = "0.0.1" |
||||
reply.BuildDate = minioVersion |
||||
reply.Architecture = runtime.GOARCH |
||||
reply.OperatingSystem = runtime.GOOS |
||||
return nil |
||||
} |
@ -1,132 +0,0 @@ |
||||
/* |
||||
* Minio Cloud Storage, (C) 2014 Minio, Inc. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package main |
||||
<<<<<<< HEAD |
||||
|
||||
import ( |
||||
"crypto/tls" |
||||
"fmt" |
||||
"net" |
||||
"net/http" |
||||
"os" |
||||
"strings" |
||||
|
||||
"github.com/minio/minio/pkg/minhttp" |
||||
"github.com/minio/minio/pkg/probe" |
||||
) |
||||
|
||||
func configureServer(conf APIConfig, httpServer *http.Server) *probe.Error { |
||||
if conf.TLS { |
||||
var err error |
||||
httpServer.TLSConfig = &tls.Config{} |
||||
httpServer.TLSConfig.Certificates = make([]tls.Certificate, 1) |
||||
httpServer.TLSConfig.Certificates[0], err = tls.LoadX509KeyPair(conf.CertFile, conf.KeyFile) |
||||
if err != nil { |
||||
return probe.NewError(err) |
||||
} |
||||
} |
||||
|
||||
host, port, err := net.SplitHostPort(conf.Address) |
||||
if err != nil { |
||||
return probe.NewError(err) |
||||
} |
||||
|
||||
var hosts []string |
||||
switch { |
||||
case host != "": |
||||
hosts = append(hosts, host) |
||||
default: |
||||
addrs, err := net.InterfaceAddrs() |
||||
if err != nil { |
||||
return probe.NewError(err) |
||||
} |
||||
for _, addr := range addrs { |
||||
if addr.Network() == "ip+net" { |
||||
host := strings.Split(addr.String(), "/")[0] |
||||
if ip := net.ParseIP(host); ip.To4() != nil { |
||||
hosts = append(hosts, host) |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
for _, host := range hosts { |
||||
if conf.TLS { |
||||
fmt.Printf("Starting minio server on: https://%s:%s, PID: %d\n", host, port, os.Getpid()) |
||||
} else { |
||||
fmt.Printf("Starting minio server on: http://%s:%s, PID: %d\n", host, port, os.Getpid()) |
||||
} |
||||
} |
||||
return nil |
||||
} |
||||
|
||||
// getAPI server instance
|
||||
func getAPIServer(conf APIConfig, apiHandler http.Handler) (*http.Server, *probe.Error) { |
||||
// Minio server config
|
||||
httpServer := &http.Server{ |
||||
Addr: conf.Address, |
||||
Handler: apiHandler, |
||||
MaxHeaderBytes: 1 << 20, |
||||
} |
||||
if err := configureServer(conf, httpServer); err != nil { |
||||
return nil, err |
||||
} |
||||
return httpServer, nil |
||||
} |
||||
|
||||
// Start ticket master
|
||||
func startTM(a MinioAPI) { |
||||
for { |
||||
for op := range a.OP { |
||||
op.ProceedCh <- struct{}{} |
||||
} |
||||
} |
||||
} |
||||
|
||||
func getServerRPCServer(conf APIConfig, handler http.Handler) (*http.Server, *probe.Error) { |
||||
httpServer := &http.Server{ |
||||
Addr: conf.AddressRPC, |
||||
Handler: handler, |
||||
MaxHeaderBytes: 1 << 20, |
||||
} |
||||
if err := configureServer(conf, httpServer); err != nil { |
||||
return nil, err |
||||
} |
||||
return httpServer, nil |
||||
} |
||||
|
||||
// Start starts a s3 compatible cloud storage server
|
||||
func StartServer(conf APIConfig) *probe.Error { |
||||
apiHandler, minioAPI := getAPIHandler(conf) |
||||
apiServer, err := getAPIServer(conf, apiHandler) |
||||
if err != nil { |
||||
return err.Trace() |
||||
} |
||||
// start ticket master
|
||||
go startTM(minioAPI) |
||||
rpcHandler := getRPCServerHandler() |
||||
rpcServer, err := getServerRPCServer(conf, rpcHandler) |
||||
if err != nil { |
||||
return err.Trace() |
||||
} |
||||
if err := minhttp.ListenAndServeLimited(conf.RateLimit, apiServer, rpcServer); err != nil { |
||||
return err.Trace() |
||||
} |
||||
return nil |
||||
} |
||||
======= |
||||
>>>>>>> Consolidating more codebase and cleanup in server / controller |
Loading…
Reference in new issue