github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/commands/jobs/start.go (about)

     1  package jobs
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/Sirupsen/logrus"
     7  	"github.com/daticahealth/cli/commands/services"
     8  )
     9  
    10  func CmdStart(jobID string, svcName string, ij IJobs, is services.IServices) error {
    11  	service, err := is.RetrieveByLabel(svcName)
    12  	if err != nil {
    13  		return err
    14  	}
    15  	if service == nil {
    16  		return fmt.Errorf("Could not find a service with the label \"%s\". You can list services with the \"datica services list\" command.", svcName)
    17  	}
    18  
    19  	err = ij.Start(jobID, service.ID)
    20  
    21  	if err != nil {
    22  		return err
    23  	}
    24  	logrus.Printf("Job '%s' has been successfully started.", jobID)
    25  	return nil
    26  }
    27  
    28  func (j *SJobs) Start(jobID string, svcID string) error {
    29  
    30  	headers := j.Settings.HTTPManager.GetHeaders(j.Settings.SessionToken, j.Settings.Version, j.Settings.Pod, j.Settings.UsersID)
    31  	resp, statusCode, err := j.Settings.HTTPManager.Post(nil, 
    32  		fmt.Sprintf("%s%s/environments/%s/services/%s/jobs/%s/start", 
    33  			j.Settings.PaasHost, j.Settings.PaasHostVersion, j.Settings.EnvironmentID, svcID, jobID), headers)
    34  	if err != nil {
    35  		return err
    36  	}
    37  	
    38  	return j.Settings.HTTPManager.ConvertResp(resp, statusCode, nil)
    39  	
    40  }