Merge lp:~themue/juju-core/050-prepare-openstack into lp:~go-bot/juju-core/trunk

Proposed by Frank Mueller
Status: Rejected
Rejected by: William Reade
Proposed branch: lp:~themue/juju-core/050-prepare-openstack
Merge into: lp:~go-bot/juju-core/trunk
Diff against target: 68 lines (+50/-1)
2 files modified
provider/openstack/config_test.go (+32/-0)
provider/openstack/provider.go (+18/-1)
To merge this branch: bzr merge lp:~themue/juju-core/050-prepare-openstack
Reviewer Review Type Date Requested Status
Juju Engineering Pending
Review via email: mp+188883@code.launchpad.net

Description of the change

openstack: implemented prepare of configuration

Second CL regarding the implementation of Environ.Prepare()
of the different providers.

https://codereview.appspot.com/14291043/

To post a comment you must log in.
Revision history for this message
Frank Mueller (themue) wrote :

Reviewers: mp+188883_code.launchpad.net,

Message:
Please take a look.

Description:
openstack: implemented prepare of configuration

Second CL regarding the implementation of Environ.Prepare()
of the different providers.

https://code.launchpad.net/~themue/juju-core/050-prepare-openstack/+merge/188883

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/14291043/

Affected files (+52, -1 lines):
   A [revision details]
   M provider/openstack/config_test.go
   M provider/openstack/provider.go

Index: [revision details]
=== 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-20131002161148-7a4twmj22x7jxu0p
+New revision: <email address hidden>

Index: provider/openstack/config_test.go
=== modified file 'provider/openstack/config_test.go'
--- provider/openstack/config_test.go 2013-09-30 13:39:24 +0000
+++ provider/openstack/config_test.go 2013-10-02 16:25:18 +0000
@@ -507,3 +507,35 @@
    c.Assert(stripped, gc.Matches, expected)
   }
  }
+
+func (s *ConfigSuite) TestPrepare(c *gc.C) {
+ s.setupEnvCredentials()
+
+ // No value for control bucket.
+ attrs := testing.FakeConfig().Merge(testing.Attrs{
+ "type": "openstack",
+ })
+ cfg, err := config.New(config.NoDefaults, attrs)
+ c.Assert(err, gc.IsNil)
+ p, err := environs.Provider(cfg.Type())
+ c.Assert(err, gc.IsNil)
+ e, err := p.Prepare(cfg)
+ c.Assert(err, gc.IsNil)
+ ecfg := e.(*environ).ecfg()
+ c.Assert(ecfg.controlBucket(), gc.Matches, "juju-[a-f0-9]{32}")
+
+ // Wrong type of control bucket value.
+ attrs = testing.FakeConfig().Merge(testing.Attrs{
+ "type": "openstack",
+ "control-bucket": 1234,
+ })
+ cfg, err = config.New(config.NoDefaults, attrs)
+ c.Assert(err, gc.IsNil)
+ p, err = environs.Provider(cfg.Type())
+ c.Assert(err, gc.IsNil)
+ e, err = p.Prepare(cfg)
+ c.Assert(err, gc.IsNil)
+ ecfg = e.(*environ).ecfg()
+ c.Assert(ecfg.controlBucket(), gc.Matches, "juju-[a-f0-9]{32}")
+
+}

Index: provider/openstack/provider.go
=== modified file 'provider/openstack/provider.go'
--- provider/openstack/provider.go 2013-10-02 13:01:10 +0000
+++ provider/openstack/provider.go 2013-10-02 16:25:18 +0000
@@ -124,7 +124,24 @@
  }

  func (p environProvider) Prepare(cfg *config.Config) (environs.Environ,
error) {
- // TODO prepare environment
+ logger.Infof("preparing environment %q", cfg.Name())
+ attrs := cfg.AllAttrs()
+
+ // Check control bucket.
+ controlBucket, ok := attrs["control-bucket"].(string)
+ if !ok || controlBucket == "" {
+ uuid, err := utils.NewUUID()
+ if err != nil {
+ panic(fmt.Errorf("error generating random id: %v", err))
+ }
+ attrs["control-bucket"] = fmt.Sprintf("juju-%x", uuid.Raw())
+ }
+
+ // Apply changes.
+ cfg, err := cfg.Apply(attrs)
+ if err != nil {
+ return nil, err
+ }
   return p.Open(cfg)
  }

Revision history for this message
William Reade (fwereade) wrote :

same issue as https://codereview.appspot.com/14282044/ and same
suggestion -- I will try to take these over.

https://codereview.appspot.com/14291043/

Revision history for this message
William Reade (fwereade) wrote :

Unmerged revisions

1929. By Frank Mueller

merged trunk

1928. By Frank Mueller

openstack: implemented prepare

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'provider/openstack/config_test.go'
2--- provider/openstack/config_test.go 2013-09-30 13:39:24 +0000
3+++ provider/openstack/config_test.go 2013-10-02 16:38:29 +0000
4@@ -507,3 +507,35 @@
5 c.Assert(stripped, gc.Matches, expected)
6 }
7 }
8+
9+func (s *ConfigSuite) TestPrepare(c *gc.C) {
10+ s.setupEnvCredentials()
11+
12+ // No value for control bucket.
13+ attrs := testing.FakeConfig().Merge(testing.Attrs{
14+ "type": "openstack",
15+ })
16+ cfg, err := config.New(config.NoDefaults, attrs)
17+ c.Assert(err, gc.IsNil)
18+ p, err := environs.Provider(cfg.Type())
19+ c.Assert(err, gc.IsNil)
20+ e, err := p.Prepare(cfg)
21+ c.Assert(err, gc.IsNil)
22+ ecfg := e.(*environ).ecfg()
23+ c.Assert(ecfg.controlBucket(), gc.Matches, "juju-[a-f0-9]{32}")
24+
25+ // Wrong type of control bucket value.
26+ attrs = testing.FakeConfig().Merge(testing.Attrs{
27+ "type": "openstack",
28+ "control-bucket": 1234,
29+ })
30+ cfg, err = config.New(config.NoDefaults, attrs)
31+ c.Assert(err, gc.IsNil)
32+ p, err = environs.Provider(cfg.Type())
33+ c.Assert(err, gc.IsNil)
34+ e, err = p.Prepare(cfg)
35+ c.Assert(err, gc.IsNil)
36+ ecfg = e.(*environ).ecfg()
37+ c.Assert(ecfg.controlBucket(), gc.Matches, "juju-[a-f0-9]{32}")
38+
39+}
40
41=== modified file 'provider/openstack/provider.go'
42--- provider/openstack/provider.go 2013-10-02 13:01:10 +0000
43+++ provider/openstack/provider.go 2013-10-02 16:38:29 +0000
44@@ -124,7 +124,24 @@
45 }
46
47 func (p environProvider) Prepare(cfg *config.Config) (environs.Environ, error) {
48- // TODO prepare environment
49+ logger.Infof("preparing environment %q", cfg.Name())
50+ attrs := cfg.AllAttrs()
51+
52+ // Check control bucket.
53+ controlBucket, ok := attrs["control-bucket"].(string)
54+ if !ok || controlBucket == "" {
55+ uuid, err := utils.NewUUID()
56+ if err != nil {
57+ panic(fmt.Errorf("error generating random id: %v", err))
58+ }
59+ attrs["control-bucket"] = fmt.Sprintf("juju-%x", uuid.Raw())
60+ }
61+
62+ // Apply changes.
63+ cfg, err := cfg.Apply(attrs)
64+ if err != nil {
65+ return nil, err
66+ }
67 return p.Open(cfg)
68 }
69

Subscribers

People subscribed via source and target branches

to status/vote changes: