| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| 1 package main | 1 package main |
| 2 | 2 |
| 3 import ( | 3 import ( |
| 4 "launchpad.net/gnuflag" | 4 "launchpad.net/gnuflag" |
| 5 "launchpad.net/juju-core/cmd" | 5 "launchpad.net/juju-core/cmd" |
| 6 "launchpad.net/juju-core/environs" | 6 "launchpad.net/juju-core/environs" |
| 7 "launchpad.net/juju-core/juju" | |
| 8 ) | 7 ) |
| 9 | 8 |
| 10 // BootstrapCommand is responsible for launching the first machine in a juju | 9 // BootstrapCommand is responsible for launching the first machine in a juju |
| 11 // environment, and setting up everything necessary to continue working. | 10 // environment, and setting up everything necessary to continue working. |
| 12 type BootstrapCommand struct { | 11 type BootstrapCommand struct { |
| 13 EnvName string | 12 EnvName string |
| 14 UploadTools bool | 13 UploadTools bool |
| 15 } | 14 } |
| 16 | 15 |
| 17 func (c *BootstrapCommand) Info() *cmd.Info { | 16 func (c *BootstrapCommand) Info() *cmd.Info { |
| 18 return &cmd.Info{"bootstrap", "", "start up an environment from scratch" , ""} | 17 return &cmd.Info{"bootstrap", "", "start up an environment from scratch" , ""} |
| 19 } | 18 } |
| 20 | 19 |
| 21 func (c *BootstrapCommand) Init(f *gnuflag.FlagSet, args []string) error { | 20 func (c *BootstrapCommand) Init(f *gnuflag.FlagSet, args []string) error { |
| 22 addEnvironFlags(&c.EnvName, f) | 21 addEnvironFlags(&c.EnvName, f) |
| 23 f.BoolVar(&c.UploadTools, "upload-tools", false, "upload local version o f tools before bootstrapping") | 22 f.BoolVar(&c.UploadTools, "upload-tools", false, "upload local version o f tools before bootstrapping") |
| 24 if err := f.Parse(true, args); err != nil { | 23 if err := f.Parse(true, args); err != nil { |
| 25 return err | 24 return err |
| 26 } | 25 } |
| 27 return cmd.CheckEmpty(f.Args()) | 26 return cmd.CheckEmpty(f.Args()) |
| 28 } | 27 } |
| 29 | 28 |
| 30 // Run connects to the environment specified on the command line and bootstraps | 29 // Run connects to the environment specified on the command line and bootstraps |
| 31 // a juju in that environment if none already exists. | 30 // a juju in that environment if none already exists. |
| 32 func (c *BootstrapCommand) Run(_ *cmd.Context) error { | 31 func (c *BootstrapCommand) Run(_ *cmd.Context) error { |
| 33 environ, err := environs.NewFromName(c.EnvName) | 32 environ, err := environs.NewFromName(c.EnvName) |
| 34 if err != nil { | 33 if err != nil { |
| 35 return err | 34 return err |
| 36 } | 35 } |
| 37 » return juju.Bootstrap(environ, c.UploadTools, nil) | 36 » // TODO(rog) use (juju/environs).Bootstrap |
| 37 » return environ.Bootstrap(c.UploadTools, caPEM) | |
| 38 } | 38 } |
| 39 | |
| 40 var caPEM=[]byte(` | |
| 41 -----BEGIN CERTIFICATE----- | |
| 42 MIIBnTCCAUmgAwIBAgIBADALBgkqhkiG9w0BAQUwJjENMAsGA1UEChMEanVqdTEV | |
| 43 MBMGA1UEAxMManVqdSB0ZXN0aW5nMB4XDTEyMTExNDE0Mzg1NFoXDTIyMTExNDE0 | |
| 44 NDM1NFowJjENMAsGA1UEChMEanVqdTEVMBMGA1UEAxMManVqdSB0ZXN0aW5nMFow | |
| 45 CwYJKoZIhvcNAQEBA0sAMEgCQQCCOOpn9aWKcKr2GQGtygwD7PdfNe1I9BYiPAqa | |
| 46 2I33F5+6PqFdfujUKvoyTJI6XG4Qo/CECaaN9smhyq9DxzMhAgMBAAGjZjBkMA4G | |
| 47 A1UdDwEB/wQEAwIABDASBgNVHRMBAf8ECDAGAQH/AgEBMB0GA1UdDgQWBBQQDswP | |
| 48 FQGeGMeTzPbHW62EZbbTJzAfBgNVHSMEGDAWgBQQDswPFQGeGMeTzPbHW62EZbbT | |
| 49 JzALBgkqhkiG9w0BAQUDQQAqZzN0DqUyEfR8zIanozyD2pp10m9le+ODaKZDDNfH | |
| 50 8cB2x26F1iZ8ccq5IC2LtQf1IKJnpTcYlLuDvW6yB96g | |
| 51 -----END CERTIFICATE----- | |
| 52 -----BEGIN RSA PRIVATE KEY----- | |
| 53 MIIBOwIBAAJBAII46mf1pYpwqvYZAa3KDAPs91817Uj0FiI8CprYjfcXn7o+oV1+ | |
| 54 6NQq+jJMkjpcbhCj8IQJpo32yaHKr0PHMyECAwEAAQJAYctedh4raLE+Ir0a3qnK | |
| 55 pjQSfiUggtYTvTf7+tfAnZu946PX88ysr7XHPkXEGP4tWDTbl8BfGndrTKswVOx6 | |
| 56 RQIhAOT5OzafJneDQ5cuGLN/hxIPBLWxKT1/25O6dhtBlRyPAiEAkZfFvCtBZyKB | |
| 57 JFwDdp+7gE98mXtaFrjctLWeFx797U8CIAnnqiMTwWM8H2ljyhfBtYMXeTmu3zzU | |
| 58 0hfS4hcNwDiLAiEAkNXXU7YEPkFJD46ps1x7/s0UOutHV8tXZD44ou+l1GkCIQDO | |
| 59 HOzuvYngJpoClGw0ipzJPoNZ2Z/GkdOWGByPeKu/8g== | |
| 60 -----END RSA PRIVATE KEY----- | |
| 61 `) | |
|
TheMue
2012/11/22 11:02:47
The other CL has a [1:] here to suppress the leadi
rog
2012/11/22 11:08:06
It doesn't matter here, as we're not using it for
| |
| OLD | NEW |