Merge lp:~themue/juju-core/049-prepare-ec2 into lp:~go-bot/juju-core/trunk
Proposed by
Frank Mueller
Status: | Rejected |
---|---|
Rejected by: | William Reade |
Proposed branch: | lp:~themue/juju-core/049-prepare-ec2 |
Merge into: | lp:~go-bot/juju-core/trunk |
Diff against target: |
65 lines (+47/-1) 2 files modified
provider/ec2/config_test.go (+30/-0) provider/ec2/ec2.go (+17/-1) |
To merge this branch: | bzr merge lp:~themue/juju-core/049-prepare-ec2 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Juju Engineering | Pending | ||
Review via email: mp+188865@code.launchpad.net |
Description of the change
ec2: implemented preparing of configuration
Currently the providers don't use Prepare() for the
preparing of their configuration. Here this is changed
for EC2. So far only the existance and type of
"control-bucket" are checked. Other providers will
have different checks.
To post a comment you must log in.
Unmerged revisions
- 1928. By Frank Mueller
-
ec2: implemented configuration preparing
Reviewers: mp+188865_ code.launchpad. net,
Message:
Please take a look.
Description:
ec2: implemented preparing of configuration
Currently the providers don't use Prepare() for the
preparing of their configuration. Here this is changed
for EC2. So far only the existance and type of
"control-bucket" are checked. Other providers will
have different checks.
https:/ /code.launchpad .net/~themue/ juju-core/ 049-prepare- ec2/+merge/ 188865
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/14282044/
Affected files (+49, -1 lines): ec2/config_ test.go
A [revision details]
M provider/
M provider/ec2/ec2.go
Index: [revision details] 20131002130110- 6i0rmclha2rfugv w
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: tarmac-
+New revision: <email address hidden>
Index: provider/ ec2/config_ test.go ec2/config_ test.go' ec2/config_ test.go 2013-09-27 02:00:34 +0000 ec2/config_ test.go 2013-10-02 14:55:45 +0000 FakeConfig( ).Merge( testing. Attrs{ New(config. NoDefaults, attrs) Provider( cfg.Type( )) ecfg.controlBuc ket(), gc.Matches, "juju-[ a-f0-9] {32}") FakeConfig( ).Merge( testing. Attrs{ New(config. NoDefaults, attrs) Provider( cfg.Type( )) ecfg.controlBuc ket(), gc.Matches, "juju-[ a-f0-9] {32}")
=== modified file 'provider/
--- provider/
+++ provider/
@@ -327,3 +327,33 @@
test.err = "environment has no access-key or secret-key"
test.check(c)
}
+
+func (s *ConfigSuite) TestPrepare(c *gc.C) {
+ // No value for control bucket.
+ attrs := testing.
+ "type": "ec2",
+ })
+ cfg, err := config.
+ c.Assert(err, gc.IsNil)
+ p, err := environs.
+ c.Assert(err, gc.IsNil)
+ e, err := p.Prepare(cfg)
+ c.Assert(err, gc.IsNil)
+ ecfg := e.(*environ).ecfg()
+ c.Assert(
+
+ // Wrong type of control bucket value.
+ attrs = testing.
+ "type": "ec2",
+ "control-bucket": 1234,
+ })
+ cfg, err = config.
+ c.Assert(err, gc.IsNil)
+ p, err = environs.
+ c.Assert(err, gc.IsNil)
+ e, err = p.Prepare(cfg)
+ c.Assert(err, gc.IsNil)
+ ecfg = e.(*environ).ecfg()
+ c.Assert(
+
+}
Index: provider/ec2/ec2.go ec2/ec2. go'
=== modified file 'provider/
--- provider/ec2/ec2.go 2013-10-02 00:29:29 +0000
+++ provider/ec2/ec2.go 2013-10-02 14:55:45 +0000
@@ -213,7 +213,23 @@
func (p environProvider) Prepare(cfg *config.Config) (environs.Environ, Infof(" preparing environment %q", cfg.Name()) control- bucket" ].(string) Errorf( "error generating random id: %v", err)) control- bucket" ] = fmt.Sprintf( "juju-% x", uuid.Raw())
error) {
logger.
- // TODO create/verify control bucket if necessary.
+ attrs := cfg.AllAttrs()
+
+ // Check control bucket.
+ controlBucket, ok := attrs["
+ if !ok || controlBucket == "" {
+ uuid, err := utils.NewUUID()
+ if err != nil {
+ panic(fmt.
+ }
+ attrs["
+ }
+
+ // Apply changes.
+ cfg, err := cfg.Apply(attrs)
+ if err != nil {
+ return nil, err
+ }
return p.Open(cfg)
}