github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/integration/e2ecortex/service.go (about) 1 package e2ecortex 2 3 import "github.com/cortexproject/cortex/integration/e2e" 4 5 // CortexService represents a Cortex service with at least an HTTP and GRPC port exposed. 6 type CortexService struct { 7 *e2e.HTTPService 8 9 grpcPort int 10 } 11 12 func NewCortexService( 13 name string, 14 image string, 15 command *e2e.Command, 16 readiness e2e.ReadinessProbe, 17 httpPort int, 18 grpcPort int, 19 otherPorts ...int, 20 ) *CortexService { 21 return &CortexService{ 22 HTTPService: e2e.NewHTTPService(name, image, command, readiness, httpPort, append(otherPorts, grpcPort)...), 23 grpcPort: grpcPort, 24 } 25 } 26 27 func (s *CortexService) GRPCEndpoint() string { 28 return s.Endpoint(s.grpcPort) 29 } 30 31 func (s *CortexService) NetworkGRPCEndpoint() string { 32 return s.NetworkEndpoint(s.grpcPort) 33 } 34 35 // CompositeCortexService abstract an higher-level service composed, under the hood, 36 // by 2+ CortexService. 37 type CompositeCortexService struct { 38 *e2e.CompositeHTTPService 39 } 40 41 func NewCompositeCortexService(services ...*CortexService) *CompositeCortexService { 42 var httpServices []*e2e.HTTPService 43 for _, s := range services { 44 httpServices = append(httpServices, s.HTTPService) 45 } 46 47 return &CompositeCortexService{ 48 CompositeHTTPService: e2e.NewCompositeHTTPService(httpServices...), 49 } 50 }