Get lro working in dev/lib for testservice

Moves to new common lro protos, decouples from luci libraries, and
brings in a basic test that just starts the fake server.

BUG=None
TEST=go test manager_test.go

Change-Id: I3807cc16936f121776624e4c85094c052955af13
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/2876744
Tested-by: C Shapiro <shapiroc@chromium.org>
Auto-Submit: C Shapiro <shapiroc@chromium.org>
Reviewed-by: Seewai Fu <seewaifu@google.com>
Commit-Queue: C Shapiro <shapiroc@chromium.org>
diff --git a/lib/src/chromiumos/lro/manager.go b/lib/src/chromiumos/lro/manager.go
index 6c4a865..9a7ba2d 100644
--- a/lib/src/chromiumos/lro/manager.go
+++ b/lib/src/chromiumos/lro/manager.go
@@ -17,7 +17,7 @@
 	"github.com/golang/protobuf/ptypes"
 	"github.com/golang/protobuf/ptypes/empty"
 	"github.com/google/uuid"
-	"go.chromium.org/chromiumos/config/go/api/test/tls/dependencies/longrunning"
+	"go.chromium.org/chromiumos/config/go/longrunning"
 	"google.golang.org/grpc/codes"
 	"google.golang.org/grpc/status"
 )
@@ -215,7 +215,7 @@
 
 	if req.Timeout != nil && req.Timeout.Seconds > 0 {
 		var cancel context.CancelFunc
-		ctx, cancel = context.WithTimeout(ctx, req.Timeout.AsDuration())
+		ctx, cancel = context.WithTimeout(ctx, time.Duration(req.Timeout.GetSeconds()))
 		defer cancel()
 	}
 
diff --git a/lib/src/chromiumos/lro/manager_test.go b/lib/src/chromiumos/lro/manager_test.go
index 531e505..6164766 100644
--- a/lib/src/chromiumos/lro/manager_test.go
+++ b/lib/src/chromiumos/lro/manager_test.go
@@ -3,18 +3,17 @@
 import (
 	"context"
 	"net"
+	"testing"
 
-	"infra/libs/lro"
+	"chromiumos/lro"
 
-	"go.chromium.org/chromiumos/config/go/api/test/tls"
-	"go.chromium.org/chromiumos/config/go/api/test/tls/dependencies/longrunning"
+	"go.chromium.org/chromiumos/config/go/longrunning"
+	"go.chromium.org/chromiumos/config/go/test/api"
 	"google.golang.org/grpc"
-	"google.golang.org/grpc/codes"
-	"google.golang.org/grpc/status"
 )
 
 type exampleServer struct {
-	tls.UnimplementedCommonServer
+	api.UnimplementedTestServiceServer
 	*lro.Manager
 }
 
@@ -22,26 +21,22 @@
 	s.Manager = lro.New()
 	defer s.Manager.Close()
 	server := grpc.NewServer()
-	tls.RegisterCommonServer(server, s)
+	api.RegisterTestServiceServer(server, s)
 	longrunning.RegisterOperationsServer(server, s.Manager)
 	return server.Serve(l)
 }
 
-func (s *exampleServer) ProvisionDut(ctx context.Context, req *tls.ProvisionDutRequest) (*longrunning.Operation, error) {
+func (s *exampleServer) ProvisionDut(ctx context.Context, req *api.ProvisionDutRequest) (*longrunning.Operation, error) {
 	op := s.Manager.NewOperation()
 	go s.provision(ctx, req, op.Name)
 	return op, nil
 }
 
-func (s *exampleServer) provision(ctx context.Context, req *tls.ProvisionDutRequest, op string) {
-	if req.GetName() != "some host" {
-		s.Manager.SetError(op, status.Newf(codes.NotFound, "Unknown DUT %s", req.GetName()))
-		return
-	}
-	s.Manager.SetResult(op, &tls.ProvisionDutResponse{})
+func (s *exampleServer) provision(ctx context.Context, req *api.ProvisionDutRequest, op string) {
+	s.Manager.SetResult(op, &api.ProvisionDutResponse{})
 }
 
-func Example() {
+func RunServer() {
 	l, err := net.Listen("tcp", ":0")
 	if err != nil {
 		panic(err)
@@ -51,3 +46,8 @@
 		panic(err)
 	}
 }
+
+func TestServe(t *testing.T) {
+	go RunServer()
+	// TODO(shapiroc): Add testing
+}
diff --git a/lib/src/chromiumos/lro/wait.go b/lib/src/chromiumos/lro/wait.go
index d68f85c..374a4ae 100644
--- a/lib/src/chromiumos/lro/wait.go
+++ b/lib/src/chromiumos/lro/wait.go
@@ -9,8 +9,7 @@
 	"math/rand"
 	"time"
 
-	"go.chromium.org/chromiumos/config/go/api/test/tls/dependencies/longrunning"
-	"go.chromium.org/luci/common/clock"
+	"go.chromium.org/chromiumos/config/go/longrunning"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/codes"
 	status "google.golang.org/grpc/status"
@@ -49,7 +48,7 @@
 				return op, err
 			}
 			delay := rand.Int63n(initialBackoffMillis * (1 << attempt))
-			clock.Sleep(ctx, time.Duration(delay)*time.Millisecond)
+			time.Sleep(time.Duration(delay) * time.Millisecond)
 			attempt++
 		default:
 			// Non-retryable error