github.com/skippbox/kompose-origin@v0.0.0-20160524133224-16a9dca7bac2/project/events/events.go (about)

     1  // Package events holds event structures, methods and functions.
     2  package events
     3  
     4  import (
     5  	"fmt"
     6  )
     7  
     8  // Notifier defines the methods an event notifier should have.
     9  type Notifier interface {
    10  	Notify(eventType EventType, serviceName string, data map[string]string)
    11  }
    12  
    13  // Emitter defines the methods an event emitter should have.
    14  type Emitter interface {
    15  	AddListener(c chan<- Event)
    16  }
    17  
    18  // Event holds project-wide event informations.
    19  type Event struct {
    20  	EventType   EventType
    21  	ServiceName string
    22  	Data        map[string]string
    23  }
    24  
    25  // EventType defines a type of libcompose event.
    26  type EventType int
    27  
    28  // Definitions of libcompose events
    29  const (
    30  	NoEvent = EventType(iota)
    31  
    32  	ContainerCreated = EventType(iota)
    33  	ContainerStarted = EventType(iota)
    34  
    35  	ServiceAdd          = EventType(iota)
    36  	ServiceUpStart      = EventType(iota)
    37  	ServiceUpIgnored    = EventType(iota)
    38  	ServiceUp           = EventType(iota)
    39  	ServiceCreateStart  = EventType(iota)
    40  	ServiceCreate       = EventType(iota)
    41  	ServiceDeleteStart  = EventType(iota)
    42  	ServiceDelete       = EventType(iota)
    43  	ServiceDownStart    = EventType(iota)
    44  	ServiceDown         = EventType(iota)
    45  	ServiceRestartStart = EventType(iota)
    46  	ServiceRestart      = EventType(iota)
    47  	ServicePullStart    = EventType(iota)
    48  	ServicePull         = EventType(iota)
    49  	ServiceKillStart    = EventType(iota)
    50  	ServiceKill         = EventType(iota)
    51  	ServiceStartStart   = EventType(iota)
    52  	ServiceStart        = EventType(iota)
    53  	ServiceBuildStart   = EventType(iota)
    54  	ServiceBuild        = EventType(iota)
    55  	ServicePauseStart   = EventType(iota)
    56  	ServicePause        = EventType(iota)
    57  	ServiceUnpauseStart = EventType(iota)
    58  	ServiceUnpause      = EventType(iota)
    59  	ServiceStopStart    = EventType(iota)
    60  	ServiceStop         = EventType(iota)
    61  	ServiceRunStart     = EventType(iota)
    62  	ServiceRun          = EventType(iota)
    63  
    64  	VolumeAdd  = EventType(iota)
    65  	NetworkAdd = EventType(iota)
    66  
    67  	ProjectDownStart     = EventType(iota)
    68  	ProjectDownDone      = EventType(iota)
    69  	ProjectCreateStart   = EventType(iota)
    70  	ProjectCreateDone    = EventType(iota)
    71  	ProjectUpStart       = EventType(iota)
    72  	ProjectUpDone        = EventType(iota)
    73  	ProjectDeleteStart   = EventType(iota)
    74  	ProjectDeleteDone    = EventType(iota)
    75  	ProjectRestartStart  = EventType(iota)
    76  	ProjectRestartDone   = EventType(iota)
    77  	ProjectReload        = EventType(iota)
    78  	ProjectReloadTrigger = EventType(iota)
    79  	ProjectKillStart     = EventType(iota)
    80  	ProjectKillDone      = EventType(iota)
    81  	ProjectStartStart    = EventType(iota)
    82  	ProjectStartDone     = EventType(iota)
    83  	ProjectBuildStart    = EventType(iota)
    84  	ProjectBuildDone     = EventType(iota)
    85  	ProjectPauseStart    = EventType(iota)
    86  	ProjectPauseDone     = EventType(iota)
    87  	ProjectUnpauseStart  = EventType(iota)
    88  	ProjectUnpauseDone   = EventType(iota)
    89  	ProjectStopStart     = EventType(iota)
    90  	ProjectStopDone      = EventType(iota)
    91  )
    92  
    93  func (e EventType) String() string {
    94  	var m string
    95  	switch e {
    96  	case ContainerCreated:
    97  		m = "Created container"
    98  	case ContainerStarted:
    99  		m = "Started container"
   100  
   101  	case ServiceAdd:
   102  		m = "Adding"
   103  	case ServiceUpStart:
   104  		m = "Starting"
   105  	case ServiceUpIgnored:
   106  		m = "Ignoring"
   107  	case ServiceUp:
   108  		m = "Started"
   109  	case ServiceCreateStart:
   110  		m = "Creating"
   111  	case ServiceCreate:
   112  		m = "Created"
   113  	case ServiceDeleteStart:
   114  		m = "Deleting"
   115  	case ServiceDelete:
   116  		m = "Deleted"
   117  	case ServiceStopStart:
   118  		m = "Stopping"
   119  	case ServiceStop:
   120  		m = "Stopped"
   121  	case ServiceDownStart:
   122  		m = "Stopping"
   123  	case ServiceDown:
   124  		m = "Stopped"
   125  	case ServiceRestartStart:
   126  		m = "Restarting"
   127  	case ServiceRestart:
   128  		m = "Restarted"
   129  	case ServicePullStart:
   130  		m = "Pulling"
   131  	case ServicePull:
   132  		m = "Pulled"
   133  	case ServiceKillStart:
   134  		m = "Killing"
   135  	case ServiceKill:
   136  		m = "Killed"
   137  	case ServiceStartStart:
   138  		m = "Starting"
   139  	case ServiceStart:
   140  		m = "Started"
   141  	case ServiceBuildStart:
   142  		m = "Building"
   143  	case ServiceBuild:
   144  		m = "Built"
   145  	case ServiceRunStart:
   146  		m = "Executing"
   147  	case ServiceRun:
   148  		m = "Executed"
   149  
   150  	case ProjectDownStart:
   151  		m = "Stopping project"
   152  	case ProjectDownDone:
   153  		m = "Project stopped"
   154  	case ProjectStopStart:
   155  		m = "Stopping project"
   156  	case ProjectStopDone:
   157  		m = "Project stopped"
   158  	case ProjectCreateStart:
   159  		m = "Creating project"
   160  	case ProjectCreateDone:
   161  		m = "Project created"
   162  	case ProjectUpStart:
   163  		m = "Starting project"
   164  	case ProjectUpDone:
   165  		m = "Project started"
   166  	case ProjectDeleteStart:
   167  		m = "Deleting project"
   168  	case ProjectDeleteDone:
   169  		m = "Project deleted"
   170  	case ProjectRestartStart:
   171  		m = "Restarting project"
   172  	case ProjectRestartDone:
   173  		m = "Project restarted"
   174  	case ProjectReload:
   175  		m = "Reloading project"
   176  	case ProjectReloadTrigger:
   177  		m = "Triggering project reload"
   178  	case ProjectKillStart:
   179  		m = "Killing project"
   180  	case ProjectKillDone:
   181  		m = "Project killed"
   182  	case ProjectStartStart:
   183  		m = "Starting project"
   184  	case ProjectStartDone:
   185  		m = "Project started"
   186  	case ProjectBuildStart:
   187  		m = "Building project"
   188  	case ProjectBuildDone:
   189  		m = "Project built"
   190  	}
   191  
   192  	if m == "" {
   193  		m = fmt.Sprintf("EventType: %d", int(e))
   194  	}
   195  
   196  	return m
   197  }