// breakDummyProvider changes the environment config in state in a way // that causes the given environMethod of the dummy provider to return // an error, which is also returned as a message to be checked. func breakDummyProvider(c *C, st *state.State, environMethod string) string { oldCfg, err := st.EnvironConfig() c.Assert(err, IsNil) cfg, err := oldCfg.Apply(map[string]interface{}{"broken": environMethod}) c.Assert(err, IsNil) err = st.SetEnvironConfig(cfg) c.Assert(err, IsNil) return fmt.Sprintf("dummy.%s is broken", environMethod) }
// SetAgentVersion sets the current agent version in the state's // environment configuration. func SetAgentVersion(st *state.State, vers version.Number) error { cfg, err := st.EnvironConfig() if err != nil { return err } cfg, err = cfg.Apply(map[string]interface{}{"agent-version": vers.String()}) if err != nil { return err } return st.SetEnvironConfig(cfg) }
// setAgentVersion sets the current agent version in the state's // environment configuration. func setAgentVersion(st *state.State, vers version.Number) error { cfg, err := st.EnvironConfig() if err != nil { return err } attrs := cfg.AllAttrs() attrs["agent-version"] = vers.String() cfg, err = config.New(attrs) if err != nil { panic(fmt.Errorf("config refused agent-version: %v", err)) } return st.SetEnvironConfig(cfg) }
// NewConnFromState returns a Conn that uses an Environ // made by reading the environment configuration. // The resulting Conn uses the given State - closing // it will close that State. func NewConnFromState(st *state.State) (*Conn, error) { cfg, err := st.EnvironConfig() if err != nil { return nil, err } environ, err := environs.New(cfg) if err != nil { return nil, err } return &Conn{ Environ: environ, State: st, }, nil }