1
// Copyright 2013 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
7
"launchpad.net/juju-core/container"
8
"launchpad.net/juju-core/utils"
11
var requiredPackages = []string{
15
type containerInitialiser struct {
19
// containerInitialiser implements container.Initialiser.
20
var _ container.Initialiser = (*containerInitialiser)(nil)
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}
28
// Initialise is specified on the container.Initialiser interface.
29
func (ci *containerInitialiser) Initialise() error {
30
return ensureDependencies(ci.series)
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 {
37
aptGetInstallCommandList := utils.AptGetPreparePackages(requiredPackages, series)
38
for _, commands := range aptGetInstallCommandList {
39
err = utils.AptGetInstall(commands...)