"strings" "github.com/juju/errors" "github.com/juju/utils" "github.com/juju/utils/series" lxdshared "github.com/lxc/lxd/shared" "github.com/juju/juju/environs" jujupaths "github.com/juju/juju/juju/paths" "github.com/juju/juju/network" "github.com/juju/juju/provider/common" "github.com/juju/juju/tools/lxdclient" ) var ( jujuConfDir = jujupaths.MustSucceed(jujupaths.ConfDir(series.LatestLts())) clientCertPath = path.Join(jujuConfDir, "lxd-client.crt") clientKeyPath = path.Join(jujuConfDir, "lxd-client.key") serverCertPath = path.Join(jujuConfDir, "lxd-server.crt") ) type rawProvider struct { lxdCerts lxdConfig lxdInstances lxdProfiles lxdImages common.Firewaller } type lxdCerts interface {
) var logger = loggo.GetLogger("juju.agent") const ( // UninstallAgentFile is the name of the file inside the data // dir that, if it exists, will cause a machine agent to uninstall // when it receives the termination signal. UninstallAgentFile = "uninstall-agent" ) // These are base values used for the corresponding defaults. var ( logDir = paths.MustSucceed(paths.LogDir(series.HostSeries())) dataDir = paths.MustSucceed(paths.DataDir(series.HostSeries())) confDir = paths.MustSucceed(paths.ConfDir(series.HostSeries())) metricsSpoolDir = paths.MustSucceed(paths.MetricsSpoolDir(series.HostSeries())) ) // Agent exposes the agent's configuration to other components. This // interface should probably be segregated (agent.ConfigGetter and // agent.ConfigChanger?) but YAGNI *currently* advises against same. type Agent interface { // CurrentConfig returns a copy of the agent's configuration. No // guarantees regarding ongoing correctness are made. CurrentConfig() Config // ChangeConfig allows clients to change the agent's configuration // by supplying a callback that applies the changes. ChangeConfig(ConfigMutator) error
"github.com/juju/juju/api" "github.com/juju/juju/apiserver/params" "github.com/juju/juju/juju/paths" "github.com/juju/juju/mongo" "github.com/juju/juju/network" "github.com/juju/juju/state/multiwatcher" "github.com/juju/juju/version" ) var logger = loggo.GetLogger("juju.agent") // These are base values used for the corresponding defaults. var ( logDir = paths.MustSucceed(paths.LogDir(version.Current.Series)) dataDir = paths.MustSucceed(paths.DataDir(version.Current.Series)) confDir = paths.MustSucceed(paths.ConfDir(version.Current.Series)) ) // Agent exposes the agent's configuration to other components. This // interface should probably be segregated (agent.ConfigGetter and // agent.ConfigChanger?) but YAGNI *currently* advises against same. type Agent interface { // CurrentConfig returns a copy of the agent's configuration. No // guarantees regarding ongoing correctness are made. CurrentConfig() Config // ChangeConfig allows clients to change the agent's configuration // by supplying a callback that applies the changes. ChangeConfig(ConfigMutator) error }