control: Fix controller CLI handling with distributed server object layer.

Object layer initialization is done lazily fix it.
master
Harshavardhana 8 years ago
parent 8797952409
commit bb0466f4ce
  1. 4
      cmd/controller-handlers.go
  2. 2
      cmd/controller-router.go
  3. 2
      cmd/lock-rpc-server.go
  4. 2
      cmd/net-rpc-client.go
  5. 9
      cmd/routers.go
  6. 4
      cmd/storage-rpc-client.go
  7. 2
      cmd/storage-rpc-server-datatypes.go
  8. 4
      cmd/storage-rpc-server.go
  9. 2
      cmd/utils_nix_test.go
  10. 2
      cmd/utils_windows_test.go

@ -34,7 +34,7 @@ type HealListReply struct {
// ListObjects - list all objects that needs healing.
func (c *controllerAPIHandlers) ListObjectsHeal(arg *HealListArgs, reply *HealListReply) error {
objAPI := c.ObjectAPI
objAPI := c.ObjectAPI()
if objAPI == nil {
return errInvalidArgument
}
@ -61,7 +61,7 @@ type HealObjectReply struct{}
// HealObject - heal the object.
func (c *controllerAPIHandlers) HealObject(arg *HealObjectArgs, reply *HealObjectReply) error {
objAPI := c.ObjectAPI
objAPI := c.ObjectAPI()
if objAPI == nil {
return errInvalidArgument
}

@ -38,5 +38,5 @@ func registerControlRPCRouter(mux *router.Router, ctrlHandlers *controllerAPIHan
// Handler for object healing.
type controllerAPIHandlers struct {
ObjectAPI ObjectLayer
ObjectAPI func() ObjectLayer
}

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"fmt"

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"net/rpc"

@ -106,16 +106,23 @@ func configureServerHandler(srvCmdConfig serverCmdConfig) http.Handler {
ObjectAPI: newObjectLayerFn,
}
// Initialize Controller.
ctrlHandlers := &controllerAPIHandlers{
ObjectAPI: newObjectLayerFn,
}
// Initialize router.
mux := router.NewRouter()
// Register all routers.
registerStorageRPCRouters(mux, storageRPCs)
// Initialize distributed NS lock.
initDistributedNSLock(mux, srvCmdConfig)
// FIXME: till net/rpc auth is brought in "minio control" can be enabled only though
// this env variable.
if os.Getenv("MINIO_CONTROL") != "" {
if !strings.EqualFold(os.Getenv("MINIO_CONTROL"), "off") {
registerControlRPCRouter(mux, ctrlHandlers)
}

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"errors"
@ -88,7 +88,7 @@ func loginRPCClient(rpcClient *RPCClient) (tokenStr string, err error) {
}, &reply); err != nil {
return "", err
}
if reply.ServerVersion != minioVersion {
if reply.ServerVersion != Version {
return "", errors.New("Server version mismatch")
}
// Reply back server provided token.

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
// RPCLoginArgs - login username and password for RPC.
type RPCLoginArgs struct {

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"
@ -73,7 +73,7 @@ func (s *storageServer) LoginHandler(args *RPCLoginArgs, reply *RPCLoginReply) e
return err
}
reply.Token = token
reply.ServerVersion = minioVersion
reply.ServerVersion = Version
return nil
}

@ -16,7 +16,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"net"

@ -16,7 +16,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"net"
Loading…
Cancel
Save