veyron2/ipc/model.go: Remove method argument from Lookup

This change removes the 'method' argument from the Dispatcher's Lookup
method. It is not used anywhere in a non-trivial way and we don't have
any plan to use it for anything.

Change-Id: I56910d1e863b90b14a800bafb91e46819c3a7fe6
diff --git a/lib/modules/core/echo.go b/lib/modules/core/echo.go
index e6181cc..be24117 100644
--- a/lib/modules/core/echo.go
+++ b/lib/modules/core/echo.go
@@ -22,7 +22,7 @@
 
 type treeDispatcher struct{ id string }
 
-func (d treeDispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d treeDispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return &echoServerObject{d.id, suffix}, nil, nil
 }
 
diff --git a/runtimes/google/ipc/flow_test.go b/runtimes/google/ipc/flow_test.go
index 4031966..703a44f 100644
--- a/runtimes/google/ipc/flow_test.go
+++ b/runtimes/google/ipc/flow_test.go
@@ -60,7 +60,7 @@
 	newInvoker func(suffix string) ipc.Invoker
 }
 
-func (td testDisp) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (td testDisp) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return td.newInvoker(suffix), testServerAuthorizer{}, nil
 }
 
diff --git a/runtimes/google/ipc/full_test.go b/runtimes/google/ipc/full_test.go
index 857b2e2..b9ab62a 100644
--- a/runtimes/google/ipc/full_test.go
+++ b/runtimes/google/ipc/full_test.go
@@ -139,7 +139,7 @@
 
 type testServerDisp struct{ server interface{} }
 
-func (t testServerDisp) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (t testServerDisp) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	// If suffix is "nilAuth" we use default authorization, if it is "aclAuth" we
 	// use an ACL based authorizer, and otherwise we use the custom testServerAuthorizer.
 	var authorizer security.Authorizer
@@ -666,7 +666,7 @@
 }
 
 // Implements ipc.Dispatcher
-func (s *dischargeImpetusTester) Lookup(_, _ string) (interface{}, security.Authorizer, error) {
+func (s *dischargeImpetusTester) Lookup(_ string) (interface{}, security.Authorizer, error) {
 	return ipc.ReflectInvoker(dischargeImpetusServer{s}), testServerAuthorizer{}, nil
 }
 
diff --git a/runtimes/google/ipc/glob.go b/runtimes/google/ipc/glob.go
index 9d959f9..9dba1e4 100644
--- a/runtimes/google/ipc/glob.go
+++ b/runtimes/google/ipc/glob.go
@@ -82,7 +82,7 @@
 	if disp == nil {
 		return nil, verror.NoExistf("ipc: no dispatcher for %q.%s", ctx.Suffix(), ctx.Method())
 	}
-	obj, auth, err := disp.Lookup(ctx.Suffix(), ctx.Method())
+	obj, auth, err := disp.Lookup(ctx.Suffix())
 	switch {
 	case err != nil:
 		return nil, err
@@ -117,7 +117,7 @@
 	if disp == nil {
 		return ipc.MethodSig{}, verror.NoExistf("ipc: no such method %q", ctx.Method())
 	}
-	obj, auth, err := disp.Lookup(ctx.Suffix(), ctx.Method())
+	obj, auth, err := disp.Lookup(ctx.Suffix())
 	switch {
 	case err != nil:
 		return ipc.MethodSig{}, err
@@ -181,6 +181,7 @@
 		return err
 	}
 	disp := i.dispNormal
+	call.M.Method = ipc.GlobMethod
 	call.M.MethodTags = []interface{}{security.ResolveLabel}
 	if naming.IsReserved(i.receiver) || (i.receiver == "" && naming.IsReserved(pattern)) {
 		disp = i.dispReserved
@@ -199,7 +200,7 @@
 		vlog.Error(err)
 		return err
 	}
-	obj, auth, err := disp.Lookup(call.Suffix(), ipc.GlobMethod)
+	obj, auth, err := disp.Lookup(call.Suffix())
 	switch {
 	case err != nil:
 		return err
diff --git a/runtimes/google/ipc/glob_test.go b/runtimes/google/ipc/glob_test.go
index b34ce5d..5d497e8 100644
--- a/runtimes/google/ipc/glob_test.go
+++ b/runtimes/google/ipc/glob_test.go
@@ -173,7 +173,7 @@
 	tree *node
 }
 
-func (d *disp) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *disp) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	elems := strings.Split(suffix, "/")
 	if len(elems) != 0 && elems[0] == "muah" {
 		// Infinite space. Each node has one child named "ha".
diff --git a/runtimes/google/ipc/server.go b/runtimes/google/ipc/server.go
index 00e0688..abd5986 100644
--- a/runtimes/google/ipc/server.go
+++ b/runtimes/google/ipc/server.go
@@ -837,7 +837,7 @@
 		disp = fs.server.dispReserved
 	}
 	if disp != nil {
-		obj, auth, err := disp.Lookup(suffix, *method)
+		obj, auth, err := disp.Lookup(suffix)
 		switch {
 		case err != nil:
 			return nil, nil, verror.Convert(err)
diff --git a/runtimes/google/naming/namespace/all_test.go b/runtimes/google/naming/namespace/all_test.go
index e40b1f3..645050a 100644
--- a/runtimes/google/naming/namespace/all_test.go
+++ b/runtimes/google/naming/namespace/all_test.go
@@ -128,7 +128,7 @@
 
 type dispatcher struct{}
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return &testServer{suffix}, allowEveryoneAuthorizer{}, nil
 }
 
diff --git a/security/testdata/blessingstore.sig b/security/testdata/blessingstore.sig
index b03734e..2f2a57c 100644
--- a/security/testdata/blessingstore.sig
+++ b/security/testdata/blessingstore.sig
Binary files differ
diff --git a/services/identity/identityd/main.go b/services/identity/identityd/main.go
index 0219929..55e0b87 100644
--- a/services/identity/identityd/main.go
+++ b/services/identity/identityd/main.go
@@ -172,7 +172,7 @@
 
 type dispatcher map[string]interface{}
 
-func (d dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	if invoker := d[suffix]; invoker != nil {
 		return invoker, allowEveryoneAuthorizer{}, nil
 	}
diff --git a/services/mgmt/application/impl/dispatcher.go b/services/mgmt/application/impl/dispatcher.go
index 3fda1a4..92b03f8 100644
--- a/services/mgmt/application/impl/dispatcher.go
+++ b/services/mgmt/application/impl/dispatcher.go
@@ -29,6 +29,6 @@
 
 // DISPATCHER INTERFACE IMPLEMENTATION
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return repository.ApplicationServer(NewApplicationService(d.store, d.storeRoot, suffix)), d.auth, nil
 }
diff --git a/services/mgmt/binary/impl/dispatcher.go b/services/mgmt/binary/impl/dispatcher.go
index fa3e900..150247b 100644
--- a/services/mgmt/binary/impl/dispatcher.go
+++ b/services/mgmt/binary/impl/dispatcher.go
@@ -27,6 +27,6 @@
 
 // DISPATCHER INTERFACE IMPLEMENTATION
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return repository.BinaryServer(newBinaryService(d.state, suffix)), d.auth, nil
 }
diff --git a/services/mgmt/debug/debug.vdl b/services/mgmt/debug/debug.vdl
deleted file mode 100644
index 10f1925..0000000
--- a/services/mgmt/debug/debug.vdl
+++ /dev/null
@@ -1,17 +0,0 @@
-package debug
-
-import (
-	"veyron.io/veyron/veyron2/services/mgmt/logreader"
-	"veyron.io/veyron/veyron2/services/mgmt/pprof"
-	"veyron.io/veyron/veyron2/services/mgmt/stats"
-)
-
-// This interface exists only for the purpose of generating a valid Signature
-// for all the interfaces that are served by the debug server. It should be
-// removed when https://code.google.com/p/envyor/issues/detail?id=285 is
-// resolved.
-type Debug interface {
-	logreader.LogFile
-	stats.Stats
-	pprof.PProf
-}
diff --git a/services/mgmt/debug/debug.vdl.go b/services/mgmt/debug/debug.vdl.go
deleted file mode 100644
index a1d7c2b..0000000
--- a/services/mgmt/debug/debug.vdl.go
+++ /dev/null
@@ -1,358 +0,0 @@
-// This file was auto-generated by the veyron vdl tool.
-// Source: debug.vdl
-
-package debug
-
-import (
-	"veyron.io/veyron/veyron2/services/mgmt/logreader"
-
-	"veyron.io/veyron/veyron2/services/mgmt/pprof"
-
-	"veyron.io/veyron/veyron2/services/mgmt/stats"
-
-	// The non-user imports are prefixed with "__" to prevent collisions.
-	__veyron2 "veyron.io/veyron/veyron2"
-	__context "veyron.io/veyron/veyron2/context"
-	__ipc "veyron.io/veyron/veyron2/ipc"
-	__vdlutil "veyron.io/veyron/veyron2/vdl/vdlutil"
-	__wiretype "veyron.io/veyron/veyron2/wiretype"
-)
-
-// TODO(toddw): Remove this line once the new signature support is done.
-// It corrects a bug where __wiretype is unused in VDL pacakges where only
-// bootstrap types are used on interfaces.
-const _ = __wiretype.TypeIDInvalid
-
-// DebugClientMethods is the client interface
-// containing Debug methods.
-//
-// This interface exists only for the purpose of generating a valid Signature
-// for all the interfaces that are served by the debug server. It should be
-// removed when https://code.google.com/p/envyor/issues/detail?id=285 is
-// resolved.
-type DebugClientMethods interface {
-	// LogFile can be used to access log files remotely.
-	logreader.LogFileClientMethods
-	// The Stats interface is used to access stats for troubleshooting and
-	// monitoring purposes. The stats objects are discoverable via the Globbable
-	// interface and watchable via the GlobWatcher interface.
-	//
-	// The types of the object values are implementation specific, but should be
-	// primarily numeric in nature, e.g. counters, memory usage, latency metrics,
-	// etc.
-	stats.StatsClientMethods
-	pprof.PProfClientMethods
-}
-
-// DebugClientStub adds universal methods to DebugClientMethods.
-type DebugClientStub interface {
-	DebugClientMethods
-	__ipc.UniversalServiceMethods
-}
-
-// DebugClient returns a client stub for Debug.
-func DebugClient(name string, opts ...__ipc.BindOpt) DebugClientStub {
-	var client __ipc.Client
-	for _, opt := range opts {
-		if clientOpt, ok := opt.(__ipc.Client); ok {
-			client = clientOpt
-		}
-	}
-	return implDebugClientStub{name, client, logreader.LogFileClient(name, client), stats.StatsClient(name, client), pprof.PProfClient(name, client)}
-}
-
-type implDebugClientStub struct {
-	name   string
-	client __ipc.Client
-
-	logreader.LogFileClientStub
-	stats.StatsClientStub
-	pprof.PProfClientStub
-}
-
-func (c implDebugClientStub) c(ctx __context.T) __ipc.Client {
-	if c.client != nil {
-		return c.client
-	}
-	return __veyron2.RuntimeFromContext(ctx).Client()
-}
-
-func (c implDebugClientStub) Signature(ctx __context.T, opts ...__ipc.CallOpt) (o0 __ipc.ServiceSignature, err error) {
-	var call __ipc.Call
-	if call, err = c.c(ctx).StartCall(ctx, c.name, "Signature", nil, opts...); err != nil {
-		return
-	}
-	if ierr := call.Finish(&o0, &err); ierr != nil {
-		err = ierr
-	}
-	return
-}
-
-// DebugServerMethods is the interface a server writer
-// implements for Debug.
-//
-// This interface exists only for the purpose of generating a valid Signature
-// for all the interfaces that are served by the debug server. It should be
-// removed when https://code.google.com/p/envyor/issues/detail?id=285 is
-// resolved.
-type DebugServerMethods interface {
-	// LogFile can be used to access log files remotely.
-	logreader.LogFileServerMethods
-	// The Stats interface is used to access stats for troubleshooting and
-	// monitoring purposes. The stats objects are discoverable via the Globbable
-	// interface and watchable via the GlobWatcher interface.
-	//
-	// The types of the object values are implementation specific, but should be
-	// primarily numeric in nature, e.g. counters, memory usage, latency metrics,
-	// etc.
-	stats.StatsServerMethods
-	pprof.PProfServerMethods
-}
-
-// DebugServerStubMethods is the server interface containing
-// Debug methods, as expected by ipc.Server.
-// The only difference between this interface and DebugServerMethods
-// is the streaming methods.
-type DebugServerStubMethods interface {
-	// LogFile can be used to access log files remotely.
-	logreader.LogFileServerStubMethods
-	// The Stats interface is used to access stats for troubleshooting and
-	// monitoring purposes. The stats objects are discoverable via the Globbable
-	// interface and watchable via the GlobWatcher interface.
-	//
-	// The types of the object values are implementation specific, but should be
-	// primarily numeric in nature, e.g. counters, memory usage, latency metrics,
-	// etc.
-	stats.StatsServerStubMethods
-	pprof.PProfServerStubMethods
-}
-
-// DebugServerStub adds universal methods to DebugServerStubMethods.
-type DebugServerStub interface {
-	DebugServerStubMethods
-	// Describe the Debug interfaces.
-	Describe__() []__ipc.InterfaceDesc
-	// Signature will be replaced with Describe__.
-	Signature(ctx __ipc.ServerContext) (__ipc.ServiceSignature, error)
-}
-
-// DebugServer returns a server stub for Debug.
-// It converts an implementation of DebugServerMethods into
-// an object that may be used by ipc.Server.
-func DebugServer(impl DebugServerMethods) DebugServerStub {
-	stub := implDebugServerStub{
-		impl:              impl,
-		LogFileServerStub: logreader.LogFileServer(impl),
-		StatsServerStub:   stats.StatsServer(impl),
-		PProfServerStub:   pprof.PProfServer(impl),
-	}
-	// Initialize GlobState; always check the stub itself first, to handle the
-	// case where the user has the Glob method defined in their VDL source.
-	if gs := __ipc.NewGlobState(stub); gs != nil {
-		stub.gs = gs
-	} else if gs := __ipc.NewGlobState(impl); gs != nil {
-		stub.gs = gs
-	}
-	return stub
-}
-
-type implDebugServerStub struct {
-	impl DebugServerMethods
-	logreader.LogFileServerStub
-	stats.StatsServerStub
-	pprof.PProfServerStub
-	gs *__ipc.GlobState
-}
-
-func (s implDebugServerStub) VGlob() *__ipc.GlobState {
-	return s.gs
-}
-
-func (s implDebugServerStub) Describe__() []__ipc.InterfaceDesc {
-	return []__ipc.InterfaceDesc{DebugDesc, logreader.LogFileDesc, stats.StatsDesc, pprof.PProfDesc}
-}
-
-// DebugDesc describes the Debug interface.
-var DebugDesc __ipc.InterfaceDesc = descDebug
-
-// descDebug hides the desc to keep godoc clean.
-var descDebug = __ipc.InterfaceDesc{
-	Name:    "Debug",
-	PkgPath: "veyron.io/veyron/veyron/services/mgmt/debug",
-	Doc:     "// This interface exists only for the purpose of generating a valid Signature\n// for all the interfaces that are served by the debug server. It should be\n// removed when https://code.google.com/p/envyor/issues/detail?id=285 is\n// resolved.",
-	Embeds: []__ipc.EmbedDesc{
-		{"LogFile", "veyron.io/veyron/veyron2/services/mgmt/logreader", "// LogFile can be used to access log files remotely."},
-		{"Stats", "veyron.io/veyron/veyron2/services/mgmt/stats", "// The Stats interface is used to access stats for troubleshooting and\n// monitoring purposes. The stats objects are discoverable via the Globbable\n// interface and watchable via the GlobWatcher interface.\n//\n// The types of the object values are implementation specific, but should be\n// primarily numeric in nature, e.g. counters, memory usage, latency metrics,\n// etc."},
-		{"PProf", "veyron.io/veyron/veyron2/services/mgmt/pprof", ``},
-	},
-}
-
-func (s implDebugServerStub) Signature(ctx __ipc.ServerContext) (__ipc.ServiceSignature, error) {
-	// TODO(toddw): Replace with new Describe__ implementation.
-	result := __ipc.ServiceSignature{Methods: make(map[string]__ipc.MethodSignature)}
-
-	result.TypeDefs = []__vdlutil.Any{}
-	var ss __ipc.ServiceSignature
-	var firstAdded int
-	ss, _ = s.LogFileServerStub.Signature(ctx)
-	firstAdded = len(result.TypeDefs)
-	for k, v := range ss.Methods {
-		for i, _ := range v.InArgs {
-			if v.InArgs[i].Type >= __wiretype.TypeIDFirst {
-				v.InArgs[i].Type += __wiretype.TypeID(firstAdded)
-			}
-		}
-		for i, _ := range v.OutArgs {
-			if v.OutArgs[i].Type >= __wiretype.TypeIDFirst {
-				v.OutArgs[i].Type += __wiretype.TypeID(firstAdded)
-			}
-		}
-		if v.InStream >= __wiretype.TypeIDFirst {
-			v.InStream += __wiretype.TypeID(firstAdded)
-		}
-		if v.OutStream >= __wiretype.TypeIDFirst {
-			v.OutStream += __wiretype.TypeID(firstAdded)
-		}
-		result.Methods[k] = v
-	}
-	//TODO(bprosnitz) combine type definitions from embeded interfaces in a way that doesn't cause duplication.
-	for _, d := range ss.TypeDefs {
-		switch wt := d.(type) {
-		case __wiretype.SliceType:
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.ArrayType:
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.MapType:
-			if wt.Key >= __wiretype.TypeIDFirst {
-				wt.Key += __wiretype.TypeID(firstAdded)
-			}
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.StructType:
-			for i, fld := range wt.Fields {
-				if fld.Type >= __wiretype.TypeIDFirst {
-					wt.Fields[i].Type += __wiretype.TypeID(firstAdded)
-				}
-			}
-			d = wt
-			// NOTE: other types are missing, but we are upgrading anyways.
-		}
-		result.TypeDefs = append(result.TypeDefs, d)
-	}
-	ss, _ = s.StatsServerStub.Signature(ctx)
-	firstAdded = len(result.TypeDefs)
-	for k, v := range ss.Methods {
-		for i, _ := range v.InArgs {
-			if v.InArgs[i].Type >= __wiretype.TypeIDFirst {
-				v.InArgs[i].Type += __wiretype.TypeID(firstAdded)
-			}
-		}
-		for i, _ := range v.OutArgs {
-			if v.OutArgs[i].Type >= __wiretype.TypeIDFirst {
-				v.OutArgs[i].Type += __wiretype.TypeID(firstAdded)
-			}
-		}
-		if v.InStream >= __wiretype.TypeIDFirst {
-			v.InStream += __wiretype.TypeID(firstAdded)
-		}
-		if v.OutStream >= __wiretype.TypeIDFirst {
-			v.OutStream += __wiretype.TypeID(firstAdded)
-		}
-		result.Methods[k] = v
-	}
-	//TODO(bprosnitz) combine type definitions from embeded interfaces in a way that doesn't cause duplication.
-	for _, d := range ss.TypeDefs {
-		switch wt := d.(type) {
-		case __wiretype.SliceType:
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.ArrayType:
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.MapType:
-			if wt.Key >= __wiretype.TypeIDFirst {
-				wt.Key += __wiretype.TypeID(firstAdded)
-			}
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.StructType:
-			for i, fld := range wt.Fields {
-				if fld.Type >= __wiretype.TypeIDFirst {
-					wt.Fields[i].Type += __wiretype.TypeID(firstAdded)
-				}
-			}
-			d = wt
-			// NOTE: other types are missing, but we are upgrading anyways.
-		}
-		result.TypeDefs = append(result.TypeDefs, d)
-	}
-	ss, _ = s.PProfServerStub.Signature(ctx)
-	firstAdded = len(result.TypeDefs)
-	for k, v := range ss.Methods {
-		for i, _ := range v.InArgs {
-			if v.InArgs[i].Type >= __wiretype.TypeIDFirst {
-				v.InArgs[i].Type += __wiretype.TypeID(firstAdded)
-			}
-		}
-		for i, _ := range v.OutArgs {
-			if v.OutArgs[i].Type >= __wiretype.TypeIDFirst {
-				v.OutArgs[i].Type += __wiretype.TypeID(firstAdded)
-			}
-		}
-		if v.InStream >= __wiretype.TypeIDFirst {
-			v.InStream += __wiretype.TypeID(firstAdded)
-		}
-		if v.OutStream >= __wiretype.TypeIDFirst {
-			v.OutStream += __wiretype.TypeID(firstAdded)
-		}
-		result.Methods[k] = v
-	}
-	//TODO(bprosnitz) combine type definitions from embeded interfaces in a way that doesn't cause duplication.
-	for _, d := range ss.TypeDefs {
-		switch wt := d.(type) {
-		case __wiretype.SliceType:
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.ArrayType:
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.MapType:
-			if wt.Key >= __wiretype.TypeIDFirst {
-				wt.Key += __wiretype.TypeID(firstAdded)
-			}
-			if wt.Elem >= __wiretype.TypeIDFirst {
-				wt.Elem += __wiretype.TypeID(firstAdded)
-			}
-			d = wt
-		case __wiretype.StructType:
-			for i, fld := range wt.Fields {
-				if fld.Type >= __wiretype.TypeIDFirst {
-					wt.Fields[i].Type += __wiretype.TypeID(firstAdded)
-				}
-			}
-			d = wt
-			// NOTE: other types are missing, but we are upgrading anyways.
-		}
-		result.TypeDefs = append(result.TypeDefs, d)
-	}
-
-	return result, nil
-}
diff --git a/services/mgmt/debug/dispatcher.go b/services/mgmt/debug/dispatcher.go
index 2e44d41..e11cf1e 100644
--- a/services/mgmt/debug/dispatcher.go
+++ b/services/mgmt/debug/dispatcher.go
@@ -30,7 +30,7 @@
 // The first part of the names of the objects served by this dispatcher.
 var rootName = "__debug"
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	if suffix == "" {
 		return ipc.VChildrenGlobberInvoker(rootName), d.auth, nil
 	}
@@ -40,9 +40,6 @@
 	suffix = strings.TrimPrefix(suffix, rootName)
 	suffix = strings.TrimLeft(suffix, "/")
 
-	if method == "Signature" {
-		return NewSignatureObject(suffix), d.auth, nil
-	}
 	if suffix == "" {
 		return ipc.VChildrenGlobberInvoker("logs", "pprof", "stats", "vtrace"), d.auth, nil
 	}
diff --git a/services/mgmt/debug/signature.go b/services/mgmt/debug/signature.go
deleted file mode 100644
index 6781010..0000000
--- a/services/mgmt/debug/signature.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package debug
-
-import (
-	"strings"
-
-	"veyron.io/veyron/veyron2/ipc"
-)
-
-type signatureInvoker struct {
-	suffix string
-}
-
-// NewSignatureObject is the signature object factory.
-func NewSignatureObject(suffix string) interface{} {
-	return &signatureInvoker{suffix}
-}
-
-// TODO(rthellend): This is a temporary hack until https://code.google.com/p/envyor/issues/detail?id=285 is resolved.
-func (s signatureInvoker) Signature(ipc.ServerContext) (ipc.ServiceSignature, error) {
-	debugStub := DebugServer(nil)
-	fullSig, _ := debugStub.Signature(nil)
-
-	var show []string
-	if strings.HasPrefix(s.suffix, "logs") {
-		show = []string{"ReadLog", "Size", "Glob"}
-	} else if strings.HasPrefix(s.suffix, "pprof") {
-		show = []string{"Cmdline", "CPUProfile", "Profile", "Profiles", "Symbol"}
-	} else if strings.HasPrefix(s.suffix, "stats") {
-		show = []string{"Value", "Glob", "WatchGlob"}
-	} else {
-		show = []string{"Glob"}
-	}
-
-	sig := ipc.ServiceSignature{TypeDefs: fullSig.TypeDefs, Methods: make(map[string]ipc.MethodSignature)}
-	for _, m := range show {
-		sig.Methods[m] = fullSig.Methods[m]
-	}
-	return sig, nil
-}
diff --git a/services/mgmt/logreader/impl/logfile_test.go b/services/mgmt/logreader/impl/logfile_test.go
index 7a89c7c..11a6ae1 100644
--- a/services/mgmt/logreader/impl/logfile_test.go
+++ b/services/mgmt/logreader/impl/logfile_test.go
@@ -46,7 +46,7 @@
 	root string
 }
 
-func (d *logFileDispatcher) Lookup(suffix, _ string) (interface{}, security.Authorizer, error) {
+func (d *logFileDispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return impl.NewLogFileService(d.root, suffix), nil, nil
 }
 
diff --git a/services/mgmt/node/impl/dispatcher.go b/services/mgmt/node/impl/dispatcher.go
index e2c0b59..dd4b647 100644
--- a/services/mgmt/node/impl/dispatcher.go
+++ b/services/mgmt/node/impl/dispatcher.go
@@ -337,7 +337,7 @@
 }
 
 // DISPATCHER INTERFACE IMPLEMENTATION
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	components := strings.Split(suffix, "/")
 	for i := 0; i < len(components); i++ {
 		if len(components[i]) == 0 {
@@ -346,10 +346,7 @@
 		}
 	}
 	if len(components) == 0 {
-		if method == ipc.GlobMethod {
-			return ipc.VChildrenGlobberInvoker(nodeSuffix, appsSuffix), d.auth, nil
-		}
-		return nil, nil, errInvalidSuffix
+		return ipc.VChildrenGlobberInvoker(nodeSuffix, appsSuffix), d.auth, nil
 	}
 	// The implementation of the node manager is split up into several
 	// invokers, which are instantiated depending on the receiver name
diff --git a/services/mgmt/node/impl/proxy_invoker_test.go b/services/mgmt/node/impl/proxy_invoker_test.go
index 3f3e01c..0fcb836 100644
--- a/services/mgmt/node/impl/proxy_invoker_test.go
+++ b/services/mgmt/node/impl/proxy_invoker_test.go
@@ -101,6 +101,6 @@
 	sigStub signatureStub
 }
 
-func (d *proxyDispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *proxyDispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return &proxyInvoker{naming.Join(d.remote, suffix), d.label, d.sigStub}, nil, nil
 }
diff --git a/services/mgmt/pprof/client/proxy_test.go b/services/mgmt/pprof/client/proxy_test.go
index 176d7d5..bce0e99 100644
--- a/services/mgmt/pprof/client/proxy_test.go
+++ b/services/mgmt/pprof/client/proxy_test.go
@@ -19,7 +19,7 @@
 	server interface{}
 }
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return d.server, nil, nil
 }
 
diff --git a/services/mgmt/profile/impl/dispatcher.go b/services/mgmt/profile/impl/dispatcher.go
index 6c28885..b806796 100644
--- a/services/mgmt/profile/impl/dispatcher.go
+++ b/services/mgmt/profile/impl/dispatcher.go
@@ -29,6 +29,6 @@
 
 // DISPATCHER INTERFACE IMPLEMENTATION
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return repository.ProfileServer(NewProfileService(d.store, d.storeRoot, suffix)), d.auth, nil
 }
diff --git a/services/mgmt/root/impl/dispatcher.go b/services/mgmt/root/impl/dispatcher.go
index c112fe8..7d34f29 100644
--- a/services/mgmt/root/impl/dispatcher.go
+++ b/services/mgmt/root/impl/dispatcher.go
@@ -20,6 +20,6 @@
 
 // DISPATCHER INTERFACE IMPLEMENTATION
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return root.RootServer(d.state), nil, nil
 }
diff --git a/services/mgmt/stats/impl/stats_test.go b/services/mgmt/stats/impl/stats_test.go
index dc2bc40..6b526f6 100644
--- a/services/mgmt/stats/impl/stats_test.go
+++ b/services/mgmt/stats/impl/stats_test.go
@@ -22,7 +22,7 @@
 type statsDispatcher struct {
 }
 
-func (d *statsDispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *statsDispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return impl.NewStatsService(suffix, 100*time.Millisecond), nil, nil
 }
 
diff --git a/services/mounttable/lib/collectionserver_test.go b/services/mounttable/lib/collectionserver_test.go
index 2d3be92..3bb1fb2 100644
--- a/services/mounttable/lib/collectionserver_test.go
+++ b/services/mounttable/lib/collectionserver_test.go
@@ -30,7 +30,7 @@
 }
 
 // Lookup implements ipc.Dispatcher.Lookup.
-func (d *collectionDispatcher) Lookup(name, method string) (interface{}, security.Authorizer, error) {
+func (d *collectionDispatcher) Lookup(name string) (interface{}, security.Authorizer, error) {
 	rpcc := &rpcContext{name: name, collectionServer: d.collectionServer}
 	return rpcc, d, nil
 }
diff --git a/services/mounttable/lib/mounttable.go b/services/mounttable/lib/mounttable.go
index e7cfbf1..5ca2af2 100644
--- a/services/mounttable/lib/mounttable.go
+++ b/services/mounttable/lib/mounttable.go
@@ -94,7 +94,7 @@
 }
 
 // Lookup implements ipc.Dispatcher.Lookup.
-func (mt *mountTable) Lookup(name, method string) (interface{}, security.Authorizer, error) {
+func (mt *mountTable) Lookup(name string) (interface{}, security.Authorizer, error) {
 	vlog.VI(2).Infof("*********************Lookup %s", name)
 	mt.RLock()
 	defer mt.RUnlock()
diff --git a/services/mounttable/lib/neighborhood.go b/services/mounttable/lib/neighborhood.go
index d0462ad..7d649f9 100644
--- a/services/mounttable/lib/neighborhood.go
+++ b/services/mounttable/lib/neighborhood.go
@@ -123,7 +123,7 @@
 }
 
 // Lookup implements ipc.Dispatcher.Lookup.
-func (nh *neighborhood) Lookup(name, method string) (interface{}, security.Authorizer, error) {
+func (nh *neighborhood) Lookup(name string) (interface{}, security.Authorizer, error) {
 	vlog.VI(1).Infof("*********************LookupServer '%s'\n", name)
 	elems := strings.Split(name, "/")[nh.nelems:]
 	if name == "" {
diff --git a/tools/application/impl_test.go b/tools/application/impl_test.go
index 502fb9c..010ace1 100644
--- a/tools/application/impl_test.go
+++ b/tools/application/impl_test.go
@@ -68,7 +68,7 @@
 	return &dispatcher{}
 }
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return repository.ApplicationServer(&server{suffix: suffix}), nil, nil
 }
 
diff --git a/tools/binary/impl_test.go b/tools/binary/impl_test.go
index 16031b6..0f32f85 100644
--- a/tools/binary/impl_test.go
+++ b/tools/binary/impl_test.go
@@ -77,7 +77,7 @@
 	return &dispatcher{}
 }
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return repository.BinaryServer(&server{suffix: suffix}), nil, nil
 }
 
diff --git a/tools/mgmt/nodex/impl_test.go b/tools/mgmt/nodex/impl_test.go
index ce92e31..8471007 100644
--- a/tools/mgmt/nodex/impl_test.go
+++ b/tools/mgmt/nodex/impl_test.go
@@ -135,7 +135,7 @@
 	return &dispatcher{tape: tape, t: t}
 }
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return node.NodeServer(&mockNodeInvoker{tape: d.tape, t: d.t}), nil, nil
 }
 
diff --git a/tools/mounttable/impl_test.go b/tools/mounttable/impl_test.go
index d4161ba..90e83e2 100644
--- a/tools/mounttable/impl_test.go
+++ b/tools/mounttable/impl_test.go
@@ -55,7 +55,7 @@
 type dispatcher struct {
 }
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return mounttable.MountTableServer(&server{suffix: suffix}), nil, nil
 }
 
diff --git a/tools/profile/impl_test.go b/tools/profile/impl_test.go
index e24fb92..1dd149d 100644
--- a/tools/profile/impl_test.go
+++ b/tools/profile/impl_test.go
@@ -79,7 +79,7 @@
 	return &dispatcher{}
 }
 
-func (d *dispatcher) Lookup(suffix, method string) (interface{}, security.Authorizer, error) {
+func (d *dispatcher) Lookup(suffix string) (interface{}, security.Authorizer, error) {
 	return repository.ProfileServer(&server{suffix: suffix}), nil, nil
 }