~themue/juju-core/053-env-more-script-friendly

« back to all changes in this revision

Viewing changes to environs/dummy/environs.go

Merge trunk and resolve conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
        "launchpad.net/juju-core/constraints"
26
26
        "launchpad.net/juju-core/environs"
27
27
        "launchpad.net/juju-core/environs/config"
 
28
        envtesting "launchpad.net/juju-core/environs/testing"
28
29
        "launchpad.net/juju-core/log"
29
30
        "launchpad.net/juju-core/schema"
30
31
        "launchpad.net/juju-core/state"
32
33
        "launchpad.net/juju-core/state/api/params"
33
34
        "launchpad.net/juju-core/state/apiserver"
34
35
        "launchpad.net/juju-core/testing"
35
 
        "launchpad.net/juju-core/trivial"
 
36
        "launchpad.net/juju-core/utils"
36
37
        "launchpad.net/juju-core/version"
37
38
        "net"
38
39
        "net/http"
227
228
        }
228
229
        s.storage = newStorage(s, "/"+name+"/private")
229
230
        s.publicStorage = newStorage(s, "/"+name+"/public")
230
 
        putFakeTools(s.publicStorage)
231
231
        s.listen()
 
232
        envtesting.MustUploadFakeTools(s.publicStorage)
232
233
        return s
233
234
}
234
235
 
235
 
// putFakeTools writes something
236
 
// that looks like a tools archive so Bootstrap can
237
 
// find some tools and initialise the state correctly.
238
 
func putFakeTools(s environs.StorageWriter) {
239
 
        log.Infof("environs/dummy: putting fake tools")
240
 
        toolsVersion := version.Current
241
 
        path := environs.ToolsStoragePath(toolsVersion)
242
 
        toolsContents := "tools archive, honest guv"
243
 
        err := s.Put(path, strings.NewReader(toolsContents), int64(len(toolsContents)))
244
 
        if err != nil {
245
 
                panic(err)
246
 
        }
247
 
        if toolsVersion.Series != config.DefaultSeries {
248
 
                toolsVersion.Series = config.DefaultSeries
249
 
                path = environs.ToolsStoragePath(toolsVersion)
250
 
                err = s.Put(path, strings.NewReader(toolsContents), int64(len(toolsContents)))
251
 
                if err != nil {
252
 
                        panic(err)
253
 
                }
254
 
        }
255
 
}
256
 
 
257
236
// listen starts a network listener listening for http
258
237
// requests to retrieve files in the state's storage.
259
238
func (s *environState) listen() {
479
458
                if err := st.SetEnvironConstraints(cons); err != nil {
480
459
                        panic(err)
481
460
                }
482
 
                if err := st.SetAdminMongoPassword(trivial.PasswordHash(password)); err != nil {
 
461
                if err := st.SetAdminMongoPassword(utils.PasswordHash(password)); err != nil {
483
462
                        panic(err)
484
463
                }
485
464
                // TODO(rog) use hash of password when the juju API connection