~rogpeppe/juju-core/azure

« back to all changes in this revision

Viewing changes to environs/cloudinit/cloudinit_test.go

[r=jtv] Unify providers' user-data composition functions.

All the "physical" providers (EC2, OpenStack, MAAS, Azure) were generating
user data in essentially the same way. The MAAS one looked different but
actually just added an optional bit that was still completely generic. And so
this branch unifies the implementations.

Construction of the cloudinit.MachineConfig was lifted out of the function.
That may seem arbitrary, but it's part of a greater plan: in a later step of
the ongoing refactoring the construction can be lifted out of the providers'
internalStartInstance methods as well, doing away with the EC2 and OpenStack
providers' startInstanceParams structs. This actually shortens some of the
data flows and reduces cognitive load, which can only be good for maintenance.

After that step we can have a fresh look at sanitizing NewMachineConfig (which
arguably should take more parameters, or not exist at all, but is in an
intermediate state that facilitates the changes happening now). We may also
look into re-introducing some sort of dedicated Parameter Object for
internalStartInstance, but by then the cluster of methods Bootstrap /
StartInstance / internalStartInstance will look a bit different and we can
find the most maintainable solution for that new situation.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
        "encoding/base64"
8
8
        . "launchpad.net/gocheck"
9
9
        "launchpad.net/goyaml"
10
 
        cloudinit_core "launchpad.net/juju-core/cloudinit"
 
10
        coreCloudinit "launchpad.net/juju-core/cloudinit"
11
11
        "launchpad.net/juju-core/constraints"
12
12
        "launchpad.net/juju-core/environs"
13
13
        "launchpad.net/juju-core/environs/cloudinit"
322
322
        for i, test := range cloudinitTests {
323
323
                test.cfg.Config = minimalConfig(c)
324
324
                c.Logf("test %d (Configure)", i)
325
 
                cloudcfg := cloudinit_core.New()
 
325
                cloudcfg := coreCloudinit.New()
326
326
                ci, err := cloudinit.Configure(&test.cfg, cloudcfg)
327
327
                c.Assert(err, IsNil)
328
328
                c.Check(ci, NotNil)
331
331
 
332
332
func (*cloudinitSuite) TestCloudInitConfigureUsesGivenConfig(c *C) {
333
333
        // Create a simple cloudinit config with a 'runcmd' statement.
334
 
        cloudcfg := cloudinit_core.New()
 
334
        cloudcfg := coreCloudinit.New()
335
335
        script := "test script"
336
336
        cloudcfg.AddRunCmd(script)
337
337
        cloudinitTests[0].cfg.Config = minimalConfig(c)