...
1
17
18 package e2e
19
20 import (
21 "fmt"
22
23 "github.com/google/uuid"
24 "google.golang.org/grpc/internal/testutils/xds/bootstrap"
25 "google.golang.org/grpc/internal/testutils/xds/e2e"
26 )
27
28 type controlPlane struct {
29 server *e2e.ManagementServer
30 nodeID string
31 bootstrapContent string
32 }
33
34 func newControlPlane() (*controlPlane, error) {
35
36 server, err := e2e.StartManagementServer(e2e.ManagementServerOptions{})
37 if err != nil {
38 return nil, fmt.Errorf("failed to spin up the xDS management server: %v", err)
39 }
40
41 nodeID := uuid.New().String()
42 bootstrapContentBytes, err := bootstrap.Contents(bootstrap.Options{
43 NodeID: nodeID,
44 ServerURI: server.Address,
45 ServerListenerResourceNameTemplate: e2e.ServerListenerResourceNameTemplate,
46 })
47 if err != nil {
48 server.Stop()
49 return nil, fmt.Errorf("failed to create bootstrap file: %v", err)
50 }
51
52 return &controlPlane{
53 server: server,
54 nodeID: nodeID,
55 bootstrapContent: string(bootstrapContentBytes),
56 }, nil
57 }
58
59 func (cp *controlPlane) stop() {
60 cp.server.Stop()
61 }
62
View as plain text