~ubuntu-branches/ubuntu/trusty/juju-core/trusty-proposed

« back to all changes in this revision

Viewing changes to src/launchpad.net/juju-core/cmd/jujud/agent.go

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-02-03 09:22:46 UTC
  • mfrom: (1.1.17)
  • Revision ID: package-import@ubuntu.com-20140203092246-e03vg402vztzo4qa
Tags: 1.17.2-0ubuntu1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
102
102
}
103
103
 
104
104
func isFatal(err error) bool {
105
 
        isTerminate := err == worker.ErrTerminateAgent
106
 
        notProvisioned := params.IsCodeNotProvisioned(err)
107
 
        if isTerminate || notProvisioned || isUpgraded(err) {
 
105
        if err == worker.ErrTerminateAgent {
 
106
                return true
 
107
        }
 
108
        if isUpgraded(err) {
108
109
                return true
109
110
        }
110
111
        _, ok := err.(*fatalError)
160
161
        return st, entity, nil
161
162
}
162
163
 
163
 
func openAPIState(agentConfig agent.Config, a Agent) (*api.State, *apiagent.Entity, error) {
 
164
type apiOpener interface {
 
165
        OpenAPI(api.DialOpts) (*api.State, string, error)
 
166
}
 
167
 
 
168
func openAPIState(agentConfig apiOpener, a Agent) (*api.State, *apiagent.Entity, error) {
164
169
        // We let the API dial fail immediately because the
165
170
        // runner's loop outside the caller of openAPIState will
166
171
        // keep on retrying. If we block for ages here,
168
173
        // be interrupted.
169
174
        st, newPassword, err := agentConfig.OpenAPI(api.DialOpts{})
170
175
        if err != nil {
 
176
                if params.IsCodeNotProvisioned(err) {
 
177
                        err = worker.ErrTerminateAgent
 
178
                }
171
179
                if params.IsCodeUnauthorized(err) {
172
180
                        err = worker.ErrTerminateAgent
173
181
                }