github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/event/events.go (about)

     1  package event
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	"github.com/pf-qiu/concourse/v6/atc"
     7  )
     8  
     9  type Error struct {
    10  	Message string `json:"message"`
    11  	Origin  Origin `json:"origin"`
    12  	Time    int64  `json:"time"`
    13  }
    14  
    15  func (Error) EventType() atc.EventType  { return EventTypeError }
    16  func (Error) Version() atc.EventVersion { return "4.1" }
    17  
    18  type FinishTask struct {
    19  	Time       int64  `json:"time"`
    20  	ExitStatus int    `json:"exit_status"`
    21  	Origin     Origin `json:"origin"`
    22  }
    23  
    24  func (FinishTask) EventType() atc.EventType  { return EventTypeFinishTask }
    25  func (FinishTask) Version() atc.EventVersion { return "4.0" }
    26  
    27  type InitializeTask struct {
    28  	Time       int64      `json:"time"`
    29  	Origin     Origin     `json:"origin"`
    30  	TaskConfig TaskConfig `json:"config"`
    31  }
    32  
    33  func (InitializeTask) EventType() atc.EventType  { return EventTypeInitializeTask }
    34  func (InitializeTask) Version() atc.EventVersion { return "4.0" }
    35  
    36  // shadow the real atc.TaskConfig
    37  type TaskConfig struct {
    38  	Platform string `json:"platform"`
    39  	Image    string `json:"image"`
    40  
    41  	Run    TaskRunConfig     `json:"run"`
    42  	Inputs []TaskInputConfig `json:"inputs"`
    43  }
    44  
    45  type TaskRunConfig struct {
    46  	Path string   `json:"path"`
    47  	Args []string `json:"args"`
    48  	Dir  string   `json:"dir"`
    49  }
    50  
    51  type TaskInputConfig struct {
    52  	Name string `json:"name"`
    53  	Path string `json:"path"`
    54  }
    55  
    56  func ShadowTaskConfig(config atc.TaskConfig) TaskConfig {
    57  	var inputConfigs []TaskInputConfig
    58  
    59  	for _, input := range config.Inputs {
    60  		inputConfigs = append(inputConfigs, TaskInputConfig{
    61  			Name: input.Name,
    62  			Path: input.Path,
    63  		})
    64  	}
    65  
    66  	return TaskConfig{
    67  		Platform: config.Platform,
    68  		Image:    config.RootfsURI,
    69  		Run: TaskRunConfig{
    70  			Path: config.Run.Path,
    71  			Args: config.Run.Args,
    72  			Dir:  config.Run.Dir,
    73  		},
    74  		Inputs: inputConfigs,
    75  	}
    76  }
    77  
    78  type StartTask struct {
    79  	Time       int64      `json:"time"`
    80  	Origin     Origin     `json:"origin"`
    81  	TaskConfig TaskConfig `json:"config"`
    82  }
    83  
    84  func (StartTask) EventType() atc.EventType  { return EventTypeStartTask }
    85  func (StartTask) Version() atc.EventVersion { return "5.0" }
    86  
    87  type Status struct {
    88  	Status atc.BuildStatus `json:"status"`
    89  	Time   int64           `json:"time"`
    90  }
    91  
    92  func (Status) EventType() atc.EventType  { return EventTypeStatus }
    93  func (Status) Version() atc.EventVersion { return "1.0" }
    94  
    95  type SelectedWorker struct {
    96  	Time       int64  `json:"time"`
    97  	Origin     Origin `json:"origin"`
    98  	WorkerName string `json:"selected_worker"`
    99  }
   100  
   101  func (SelectedWorker) EventType() atc.EventType  { return EventTypeSelectedWorker }
   102  func (SelectedWorker) Version() atc.EventVersion { return "1.0" }
   103  
   104  type Log struct {
   105  	Time    int64  `json:"time"`
   106  	Origin  Origin `json:"origin"`
   107  	Payload string `json:"payload"`
   108  }
   109  
   110  func (Log) EventType() atc.EventType  { return EventTypeLog }
   111  func (Log) Version() atc.EventVersion { return "5.1" }
   112  
   113  type Origin struct {
   114  	ID     OriginID     `json:"id,omitempty"`
   115  	Source OriginSource `json:"source,omitempty"`
   116  }
   117  
   118  type OriginID string
   119  
   120  func (id OriginID) String() string {
   121  	return string(id)
   122  }
   123  
   124  type OriginSource string
   125  
   126  const (
   127  	OriginSourceStdout OriginSource = "stdout"
   128  	OriginSourceStderr OriginSource = "stderr"
   129  )
   130  
   131  type InitializeGet struct {
   132  	Origin Origin `json:"origin"`
   133  	Time   int64  `json:"time,omitempty"`
   134  }
   135  
   136  func (InitializeGet) EventType() atc.EventType  { return EventTypeInitializeGet }
   137  func (InitializeGet) Version() atc.EventVersion { return "2.0" }
   138  
   139  type StartGet struct {
   140  	Origin Origin `json:"origin"`
   141  	Time   int64  `json:"time,omitempty"`
   142  }
   143  
   144  func (StartGet) EventType() atc.EventType  { return EventTypeStartGet }
   145  func (StartGet) Version() atc.EventVersion { return "1.0" }
   146  
   147  type FinishGet struct {
   148  	Origin          Origin              `json:"origin"`
   149  	Time            int64               `json:"time"`
   150  	ExitStatus      int                 `json:"exit_status"`
   151  	FetchedVersion  atc.Version         `json:"version"`
   152  	FetchedMetadata []atc.MetadataField `json:"metadata,omitempty"`
   153  }
   154  
   155  func (FinishGet) EventType() atc.EventType  { return EventTypeFinishGet }
   156  func (FinishGet) Version() atc.EventVersion { return "5.1" }
   157  
   158  type InitializePut struct {
   159  	Origin Origin `json:"origin"`
   160  	Time   int64  `json:"time,omitempty"`
   161  }
   162  
   163  func (InitializePut) EventType() atc.EventType  { return EventTypeInitializePut }
   164  func (InitializePut) Version() atc.EventVersion { return "2.0" }
   165  
   166  type StartPut struct {
   167  	Origin Origin `json:"origin"`
   168  	Time   int64  `json:"time,omitempty"`
   169  }
   170  
   171  func (StartPut) EventType() atc.EventType  { return EventTypeStartPut }
   172  func (StartPut) Version() atc.EventVersion { return "1.0" }
   173  
   174  type FinishPut struct {
   175  	Origin          Origin              `json:"origin"`
   176  	Time            int64               `json:"time"`
   177  	ExitStatus      int                 `json:"exit_status"`
   178  	CreatedVersion  atc.Version         `json:"version"`
   179  	CreatedMetadata []atc.MetadataField `json:"metadata,omitempty"`
   180  }
   181  
   182  func (FinishPut) EventType() atc.EventType  { return EventTypeFinishPut }
   183  func (FinishPut) Version() atc.EventVersion { return "5.1" }
   184  
   185  type SetPipelineChanged struct {
   186  	Origin  Origin `json:"origin"`
   187  	Changed bool   `json:"changed"`
   188  }
   189  
   190  func (SetPipelineChanged) EventType() atc.EventType  { return EventTypeSetPipelineChanged }
   191  func (SetPipelineChanged) Version() atc.EventVersion { return "1.0" }
   192  
   193  type Initialize struct {
   194  	Origin Origin `json:"origin"`
   195  	Time   int64  `json:"time,omitempty"`
   196  }
   197  
   198  func (Initialize) EventType() atc.EventType  { return EventTypeInitialize }
   199  func (Initialize) Version() atc.EventVersion { return "1.0" }
   200  
   201  type Start struct {
   202  	Origin Origin `json:"origin"`
   203  	Time   int64  `json:"time,omitempty"`
   204  }
   205  
   206  func (Start) EventType() atc.EventType  { return EventTypeStart }
   207  func (Start) Version() atc.EventVersion { return "1.0" }
   208  
   209  type Finish struct {
   210  	Origin    Origin `json:"origin"`
   211  	Time      int64  `json:"time"`
   212  	Succeeded bool   `json:"succeeded"`
   213  }
   214  
   215  func (Finish) EventType() atc.EventType  { return EventTypeFinish }
   216  func (Finish) Version() atc.EventVersion { return "1.0" }
   217  
   218  type ImageCheck struct {
   219  	Time       int64            `json:"time"`
   220  	Origin     Origin           `json:"origin"`
   221  	PublicPlan *json.RawMessage `json:"plan"`
   222  }
   223  
   224  func (ImageCheck) EventType() atc.EventType  { return EventTypeImageCheck }
   225  func (ImageCheck) Version() atc.EventVersion { return "1.1" }
   226  
   227  type ImageGet struct {
   228  	Time       int64            `json:"time"`
   229  	Origin     Origin           `json:"origin"`
   230  	PublicPlan *json.RawMessage `json:"plan"`
   231  }
   232  
   233  func (ImageGet) EventType() atc.EventType  { return EventTypeImageGet }
   234  func (ImageGet) Version() atc.EventVersion { return "1.1" }