diff --git a/manager/manager/manager.go b/manager/manager/manager.go index 2cb4858a3..8fb2b4ec2 100644 --- a/manager/manager/manager.go +++ b/manager/manager/manager.go @@ -90,26 +90,23 @@ func (m *manager) GetManifest(deploymentName string, manifestName string) (*Mani // and stores the deployment in the repository. Returns the deployment. func (m *manager) CreateDeployment(t *Template) (*Deployment, error) { log.Printf("Creating deployment: %s", t.Name) - et, err := m.expander.ExpandTemplate(*t) + _, err := m.repository.CreateDeployment(t.Name) if err != nil { - log.Printf("Expansion failed %v", err) + log.Printf("CreateDeployment failed %v", err) return nil, err } - _, err = m.repository.CreateDeployment(t.Name) + manifest, err := createManifest(t) if err != nil { - log.Printf("CreateDeployment failed %v", err) + log.Printf("Manifest creation failed: %v", err) + m.repository.SetDeploymentStatus(t.Name, FailedStatus) return nil, err } - manifest := NewManifest(t.Name, generateManifestName()) - manifest.InputConfig = t - manifest.ExpandedConfig = et.Config - manifest.Layout = et.Layout - err = m.repository.AddManifest(t.Name, manifest) if err != nil { log.Printf("AddManifest failed %v", err) + m.repository.SetDeploymentStatus(t.Name, FailedStatus) return nil, err } @@ -126,6 +123,22 @@ func (m *manager) CreateDeployment(t *Template) (*Deployment, error) { return m.repository.GetValidDeployment(t.Name) } +func (m *manager) createManifest(t *Template) (*Manifest, error) { + et, err := m.expander.ExpandTemplate(*t) + if err != nil { + log.Printf("Expansion failed %v", err) + return nil, err + } + + return &Manifest{ + Name: generateManifestName(), + Deployment: t.Name, + InputConfig: t, + ExpandedConfig: et.Config, + Layout: et.Layout, + } +} + func (m *manager) addTypeInstances(deploymentName string, manifestName string, layout *Layout) { m.repository.ClearTypeInstances(deploymentName) diff --git a/manager/manager/types.go b/manager/manager/types.go index e9c95e728..e8e3fd478 100644 --- a/manager/manager/types.go +++ b/manager/manager/types.go @@ -81,11 +81,6 @@ func NewDeployment(name string, id int) *Deployment { Manifests: make(map[string]*Manifest, 0)} } -// NewManifest creates a new manifest. -func NewManifest(deploymentName string, manifestName string) *Manifest { - return &Manifest{Deployment: deploymentName, Name: manifestName} -} - // DeploymentStatus is an enumeration type for the status of a deployment. type DeploymentStatus string