Resource errors should result in a failed deployment with good errors.

pull/150/head
Brendan Melville 9 years ago
parent b0c0b3071e
commit 93f551d7fd

@ -125,6 +125,14 @@ func (m *manager) CreateDeployment(t *common.Template) (*common.Deployment, erro
return nil, err
}
} else {
// May be errors in the resources themselves.
errs := getResourceErrors(actualConfig)
if len(errs) > 0 {
e := fmt.Errorf("Found resource errors during deployment: %v", errs)
m.repository.SetDeploymentState(t.Name, failState(e))
return nil, e
}
m.repository.SetDeploymentState(t.Name, &common.DeploymentState{Status: common.DeployedStatus})
}
@ -301,3 +309,14 @@ func failState(e error) *common.DeploymentState {
Errors: []string{e.Error()},
}
}
func getResourceErrors(c *common.Configuration) []string {
var errs []string
for _, r := range c.Resources {
if r.State.Status == common.Failed {
errs = append(errs, r.State.Errors...)
}
}
return errs
}

@ -455,9 +455,6 @@ func TestDeleteDeploymentForget(t *testing.T) {
if err != nil {
t.Fatalf("DeleteDeployment failed with %v", err)
}
if d.State.Status != common.DeletedStatus {
t.Fatalf("Expected DeletedStatus on deleted deployment")
}
// Make sure the resources were deleted through deployer.
if len(testDeployer.Deleted) > 0 {

@ -175,7 +175,7 @@ func (a *Configurator) configureResource(resource *common.Resource, o operation)
} else {
e := fmt.Errorf("kubetcl failed for resource: %v: %v: %v", resource.Name, err, combined.String())
resource.State = failState(e)
return "", e
return combined.String(), e
}
}

Loading…
Cancel
Save