TUN-4067: Reformat code for consistent import order, grouping, and fix formatting. Added goimports target to the Makefile to make this easier in the future.

This commit is contained in:
Igor Postelnik 2021-03-23 09:30:43 -05:00
parent 027168c23a
commit da4d0b2bae
79 changed files with 259 additions and 221 deletions

View File

@ -254,3 +254,7 @@ vet:
.PHONY: msi .PHONY: msi
msi: cloudflared msi: cloudflared
go-msi make --msi cloudflared.msi --version $(MSI_VERSION) go-msi make --msi cloudflared.msi --version $(MSI_VERSION)
.PHONY: goimports
goimports:
for d in $$(go list -mod=readonly -f '{{.Dir}}' -a ./... | fgrep -v tunnelrpc) ; do goimports -format-only -local github.com/cloudflare/cloudflared -w $$d ; done

View File

@ -11,11 +11,11 @@ import (
"os" "os"
"strings" "strings"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/token"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/token"
) )
const LogFieldOriginURL = "originURL" const LogFieldOriginURL = "originURL"

View File

@ -7,13 +7,13 @@ import (
"net/http" "net/http"
"net/http/httputil" "net/http/httputil"
"github.com/gorilla/websocket"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/ingress" "github.com/cloudflare/cloudflared/ingress"
"github.com/cloudflare/cloudflared/socks" "github.com/cloudflare/cloudflared/socks"
"github.com/cloudflare/cloudflared/token" "github.com/cloudflare/cloudflared/token"
cfwebsocket "github.com/cloudflare/cloudflared/websocket" cfwebsocket "github.com/cloudflare/cloudflared/websocket"
"github.com/gorilla/websocket"
"github.com/rs/zerolog"
) )
// Websocket is used to carry data via WS binary frames over the tunnel from client to the origin // Websocket is used to carry data via WS binary frames over the tunnel from client to the origin

View File

@ -195,13 +195,15 @@ stretch: &stretch
- *pinned_go_fips - *pinned_go_fips
- build-essential - build-essential
- gotest-to-teamcity - gotest-to-teamcity
pre-cache:
- go get golang.org/x/tools/cmd/goimports
- go get github.com/BurntSushi/go-sumtype
post-cache: post-cache:
- export GOOS=linux - export GOOS=linux
- export GOARCH=amd64 - export GOARCH=amd64
- export FIPS=true - export FIPS=true
# cd to a non-module directory: https://github.com/golang/go/issues/24250
- (cd / && go get github.com/BurntSushi/go-sumtype)
- export PATH="$HOME/go/bin:$PATH" - export PATH="$HOME/go/bin:$PATH"
- ./fmt-check.sh
- make test | gotest-to-teamcity - make test | gotest-to-teamcity
component-test: component-test:
build_dir: *build_dir build_dir: *build_dir

View File

@ -11,6 +11,12 @@ import (
"text/template" "text/template"
"time" "time"
"github.com/getsentry/raven-go"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"golang.org/x/net/idna"
"github.com/cloudflare/cloudflared/carrier" "github.com/cloudflare/cloudflared/carrier"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil" "github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/h2mux" "github.com/cloudflare/cloudflared/h2mux"
@ -18,12 +24,6 @@ import (
"github.com/cloudflare/cloudflared/sshgen" "github.com/cloudflare/cloudflared/sshgen"
"github.com/cloudflare/cloudflared/token" "github.com/cloudflare/cloudflared/token"
"github.com/cloudflare/cloudflared/validation" "github.com/cloudflare/cloudflared/validation"
"github.com/getsentry/raven-go"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"golang.org/x/net/idna"
) )
const ( const (

View File

@ -1,10 +1,10 @@
package main package main
import ( import (
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/cmd/cloudflared/access" "github.com/cloudflare/cloudflared/cmd/cloudflared/access"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
"github.com/rs/zerolog"
) )
// ForwardServiceType is used to identify what kind of overwatch service this is // ForwardServiceType is used to identify what kind of overwatch service this is

View File

@ -1,10 +1,10 @@
package main package main
import ( import (
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/tunneldns" "github.com/cloudflare/cloudflared/tunneldns"
"github.com/rs/zerolog"
) )
const ( const (

View File

@ -1,10 +1,10 @@
package main package main
import ( import (
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/overwatch" "github.com/cloudflare/cloudflared/overwatch"
"github.com/rs/zerolog"
) )
// AppService is the main service that runs when no command lines flags are passed to cloudflared // AppService is the main service that runs when no command lines flags are passed to cloudflared

View File

@ -1,9 +1,10 @@
package buildinfo package buildinfo
import ( import (
"github.com/rs/zerolog"
"fmt" "fmt"
"runtime" "runtime"
"github.com/rs/zerolog"
) )
type BuildInfo struct { type BuildInfo struct {

View File

@ -16,6 +16,6 @@ func RemovedCommand(name string) *cli.Command {
) )
}, },
Description: fmt.Sprintf("%s is deprecated", name), Description: fmt.Sprintf("%s is deprecated", name),
Hidden: true, Hidden: true,
} }
} }

View File

@ -7,13 +7,13 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil" "github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/cmd/cloudflared/tunnel" "github.com/cloudflare/cloudflared/cmd/cloudflared/tunnel"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/logger" "github.com/cloudflare/cloudflared/logger"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
) )
func runApp(app *cli.App, graceShutdownC chan struct{}) { func runApp(app *cli.App, graceShutdownC chan struct{}) {

View File

@ -6,11 +6,11 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/logger"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/logger"
) )
const ( const (

View File

@ -6,6 +6,11 @@ import (
"strings" "strings"
"time" "time"
"github.com/getsentry/raven-go"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/cmd/cloudflared/access" "github.com/cloudflare/cloudflared/cmd/cloudflared/access"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil" "github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/cmd/cloudflared/proxydns" "github.com/cloudflare/cloudflared/cmd/cloudflared/proxydns"
@ -16,11 +21,6 @@ import (
"github.com/cloudflare/cloudflared/metrics" "github.com/cloudflare/cloudflared/metrics"
"github.com/cloudflare/cloudflared/overwatch" "github.com/cloudflare/cloudflared/overwatch"
"github.com/cloudflare/cloudflared/watcher" "github.com/cloudflare/cloudflared/watcher"
"github.com/getsentry/raven-go"
"github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"
) )
const ( const (

View File

@ -10,7 +10,7 @@ import (
"os/exec" "os/exec"
"text/template" "text/template"
"github.com/mitchellh/go-homedir" homedir "github.com/mitchellh/go-homedir"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
) )

View File

@ -12,6 +12,15 @@ import (
"sync" "sync"
"time" "time"
"github.com/coreos/go-systemd/daemon"
"github.com/facebookgo/grace/gracenet"
"github.com/getsentry/raven-go"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc"
"github.com/cloudflare/cloudflared/cmd/cloudflared/buildinfo" "github.com/cloudflare/cloudflared/cmd/cloudflared/buildinfo"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil" "github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/cmd/cloudflared/proxydns" "github.com/cloudflare/cloudflared/cmd/cloudflared/proxydns"
@ -27,15 +36,6 @@ import (
"github.com/cloudflare/cloudflared/tlsconfig" "github.com/cloudflare/cloudflared/tlsconfig"
"github.com/cloudflare/cloudflared/tunneldns" "github.com/cloudflare/cloudflared/tunneldns"
"github.com/cloudflare/cloudflared/tunnelstore" "github.com/cloudflare/cloudflared/tunnelstore"
"github.com/coreos/go-systemd/daemon"
"github.com/facebookgo/grace/gracenet"
"github.com/getsentry/raven-go"
"github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc"
) )
const ( const (

View File

@ -8,6 +8,13 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/google/uuid"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"golang.org/x/crypto/ssh/terminal"
"github.com/cloudflare/cloudflared/cmd/cloudflared/buildinfo" "github.com/cloudflare/cloudflared/cmd/cloudflared/buildinfo"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/connection" "github.com/cloudflare/cloudflared/connection"
@ -18,13 +25,6 @@ import (
"github.com/cloudflare/cloudflared/tlsconfig" "github.com/cloudflare/cloudflared/tlsconfig"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs" tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/cloudflare/cloudflared/validation" "github.com/cloudflare/cloudflared/validation"
"github.com/google/uuid"
"github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"golang.org/x/crypto/ssh/terminal"
) )
const LogFieldOriginCertPath = "originCertPath" const LogFieldOriginCertPath = "originCertPath"

View File

@ -3,8 +3,9 @@ package tunnel
import ( import (
"time" "time"
"github.com/cloudflare/cloudflared/tunnelstore"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/cloudflare/cloudflared/tunnelstore"
) )
type Info struct { type Info struct {

View File

@ -8,7 +8,7 @@ import (
"path/filepath" "path/filepath"
"syscall" "syscall"
"github.com/mitchellh/go-homedir" homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"

View File

@ -101,4 +101,3 @@ func TestWaitForShutdown(t *testing.T) {
assert.True(t, contextCancelled) assert.True(t, contextCancelled)
assert.True(t, time.Now().Sub(startTime) < time.Second) // check that wait ended early assert.True(t, time.Now().Sub(startTime) < time.Second) // check that wait ended early
} }

View File

@ -3,8 +3,9 @@ package tunnel
import ( import (
"net" "net"
"github.com/cloudflare/cloudflared/teamnet"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/cloudflare/cloudflared/teamnet"
) )
const noClientMsg = "error while creating backend client" const noClientMsg = "error while creating backend client"

View File

@ -8,13 +8,13 @@ import (
"testing" "testing"
"time" "time"
"github.com/google/uuid"
"github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/connection" "github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/tunnelstore" "github.com/cloudflare/cloudflared/tunnelstore"
"github.com/google/uuid"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"
) )
func Test_findIDs(t *testing.T) { func Test_findIDs(t *testing.T) {

View File

@ -14,12 +14,12 @@ import (
"time" "time"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/mitchellh/go-homedir" homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc" "github.com/urfave/cli/v2/altsrc"
"golang.org/x/net/idna" "golang.org/x/net/idna"
"gopkg.in/yaml.v2" yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil" "github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/cmd/cloudflared/updater" "github.com/cloudflare/cloudflared/cmd/cloudflared/updater"

View File

@ -5,10 +5,11 @@ import (
"path/filepath" "path/filepath"
"testing" "testing"
"github.com/cloudflare/cloudflared/tunnelstore"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/mitchellh/go-homedir" homedir "github.com/mitchellh/go-homedir"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/tunnelstore"
) )
func Test_fmtConnections(t *testing.T) { func Test_fmtConnections(t *testing.T) {

View File

@ -5,12 +5,12 @@ import (
"fmt" "fmt"
"strings" "strings"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/ingress"
"github.com/gdamore/tcell" "github.com/gdamore/tcell"
"github.com/rivo/tview" "github.com/rivo/tview"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/ingress"
) )
type connState struct { type connState struct {

View File

@ -13,15 +13,14 @@ import (
"unsafe" "unsafe"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/logger"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"golang.org/x/sys/windows" "golang.org/x/sys/windows"
"golang.org/x/sys/windows/svc" "golang.org/x/sys/windows/svc"
"golang.org/x/sys/windows/svc/eventlog" "golang.org/x/sys/windows/svc/eventlog"
"golang.org/x/sys/windows/svc/mgr" "golang.org/x/sys/windows/svc/mgr"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/logger"
) )
const ( const (

View File

@ -9,11 +9,11 @@ import (
"runtime" "runtime"
"time" "time"
"github.com/mitchellh/go-homedir" homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"gopkg.in/yaml.v2" yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/validation" "github.com/cloudflare/cloudflared/validation"
) )

View File

@ -5,7 +5,7 @@ import (
"time" "time"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v2" yaml "gopkg.in/yaml.v2"
) )
func TestConfigFileSettings(t *testing.T) { func TestConfigFileSettings(t *testing.T) {

View File

@ -4,11 +4,11 @@ import (
"io" "io"
"os" "os"
"github.com/cloudflare/cloudflared/watcher"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"gopkg.in/yaml.v2" yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/watcher"
) )
// Notifier sends out config updates // Notifier sends out config updates

View File

@ -4,10 +4,10 @@ import (
"os" "os"
"testing" "testing"
"github.com/cloudflare/cloudflared/watcher"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/watcher"
) )
type mockNotifier struct { type mockNotifier struct {

View File

@ -8,8 +8,9 @@ import (
"strings" "strings"
"time" "time"
"github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/cloudflare/cloudflared/tunnelrpc/pogs"
) )
const LogFieldConnIndex = "connIndex" const LogFieldConnIndex = "connIndex"

View File

@ -7,13 +7,13 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/cloudflare/cloudflared/h2mux"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/cloudflare/cloudflared/websocket"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
"github.com/cloudflare/cloudflared/h2mux"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/cloudflare/cloudflared/websocket"
) )
const ( const (

View File

@ -38,7 +38,7 @@ func newH2MuxConnection(t require.TestingT) (*h2muxConnection, *h2mux.Muxer) {
// we only expect RPC traffic in client->edge direction, provide minimal support for mocking // we only expect RPC traffic in client->edge direction, provide minimal support for mocking
require.True(t, stream.IsRPCStream()) require.True(t, stream.IsRPCStream())
return stream.WriteHeaders([]h2mux.Header{ return stream.WriteHeaders([]h2mux.Header{
{Name: ":status", Value: "200"}, {Name: ":status", Value: "200"},
}) })
}), }),
} }

View File

@ -10,11 +10,11 @@ import (
"strings" "strings"
"sync" "sync"
"github.com/cloudflare/cloudflared/h2mux"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"golang.org/x/net/http2" "golang.org/x/net/http2"
"github.com/cloudflare/cloudflared/h2mux"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
) )
const ( const (

View File

@ -12,15 +12,14 @@ import (
"testing" "testing"
"time" "time"
"github.com/gobwas/ws/wsutil"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/net/http2"
"github.com/cloudflare/cloudflared/tunnelrpc/pogs" "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs" tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/gobwas/ws/wsutil"
"github.com/rs/zerolog"
"github.com/stretchr/testify/require"
"golang.org/x/net/http2"
) )
var ( var (

View File

@ -4,8 +4,9 @@ import (
"sync" "sync"
"time" "time"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
"github.com/cloudflare/cloudflared/h2mux"
) )
const ( const (

View File

@ -5,9 +5,9 @@ import (
"net/url" "net/url"
"strings" "strings"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/rs/zerolog" "github.com/rs/zerolog"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
) )
const ( const (

View File

@ -67,10 +67,9 @@ func TestObserverEventsDontBlock(t *testing.T) {
} }
} }
type eventCollectorSink struct { type eventCollectorSink struct {
observedEvents []Event observedEvents []Event
mu sync.Mutex mu sync.Mutex
} }
func (s *eventCollectorSink) OnTunnelEvent(event Event) { func (s *eventCollectorSink) OnTunnelEvent(event Event) {

View File

@ -6,11 +6,11 @@ import (
"io" "io"
"time" "time"
"github.com/cloudflare/cloudflared/tunnelrpc"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"zombiezen.com/go/capnproto2/rpc" "zombiezen.com/go/capnproto2/rpc"
"github.com/cloudflare/cloudflared/tunnelrpc"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
) )
type tunnelServerClient struct { type tunnelServerClient struct {

View File

@ -5,8 +5,9 @@ import (
"net" "net"
"sync" "sync"
"github.com/cloudflare/cloudflared/edgediscovery/allregions"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/edgediscovery/allregions"
) )
const ( const (

14
fmt-check.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
set -e -o pipefail
OUTPUT=$(for d in $(go list -mod=vendor -f '{{.Dir}}' -a ./... | fgrep -v tunnelrpc) ; do goimports -format-only -local github.com/cloudflare/cloudflared -d $d ; done)
if [ -n "$OUTPUT" ] ; then
PAGER=$(which colordiff || echo cat)
echo
echo "Code formatting issues found, use 'goimports -format-only -local github.com/cloudflare/cloudflared' to correct them"
echo
echo "$OUTPUT" | $PAGER
exit 1
fi

View File

@ -3,10 +3,11 @@ package h2mux
import ( import (
"bytes" "bytes"
"encoding/binary" "encoding/binary"
"github.com/rs/zerolog"
"io" "io"
"time" "time"
"github.com/rs/zerolog"
"golang.org/x/net/http2" "golang.org/x/net/http2"
"golang.org/x/net/http2/hpack" "golang.org/x/net/http2/hpack"
) )

View File

@ -9,12 +9,12 @@ import (
"strings" "strings"
"sync" "sync"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/ipaccess"
) )
var ( var (

View File

@ -12,7 +12,7 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"gopkg.in/yaml.v2" yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/ipaccess" "github.com/cloudflare/cloudflared/ipaccess"

View File

@ -7,11 +7,12 @@ import (
"net" "net"
"net/http" "net/http"
gws "github.com/gorilla/websocket"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/ipaccess" "github.com/cloudflare/cloudflared/ipaccess"
"github.com/cloudflare/cloudflared/socks" "github.com/cloudflare/cloudflared/socks"
"github.com/cloudflare/cloudflared/websocket" "github.com/cloudflare/cloudflared/websocket"
gws "github.com/gorilla/websocket"
"github.com/rs/zerolog"
) )
// OriginConnection is a way to stream to a service running on the user's origin. // OriginConnection is a way to stream to a service running on the user's origin.

View File

@ -13,14 +13,15 @@ import (
"testing" "testing"
"time" "time"
"github.com/cloudflare/cloudflared/logger"
"github.com/cloudflare/cloudflared/socks"
"github.com/gobwas/ws/wsutil" "github.com/gobwas/ws/wsutil"
gorillaWS "github.com/gorilla/websocket" gorillaWS "github.com/gorilla/websocket"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"golang.org/x/net/proxy" "golang.org/x/net/proxy"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
"github.com/cloudflare/cloudflared/logger"
"github.com/cloudflare/cloudflared/socks"
) )
const ( const (

View File

@ -7,9 +7,10 @@ import (
"net/url" "net/url"
"strings" "strings"
"github.com/pkg/errors"
"github.com/cloudflare/cloudflared/h2mux" "github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/websocket" "github.com/cloudflare/cloudflared/websocket"
"github.com/pkg/errors"
) )
var ( var (

View File

@ -11,10 +11,11 @@ import (
"sync" "sync"
"testing" "testing"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/websocket"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/websocket"
) )
// TestEstablishConnectionResponse ensures each implementation of StreamBasedOriginProxy returns // TestEstablishConnectionResponse ensures each implementation of StreamBasedOriginProxy returns

View File

@ -3,10 +3,10 @@ package ingress
import ( import (
"time" "time"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/cloudflare/cloudflared/tlsconfig" "github.com/cloudflare/cloudflared/tlsconfig"
) )

View File

@ -5,10 +5,11 @@ import (
"testing" "testing"
"time" "time"
"github.com/cloudflare/cloudflared/config"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"gopkg.in/yaml.v2" yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/config"
) )
// Ensure that the nullable config from `config` package and the // Ensure that the nullable config from `config` package and the

View File

@ -11,14 +11,15 @@ import (
"sync" "sync"
"time" "time"
gws "github.com/gorilla/websocket"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/hello" "github.com/cloudflare/cloudflared/hello"
"github.com/cloudflare/cloudflared/ipaccess" "github.com/cloudflare/cloudflared/ipaccess"
"github.com/cloudflare/cloudflared/socks" "github.com/cloudflare/cloudflared/socks"
"github.com/cloudflare/cloudflared/tlsconfig" "github.com/cloudflare/cloudflared/tlsconfig"
"github.com/cloudflare/cloudflared/websocket" "github.com/cloudflare/cloudflared/websocket"
gws "github.com/gorilla/websocket"
"github.com/pkg/errors"
"github.com/rs/zerolog"
) )
// originService is something a tunnel can proxy traffic to. // originService is something a tunnel can proxy traffic to.

View File

@ -1,11 +1,12 @@
package logger package logger
import ( import (
"io"
"testing"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"io"
"testing"
) )
var writeCalls int var writeCalls int
@ -31,45 +32,45 @@ func TestResilientMultiWriter(t *testing.T) {
writers []io.Writer writers []io.Writer
}{ }{
{ {
name: "All valid writers", name: "All valid writers",
writers: []io.Writer{ writers: []io.Writer{
mockedWriter { mockedWriter{
wantErr: false, wantErr: false,
}, },
mockedWriter { mockedWriter{
wantErr: false, wantErr: false,
}, },
}, },
}, },
{ {
name: "All invalid writers", name: "All invalid writers",
writers: []io.Writer{ writers: []io.Writer{
mockedWriter { mockedWriter{
wantErr: true, wantErr: true,
}, },
mockedWriter { mockedWriter{
wantErr: true, wantErr: true,
}, },
}, },
}, },
{ {
name: "First invalid writer", name: "First invalid writer",
writers: []io.Writer{ writers: []io.Writer{
mockedWriter { mockedWriter{
wantErr: true, wantErr: true,
}, },
mockedWriter { mockedWriter{
wantErr: false, wantErr: false,
}, },
}, },
}, },
{ {
name: "First valid writer", name: "First valid writer",
writers: []io.Writer{ writers: []io.Writer{
mockedWriter { mockedWriter{
wantErr: false, wantErr: false,
}, },
mockedWriter { mockedWriter{
wantErr: true, wantErr: true,
}, },
}, },

View File

@ -1,47 +1,48 @@
package metrics package metrics
import ( import (
"time" "time"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus"
) )
// Timer assumes the metrics is partitioned by one label // Timer assumes the metrics is partitioned by one label
type Timer struct { type Timer struct {
startTime map[string]time.Time startTime map[string]time.Time
metrics *prometheus.HistogramVec metrics *prometheus.HistogramVec
measureUnit time.Duration measureUnit time.Duration
labelKey string labelKey string
} }
func NewTimer(metrics *prometheus.HistogramVec, unit time.Duration, labelKey string) *Timer { func NewTimer(metrics *prometheus.HistogramVec, unit time.Duration, labelKey string) *Timer {
return &Timer{ return &Timer{
startTime: make(map[string]time.Time), startTime: make(map[string]time.Time),
measureUnit: unit, measureUnit: unit,
metrics: metrics, metrics: metrics,
labelKey: labelKey, labelKey: labelKey,
} }
} }
func (i *Timer) Start(labelVal string) { func (i *Timer) Start(labelVal string) {
i.startTime[labelVal] = time.Now() i.startTime[labelVal] = time.Now()
} }
func (i *Timer) End(labelVal string) time.Duration { func (i *Timer) End(labelVal string) time.Duration {
if start, ok := i.startTime[labelVal]; ok { if start, ok := i.startTime[labelVal]; ok {
return Latency(start, time.Now()) return Latency(start, time.Now())
} }
return 0 return 0
} }
func (i *Timer) Observe(measurement time.Duration, labelVal string) { func (i *Timer) Observe(measurement time.Duration, labelVal string) {
metricsLabels := prometheus.Labels{i.labelKey: labelVal} metricsLabels := prometheus.Labels{i.labelKey: labelVal}
i.metrics.With(metricsLabels).Observe(float64(measurement / i.measureUnit)) i.metrics.With(metricsLabels).Observe(float64(measurement / i.measureUnit))
} }
func (i *Timer) EndAndObserve(labelVal string) { func (i *Timer) EndAndObserve(labelVal string) {
i.Observe(i.End(labelVal), labelVal) i.Observe(i.End(labelVal), labelVal)
} }
func Latency(startTime, endTime time.Time) time.Duration { func Latency(startTime, endTime time.Time) time.Duration {
return endTime.Sub(startTime) return endTime.Sub(startTime)
} }

View File

@ -1,24 +1,24 @@
package metrics package metrics
import ( import (
"testing" "testing"
"time" "time"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func TestEnd(t *testing.T) { func TestEnd(t *testing.T) {
m := prometheus.NewHistogramVec( m := prometheus.NewHistogramVec(
prometheus.HistogramOpts{ prometheus.HistogramOpts{
Namespace: "TestCallLatencyWithoutMeasurement", Namespace: "TestCallLatencyWithoutMeasurement",
Name: "Latency", Name: "Latency",
Buckets: prometheus.LinearBuckets(0, 50, 100), Buckets: prometheus.LinearBuckets(0, 50, 100),
}, },
[]string{"key"}, []string{"key"},
) )
timer := NewTimer(m, time.Millisecond, "key") timer := NewTimer(m, time.Millisecond, "key")
assert.Equal(t, time.Duration(0), timer.End("dne")) assert.Equal(t, time.Duration(0), timer.End("dne"))
timer.Start("test") timer.Start("test")
assert.NotEqual(t, time.Duration(0), timer.End("test")) assert.NotEqual(t, time.Duration(0), timer.End("test"))
} }

View File

View File

@ -1,8 +1,9 @@
package origin package origin
import ( import (
"github.com/cloudflare/cloudflared/connection"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
"github.com/cloudflare/cloudflared/connection"
) )
// Metrics uses connection.MetricsNamespace(aka cloudflared) as namespace and connection.TunnelSubsystem // Metrics uses connection.MetricsNamespace(aka cloudflared) as namespace and connection.TunnelSubsystem

View File

@ -13,20 +13,19 @@ import (
"testing" "testing"
"time" "time"
"github.com/cloudflare/cloudflared/logger" "github.com/gobwas/ws/wsutil"
gorillaWS "github.com/gorilla/websocket"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/connection" "github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/hello" "github.com/cloudflare/cloudflared/hello"
"github.com/cloudflare/cloudflared/ingress" "github.com/cloudflare/cloudflared/ingress"
"github.com/cloudflare/cloudflared/logger"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs" tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
gorillaWS "github.com/gorilla/websocket"
"github.com/urfave/cli/v2"
"github.com/gobwas/ws/wsutil"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
) )
var ( var (

View File

@ -7,8 +7,9 @@ import (
"sync" "sync"
"time" "time"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
) )
var ( var (

View File

@ -7,14 +7,14 @@ import (
"net" "net"
"time" "time"
"github.com/google/uuid"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/connection" "github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/edgediscovery" "github.com/cloudflare/cloudflared/edgediscovery"
"github.com/cloudflare/cloudflared/h2mux" "github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/signal" "github.com/cloudflare/cloudflared/signal"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs" tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/google/uuid"
"github.com/rs/zerolog"
) )
const ( const (

View File

@ -4,10 +4,10 @@ import (
"testing" "testing"
"time" "time"
"github.com/cloudflare/cloudflared/connection"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/connection"
) )
type dynamicMockFetcher struct { type dynamicMockFetcher struct {

View File

@ -6,8 +6,9 @@ import (
"net" "net"
"strings" "strings"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/ipaccess"
) )
// RequestHandler is the functions needed to handle a SOCKS5 command // RequestHandler is the functions needed to handle a SOCKS5 command

View File

@ -4,8 +4,9 @@ import (
"bytes" "bytes"
"testing" "testing"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/ipaccess"
) )
func TestUnsupportedBind(t *testing.T) { func TestUnsupportedBind(t *testing.T) {

View File

@ -18,6 +18,7 @@ import (
homedir "github.com/mitchellh/go-homedir" homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors" "github.com/pkg/errors"
gossh "golang.org/x/crypto/ssh" gossh "golang.org/x/crypto/ssh"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
cfpath "github.com/cloudflare/cloudflared/token" cfpath "github.com/cloudflare/cloudflared/token"
) )

View File

@ -6,7 +6,7 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/mitchellh/go-homedir" homedir "github.com/mitchellh/go-homedir"
"github.com/cloudflare/cloudflared/config" "github.com/cloudflare/cloudflared/config"
) )

View File

@ -4,4 +4,3 @@ package token
func OpenBrowser(url string) error { func OpenBrowser(url string) error {
return getBrowserCmd(url).Start() return getBrowserCmd(url).Start()
} }

View File

@ -13,12 +13,12 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/origin"
"github.com/coreos/go-oidc/jose" "github.com/coreos/go-oidc/jose"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/origin"
) )
const ( const (

View File

@ -17,7 +17,7 @@ func TestSignalHandler(t *testing.T) {
handlerRan := false handlerRan := false
done := make(chan struct{}) done := make(chan struct{})
timer := time.NewTimer(time.Second) timer := time.NewTimer(time.Second)
sigHandler.register(func(){ sigHandler.register(func() {
handlerRan = true handlerRan = true
done <- struct{}{} done <- struct{}{}
}) })
@ -28,10 +28,10 @@ func TestSignalHandler(t *testing.T) {
// Blocks for up to one second to make sure the handler callback runs before the assert. // Blocks for up to one second to make sure the handler callback runs before the assert.
select { select {
case <- done: case <-done:
assert.True(t, handlerRan) assert.True(t, handlerRan)
case <- timer.C: case <-timer.C:
t.Fail() t.Fail()
} }
sigHandler.deregister() sigHandler.deregister()
} }
@ -40,15 +40,15 @@ func TestSignalHandlerClose(t *testing.T) {
sigHandler := signalHandler{signals: []os.Signal{syscall.SIGUSR1}} sigHandler := signalHandler{signals: []os.Signal{syscall.SIGUSR1}}
done := make(chan struct{}) done := make(chan struct{})
timer := time.NewTimer(time.Second) timer := time.NewTimer(time.Second)
sigHandler.register(func(){done <- struct{}{}}) sigHandler.register(func() { done <- struct{}{} })
sigHandler.deregister() sigHandler.deregister()
p, err := os.FindProcess(os.Getpid()) p, err := os.FindProcess(os.Getpid())
require.Nil(t, err) require.Nil(t, err)
p.Signal(syscall.SIGUSR1) p.Signal(syscall.SIGUSR1)
select { select {
case <- done: case <-done:
t.Fail() t.Fail()
case <- timer.C: case <-timer.C:
} }
} }

View File

@ -3,10 +3,10 @@ package pogs
import ( import (
"context" "context"
"github.com/cloudflare/cloudflared/tunnelrpc"
"zombiezen.com/go/capnproto2/pogs" "zombiezen.com/go/capnproto2/pogs"
"zombiezen.com/go/capnproto2/server" "zombiezen.com/go/capnproto2/server"
"github.com/cloudflare/cloudflared/tunnelrpc"
) )
func (i TunnelServer_PogsImpl) Authenticate(p tunnelrpc.TunnelServer_authenticate) error { func (i TunnelServer_PogsImpl) Authenticate(p tunnelrpc.TunnelServer_authenticate) error {

View File

@ -6,9 +6,10 @@ import (
"testing" "testing"
"time" "time"
"github.com/cloudflare/cloudflared/tunnelrpc"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
capnp "zombiezen.com/go/capnproto2" capnp "zombiezen.com/go/capnproto2"
"github.com/cloudflare/cloudflared/tunnelrpc"
) )
// Ensure the AuthOutcome sum is correct // Ensure the AuthOutcome sum is correct

View File

@ -3,8 +3,9 @@ package pogs
import ( import (
"context" "context"
"github.com/cloudflare/cloudflared/tunnelrpc"
"zombiezen.com/go/capnproto2/server" "zombiezen.com/go/capnproto2/server"
"github.com/cloudflare/cloudflared/tunnelrpc"
) )
func (i TunnelServer_PogsImpl) ReconnectTunnel(p tunnelrpc.TunnelServer_reconnectTunnel) error { func (i TunnelServer_PogsImpl) ReconnectTunnel(p tunnelrpc.TunnelServer_reconnectTunnel) error {

View File

@ -38,4 +38,3 @@ func (mockTunnelServerBase) Authenticate(ctx context.Context, originCert []byte,
func (mockTunnelServerBase) ReconnectTunnel(ctx context.Context, jwt, eventDigest, connDigest []byte, hostname string, options *RegistrationOptions) (*TunnelRegistration, error) { func (mockTunnelServerBase) ReconnectTunnel(ctx context.Context, jwt, eventDigest, connDigest []byte, hostname string, options *RegistrationOptions) (*TunnelRegistration, error) {
panic("unexpected call to ReconnectTunnel") panic("unexpected call to ReconnectTunnel")
} }

View File

@ -4,12 +4,12 @@ import (
"context" "context"
"fmt" "fmt"
"github.com/cloudflare/cloudflared/tunnelrpc"
capnp "zombiezen.com/go/capnproto2" capnp "zombiezen.com/go/capnproto2"
"zombiezen.com/go/capnproto2/pogs" "zombiezen.com/go/capnproto2/pogs"
"zombiezen.com/go/capnproto2/rpc" "zombiezen.com/go/capnproto2/rpc"
"zombiezen.com/go/capnproto2/server" "zombiezen.com/go/capnproto2/server"
"github.com/cloudflare/cloudflared/tunnelrpc"
) )
const ( const (

View File

@ -4,9 +4,10 @@ import (
"fmt" "fmt"
"testing" "testing"
"github.com/cloudflare/cloudflared/tunnelrpc"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
capnp "zombiezen.com/go/capnproto2" capnp "zombiezen.com/go/capnproto2"
"github.com/cloudflare/cloudflared/tunnelrpc"
) )
const ( const (

View File

@ -12,10 +12,11 @@ import (
"strings" "strings"
"time" "time"
"github.com/cloudflare/cloudflared/teamnet"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/teamnet"
) )
const ( const (

View File

@ -7,8 +7,9 @@ import (
"net/url" "net/url"
"path" "path"
"github.com/cloudflare/cloudflared/teamnet"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/cloudflare/cloudflared/teamnet"
) )
// ListRoutes calls the Tunnelstore GET endpoint for all routes under an account. // ListRoutes calls the Tunnelstore GET endpoint for all routes under an account.

View File

@ -4,12 +4,11 @@ import (
"context" "context"
"fmt" "fmt"
"net" "net"
"net/http"
"net/url" "net/url"
"strings" "strings"
"time" "time"
"net/http"
"github.com/pkg/errors" "github.com/pkg/errors"
"golang.org/x/net/idna" "golang.org/x/net/idna"
"gopkg.in/coreos/go-oidc.v2" "gopkg.in/coreos/go-oidc.v2"

View File

@ -9,10 +9,10 @@ import (
"net/url" "net/url"
"time" "time"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/h2mux"
) )
var stripWebsocketHeaders = []string{ var stripWebsocketHeaders = []string{

View File

@ -11,14 +11,14 @@ import (
"testing" "testing"
"time" "time"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/hello"
"github.com/cloudflare/cloudflared/tlsconfig"
gws "github.com/gorilla/websocket" gws "github.com/gorilla/websocket"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"golang.org/x/net/websocket" "golang.org/x/net/websocket"
"github.com/cloudflare/cloudflared/hello"
"github.com/cloudflare/cloudflared/tlsconfig"
) )
const ( const (