~cloud-green/juju-core/charmstore-sdist

« back to all changes in this revision

Viewing changes to launchpad.net/juju-core/container/lxc/initialisation.go

  • Committer: Casey Marshall
  • Date: 2014-03-27 15:59:46 UTC
  • Revision ID: cmars@cmarstech.com-20140327155946-8huorf37g0zwar43
Source distribution of launchpad.net/juju-core created 20140327105939

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2013 Canonical Ltd.
 
2
// Licensed under the AGPLv3, see LICENCE file for details.
 
3
 
 
4
package lxc
 
5
 
 
6
import (
 
7
        "launchpad.net/juju-core/container"
 
8
        "launchpad.net/juju-core/utils"
 
9
)
 
10
 
 
11
var requiredPackages = []string{
 
12
        "lxc",
 
13
}
 
14
 
 
15
type containerInitialiser struct {
 
16
        series string
 
17
}
 
18
 
 
19
// containerInitialiser implements container.Initialiser.
 
20
var _ container.Initialiser = (*containerInitialiser)(nil)
 
21
 
 
22
// NewContainerInitialiser returns an instance used to perform the steps
 
23
// required to allow a host machine to run a LXC container.
 
24
func NewContainerInitialiser(series string) container.Initialiser {
 
25
        return &containerInitialiser{series}
 
26
}
 
27
 
 
28
// Initialise is specified on the container.Initialiser interface.
 
29
func (ci *containerInitialiser) Initialise() error {
 
30
        return ensureDependencies(ci.series)
 
31
}
 
32
 
 
33
// ensureDependencies creates a set of install packages using AptGetPreparePackages
 
34
// and runs each set of packages through AptGetInstall
 
35
func ensureDependencies(series string) error {
 
36
        var err error
 
37
        aptGetInstallCommandList := utils.AptGetPreparePackages(requiredPackages, series)
 
38
        for _, commands := range aptGetInstallCommandList {
 
39
                err = utils.AptGetInstall(commands...)
 
40
                if err != nil {
 
41
                        return err
 
42
                }
 
43
        }
 
44
        return err
 
45
}