diff --git a/runtime/kubernetes/kubernetes.go b/runtime/kubernetes/kubernetes.go index 90931811..fcb16ca8 100644 --- a/runtime/kubernetes/kubernetes.go +++ b/runtime/kubernetes/kubernetes.go @@ -347,7 +347,7 @@ func (k *kubernetes) Init(opts ...runtime.Option) error { return nil } -func (k *kubernetes) Logs(s *runtime.Service, options ...runtime.LogsOption) (runtime.LogStream, error) { +func (k *kubernetes) Logs(s *runtime.Service, options ...runtime.LogsOption) (runtime.Logs, error) { klo := newLog(k.client, s.Name, options...) if !klo.options.Stream { @@ -357,7 +357,7 @@ func (k *kubernetes) Logs(s *runtime.Service, options ...runtime.LogsOption) (ru return nil, err } kstream := &kubeStream{ - stream: make(chan runtime.LogRecord), + stream: make(chan runtime.Log), stop: make(chan bool), } go func() { @@ -377,7 +377,7 @@ func (k *kubernetes) Logs(s *runtime.Service, options ...runtime.LogsOption) (ru type kubeStream struct { // the k8s log stream - stream chan runtime.LogRecord + stream chan runtime.Log // the stop chan sync.Mutex stop chan bool @@ -388,7 +388,7 @@ func (k *kubeStream) Error() error { return k.err } -func (k *kubeStream) Chan() chan runtime.LogRecord { +func (k *kubeStream) Chan() chan runtime.Log { return k.stream } diff --git a/runtime/kubernetes/logs.go b/runtime/kubernetes/logs.go index bd8a3687..b67632a6 100644 --- a/runtime/kubernetes/logs.go +++ b/runtime/kubernetes/logs.go @@ -21,7 +21,7 @@ type klog struct { options runtime.LogsOptions } -func (k *klog) podLogStream(podName string, stream *kubeStream) error { +func (k *klog) podLogs(podName string, stream *kubeStream) error { p := make(map[string]string) p["follow"] = "true" @@ -51,7 +51,7 @@ func (k *klog) podLogStream(podName string, stream *kubeStream) error { return stream.Error() default: if s.Scan() { - record := runtime.LogRecord{ + record := runtime.Log{ Message: s.Text(), } select { @@ -101,7 +101,7 @@ func (k *klog) getMatchingPods() ([]string, error) { return matches, nil } -func (k *klog) Read() ([]runtime.LogRecord, error) { +func (k *klog) Read() ([]runtime.Log, error) { pods, err := k.getMatchingPods() if err != nil { return nil, err @@ -110,7 +110,7 @@ func (k *klog) Read() ([]runtime.LogRecord, error) { return nil, errors.NotFound("runtime.logs", "no such service") } - var records []runtime.LogRecord + var records []runtime.Log for _, pod := range pods { logParams := make(map[string]string) @@ -145,7 +145,7 @@ func (k *klog) Read() ([]runtime.LogRecord, error) { s := bufio.NewScanner(logs) for s.Scan() { - record := runtime.LogRecord{ + record := runtime.Log{ Message: s.Text(), } // record.Metadata["pod"] = pod @@ -159,7 +159,7 @@ func (k *klog) Read() ([]runtime.LogRecord, error) { return records, nil } -func (k *klog) Stream() (runtime.LogStream, error) { +func (k *klog) Stream() (runtime.Logs, error) { // find the matching pods pods, err := k.getMatchingPods() if err != nil { @@ -170,14 +170,14 @@ func (k *klog) Stream() (runtime.LogStream, error) { } stream := &kubeStream{ - stream: make(chan runtime.LogRecord), + stream: make(chan runtime.Log), stop: make(chan bool), } // stream from the individual pods for _, pod := range pods { go func(podName string) { - err := k.podLogStream(podName, stream) + err := k.podLogs(podName, stream) if err != nil { log.Errorf("Error streaming from pod: %v", err) } diff --git a/runtime/local/local.go b/runtime/local/local.go index 602cd4ac..a122fcea 100644 --- a/runtime/local/local.go +++ b/runtime/local/local.go @@ -329,14 +329,14 @@ func exists(path string) (bool, error) { // The reason for this is because it's hard to calculate line offset // as opposed to character offset. // This logger streams by default and only supports the `StreamCount` option. -func (r *localRuntime) Logs(s *runtime.Service, options ...runtime.LogsOption) (runtime.LogStream, error) { +func (r *localRuntime) Logs(s *runtime.Service, options ...runtime.LogsOption) (runtime.Logs, error) { lopts := runtime.LogsOptions{} for _, o := range options { o(&lopts) } ret := &logStream{ service: s.Name, - stream: make(chan runtime.LogRecord), + stream: make(chan runtime.Log), stop: make(chan bool), } @@ -380,7 +380,7 @@ func (r *localRuntime) Logs(s *runtime.Service, options ...runtime.LogsOption) ( ret.Stop() return } - ret.stream <- runtime.LogRecord{Message: line.Text} + ret.stream <- runtime.Log{Message: line.Text} case <-ret.stop: return } @@ -393,13 +393,13 @@ func (r *localRuntime) Logs(s *runtime.Service, options ...runtime.LogsOption) ( type logStream struct { tail *tail.Tail service string - stream chan runtime.LogRecord + stream chan runtime.Log sync.Mutex stop chan bool err error } -func (l *logStream) Chan() chan runtime.LogRecord { +func (l *logStream) Chan() chan runtime.Log { return l.stream } diff --git a/runtime/runtime.go b/runtime/runtime.go index 9007b936..d4cae718 100644 --- a/runtime/runtime.go +++ b/runtime/runtime.go @@ -23,7 +23,7 @@ type Runtime interface { // Remove a service Delete(*Service, ...DeleteOption) error // Logs returns the logs for a service - Logs(*Service, ...LogsOption) (LogStream, error) + Logs(*Service, ...LogsOption) (Logs, error) // Start starts the runtime Start() error // Stop shuts down the runtime @@ -32,14 +32,15 @@ type Runtime interface { String() string } -// Stream returns a log stream -type LogStream interface { +// Logs returns a log stream +type Logs interface { Error() error - Chan() chan LogRecord + Chan() chan Log Stop() error } -type LogRecord struct { +// Log is a log message +type Log struct { Message string Metadata map[string]string }