1
// Copyright 2015 Canonical Ltd.
2
// Copyright 2015 Cloudbase Solutions SRL
3
// Licensed under the AGPLv3, see LICENCE file for details.
10
jc "github.com/juju/testing/checkers"
11
"github.com/juju/utils"
12
"github.com/juju/utils/os"
13
gc "gopkg.in/check.v1"
15
"github.com/juju/juju/cloudconfig/cloudinit/cloudinittest"
16
"github.com/juju/juju/cloudconfig/providerinit/renderers"
17
"github.com/juju/juju/provider/gce"
18
"github.com/juju/juju/testing"
21
type UserdataSuite struct {
25
var _ = gc.Suite(&UserdataSuite{})
27
func (s *UserdataSuite) TestGCEUnix(c *gc.C) {
28
renderer := gce.GCERenderer{}
29
cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")}
31
result, err := renderer.Render(cloudcfg, os.Ubuntu)
32
c.Assert(err, jc.ErrorIsNil)
33
expected := base64.StdEncoding.EncodeToString(utils.Gzip(cloudcfg.YAML))
34
c.Assert(string(result), jc.DeepEquals, expected)
36
result, err = renderer.Render(cloudcfg, os.CentOS)
37
c.Assert(err, jc.ErrorIsNil)
38
expected = base64.StdEncoding.EncodeToString(utils.Gzip(cloudcfg.YAML))
39
c.Assert(string(result), jc.DeepEquals, expected)
42
func (s *UserdataSuite) TestAzureWindows(c *gc.C) {
43
renderer := gce.GCERenderer{}
44
cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")}
46
result, err := renderer.Render(cloudcfg, os.Windows)
47
c.Assert(err, jc.ErrorIsNil)
48
c.Assert(result, jc.DeepEquals, renderers.WinEmbedInScript(cloudcfg.YAML))
51
func (s *UserdataSuite) TestGCEUnknownOS(c *gc.C) {
52
renderer := gce.GCERenderer{}
53
cloudcfg := &cloudinittest.CloudConfig{}
55
result, err := renderer.Render(cloudcfg, os.Arch)
56
c.Assert(result, gc.IsNil)
57
c.Assert(err, gc.ErrorMatches, "Cannot encode userdata for OS: Arch")