func()

in tools/mig-scaler/scale.go [121:155]


func (cmd *Scale) Execute(ctx context.Context) error {
	var err error

	client, err := NewClient(ctx, cmd.Workflow)
	if err != nil {
		return err
	}
	defer client.Close()

	err = client.Cancel(ctx, cmd.MIG)
	if err != nil {
		return err
	}

	job := &JobPayload{
		Project:    cmd.MIG.Project,
		Name:       cmd.MIG.Name,
		Region:     cmd.MIG.Region,
		Zone:       cmd.MIG.Zone,
		TargetSize: cmd.TargetSize,
		Increment:  cmd.Increment,
		Wait:       uint32(cmd.Wait.Seconds()),
		Deadline:   time.Now().Add(cmd.Duration),
	}

	e, err := client.Execute(ctx, job)
	if err != nil {
		log.Fatalf("error: %v", err)
	}

	log.Printf("info: job started \"%s\"", e.Name)
	// output the full name of the workflow execution to stdout to support scripts
	fmt.Println(e.Name)
	return nil
}