1
// Copyright 2015 Canonical Ltd.
2
// Copyright 2015 Cloudbase Solutions SRL
3
// Licensed under the AGPLv3, see LICENCE file for details.
8
jc "github.com/juju/testing/checkers"
9
"github.com/juju/utils"
10
"github.com/juju/utils/os"
11
gc "gopkg.in/check.v1"
13
"github.com/juju/juju/cloudconfig/cloudinit/cloudinittest"
14
"github.com/juju/juju/cloudconfig/providerinit/renderers"
15
"github.com/juju/juju/provider/openstack"
16
"github.com/juju/juju/testing"
19
type UserdataSuite struct {
23
var _ = gc.Suite(&UserdataSuite{})
25
func (s *UserdataSuite) TestOpenstackUnix(c *gc.C) {
26
renderer := openstack.OpenstackRenderer{}
27
cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")}
29
result, err := renderer.Render(cloudcfg, os.Ubuntu)
30
c.Assert(err, jc.ErrorIsNil)
31
c.Assert(result, jc.DeepEquals, utils.Gzip(cloudcfg.YAML))
33
result, err = renderer.Render(cloudcfg, os.CentOS)
34
c.Assert(err, jc.ErrorIsNil)
35
c.Assert(result, jc.DeepEquals, utils.Gzip(cloudcfg.YAML))
38
func (s *UserdataSuite) TestOpenstackWindows(c *gc.C) {
39
renderer := openstack.OpenstackRenderer{}
40
cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")}
42
result, err := renderer.Render(cloudcfg, os.Windows)
43
c.Assert(err, jc.ErrorIsNil)
44
c.Assert(result, jc.DeepEquals, renderers.WinEmbedInScript(cloudcfg.YAML))
47
func (s *UserdataSuite) TestOpenstackUnknownOS(c *gc.C) {
48
renderer := openstack.OpenstackRenderer{}
49
cloudcfg := &cloudinittest.CloudConfig{}
50
result, err := renderer.Render(cloudcfg, os.Arch)
51
c.Assert(result, gc.IsNil)
52
c.Assert(err, gc.ErrorMatches, "Cannot encode userdata for OS: Arch")