-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuserdata_test.go
53 lines (42 loc) · 1.61 KB
/
userdata_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Copyright 2015 Canonical Ltd.
// Copyright 2015 Cloudbase Solutions SRL
// Licensed under the AGPLv3, see LICENCE file for details.
package openstack_test
import (
"github.com/juju/os"
jc "github.com/juju/testing/checkers"
"github.com/juju/utils"
gc "gopkg.in/check.v1"
"github.com/juju/juju/cloudconfig/cloudinit/cloudinittest"
"github.com/juju/juju/cloudconfig/providerinit/renderers"
"github.com/juju/juju/provider/openstack"
"github.com/juju/juju/testing"
)
type UserdataSuite struct {
testing.BaseSuite
}
var _ = gc.Suite(&UserdataSuite{})
func (s *UserdataSuite) TestOpenstackUnix(c *gc.C) {
renderer := openstack.OpenstackRenderer{}
cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")}
result, err := renderer.Render(cloudcfg, os.Ubuntu)
c.Assert(err, jc.ErrorIsNil)
c.Assert(result, jc.DeepEquals, utils.Gzip(cloudcfg.YAML))
result, err = renderer.Render(cloudcfg, os.CentOS)
c.Assert(err, jc.ErrorIsNil)
c.Assert(result, jc.DeepEquals, utils.Gzip(cloudcfg.YAML))
}
func (s *UserdataSuite) TestOpenstackWindows(c *gc.C) {
renderer := openstack.OpenstackRenderer{}
cloudcfg := &cloudinittest.CloudConfig{YAML: []byte("yaml")}
result, err := renderer.Render(cloudcfg, os.Windows)
c.Assert(err, jc.ErrorIsNil)
c.Assert(result, jc.DeepEquals, renderers.WinEmbedInScript(cloudcfg.YAML))
}
func (s *UserdataSuite) TestOpenstackUnknownOS(c *gc.C) {
renderer := openstack.OpenstackRenderer{}
cloudcfg := &cloudinittest.CloudConfig{}
result, err := renderer.Render(cloudcfg, os.GenericLinux)
c.Assert(result, gc.IsNil)
c.Assert(err, gc.ErrorMatches, "Cannot encode userdata for OS: GenericLinux")
}