The agent config now knows the logdir. In some places
the entire agent config is passed through, but in order
to keep the changes small(ish), we only pass through
the logdir (additionally).
This did require a few tweaks to tests, and in particular
the addition of LogDir to the base ConnSuite.
This logdir is used by the upcoming debug-log api.
Affected files (+18, -5 lines):
A [revision details]
M cmd/jujud/machine.go
M juju/testing/conn.go
M provider/dummy/environs.go
M state/apiserver/apiserver.go
M state/apiserver/login_test.go
M state/apiserver/server_test.go
// Serve serves the given state by accepting requests on the given
// listener, using the given certificate and key (in PEM format) for
// authentication.
-func NewServer(s *state.State, addr string, cert, key []byte, datadir
string) (*Server, error) {
+func NewServer(s *state.State, addr string, cert, key []byte, datadir,
logDir string) (*Server, error) {
lis, err := net.Listen("tcp", addr)
if err != nil {
return nil, err
@@ -49,6 +50,7 @@
state: s,
addr: lis.Addr(),
dataDir: datadir,
+ logDir: logDir,
}
// TODO(rog) check that *srvRoot is a valid type for using
// as an RPC server.
Reviewers: mp+214155_ code.launchpad. net,
Message:
Please take a look.
Description:
Have the apiserver know the logdir
The agent config now knows the logdir. In some places
the entire agent config is passed through, but in order
to keep the changes small(ish), we only pass through
the logdir (additionally).
This did require a few tweaks to tests, and in particular
the addition of LogDir to the base ConnSuite.
This logdir is used by the upcoming debug-log api.
https:/ /code.launchpad .net/~thumper/ juju-core/ apiserver- knows-logdir/ +merge/ 214155
Requires: /code.launchpad .net/~thumper/ juju-core/ tailer- tweaks/ +merge/ 214150
https:/
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/84350043/
Affected files (+18, -5 lines): machine. go conn.go dummy/environs. go /apiserver. go /login_ test.go /server_ test.go
A [revision details]
M cmd/jujud/
M juju/testing/
M provider/
M state/apiserver
M state/apiserver
M state/apiserver
Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: <email address hidden>
+New revision: <email address hidden>
Index: cmd/jujud/ machine. go machine. go' machine. go 2014-04-02 12:52:25 +0000 machine. go 2014-04-04 03:48:49 +0000 "configuration does not have state server DataDir( ) NewServer( st, fmt.Sprintf(":%d", port), cert, key, LogDir( ) NewServer( startWorkerAfte rUpgrade( runner, "cleaner", func() (worker.Worker, NewCleaner( st), nil
=== modified file 'cmd/jujud/
--- cmd/jujud/
+++ cmd/jujud/
@@ -381,7 +381,9 @@
return nil, &fatalError{
cert/key"}
}
dataDir := agentConfig.
- return apiserver.
dataDir)
+ logDir := agentConfig.
+ return apiserver.
+ st, fmt.Sprintf(":%d", port), cert, key, dataDir, logDir)
})
a.
error) {
return cleaner.
Index: juju/testing/ conn.go conn.go' conn.go 2014-04-02 01:59:59 +0000 conn.go 2014-04-04 03:48:49 +0000 environ. Name(), gc.Equals, "dummyenv") (&dummy. DataDir, s.DataDir()) &dummy. LogDir, s.LogDir)
=== modified file 'juju/testing/
--- juju/testing/
+++ juju/testing/
@@ -60,6 +60,7 @@
ConfigStore configstore.Storage
BackingState *state.State // The State being used by the API server
RootDir string // The faked-up root directory.
+ LogDir string
oldHome string
oldJujuHome string
environ environs.Environ
@@ -211,6 +212,8 @@
// sanity check we've got the correct environment.
c.Assert(
s.PatchValue
+ s.LogDir = c.MkDir()
+ s.PatchValue(
versions := PreferredDefaul tVersions( environ. Config( ), version.Current)
versions = append(versions, version.Current)
Index: provider/ dummy/environs. go dummy/environs. go' dummy/environs. go 2014-04-03 04:46:51 +0000 dummy/environs. go 2014-04-04 03:48:49 +0000
=== modified file 'provider/
--- provider/
+++ provider/
@@ -501,6 +501,7 @@
// Override for testing - the data directory with which the state api
server is initialised.
var DataDir = ""
+var LogDir = ""
func (e *environ) ecfg() *environConfig { Lock() NewServer( st, "localhost:0", testing. ServerCert) , []byte( testing. ServerKey) , DataDir) NewServer( st, "localhost:0", testing. ServerCert) , []byte( testing. ServerKey) , DataDir, LogDir)
e.ecfgMutex.
@@ -607,7 +608,7 @@
if err != nil {
panic(err)
}
- estate.apiServer, err = apiserver.
[]byte(
+ estate.apiServer, err = apiserver.
[]byte(
if err != nil {
panic(err)
}
Index: state/apiserver /apiserver. go apiserver/ apiserver. go' /apiserver. go 2014-03-13 22:47:05 +0000 /apiserver. go 2014-04-04 03:48:49 +0000
=== modified file 'state/
--- state/apiserver
+++ state/apiserver
@@ -30,12 +30,13 @@
state *state.State
addr net.Addr
dataDir string
+ logDir string
}
// Serve serves the given state by accepting requests on the given
// listener, using the given certificate and key (in PEM format) for
// authentication.
-func NewServer(s *state.State, addr string, cert, key []byte, datadir
string) (*Server, error) {
+func NewServer(s *state.State, addr string, cert, key []byte, datadir,
logDir string) (*Server, error) {
lis, err := net.Listen("tcp", addr)
if err != nil {
return nil, err
@@ -49,6 +50,7 @@
state: s,
addr: lis.Addr(),
dataDir: datadir,
+ logDir: logDir,
}
// TODO(rog) check that *srvRoot is a valid type for using
// as an RPC server.
Index: state/apiserver /login_ test.go apiserver/ login_test. go' /login_ test.go 2014-04-01 23:56:19 +0000 /login_ test.go 2014-04-04 03:48:49 +0000 coretesting. ServerCert) , coretesting. ServerKey) ,
=== modified file 'state/
--- state/apiserver
+++ state/apiserver
@@ -54,7 +54,7 @@
"localhost:0",
[]byte(
[]byte(
- "",
+ "", "",
)
c.Assert(err, gc.IsNil)
info := &api.Info{
Index: state/apiserver /server_ test.go apiserver/ server_ test.go' /server_ test.go 2014-03-13 07:54:56 +0000 /server_ test.go 2014-04-04 03:48:49 +0000 NewServer( s.State, "localhost:0", coretesting. ServerCert) , []byte( coretesting. ServerKey) , "") NewServer( coretesting. ServerCert) , []byte( coretesting. ServerKey) ,
=== modified file 'state/
--- state/apiserver
+++ state/apiserver
@@ -36,7 +36,10 @@
func (s *serverSuite) TestStop(c *gc.C) {
// Start our own instance of the server so we have
// a handle on it to stop it.
- srv, err := apiserver.
[]byte(
+ srv, err := apiserver.
+ s.State, "localhost:0",
+ []byte(
+ "", "")
c.Assert(err, gc.IsNil)
defer srv.Stop()