launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #15058
[Merge] lp:~jtv/juju-core/mpv-singleton into lp:~maas-maintainers/juju-core/maas-provider-skeleton
Jeroen T. Vermeulen has proposed merging lp:~jtv/juju-core/mpv-singleton into lp:~maas-maintainers/juju-core/maas-provider-skeleton.
Commit message:
Instantiate & register the MAAS environment provider. Make maasEnvironProvider, instead of *maasEnvironProvider, implement EnvironProvider.
Requested reviews:
MAAS Maintainers (maas-maintainers)
For more details, see:
https://code.launchpad.net/~jtv/juju-core/mpv-singleton/+merge/145777
This was cargo-culted off the EC2 provider: create a singleton instance of the maasEnvironProvider, and register it.
There is a difference, discussed with John Meinel: where the EC2 and OpenStack providers create a singleton instance but then register a separate instance, this code really uses just a single instance. We believe this is what the EC2 code intended. The OpenStack provider was cargo-culted off that one, so the fact that it does the same thing as the EC2 one is not particularly significant.
Jeroen
--
https://code.launchpad.net/~jtv/juju-core/mpv-singleton/+merge/145777
Your team MAAS Maintainers is requested to review the proposed merge of lp:~jtv/juju-core/mpv-singleton into lp:~maas-maintainers/juju-core/maas-provider-skeleton.
=== modified file 'environs/maas/environprovider.go'
--- environs/maas/environprovider.go 2013-01-29 09:51:16 +0000
+++ environs/maas/environprovider.go 2013-01-31 06:21:19 +0000
@@ -8,25 +8,33 @@
type maasEnvironProvider struct{}
+// maasEnvironProvider implements EnvironProvider.
var _ environs.EnvironProvider = (*maasEnvironProvider)(nil)
-func (*maasEnvironProvider) Open(cfg *config.Config) (environs.Environ, error) {
+// The provider is a singleton.
+var providerInstance maasEnvironProvider
+
+func init() {
+ environs.RegisterProvider("maas", &providerInstance)
+}
+
+func (maasEnvironProvider) Open(cfg *config.Config) (environs.Environ, error) {
log.Printf("environs/maas: opening environment %q.", cfg.Name())
return NewEnviron(cfg)
}
-func (*maasEnvironProvider) Validate(cfg, old *config.Config) (*config.Config, error) {
+func (maasEnvironProvider) Validate(cfg, old *config.Config) (*config.Config, error) {
return cfg, nil
}
-func (*maasEnvironProvider) SecretAttrs(*config.Config) (map[string]interface{}, error) {
- panic("Not implemented")
-}
-
-func (*maasEnvironProvider) PublicAddress() (string, error) {
- panic("Not implemented")
-}
-
-func (*maasEnvironProvider) PrivateAddress() (string, error) {
+func (maasEnvironProvider) SecretAttrs(*config.Config) (map[string]interface{}, error) {
+ panic("Not implemented")
+}
+
+func (maasEnvironProvider) PublicAddress() (string, error) {
+ panic("Not implemented")
+}
+
+func (maasEnvironProvider) PrivateAddress() (string, error) {
panic("Not implemented")
}
Follow ups