-
Notifications
You must be signed in to change notification settings - Fork 5
/
gateway.go
49 lines (41 loc) · 2.64 KB
/
gateway.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package cmd
import (
"fmt"
"github.com/terrariumcloud/terrarium/internal/module/services/dependency_manager"
"github.com/terrariumcloud/terrarium/internal/module/services/gateway"
"github.com/terrariumcloud/terrarium/internal/module/services/registrar"
"github.com/terrariumcloud/terrarium/internal/module/services/storage"
"github.com/terrariumcloud/terrarium/internal/module/services/tag_manager"
"github.com/terrariumcloud/terrarium/internal/module/services/version_manager"
"github.com/terrariumcloud/terrarium/internal/release/services/release"
"github.com/spf13/cobra"
)
var gatewayCmd = &cobra.Command{
Use: "gateway",
Short: "Starts the Terrarium GRPC Gateway service",
Long: "Runs the Terrarium GRPC Gateway server.",
Run: runGateway,
}
func init() {
rootCmd.AddCommand(gatewayCmd)
gatewayCmd.Flags().StringVarP(®istrar.RegistrarServiceEndpoint, "registrar", "", registrar.DefaultRegistrarServiceEndpoint, "GRPC Endpoint for Registrar Service")
gatewayCmd.Flags().StringVarP(&dependency_manager.DependencyManagerEndpoint, "dependency-manager", "", dependency_manager.DefaultDependencyManagerEndpoint, "GRPC Endpoint for Dependency Manager Service")
gatewayCmd.Flags().StringVarP(&version_manager.VersionManagerEndpoint, "version-manager", "", version_manager.DefaultVersionManagerEndpoint, "GRPC Endpoint for Version Manager Service")
gatewayCmd.Flags().StringVarP(&storage.StorageServiceEndpoint, "storage", "", storage.DefaultStorageServiceDefaultEndpoint, "GRPC Endpoint for Storage Service")
gatewayCmd.Flags().StringVarP(&tag_manager.TagManagerEndpoint, "tag-manager", "", tag_manager.DefaultTagManagerEndpoint, "GRPC Endpoint for Tag Service")
gatewayCmd.Flags().StringVarP(&release.ReleaseServiceEndpoint, "release", "", release.DefaultReleaseServiceEndpoint, "GRPC Endpoint for Release Service")
}
func runGateway(cmd *cobra.Command, args []string) {
fmt.Println("Gateway intialization", registrar.RegistrarServiceEndpoint, tag_manager.TagManagerEndpoint,
version_manager.VersionManagerEndpoint, storage.StorageServiceEndpoint, dependency_manager.DependencyManagerEndpoint,
release.ReleaseServiceEndpoint)
gatewayServer := gateway.New(
registrar.NewRegistrarGrpcClient(registrar.RegistrarServiceEndpoint),
tag_manager.NewTagManagerGrpcClient(tag_manager.TagManagerEndpoint),
version_manager.NewVersionManagerGrpcClient(version_manager.VersionManagerEndpoint),
storage.NewStorageGrpcClient(storage.StorageServiceEndpoint),
dependency_manager.NewDependencyManagerGrpcClient(dependency_manager.DependencyManagerEndpoint),
release.NewPublisherGrpcClient(release.ReleaseServiceEndpoint),
)
startGRPCService("api-gateway", gatewayServer)
}