// InstanceTags returns the minimum set of tags that should be set on a // machine instance, if the provider supports them. func InstanceTags(cfg *config.Config, jobs []multiwatcher.MachineJob) map[string]string { instanceTags := tags.ResourceTags( names.NewModelTag(cfg.UUID()), names.NewModelTag(cfg.ControllerUUID()), cfg, ) if multiwatcher.AnyJobNeedsState(jobs...) { instanceTags[tags.JujuIsController] = "true" } return instanceTags }
// storageTags returns the tags that should be set on a volume or filesystem, // if the provider supports them. func storageTags( storageInstance state.StorageInstance, cfg *config.Config, ) (map[string]string, error) { storageTags := tags.ResourceTags( names.NewModelTag(cfg.UUID()), names.NewModelTag(cfg.ControllerUUID()), cfg, ) if storageInstance != nil { storageTags[tags.JujuStorageInstance] = storageInstance.Tag().Id() storageTags[tags.JujuStorageOwner] = storageInstance.Owner().Id() } return storageTags, nil }
func (p *environProvider) Open(cfg *config.Config) (environs.Environ, error) { p.mu.Lock() defer p.mu.Unlock() ecfg, err := p.newConfig(cfg) if err != nil { return nil, err } if _, ok := p.state[cfg.ControllerUUID()]; !ok { return nil, errNotPrepared } env := &environ{ name: ecfg.Name(), ecfgUnlocked: ecfg, } if err := env.checkBroken("Open"); err != nil { return nil, err } return env, nil }
func controllerValues(config *config.Config) map[string]interface{} { result := make(map[string]interface{}) result["state-port"] = config.StatePort() result["api-port"] = config.APIPort() result["controller-uuid"] = config.ControllerUUID() // We ignore the second bool param from the CACert check as if there // wasn't a CACert, there is no way we'd be importing a new model // into the controller result["ca-cert"], _ = config.CACert() return result }