~rogpeppe/juju-core/azure

« back to all changes in this revision

Viewing changes to upstart/service.go

[r=thumper] Conditionally install lxc

There are two primary situations where we don't want
the machine agent to install lxc:
 1. when the machine agent is inside an lxc container
    as known by state
 2. when the machine has been provisioned by the local
    provider (because it is an lxc container)

When lxc is installed inside a container, it adds a
bridge network device with the same defaults as the
host. This kills any routing in or out of the container.

Upstart provides support for setting environment variables
as part of the config, and we use this to pass the provider
type through.

https://codereview.appspot.com/11330043/

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
 
43
43
// MachineAgentUpstartService returns the upstart config for a machine agent
44
44
// based on the tag and machineId passed in.
45
 
func MachineAgentUpstartService(name, toolsDir, dataDir, logDir, tag, machineId, logConfig string) *Conf {
 
45
func MachineAgentUpstartService(name, toolsDir, dataDir, logDir, tag, machineId, logConfig, providerType string) *Conf {
46
46
        svc := NewService(name)
47
47
        logFile := filepath.Join(logDir, tag+".log")
48
48
        return &Conf{
58
58
                        " --machine-id " + machineId +
59
59
                        " " + logConfig,
60
60
                Out: logFile,
 
61
                Env: map[string]string{
 
62
                        "JUJU_PROVIDER_TYPE": providerType,
 
63
                },
61
64
        }
62
65
}