Permalink
Browse files

lxd provider: import ubuntu-$series if it doesn't exist

Instead of making people import their own image, let's just do it for them
if it doesn't exist, like we do in the container type.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
  • Loading branch information...
1 parent d63ad70 commit 3e13edaad7fd199d50b0f3f0b4b38a95c7c280ec Tycho Andersen committed Mar 8, 2016
Showing with 11 additions and 0 deletions.
  1. +5 −0 provider/lxd/environ_broker.go
  2. +6 −0 provider/lxd/environ_raw.go
@@ -95,6 +95,11 @@ func (env *environ) newRawInstance(args environs.StartInstanceParams) (*lxdclien
series := args.Tools.OneSeries()
image := "ubuntu-" + series
+ err := env.raw.EnsureImageExists(series)
+ if err != nil {
+ return nil, errors.Trace(err)
+ }
+
metadata, err := getMetadata(args)
if err != nil {
return nil, errors.Trace(err)
@@ -16,6 +16,7 @@ import (
type rawProvider struct {
lxdInstances
lxdProfiles
+ lxdImages
common.Firewaller
policyProvider
}
@@ -32,6 +33,10 @@ type lxdProfiles interface {
HasProfile(string) (bool, error)
}
+type lxdImages interface {
+ EnsureImageExists(series string) error
+}
+
func newRawProvider(ecfg *environConfig) (*rawProvider, error) {
client, err := newClient(ecfg)
if err != nil {
@@ -48,6 +53,7 @@ func newRawProvider(ecfg *environConfig) (*rawProvider, error) {
raw := &rawProvider{
lxdInstances: client,
lxdProfiles: client,
+ lxdImages: client,
Firewaller: firewaller,
policyProvider: policy,
}

0 comments on commit 3e13eda

Please sign in to comment.