tree b052a558788570575d94c45eeab75fea34278a7c
parent a5ed1911a8930292d8f778f1e0f7e1974ec53c45
author Bogdan Caprita <caprita@google.com> 1460160028 -0700
committer Bogdan Caprita <caprita@google.com> 1460394562 +0000

Turn on loading on-disk credentials using agent

This change 'flips the switch' to start using the agent (or fallback to
loading the credentials locally under exclusive lock) whenever
credentials are specified with V23_CREDENTIALS or --v23.credentials.
Specifically, rt/security.go now uses agentlib.LoadPrincipal.

Some adjustment is required in tests, where we don't want to start an
agent (even if v23agentd is in the PATH), but we still want the
exclusive local loading feature.  A new environment variable
V23_CREDENTIALS_NO_AGENT disables spawning an agent in
agentlib.LoadPrincipal.  This environment variable is set in tests that
use test.V23Init or v23test.Shell, and should propagate to subprocesses
started by tests.

With this CL, the confusing behavior whereby a new principal would
implictly get created if the credentials directory specified with
V23_CREDENTIALS or --v23.credentials didn't contain one, is gone: such
cases are now treated as errors when trying to load the principal.  A
few places (under device manager) that relied on the old behavior have
been updated to explicitly create the principals they need.  Also in
device manager, the PATH is now propagated s.t. child processes have
access to the 'ps' command used in the locking code.  Note, this will no
longer be needed after v.io/c/21248 (access to 'ps' becomes a
nice-to-have but not required in order to lock or verify a lock).

A note on platforms other than Linux and Darwin: we rely on the presence
of a valid v23agentd in the PATH when loading the principal.  If that
doesn't exist, agentlib.LoadPrincipal falls back onto loading the
principal locally under lock.  This seems like the right thing to do on
any platform (until proven otherwise :-)).  The locking code should also
become robust in the face of missing 'ps' with v.io/c/21248.

MultiPart: 2/2
Change-Id: I5856d6a0f104d7cb413eae513c2fd8acaa1e7ea3
