Beispiel #1
0
func updateStack(svc *cloudformation.CloudFormation, stackName, stackBody string) (string, error) {

	input := &cloudformation.UpdateStackInput{
		Capabilities: []*string{aws.String(cloudformation.CapabilityCapabilityIam)},
		StackName:    aws.String(stackName),
		TemplateBody: aws.String(stackBody),
	}

	updateOutput, err := svc.UpdateStack(input)

	if err != nil {
		return "", fmt.Errorf("Error updating cloudformation stack: %v", err)
	}

	return updateOutput.String(), waitForStackUpdateComplete(svc, *updateOutput.StackId)
}
Beispiel #2
0
Datei: run.go Projekt: inka/tacks
func (r *Run) runUpdate(client *cf.CloudFormation, d tacks.Document, stack string) error {

	e := d.Environment

	tacks.Logger().Infof("Updating stack %s", e.StackName)

	var (
		capabilities []*string
	)

	if d.IsIamCapabilitiesRequired() {
		capabilities = append(capabilities, aws.String("CAPABILITY_IAM"))
	}

	_, err := client.UpdateStack(&cf.UpdateStackInput{
		Capabilities: capabilities,
		StackName:    aws.String(e.StackName),
		TemplateBody: aws.String(stack),
	})

	return err

}
	})

	AfterEach(func() {
		if fakeServer != nil {
			fakeServer.Close()
		}
	})

	It("should properly parse nested structs in the input", func() {
		client.UpdateStack(
			&cloudformation.UpdateStackInput{
				StackName: aws.String("some-stack-name"),
				Parameters: []*cloudformation.Parameter{
					&cloudformation.Parameter{
						ParameterKey:   aws.String("some-key-0"),
						ParameterValue: aws.String("some-value-0"),
					},
					&cloudformation.Parameter{
						ParameterKey:   aws.String("some-key-1"),
						ParameterValue: aws.String("some-value-1"),
					},
				},
			})

		Expect(fakeBackend.UpdateStackCall.Receives).NotTo(BeNil())
		Expect(fakeBackend.UpdateStackCall.Receives.StackName).To(Equal(aws.String("some-stack-name")))
		Expect(fakeBackend.UpdateStackCall.Receives.Parameters).To(Equal(
			[]*cloudformation.Parameter{
				&cloudformation.Parameter{
					ParameterKey:   aws.String("some-key-0"),
					ParameterValue: aws.String("some-value-0"),
				},