Skip to content

Commit

Permalink
Move to go mod
Browse files Browse the repository at this point in the history
- Drop Gopkg.*
- Drop GOPATH requirement
- Lock mockgen
- Fix Azure sdk deps
- Fix packages that needed to be merge (Gopkg.toml was pointing to
unmerged commits)
  • Loading branch information
hpidcock committed Apr 23, 2020
1 parent e7775cb commit 129b011
Show file tree
Hide file tree
Showing 110 changed files with 1,176 additions and 2,887 deletions.
2,161 changes: 0 additions & 2,161 deletions Gopkg.lock

This file was deleted.

518 changes: 0 additions & 518 deletions Gopkg.toml

This file was deleted.

43 changes: 14 additions & 29 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ ifndef GOPATH
$(warning You need to set up a GOPATH. See the README file.)
endif

# Always go mod vendor because if the vendored directory is not up to date
# all other go commands fail.
$(shell go mod vendor)

PROJECT := github.com/juju/juju
PROJECT_DIR := $(shell go list -e -f '{{.Dir}}' $(PROJECT))
PROJECT_PACKAGES := $(shell go list $(PROJECT)/... | grep -v /vendor/ | grep -v /acceptancetests/ | grep -v mocks)
Expand Down Expand Up @@ -71,37 +75,24 @@ help:
# and will only work - when this tree is found on the GOPATH.
ifeq ($(CURDIR),$(PROJECT_DIR))

ifeq ($(JUJU_SKIP_DEP),true)
dep:
@echo "skipping dep"
else
$(GOPATH)/bin/dep:
go get -u github.com/golang/dep/cmd/dep

# populate vendor/ from Gopkg.lock without updating it first (lock file is the single source of truth for machine).
dep: $(GOPATH)/bin/dep
## dep: Installs go dependencies
$(GOPATH)/bin/dep ensure -vendor-only $(verbose)
endif

build: dep rebuild-schema go-build
build: rebuild-schema go-build
## build: Create Juju binaries

release-build: dep go-build
release-build: go-build
## release-build: Construct Juju binaries, without building schema

release-install: dep go-install
release-install: go-install
## release-install: Install Juju binaries

pre-check:
## pre-check: Verify go code via static analysis
@echo running pre-test checks
@INCLUDE_GOLINTERS=1 $(PROJECT_DIR)/scripts/verify.bash

check: dep pre-check run-tests
check: pre-check run-tests
## check: Verify Juju code using static analysis and unit tests

test: dep run-tests
test: run-tests
## test: Verify Juju code using unit tests

# Can't make the length of the TMP dir too long or it hits socket name length issues.
Expand All @@ -112,7 +103,7 @@ run-tests:
@TMPDIR=$(TMP) go test --tags "$(BUILD_TAGS)" $(CHECK_ARGS) -test.timeout=$(TEST_TIMEOUT) $(PROJECT_PACKAGES) -check.v
@rm -r $(TMP)

install: dep rebuild-schema go-install
install: rebuild-schema go-install
## install: Install Juju binaries

clean:
Expand All @@ -121,12 +112,12 @@ clean:

go-install:
## go-install: Install Juju binaries without updating dependencies
@echo 'go install -tags "$(BUILD_TAGS)" $(COMPILE_FLAGS) $(LINK_FLAGS) -v $$PROJECT_PACKAGES'
@go install -tags "$(BUILD_TAGS)" $(COMPILE_FLAGS) $(LINK_FLAGS) -v $(PROJECT_PACKAGES)
@echo 'go install -mod=vendor -tags "$(BUILD_TAGS)" $(COMPILE_FLAGS) $(LINK_FLAGS) -v $$PROJECT_PACKAGES'
@go install -mod=vendor -tags "$(BUILD_TAGS)" $(COMPILE_FLAGS) $(LINK_FLAGS) -v $(PROJECT_PACKAGES)

go-build:
## go-build: Build Juju binaries without updating dependencies
@go build -tags "$(BUILD_TAGS)" $(COMPILE_FLAGS) $(PROJECT_PACKAGES)
@go build -mod=vendor -tags "$(BUILD_TAGS)" $(COMPILE_FLAGS) $(PROJECT_PACKAGES)

else # --------------------------------

Expand Down Expand Up @@ -155,11 +146,6 @@ simplify:
## simplify: Format and simplify the go source code
gofmt -w -l -s .

# update Gopkg.lock (if needed), but do not update `vendor/`.
rebuild-dependencies:
## rebuild-dependencies: Update the dependencies
dep ensure -v -no-vendor $(dep-update)

rebuild-schema:
## rebuild-schema: Rebuild the schema for clients with the latest facades
@echo "Generating facade schema..."
Expand Down Expand Up @@ -286,5 +272,4 @@ static-analysis:
.PHONY: build check install release-install release-build go-build go-install
.PHONY: clean format simplify test run-tests
.PHONY: install-dependencies
.PHONY: rebuild-dependencies
.PHONY: dep check-deps
.PHONY: check-deps
2 changes: 1 addition & 1 deletion api/base/caller.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"gopkg.in/macaroon.v2"
)

//go:generate mockgen -package mocks -destination mocks/caller_mock.go github.com/juju/juju/api/base APICaller,FacadeCaller
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/caller_mock.go github.com/juju/juju/api/base APICaller,FacadeCaller

// APICaller is implemented by the client-facing State object.
// It defines the lowest level of API calls and is used by
Expand Down
2 changes: 1 addition & 1 deletion api/base/clientfacade.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type APICallCloser interface {
// They provide two common methods for writing the client side code.
// BestAPIVersion() is used to allow for compatibility testing, and Close() is
// used to indicate when we are done with the connection.
//go:generate mockgen -package mocks -destination mocks/clientfacade_mock.go github.com/juju/juju/api/base APICallCloser,ClientFacade
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/clientfacade_mock.go github.com/juju/juju/api/base APICallCloser,ClientFacade
type ClientFacade interface {
// BestAPIVersion returns the API version that we were able to
// determine is supported by both the client and the API Server
Expand Down
4 changes: 2 additions & 2 deletions api/instancemutater/machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ import (
"github.com/juju/juju/core/watcher"
)

//go:generate mockgen -package mocks -destination mocks/caller_mock.go github.com/juju/juju/api/base APICaller,FacadeCaller
//go:generate mockgen -package mocks -destination mocks/machinemutater_mock.go github.com/juju/juju/api/instancemutater MutaterMachine
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/caller_mock.go github.com/juju/juju/api/base APICaller,FacadeCaller
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/machinemutater_mock.go github.com/juju/juju/api/instancemutater MutaterMachine
type MutaterMachine interface {

// InstanceId returns the provider specific instance id for this machine
Expand Down
2 changes: 1 addition & 1 deletion api/provisioner/machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (
"github.com/juju/juju/core/watcher"
)

//go:generate mockgen -package mocks -destination mocks/machine_mock.go github.com/juju/juju/api/provisioner MachineProvisioner
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/machine_mock.go github.com/juju/juju/api/provisioner MachineProvisioner

// MachineProvisioner defines what provisioner needs to provision a machine.
type MachineProvisioner interface {
Expand Down
2 changes: 1 addition & 1 deletion apiserver/common/interfaces.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func AuthFuncForTagKind(kind string) GetAuthFunc {
}
}

//go:generate mockgen -package mocks -destination mocks/authorizer_mock.go github.com/juju/juju/apiserver/common Authorizer
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/authorizer_mock.go github.com/juju/juju/apiserver/common Authorizer

// Authorizer represents the authenticated entity using the API server.
type Authorizer interface {
Expand Down
2 changes: 1 addition & 1 deletion apiserver/common/leadership.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"github.com/juju/juju/state"
)

//go:generate mockgen -package mocks -destination mocks/leadership.go github.com/juju/juju/apiserver/common LeadershipPinningBackend,LeadershipMachine
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/leadership.go github.com/juju/juju/apiserver/common LeadershipPinningBackend,LeadershipMachine

// LeadershipMachine is an indirection for state.machine.
type LeadershipMachine interface {
Expand Down
2 changes: 1 addition & 1 deletion apiserver/common/networkingcommon/package_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
coretesting "github.com/juju/juju/testing"
)

//go:generate mockgen -package mocks -destination mocks/package_mock.go github.com/juju/juju/apiserver/common/networkingcommon BackingSpace,BackingSubnet
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/package_mock.go github.com/juju/juju/apiserver/common/networkingcommon BackingSpace,BackingSubnet

func TestAll(t *stdtesting.T) {
coretesting.MgoTestPackage(t)
Expand Down
4 changes: 2 additions & 2 deletions apiserver/common/unitstate.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import (
"github.com/juju/juju/state"
)

//go:generate mockgen -package mocks -destination mocks/unitstate.go github.com/juju/juju/apiserver/common UnitStateBackend,UnitStateUnit
//go:generate mockgen -package mocks -destination mocks/modeloperation.go github.com/juju/juju/state ModelOperation
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/unitstate.go github.com/juju/juju/apiserver/common UnitStateBackend,UnitStateUnit
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/modeloperation.go github.com/juju/juju/state ModelOperation

// UnitStateUnit describes unit-receiver state methods required
// for UnitStateAPI.
Expand Down
2 changes: 1 addition & 1 deletion apiserver/common/upgradeseries.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"github.com/juju/juju/state"
)

//go:generate mockgen -package mocks -destination mocks/upgradeseries.go github.com/juju/juju/apiserver/common UpgradeSeriesBackend,UpgradeSeriesMachine,UpgradeSeriesUnit
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/upgradeseries.go github.com/juju/juju/apiserver/common UpgradeSeriesBackend,UpgradeSeriesMachine,UpgradeSeriesUnit

type UpgradeSeriesBackend interface {
Machine(string) (UpgradeSeriesMachine, error)
Expand Down
2 changes: 1 addition & 1 deletion apiserver/facade/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ type Context interface {
SingularClaimer() (lease.Claimer, error)
}

//go:generate mockgen -package mocks -destination mocks/facade_mock.go github.com/juju/juju/apiserver/facade Resources,Authorizer
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/facade_mock.go github.com/juju/juju/apiserver/facade Resources,Authorizer

// Authorizer represents the authenticated entity using the API server.
type Authorizer interface {
Expand Down
8 changes: 4 additions & 4 deletions apiserver/facades/agent/instancemutater/instancemutater.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ import (
"github.com/juju/juju/core/status"
)

//go:generate mockgen -package mocks -destination mocks/instancemutater_mock.go github.com/juju/juju/apiserver/facades/agent/instancemutater InstanceMutaterState,Machine,Unit,Application,Charm
//go:generate mockgen -package mocks -destination mocks/modelcache_mock.go github.com/juju/juju/apiserver/facades/agent/instancemutater ModelCache,ModelCacheMachine
//go:generate mockgen -package mocks -destination mocks/state_mock.go github.com/juju/juju/state EntityFinder,Entity,Lifer
//go:generate mockgen -package mocks -destination mocks/watcher_mock.go github.com/juju/juju/core/cache NotifyWatcher,StringsWatcher
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/instancemutater_mock.go github.com/juju/juju/apiserver/facades/agent/instancemutater InstanceMutaterState,Machine,Unit,Application,Charm
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/modelcache_mock.go github.com/juju/juju/apiserver/facades/agent/instancemutater ModelCache,ModelCacheMachine
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/state_mock.go github.com/juju/juju/state EntityFinder,Entity,Lifer
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/watcher_mock.go github.com/juju/juju/core/cache NotifyWatcher,StringsWatcher

var logger = loggo.GetLogger("juju.apiserver.instancemutater")

Expand Down
2 changes: 1 addition & 1 deletion apiserver/facades/agent/meterstatus/meterstatus.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ type MeterStatus interface {
}

// MeterStatusState represents the state of an model required by the MeterStatus.
//go:generate mockgen -package mocks -destination mocks/meterstatus_mock.go github.com/juju/juju/apiserver/facades/agent/meterstatus MeterStatusState
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/meterstatus_mock.go github.com/juju/juju/apiserver/facades/agent/meterstatus MeterStatusState
type MeterStatusState interface {
ApplyOperation(state.ModelOperation) error
ControllerConfig() (controller.Config, error)
Expand Down
4 changes: 2 additions & 2 deletions apiserver/facades/agent/provisioner/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ import (
// Machine is an indirection for use in container provisioning.
// It is an indirection for both containerizer.Machine and
// containerizer.Container as well as state.Machine locally.
//go:generate mockgen -package mocks -destination mocks/package_mock.go github.com/juju/juju/apiserver/facades/agent/provisioner Machine,BridgePolicy,Unit,Application,Charm
//go:generate mockgen -package mocks -destination mocks/containerizer_mock.go github.com/juju/juju/network/containerizer LinkLayerDevice
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/package_mock.go github.com/juju/juju/apiserver/facades/agent/provisioner Machine,BridgePolicy,Unit,Application,Charm
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/containerizer_mock.go github.com/juju/juju/network/containerizer LinkLayerDevice
type Machine interface {
containerizer.Container

Expand Down
2 changes: 1 addition & 1 deletion apiserver/facades/agent/uniter/lxdprofile.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"github.com/juju/juju/state/watcher"
)

//go:generate mockgen -package mocks -destination mocks/lxdprofile.go github.com/juju/juju/apiserver/facades/agent/uniter LXDProfileBackend,LXDProfileMachine,LXDProfileUnit
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/lxdprofile.go github.com/juju/juju/apiserver/facades/agent/uniter LXDProfileBackend,LXDProfileMachine,LXDProfileUnit

type LXDProfileBackend interface {
Machine(string) (LXDProfileMachine, error)
Expand Down
4 changes: 2 additions & 2 deletions apiserver/facades/agent/upgradesteps/upgradesteps.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import (
"github.com/juju/juju/core/status"
)

//go:generate mockgen -package mocks -destination mocks/upgradesteps_mock.go github.com/juju/juju/apiserver/facades/agent/upgradesteps UpgradeStepsState,Machine,Unit
//go:generate mockgen -package mocks -destination mocks/state_mock.go github.com/juju/juju/state EntityFinder,Entity
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/upgradesteps_mock.go github.com/juju/juju/apiserver/facades/agent/upgradesteps UpgradeStepsState,Machine,Unit
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/state_mock.go github.com/juju/juju/state EntityFinder,Entity

var logger = loggo.GetLogger("juju.apiserver.upgradesteps")

Expand Down
10 changes: 5 additions & 5 deletions apiserver/facades/client/application/charmstore.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ import (
jujuversion "github.com/juju/juju/version"
)

//go:generate mockgen -package mocks -destination mocks/storage_mock.go github.com/juju/juju/state/storage Storage
//go:generate mockgen -package mocks -destination mocks/interface_mock.go gopkg.in/juju/charmrepo.v4 Interface
//go:generate mockgen -package mocks -destination mocks/charm_mock.go github.com/juju/juju/apiserver/facades/client/application StateCharm
//go:generate mockgen -package mocks -destination mocks/model_mock.go github.com/juju/juju/apiserver/facades/client/application StateModel
//go:generate mockgen -package mocks -destination mocks/charmstore_mock.go github.com/juju/juju/apiserver/facades/client/application State
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/storage_mock.go github.com/juju/juju/state/storage Storage
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/interface_mock.go gopkg.in/juju/charmrepo.v4 Interface
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/charm_mock.go github.com/juju/juju/apiserver/facades/client/application StateCharm
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/model_mock.go github.com/juju/juju/apiserver/facades/client/application StateModel
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/charmstore_mock.go github.com/juju/juju/apiserver/facades/client/application State

// TODO - we really want to avoid this, which we can do by refactoring code requiring this
// to use interfaces.
Expand Down
2 changes: 1 addition & 1 deletion apiserver/facades/client/modelgeneration/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/juju/juju/core/settings"
)

//go:generate mockgen -package mocks -destination mocks/package_mock.go github.com/juju/juju/apiserver/facades/client/modelgeneration State,Model,Generation,Application,ModelCache
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/package_mock.go github.com/juju/juju/apiserver/facades/client/modelgeneration State,Model,Generation,Application,ModelCache

// State represents the state of a model required by the model generation API.
type State interface {
Expand Down
2 changes: 1 addition & 1 deletion apiserver/facades/client/spaces/package_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import (
environmocks "github.com/juju/juju/environs/mocks"
)

//go:generate mockgen -package spaces -destination package_mock_test.go github.com/juju/juju/apiserver/facades/client/spaces Backing,BlockChecker,Machine,RenameSpace,RenameSpaceState,Settings,OpFactory,RemoveSpace,Subnet,Constraints,MovingSubnet,MoveSubnetsOp,Address,ReloadSpaces,ReloadSpacesState,ReloadSpacesEnviron,EnvironSpaces,AuthorizerState
//go:generate go run github.com/golang/mock/mockgen -package spaces -destination package_mock_test.go github.com/juju/juju/apiserver/facades/client/spaces Backing,BlockChecker,Machine,RenameSpace,RenameSpaceState,Settings,OpFactory,RemoveSpace,Subnet,Constraints,MovingSubnet,MoveSubnetsOp,Address,ReloadSpaces,ReloadSpacesState,ReloadSpacesEnviron,EnvironSpaces,AuthorizerState

func TestPackage(t *testing.T) {
gc.TestingT(t)
Expand Down
2 changes: 1 addition & 1 deletion apiserver/facades/client/subnets/package_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
gc "gopkg.in/check.v1"
)

//go:generate mockgen -package mocks -destination mocks/package_mock.go github.com/juju/juju/apiserver/facades/client/subnets Backing
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/package_mock.go github.com/juju/juju/apiserver/facades/client/subnets Backing

func TestPackage(t *stdtesting.T) {
gc.TestingT(t)
Expand Down
6 changes: 3 additions & 3 deletions apiserver/facades/controller/migrationmaster/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import (
"github.com/juju/juju/state"
)

//go:generate mockgen -package mocks -destination mocks/backend.go github.com/juju/juju/apiserver/facades/controller/migrationmaster Backend,OfferConnection
//go:generate mockgen -package mocks -destination mocks/precheckbackend.go github.com/juju/juju/migration PrecheckBackend
//go:generate mockgen -package mocks -destination mocks/state.go github.com/juju/juju/state ModelMigration,NotifyWatcher,ExternalController
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/backend.go github.com/juju/juju/apiserver/facades/controller/migrationmaster Backend,OfferConnection
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/precheckbackend.go github.com/juju/juju/migration PrecheckBackend
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/state.go github.com/juju/juju/state ModelMigration,NotifyWatcher,ExternalController

// Backend defines the state functionality required by the
// migrationmaster facade.
Expand Down
4 changes: 2 additions & 2 deletions apiserver/logsink/logsink.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ type GaugeVec interface {

// MetricsCollector represents a way to change the metrics for the logsink
// api handler.
//go:generate mockgen -package mocks -destination mocks/metrics_collector_mock.go github.com/juju/juju/apiserver/logsink MetricsCollector
//go:generate mockgen -package mocks -destination mocks/metrics_mock.go github.com/prometheus/client_golang/prometheus Counter,Gauge
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/metrics_collector_mock.go github.com/juju/juju/apiserver/logsink MetricsCollector
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/metrics_mock.go github.com/prometheus/client_golang/prometheus Counter,Gauge
type MetricsCollector interface {

// TotalConnections returns a prometheus metric that can be incremented
Expand Down
4 changes: 2 additions & 2 deletions apiserver/observer/metricobserver/metricobserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ type SummaryVec interface {

// MetricsCollector represents a bundle of metrics that is used by the observer
// factory.
//go:generate mockgen -package mocks -destination mocks/metrics_collector_mock.go github.com/juju/juju/apiserver/observer/metricobserver MetricsCollector,SummaryVec
//go:generate mockgen -package mocks -destination mocks/metrics_mock.go github.com/prometheus/client_golang/prometheus Summary
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/metrics_collector_mock.go github.com/juju/juju/apiserver/observer/metricobserver MetricsCollector,SummaryVec
//go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/metrics_mock.go github.com/prometheus/client_golang/prometheus Summary
type MetricsCollector interface {
// APIRequestDuration returns a SummaryVec for updating the duration of
// api request duration.
Expand Down
Loading

0 comments on commit 129b011

Please sign in to comment.