10
10
gc "launchpad.net/gocheck"
12
12
"launchpad.net/juju-core/cloudinit"
13
"launchpad.net/juju-core/testing/testbase"
14
sshtesting "launchpad.net/juju-core/utils/ssh/testing"
15
17
// TODO integration tests, but how?
19
23
var _ = gc.Suite(S{})
108
112
"SSHAuthorizedKeys",
109
"ssh_authorized_keys:\n- key1\n- key2\n",
114
"ssh_authorized_keys:\n- %s\n Juju:user@host\n- %s\n Juju:another@host\n",
115
sshtesting.ValidKeyOne.Key, sshtesting.ValidKeyTwo.Key),
110
116
func(cfg *cloudinit.Config) {
111
cfg.AddSSHAuthorizedKeys("key1")
112
cfg.AddSSHAuthorizedKeys("key2")
117
cfg.AddSSHAuthorizedKeys(sshtesting.ValidKeyOne.Key + " Juju:user@host")
118
cfg.AddSSHAuthorizedKeys(sshtesting.ValidKeyTwo.Key + " another@host")
116
122
"SSHAuthorizedKeys",
117
"ssh_authorized_keys:\n- key1\n- key2\n- key3\n",
124
"ssh_authorized_keys:\n- %s\n Juju:sshkey\n- %s\n Juju:user@host\n- %s\n Juju:another@host\n",
125
sshtesting.ValidKeyOne.Key, sshtesting.ValidKeyTwo.Key, sshtesting.ValidKeyThree.Key),
118
126
func(cfg *cloudinit.Config) {
119
cfg.AddSSHAuthorizedKeys("#command\nkey1")
120
cfg.AddSSHAuthorizedKeys("key2\n# comment\n\nkey3\n")
127
cfg.AddSSHAuthorizedKeys("#command\n" + sshtesting.ValidKeyOne.Key)
128
cfg.AddSSHAuthorizedKeys(
129
sshtesting.ValidKeyTwo.Key + " user@host\n# comment\n\n" +
130
sshtesting.ValidKeyThree.Key + " another@host")
121
131
cfg.AddSSHAuthorizedKeys("")
235
245
header = "#cloud-config\n"
236
246
addFileExpected = `runcmd:
237
- install -m 644 /dev/null '/etc/apt/apt.conf.d/99proxy'
247
- install -D -m 644 /dev/null '/etc/apt/apt.conf.d/99proxy'
238
248
- printf '%s\n' '"Acquire::http::Proxy "http://10.0.3.1:3142";' > '/etc/apt/apt.conf.d/99proxy'
269
279
c.Assert(cfg.Packages(), gc.DeepEquals, []string{"a b c", "d!"})
282
func (S) TestSetOutput(c *gc.C) {
284
kind cloudinit.OutputKind
289
cloudinit.OutAll, "a", "",
291
cloudinit.OutAll, "", "b",
293
cloudinit.OutInit, "a", "b",
295
cloudinit.OutAll, "a", "b",
297
cloudinit.OutAll, "", "",
300
cfg := cloudinit.New()
301
stdout, stderr := cfg.Output(cloudinit.OutAll)
302
c.Assert(stdout, gc.Equals, "")
303
c.Assert(stderr, gc.Equals, "")
304
for i, t := range tests {
305
c.Logf("test %d: %+v", i, t)
306
cfg.SetOutput(t.kind, t.stdout, t.stderr)
307
stdout, stderr = cfg.Output(t.kind)
308
c.Assert(stdout, gc.Equals, t.stdout)
309
c.Assert(stderr, gc.Equals, t.stderr)