Add status command, deployment infrastructure, and fix proto paths
Rename proto/gen directories from mc-proxy to mc_proxy for valid protobuf package naming. Add CLI status subcommand for querying running instance health via gRPC. Add systemd backup service/timer and backup pruning script. Add buf.yaml and proto-lint Makefile target. Add shutdown_timeout config field. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
8
.claude/skills/checkpoint/SKILL.md
Normal file
8
.claude/skills/checkpoint/SKILL.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Checkpoint Skill
|
||||||
|
|
||||||
|
1. Run `go build ./...` abort if errors
|
||||||
|
2. Run `go test ./...` abort if failures
|
||||||
|
3. Run `go vet ./...`
|
||||||
|
4. Run `git add -A && git status` show user what will be committed
|
||||||
|
5. Generate an appropriate commit message based on your instructions.
|
||||||
|
6. Run `git commit -m "<message>"` and verify with `git log -1`
|
||||||
@@ -45,7 +45,7 @@ go test ./internal/sni -run TestExtract
|
|||||||
- `internal/proxy/` — bidirectional TCP relay with half-close propagation and idle timeout
|
- `internal/proxy/` — bidirectional TCP relay with half-close propagation and idle timeout
|
||||||
- `internal/server/` — orchestrates listeners → firewall → SNI → route → proxy pipeline; per-listener state with connection tracking
|
- `internal/server/` — orchestrates listeners → firewall → SNI → route → proxy pipeline; per-listener state with connection tracking
|
||||||
- `internal/grpcserver/` — gRPC admin API: route/firewall CRUD, status, write-through to DB
|
- `internal/grpcserver/` — gRPC admin API: route/firewall CRUD, status, write-through to DB
|
||||||
- `proto/mc-proxy/v1/` — protobuf definitions; `gen/mc-proxy/v1/` has generated code
|
- `proto/mc_proxy/v1/` — protobuf definitions; `gen/mc_proxy/v1/` has generated code
|
||||||
|
|
||||||
## Signals
|
## Signals
|
||||||
|
|
||||||
|
|||||||
8
Makefile
8
Makefile
@@ -1,4 +1,4 @@
|
|||||||
.PHONY: build test vet lint proto clean docker all devserver
|
.PHONY: build test vet lint proto proto-lint clean docker all devserver
|
||||||
|
|
||||||
LDFLAGS := -trimpath -ldflags="-s -w -X main.version=$(shell git describe --tags --always --dirty)"
|
LDFLAGS := -trimpath -ldflags="-s -w -X main.version=$(shell git describe --tags --always --dirty)"
|
||||||
|
|
||||||
@@ -20,7 +20,11 @@ lint:
|
|||||||
proto:
|
proto:
|
||||||
protoc --go_out=. --go_opt=module=git.wntrmute.dev/kyle/mc-proxy \
|
protoc --go_out=. --go_opt=module=git.wntrmute.dev/kyle/mc-proxy \
|
||||||
--go-grpc_out=. --go-grpc_opt=module=git.wntrmute.dev/kyle/mc-proxy \
|
--go-grpc_out=. --go-grpc_opt=module=git.wntrmute.dev/kyle/mc-proxy \
|
||||||
proto/mc-proxy/v1/*.proto
|
proto/mc_proxy/v1/*.proto
|
||||||
|
|
||||||
|
proto-lint:
|
||||||
|
buf lint
|
||||||
|
buf breaking --against '.git#branch=master,subdir=proto'
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f mc-proxy
|
rm -f mc-proxy
|
||||||
|
|||||||
9
buf.yaml
Normal file
9
buf.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
version: v2
|
||||||
|
modules:
|
||||||
|
- path: proto
|
||||||
|
lint:
|
||||||
|
use:
|
||||||
|
- STANDARD
|
||||||
|
breaking:
|
||||||
|
use:
|
||||||
|
- FILE
|
||||||
@@ -12,6 +12,7 @@ func rootCmd() *cobra.Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmd.AddCommand(serverCmd())
|
cmd.AddCommand(serverCmd())
|
||||||
|
cmd.AddCommand(statusCmd())
|
||||||
cmd.AddCommand(snapshotCmd())
|
cmd.AddCommand(snapshotCmd())
|
||||||
|
|
||||||
return cmd
|
return cmd
|
||||||
|
|||||||
101
cmd/mc-proxy/status.go
Normal file
101
cmd/mc-proxy/status.go
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"crypto/tls"
|
||||||
|
"crypto/x509"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
"google.golang.org/grpc/credentials"
|
||||||
|
|
||||||
|
pb "git.wntrmute.dev/kyle/mc-proxy/gen/mc_proxy/v1"
|
||||||
|
"git.wntrmute.dev/kyle/mc-proxy/internal/config"
|
||||||
|
)
|
||||||
|
|
||||||
|
func statusCmd() *cobra.Command {
|
||||||
|
var configPath string
|
||||||
|
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "status",
|
||||||
|
Short: "Query a running instance's health and status",
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
cfg, err := config.Load(configPath)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.GRPC.Addr == "" {
|
||||||
|
return fmt.Errorf("gRPC admin API is not configured (grpc.addr is empty)")
|
||||||
|
}
|
||||||
|
|
||||||
|
conn, err := dialGRPC(cfg.GRPC)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("connecting to gRPC API: %w", err)
|
||||||
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
client := pb.NewProxyAdminServiceClient(conn)
|
||||||
|
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
resp, err := client.GetStatus(ctx, &pb.GetStatusRequest{})
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("getting status: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("mc-proxy %s\n", resp.Version)
|
||||||
|
if resp.StartedAt != nil {
|
||||||
|
uptime := time.Since(resp.StartedAt.AsTime()).Truncate(time.Second)
|
||||||
|
fmt.Printf("uptime: %s\n", uptime)
|
||||||
|
}
|
||||||
|
fmt.Printf("connections: %d\n", resp.TotalConnections)
|
||||||
|
fmt.Println()
|
||||||
|
|
||||||
|
for _, ls := range resp.Listeners {
|
||||||
|
fmt.Printf(" %s routes=%d active=%d\n", ls.Addr, ls.RouteCount, ls.ActiveConnections)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd.Flags().StringVarP(&configPath, "config", "c", "mc-proxy.toml", "path to configuration file")
|
||||||
|
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
func dialGRPC(cfg config.GRPC) (*grpc.ClientConn, error) {
|
||||||
|
tlsConfig := &tls.Config{
|
||||||
|
MinVersion: tls.VersionTLS13,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load CA cert for verifying the server.
|
||||||
|
if cfg.CACert != "" {
|
||||||
|
caCert, err := os.ReadFile(cfg.CACert)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("reading CA cert: %w", err)
|
||||||
|
}
|
||||||
|
pool := x509.NewCertPool()
|
||||||
|
if !pool.AppendCertsFromPEM(caCert) {
|
||||||
|
return nil, fmt.Errorf("failed to parse CA certificate")
|
||||||
|
}
|
||||||
|
tlsConfig.RootCAs = pool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load client cert for mTLS.
|
||||||
|
if cfg.TLSCert != "" && cfg.TLSKey != "" {
|
||||||
|
cert, err := tls.LoadX509KeyPair(cfg.TLSCert, cfg.TLSKey)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("loading client cert: %w", err)
|
||||||
|
}
|
||||||
|
tlsConfig.Certificates = []tls.Certificate{cert}
|
||||||
|
}
|
||||||
|
|
||||||
|
creds := credentials.NewTLS(tlsConfig)
|
||||||
|
return grpc.NewClient(cfg.Addr, grpc.WithTransportCredentials(creds))
|
||||||
|
}
|
||||||
@@ -21,6 +21,7 @@ echo "Installed ${BINARY}."
|
|||||||
# Create data directory structure.
|
# Create data directory structure.
|
||||||
install -d -o "${SERVICE}" -g "${SERVICE}" -m 0700 "${DATA_DIR}"
|
install -d -o "${SERVICE}" -g "${SERVICE}" -m 0700 "${DATA_DIR}"
|
||||||
install -d -o "${SERVICE}" -g "${SERVICE}" -m 0700 "${DATA_DIR}/backups"
|
install -d -o "${SERVICE}" -g "${SERVICE}" -m 0700 "${DATA_DIR}/backups"
|
||||||
|
install -d -o "${SERVICE}" -g "${SERVICE}" -m 0700 "${DATA_DIR}/certs"
|
||||||
echo "Created ${DATA_DIR}/."
|
echo "Created ${DATA_DIR}/."
|
||||||
|
|
||||||
# Install example config if none exists.
|
# Install example config if none exists.
|
||||||
@@ -33,10 +34,14 @@ fi
|
|||||||
|
|
||||||
# Install systemd units.
|
# Install systemd units.
|
||||||
install -m 0644 "${REPO_DIR}/deploy/systemd/${SERVICE}.service" "${UNIT_DIR}/"
|
install -m 0644 "${REPO_DIR}/deploy/systemd/${SERVICE}.service" "${UNIT_DIR}/"
|
||||||
|
install -m 0644 "${REPO_DIR}/deploy/systemd/${SERVICE}-backup.service" "${UNIT_DIR}/"
|
||||||
|
install -m 0644 "${REPO_DIR}/deploy/systemd/${SERVICE}-backup.timer" "${UNIT_DIR}/"
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
echo "Installed systemd unit ${SERVICE}.service."
|
echo "Installed systemd units."
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Done. Next steps:"
|
echo "Done. Next steps:"
|
||||||
echo " 1. Edit ${DATA_DIR}/${SERVICE}.toml"
|
echo " 1. Edit ${DATA_DIR}/${SERVICE}.toml"
|
||||||
echo " 2. systemctl enable --now ${SERVICE}"
|
echo " 2. Place TLS certs in ${DATA_DIR}/certs/ (if using gRPC admin API)"
|
||||||
|
echo " 3. systemctl enable --now ${SERVICE}"
|
||||||
|
echo " 4. systemctl enable --now ${SERVICE}-backup.timer"
|
||||||
|
|||||||
14
deploy/scripts/prune-backups.sh
Executable file
14
deploy/scripts/prune-backups.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
# Prune mc-proxy database backups older than RETAIN_DAYS (default 30).
|
||||||
|
BACKUP_DIR="/srv/mc-proxy/backups"
|
||||||
|
RETAIN_DAYS="${1:-30}"
|
||||||
|
|
||||||
|
if [ ! -d "${BACKUP_DIR}" ]; then
|
||||||
|
echo "Backup directory ${BACKUP_DIR} does not exist."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
find "${BACKUP_DIR}" -name "mc-proxy-*.db" -type f -mtime "+${RETAIN_DAYS}" -delete
|
||||||
|
echo "Pruned backups older than ${RETAIN_DAYS} days from ${BACKUP_DIR}."
|
||||||
25
deploy/systemd/mc-proxy-backup.service
Normal file
25
deploy/systemd/mc-proxy-backup.service
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=mc-proxy database backup
|
||||||
|
After=mc-proxy.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
User=mc-proxy
|
||||||
|
Group=mc-proxy
|
||||||
|
ExecStart=/usr/local/bin/mc-proxy snapshot --config /srv/mc-proxy/mc-proxy.toml
|
||||||
|
ExecStartPost=/usr/bin/find /srv/mc-proxy/backups -name "mc-proxy-*.db" -type f -mtime +30 -delete
|
||||||
|
|
||||||
|
NoNewPrivileges=true
|
||||||
|
ProtectSystem=strict
|
||||||
|
ProtectHome=true
|
||||||
|
PrivateTmp=true
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
ProtectKernelModules=true
|
||||||
|
ProtectControlGroups=true
|
||||||
|
RestrictSUIDSGID=true
|
||||||
|
RestrictNamespaces=true
|
||||||
|
LockPersonality=true
|
||||||
|
MemoryDenyWriteExecute=true
|
||||||
|
RestrictRealtime=true
|
||||||
|
ReadWritePaths=/srv/mc-proxy
|
||||||
10
deploy/systemd/mc-proxy-backup.timer
Normal file
10
deploy/systemd/mc-proxy-backup.timer
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Daily mc-proxy database backup
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar=*-*-* 02:00:00 UTC
|
||||||
|
RandomizedDelaySec=300
|
||||||
|
Persistent=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.36.11
|
// protoc-gen-go v1.36.11
|
||||||
// protoc v6.33.4
|
// protoc v6.33.4
|
||||||
// source: proto/mc-proxy/v1/admin.proto
|
// source: proto/mc_proxy/v1/admin.proto
|
||||||
|
|
||||||
package mcproxyv1
|
package mcproxyv1
|
||||||
|
|
||||||
@@ -858,7 +858,7 @@ var File_proto_mc_proxy_v1_admin_proto protoreflect.FileDescriptor
|
|||||||
|
|
||||||
const file_proto_mc_proxy_v1_admin_proto_rawDesc = "" +
|
const file_proto_mc_proxy_v1_admin_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\x1dproto/mc-proxy/v1/admin.proto\x12\vmc_proxy.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"=\n" +
|
"\x1dproto/mc_proxy/v1/admin.proto\x12\vmc_proxy.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"=\n" +
|
||||||
"\x05Route\x12\x1a\n" +
|
"\x05Route\x12\x1a\n" +
|
||||||
"\bhostname\x18\x01 \x01(\tR\bhostname\x12\x18\n" +
|
"\bhostname\x18\x01 \x01(\tR\bhostname\x12\x18\n" +
|
||||||
"\abackend\x18\x02 \x01(\tR\abackend\"8\n" +
|
"\abackend\x18\x02 \x01(\tR\abackend\"8\n" +
|
||||||
@@ -903,9 +903,8 @@ const file_proto_mc_proxy_v1_admin_proto_rawDesc = "" +
|
|||||||
"\x1eFIREWALL_RULE_TYPE_UNSPECIFIED\x10\x00\x12\x19\n" +
|
"\x1eFIREWALL_RULE_TYPE_UNSPECIFIED\x10\x00\x12\x19\n" +
|
||||||
"\x15FIREWALL_RULE_TYPE_IP\x10\x01\x12\x1b\n" +
|
"\x15FIREWALL_RULE_TYPE_IP\x10\x01\x12\x1b\n" +
|
||||||
"\x17FIREWALL_RULE_TYPE_CIDR\x10\x02\x12\x1e\n" +
|
"\x17FIREWALL_RULE_TYPE_CIDR\x10\x02\x12\x1e\n" +
|
||||||
"\x1aFIREWALL_RULE_TYPE_COUNTRY\x10\x032\xe8\x04\n" +
|
"\x1aFIREWALL_RULE_TYPE_COUNTRY\x10\x032\xef\x04\n" +
|
||||||
"\n" +
|
"\x11ProxyAdminService\x12M\n" +
|
||||||
"ProxyAdmin\x12M\n" +
|
|
||||||
"\n" +
|
"\n" +
|
||||||
"ListRoutes\x12\x1e.mc_proxy.v1.ListRoutesRequest\x1a\x1f.mc_proxy.v1.ListRoutesResponse\x12G\n" +
|
"ListRoutes\x12\x1e.mc_proxy.v1.ListRoutesRequest\x1a\x1f.mc_proxy.v1.ListRoutesResponse\x12G\n" +
|
||||||
"\bAddRoute\x12\x1c.mc_proxy.v1.AddRouteRequest\x1a\x1d.mc_proxy.v1.AddRouteResponse\x12P\n" +
|
"\bAddRoute\x12\x1c.mc_proxy.v1.AddRouteRequest\x1a\x1d.mc_proxy.v1.AddRouteResponse\x12P\n" +
|
||||||
@@ -913,7 +912,7 @@ const file_proto_mc_proxy_v1_admin_proto_rawDesc = "" +
|
|||||||
"\x10GetFirewallRules\x12$.mc_proxy.v1.GetFirewallRulesRequest\x1a%.mc_proxy.v1.GetFirewallRulesResponse\x12\\\n" +
|
"\x10GetFirewallRules\x12$.mc_proxy.v1.GetFirewallRulesRequest\x1a%.mc_proxy.v1.GetFirewallRulesResponse\x12\\\n" +
|
||||||
"\x0fAddFirewallRule\x12#.mc_proxy.v1.AddFirewallRuleRequest\x1a$.mc_proxy.v1.AddFirewallRuleResponse\x12e\n" +
|
"\x0fAddFirewallRule\x12#.mc_proxy.v1.AddFirewallRuleRequest\x1a$.mc_proxy.v1.AddFirewallRuleResponse\x12e\n" +
|
||||||
"\x12RemoveFirewallRule\x12&.mc_proxy.v1.RemoveFirewallRuleRequest\x1a'.mc_proxy.v1.RemoveFirewallRuleResponse\x12J\n" +
|
"\x12RemoveFirewallRule\x12&.mc_proxy.v1.RemoveFirewallRuleRequest\x1a'.mc_proxy.v1.RemoveFirewallRuleResponse\x12J\n" +
|
||||||
"\tGetStatus\x12\x1d.mc_proxy.v1.GetStatusRequest\x1a\x1e.mc_proxy.v1.GetStatusResponseB:Z8git.wntrmute.dev/kyle/mc-proxy/gen/mc-proxy/v1;mcproxyv1b\x06proto3"
|
"\tGetStatus\x12\x1d.mc_proxy.v1.GetStatusRequest\x1a\x1e.mc_proxy.v1.GetStatusResponseB:Z8git.wntrmute.dev/kyle/mc-proxy/gen/mc_proxy/v1;mcproxyv1b\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_proto_mc_proxy_v1_admin_proto_rawDescOnce sync.Once
|
file_proto_mc_proxy_v1_admin_proto_rawDescOnce sync.Once
|
||||||
@@ -959,20 +958,20 @@ var file_proto_mc_proxy_v1_admin_proto_depIdxs = []int32{
|
|||||||
8, // 5: mc_proxy.v1.RemoveFirewallRuleRequest.rule:type_name -> mc_proxy.v1.FirewallRule
|
8, // 5: mc_proxy.v1.RemoveFirewallRuleRequest.rule:type_name -> mc_proxy.v1.FirewallRule
|
||||||
18, // 6: mc_proxy.v1.GetStatusResponse.started_at:type_name -> google.protobuf.Timestamp
|
18, // 6: mc_proxy.v1.GetStatusResponse.started_at:type_name -> google.protobuf.Timestamp
|
||||||
15, // 7: mc_proxy.v1.GetStatusResponse.listeners:type_name -> mc_proxy.v1.ListenerStatus
|
15, // 7: mc_proxy.v1.GetStatusResponse.listeners:type_name -> mc_proxy.v1.ListenerStatus
|
||||||
2, // 8: mc_proxy.v1.ProxyAdmin.ListRoutes:input_type -> mc_proxy.v1.ListRoutesRequest
|
2, // 8: mc_proxy.v1.ProxyAdminService.ListRoutes:input_type -> mc_proxy.v1.ListRoutesRequest
|
||||||
4, // 9: mc_proxy.v1.ProxyAdmin.AddRoute:input_type -> mc_proxy.v1.AddRouteRequest
|
4, // 9: mc_proxy.v1.ProxyAdminService.AddRoute:input_type -> mc_proxy.v1.AddRouteRequest
|
||||||
6, // 10: mc_proxy.v1.ProxyAdmin.RemoveRoute:input_type -> mc_proxy.v1.RemoveRouteRequest
|
6, // 10: mc_proxy.v1.ProxyAdminService.RemoveRoute:input_type -> mc_proxy.v1.RemoveRouteRequest
|
||||||
9, // 11: mc_proxy.v1.ProxyAdmin.GetFirewallRules:input_type -> mc_proxy.v1.GetFirewallRulesRequest
|
9, // 11: mc_proxy.v1.ProxyAdminService.GetFirewallRules:input_type -> mc_proxy.v1.GetFirewallRulesRequest
|
||||||
11, // 12: mc_proxy.v1.ProxyAdmin.AddFirewallRule:input_type -> mc_proxy.v1.AddFirewallRuleRequest
|
11, // 12: mc_proxy.v1.ProxyAdminService.AddFirewallRule:input_type -> mc_proxy.v1.AddFirewallRuleRequest
|
||||||
13, // 13: mc_proxy.v1.ProxyAdmin.RemoveFirewallRule:input_type -> mc_proxy.v1.RemoveFirewallRuleRequest
|
13, // 13: mc_proxy.v1.ProxyAdminService.RemoveFirewallRule:input_type -> mc_proxy.v1.RemoveFirewallRuleRequest
|
||||||
16, // 14: mc_proxy.v1.ProxyAdmin.GetStatus:input_type -> mc_proxy.v1.GetStatusRequest
|
16, // 14: mc_proxy.v1.ProxyAdminService.GetStatus:input_type -> mc_proxy.v1.GetStatusRequest
|
||||||
3, // 15: mc_proxy.v1.ProxyAdmin.ListRoutes:output_type -> mc_proxy.v1.ListRoutesResponse
|
3, // 15: mc_proxy.v1.ProxyAdminService.ListRoutes:output_type -> mc_proxy.v1.ListRoutesResponse
|
||||||
5, // 16: mc_proxy.v1.ProxyAdmin.AddRoute:output_type -> mc_proxy.v1.AddRouteResponse
|
5, // 16: mc_proxy.v1.ProxyAdminService.AddRoute:output_type -> mc_proxy.v1.AddRouteResponse
|
||||||
7, // 17: mc_proxy.v1.ProxyAdmin.RemoveRoute:output_type -> mc_proxy.v1.RemoveRouteResponse
|
7, // 17: mc_proxy.v1.ProxyAdminService.RemoveRoute:output_type -> mc_proxy.v1.RemoveRouteResponse
|
||||||
10, // 18: mc_proxy.v1.ProxyAdmin.GetFirewallRules:output_type -> mc_proxy.v1.GetFirewallRulesResponse
|
10, // 18: mc_proxy.v1.ProxyAdminService.GetFirewallRules:output_type -> mc_proxy.v1.GetFirewallRulesResponse
|
||||||
12, // 19: mc_proxy.v1.ProxyAdmin.AddFirewallRule:output_type -> mc_proxy.v1.AddFirewallRuleResponse
|
12, // 19: mc_proxy.v1.ProxyAdminService.AddFirewallRule:output_type -> mc_proxy.v1.AddFirewallRuleResponse
|
||||||
14, // 20: mc_proxy.v1.ProxyAdmin.RemoveFirewallRule:output_type -> mc_proxy.v1.RemoveFirewallRuleResponse
|
14, // 20: mc_proxy.v1.ProxyAdminService.RemoveFirewallRule:output_type -> mc_proxy.v1.RemoveFirewallRuleResponse
|
||||||
17, // 21: mc_proxy.v1.ProxyAdmin.GetStatus:output_type -> mc_proxy.v1.GetStatusResponse
|
17, // 21: mc_proxy.v1.ProxyAdminService.GetStatus:output_type -> mc_proxy.v1.GetStatusResponse
|
||||||
15, // [15:22] is the sub-list for method output_type
|
15, // [15:22] is the sub-list for method output_type
|
||||||
8, // [8:15] is the sub-list for method input_type
|
8, // [8:15] is the sub-list for method input_type
|
||||||
8, // [8:8] is the sub-list for extension type_name
|
8, // [8:8] is the sub-list for extension type_name
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.6.1
|
// - protoc-gen-go-grpc v1.6.1
|
||||||
// - protoc v6.33.4
|
// - protoc v6.33.4
|
||||||
// source: proto/mc-proxy/v1/admin.proto
|
// source: proto/mc_proxy/v1/admin.proto
|
||||||
|
|
||||||
package mcproxyv1
|
package mcproxyv1
|
||||||
|
|
||||||
@@ -19,19 +19,19 @@ import (
|
|||||||
const _ = grpc.SupportPackageIsVersion9
|
const _ = grpc.SupportPackageIsVersion9
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ProxyAdmin_ListRoutes_FullMethodName = "/mc_proxy.v1.ProxyAdmin/ListRoutes"
|
ProxyAdminService_ListRoutes_FullMethodName = "/mc_proxy.v1.ProxyAdminService/ListRoutes"
|
||||||
ProxyAdmin_AddRoute_FullMethodName = "/mc_proxy.v1.ProxyAdmin/AddRoute"
|
ProxyAdminService_AddRoute_FullMethodName = "/mc_proxy.v1.ProxyAdminService/AddRoute"
|
||||||
ProxyAdmin_RemoveRoute_FullMethodName = "/mc_proxy.v1.ProxyAdmin/RemoveRoute"
|
ProxyAdminService_RemoveRoute_FullMethodName = "/mc_proxy.v1.ProxyAdminService/RemoveRoute"
|
||||||
ProxyAdmin_GetFirewallRules_FullMethodName = "/mc_proxy.v1.ProxyAdmin/GetFirewallRules"
|
ProxyAdminService_GetFirewallRules_FullMethodName = "/mc_proxy.v1.ProxyAdminService/GetFirewallRules"
|
||||||
ProxyAdmin_AddFirewallRule_FullMethodName = "/mc_proxy.v1.ProxyAdmin/AddFirewallRule"
|
ProxyAdminService_AddFirewallRule_FullMethodName = "/mc_proxy.v1.ProxyAdminService/AddFirewallRule"
|
||||||
ProxyAdmin_RemoveFirewallRule_FullMethodName = "/mc_proxy.v1.ProxyAdmin/RemoveFirewallRule"
|
ProxyAdminService_RemoveFirewallRule_FullMethodName = "/mc_proxy.v1.ProxyAdminService/RemoveFirewallRule"
|
||||||
ProxyAdmin_GetStatus_FullMethodName = "/mc_proxy.v1.ProxyAdmin/GetStatus"
|
ProxyAdminService_GetStatus_FullMethodName = "/mc_proxy.v1.ProxyAdminService/GetStatus"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ProxyAdminClient is the client API for ProxyAdmin service.
|
// ProxyAdminServiceClient is the client API for ProxyAdminService service.
|
||||||
//
|
//
|
||||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||||
type ProxyAdminClient interface {
|
type ProxyAdminServiceClient interface {
|
||||||
// Routes
|
// Routes
|
||||||
ListRoutes(ctx context.Context, in *ListRoutesRequest, opts ...grpc.CallOption) (*ListRoutesResponse, error)
|
ListRoutes(ctx context.Context, in *ListRoutesRequest, opts ...grpc.CallOption) (*ListRoutesResponse, error)
|
||||||
AddRoute(ctx context.Context, in *AddRouteRequest, opts ...grpc.CallOption) (*AddRouteResponse, error)
|
AddRoute(ctx context.Context, in *AddRouteRequest, opts ...grpc.CallOption) (*AddRouteResponse, error)
|
||||||
@@ -44,88 +44,88 @@ type ProxyAdminClient interface {
|
|||||||
GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error)
|
GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type proxyAdminClient struct {
|
type proxyAdminServiceClient struct {
|
||||||
cc grpc.ClientConnInterface
|
cc grpc.ClientConnInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewProxyAdminClient(cc grpc.ClientConnInterface) ProxyAdminClient {
|
func NewProxyAdminServiceClient(cc grpc.ClientConnInterface) ProxyAdminServiceClient {
|
||||||
return &proxyAdminClient{cc}
|
return &proxyAdminServiceClient{cc}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *proxyAdminClient) ListRoutes(ctx context.Context, in *ListRoutesRequest, opts ...grpc.CallOption) (*ListRoutesResponse, error) {
|
func (c *proxyAdminServiceClient) ListRoutes(ctx context.Context, in *ListRoutesRequest, opts ...grpc.CallOption) (*ListRoutesResponse, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(ListRoutesResponse)
|
out := new(ListRoutesResponse)
|
||||||
err := c.cc.Invoke(ctx, ProxyAdmin_ListRoutes_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, ProxyAdminService_ListRoutes_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *proxyAdminClient) AddRoute(ctx context.Context, in *AddRouteRequest, opts ...grpc.CallOption) (*AddRouteResponse, error) {
|
func (c *proxyAdminServiceClient) AddRoute(ctx context.Context, in *AddRouteRequest, opts ...grpc.CallOption) (*AddRouteResponse, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(AddRouteResponse)
|
out := new(AddRouteResponse)
|
||||||
err := c.cc.Invoke(ctx, ProxyAdmin_AddRoute_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, ProxyAdminService_AddRoute_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *proxyAdminClient) RemoveRoute(ctx context.Context, in *RemoveRouteRequest, opts ...grpc.CallOption) (*RemoveRouteResponse, error) {
|
func (c *proxyAdminServiceClient) RemoveRoute(ctx context.Context, in *RemoveRouteRequest, opts ...grpc.CallOption) (*RemoveRouteResponse, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(RemoveRouteResponse)
|
out := new(RemoveRouteResponse)
|
||||||
err := c.cc.Invoke(ctx, ProxyAdmin_RemoveRoute_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, ProxyAdminService_RemoveRoute_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *proxyAdminClient) GetFirewallRules(ctx context.Context, in *GetFirewallRulesRequest, opts ...grpc.CallOption) (*GetFirewallRulesResponse, error) {
|
func (c *proxyAdminServiceClient) GetFirewallRules(ctx context.Context, in *GetFirewallRulesRequest, opts ...grpc.CallOption) (*GetFirewallRulesResponse, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(GetFirewallRulesResponse)
|
out := new(GetFirewallRulesResponse)
|
||||||
err := c.cc.Invoke(ctx, ProxyAdmin_GetFirewallRules_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, ProxyAdminService_GetFirewallRules_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *proxyAdminClient) AddFirewallRule(ctx context.Context, in *AddFirewallRuleRequest, opts ...grpc.CallOption) (*AddFirewallRuleResponse, error) {
|
func (c *proxyAdminServiceClient) AddFirewallRule(ctx context.Context, in *AddFirewallRuleRequest, opts ...grpc.CallOption) (*AddFirewallRuleResponse, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(AddFirewallRuleResponse)
|
out := new(AddFirewallRuleResponse)
|
||||||
err := c.cc.Invoke(ctx, ProxyAdmin_AddFirewallRule_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, ProxyAdminService_AddFirewallRule_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *proxyAdminClient) RemoveFirewallRule(ctx context.Context, in *RemoveFirewallRuleRequest, opts ...grpc.CallOption) (*RemoveFirewallRuleResponse, error) {
|
func (c *proxyAdminServiceClient) RemoveFirewallRule(ctx context.Context, in *RemoveFirewallRuleRequest, opts ...grpc.CallOption) (*RemoveFirewallRuleResponse, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(RemoveFirewallRuleResponse)
|
out := new(RemoveFirewallRuleResponse)
|
||||||
err := c.cc.Invoke(ctx, ProxyAdmin_RemoveFirewallRule_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, ProxyAdminService_RemoveFirewallRule_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *proxyAdminClient) GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error) {
|
func (c *proxyAdminServiceClient) GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error) {
|
||||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
out := new(GetStatusResponse)
|
out := new(GetStatusResponse)
|
||||||
err := c.cc.Invoke(ctx, ProxyAdmin_GetStatus_FullMethodName, in, out, cOpts...)
|
err := c.cc.Invoke(ctx, ProxyAdminService_GetStatus_FullMethodName, in, out, cOpts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProxyAdminServer is the server API for ProxyAdmin service.
|
// ProxyAdminServiceServer is the server API for ProxyAdminService service.
|
||||||
// All implementations must embed UnimplementedProxyAdminServer
|
// All implementations must embed UnimplementedProxyAdminServiceServer
|
||||||
// for forward compatibility.
|
// for forward compatibility.
|
||||||
type ProxyAdminServer interface {
|
type ProxyAdminServiceServer interface {
|
||||||
// Routes
|
// Routes
|
||||||
ListRoutes(context.Context, *ListRoutesRequest) (*ListRoutesResponse, error)
|
ListRoutes(context.Context, *ListRoutesRequest) (*ListRoutesResponse, error)
|
||||||
AddRoute(context.Context, *AddRouteRequest) (*AddRouteResponse, error)
|
AddRoute(context.Context, *AddRouteRequest) (*AddRouteResponse, error)
|
||||||
@@ -136,220 +136,220 @@ type ProxyAdminServer interface {
|
|||||||
RemoveFirewallRule(context.Context, *RemoveFirewallRuleRequest) (*RemoveFirewallRuleResponse, error)
|
RemoveFirewallRule(context.Context, *RemoveFirewallRuleRequest) (*RemoveFirewallRuleResponse, error)
|
||||||
// Status
|
// Status
|
||||||
GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error)
|
GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error)
|
||||||
mustEmbedUnimplementedProxyAdminServer()
|
mustEmbedUnimplementedProxyAdminServiceServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnimplementedProxyAdminServer must be embedded to have
|
// UnimplementedProxyAdminServiceServer must be embedded to have
|
||||||
// forward compatible implementations.
|
// forward compatible implementations.
|
||||||
//
|
//
|
||||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||||
// pointer dereference when methods are called.
|
// pointer dereference when methods are called.
|
||||||
type UnimplementedProxyAdminServer struct{}
|
type UnimplementedProxyAdminServiceServer struct{}
|
||||||
|
|
||||||
func (UnimplementedProxyAdminServer) ListRoutes(context.Context, *ListRoutesRequest) (*ListRoutesResponse, error) {
|
func (UnimplementedProxyAdminServiceServer) ListRoutes(context.Context, *ListRoutesRequest) (*ListRoutesResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method ListRoutes not implemented")
|
return nil, status.Error(codes.Unimplemented, "method ListRoutes not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedProxyAdminServer) AddRoute(context.Context, *AddRouteRequest) (*AddRouteResponse, error) {
|
func (UnimplementedProxyAdminServiceServer) AddRoute(context.Context, *AddRouteRequest) (*AddRouteResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method AddRoute not implemented")
|
return nil, status.Error(codes.Unimplemented, "method AddRoute not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedProxyAdminServer) RemoveRoute(context.Context, *RemoveRouteRequest) (*RemoveRouteResponse, error) {
|
func (UnimplementedProxyAdminServiceServer) RemoveRoute(context.Context, *RemoveRouteRequest) (*RemoveRouteResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method RemoveRoute not implemented")
|
return nil, status.Error(codes.Unimplemented, "method RemoveRoute not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedProxyAdminServer) GetFirewallRules(context.Context, *GetFirewallRulesRequest) (*GetFirewallRulesResponse, error) {
|
func (UnimplementedProxyAdminServiceServer) GetFirewallRules(context.Context, *GetFirewallRulesRequest) (*GetFirewallRulesResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method GetFirewallRules not implemented")
|
return nil, status.Error(codes.Unimplemented, "method GetFirewallRules not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedProxyAdminServer) AddFirewallRule(context.Context, *AddFirewallRuleRequest) (*AddFirewallRuleResponse, error) {
|
func (UnimplementedProxyAdminServiceServer) AddFirewallRule(context.Context, *AddFirewallRuleRequest) (*AddFirewallRuleResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method AddFirewallRule not implemented")
|
return nil, status.Error(codes.Unimplemented, "method AddFirewallRule not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedProxyAdminServer) RemoveFirewallRule(context.Context, *RemoveFirewallRuleRequest) (*RemoveFirewallRuleResponse, error) {
|
func (UnimplementedProxyAdminServiceServer) RemoveFirewallRule(context.Context, *RemoveFirewallRuleRequest) (*RemoveFirewallRuleResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method RemoveFirewallRule not implemented")
|
return nil, status.Error(codes.Unimplemented, "method RemoveFirewallRule not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedProxyAdminServer) GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error) {
|
func (UnimplementedProxyAdminServiceServer) GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error) {
|
||||||
return nil, status.Error(codes.Unimplemented, "method GetStatus not implemented")
|
return nil, status.Error(codes.Unimplemented, "method GetStatus not implemented")
|
||||||
}
|
}
|
||||||
func (UnimplementedProxyAdminServer) mustEmbedUnimplementedProxyAdminServer() {}
|
func (UnimplementedProxyAdminServiceServer) mustEmbedUnimplementedProxyAdminServiceServer() {}
|
||||||
func (UnimplementedProxyAdminServer) testEmbeddedByValue() {}
|
func (UnimplementedProxyAdminServiceServer) testEmbeddedByValue() {}
|
||||||
|
|
||||||
// UnsafeProxyAdminServer may be embedded to opt out of forward compatibility for this service.
|
// UnsafeProxyAdminServiceServer may be embedded to opt out of forward compatibility for this service.
|
||||||
// Use of this interface is not recommended, as added methods to ProxyAdminServer will
|
// Use of this interface is not recommended, as added methods to ProxyAdminServiceServer will
|
||||||
// result in compilation errors.
|
// result in compilation errors.
|
||||||
type UnsafeProxyAdminServer interface {
|
type UnsafeProxyAdminServiceServer interface {
|
||||||
mustEmbedUnimplementedProxyAdminServer()
|
mustEmbedUnimplementedProxyAdminServiceServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterProxyAdminServer(s grpc.ServiceRegistrar, srv ProxyAdminServer) {
|
func RegisterProxyAdminServiceServer(s grpc.ServiceRegistrar, srv ProxyAdminServiceServer) {
|
||||||
// If the following call panics, it indicates UnimplementedProxyAdminServer was
|
// If the following call panics, it indicates UnimplementedProxyAdminServiceServer was
|
||||||
// embedded by pointer and is nil. This will cause panics if an
|
// embedded by pointer and is nil. This will cause panics if an
|
||||||
// unimplemented method is ever invoked, so we test this at initialization
|
// unimplemented method is ever invoked, so we test this at initialization
|
||||||
// time to prevent it from happening at runtime later due to I/O.
|
// time to prevent it from happening at runtime later due to I/O.
|
||||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||||
t.testEmbeddedByValue()
|
t.testEmbeddedByValue()
|
||||||
}
|
}
|
||||||
s.RegisterService(&ProxyAdmin_ServiceDesc, srv)
|
s.RegisterService(&ProxyAdminService_ServiceDesc, srv)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ProxyAdmin_ListRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _ProxyAdminService_ListRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(ListRoutesRequest)
|
in := new(ListRoutesRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if interceptor == nil {
|
if interceptor == nil {
|
||||||
return srv.(ProxyAdminServer).ListRoutes(ctx, in)
|
return srv.(ProxyAdminServiceServer).ListRoutes(ctx, in)
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: ProxyAdmin_ListRoutes_FullMethodName,
|
FullMethod: ProxyAdminService_ListRoutes_FullMethodName,
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(ProxyAdminServer).ListRoutes(ctx, req.(*ListRoutesRequest))
|
return srv.(ProxyAdminServiceServer).ListRoutes(ctx, req.(*ListRoutesRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ProxyAdmin_AddRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _ProxyAdminService_AddRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(AddRouteRequest)
|
in := new(AddRouteRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if interceptor == nil {
|
if interceptor == nil {
|
||||||
return srv.(ProxyAdminServer).AddRoute(ctx, in)
|
return srv.(ProxyAdminServiceServer).AddRoute(ctx, in)
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: ProxyAdmin_AddRoute_FullMethodName,
|
FullMethod: ProxyAdminService_AddRoute_FullMethodName,
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(ProxyAdminServer).AddRoute(ctx, req.(*AddRouteRequest))
|
return srv.(ProxyAdminServiceServer).AddRoute(ctx, req.(*AddRouteRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ProxyAdmin_RemoveRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _ProxyAdminService_RemoveRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(RemoveRouteRequest)
|
in := new(RemoveRouteRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if interceptor == nil {
|
if interceptor == nil {
|
||||||
return srv.(ProxyAdminServer).RemoveRoute(ctx, in)
|
return srv.(ProxyAdminServiceServer).RemoveRoute(ctx, in)
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: ProxyAdmin_RemoveRoute_FullMethodName,
|
FullMethod: ProxyAdminService_RemoveRoute_FullMethodName,
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(ProxyAdminServer).RemoveRoute(ctx, req.(*RemoveRouteRequest))
|
return srv.(ProxyAdminServiceServer).RemoveRoute(ctx, req.(*RemoveRouteRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ProxyAdmin_GetFirewallRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _ProxyAdminService_GetFirewallRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(GetFirewallRulesRequest)
|
in := new(GetFirewallRulesRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if interceptor == nil {
|
if interceptor == nil {
|
||||||
return srv.(ProxyAdminServer).GetFirewallRules(ctx, in)
|
return srv.(ProxyAdminServiceServer).GetFirewallRules(ctx, in)
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: ProxyAdmin_GetFirewallRules_FullMethodName,
|
FullMethod: ProxyAdminService_GetFirewallRules_FullMethodName,
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(ProxyAdminServer).GetFirewallRules(ctx, req.(*GetFirewallRulesRequest))
|
return srv.(ProxyAdminServiceServer).GetFirewallRules(ctx, req.(*GetFirewallRulesRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ProxyAdmin_AddFirewallRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _ProxyAdminService_AddFirewallRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(AddFirewallRuleRequest)
|
in := new(AddFirewallRuleRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if interceptor == nil {
|
if interceptor == nil {
|
||||||
return srv.(ProxyAdminServer).AddFirewallRule(ctx, in)
|
return srv.(ProxyAdminServiceServer).AddFirewallRule(ctx, in)
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: ProxyAdmin_AddFirewallRule_FullMethodName,
|
FullMethod: ProxyAdminService_AddFirewallRule_FullMethodName,
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(ProxyAdminServer).AddFirewallRule(ctx, req.(*AddFirewallRuleRequest))
|
return srv.(ProxyAdminServiceServer).AddFirewallRule(ctx, req.(*AddFirewallRuleRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ProxyAdmin_RemoveFirewallRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _ProxyAdminService_RemoveFirewallRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(RemoveFirewallRuleRequest)
|
in := new(RemoveFirewallRuleRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if interceptor == nil {
|
if interceptor == nil {
|
||||||
return srv.(ProxyAdminServer).RemoveFirewallRule(ctx, in)
|
return srv.(ProxyAdminServiceServer).RemoveFirewallRule(ctx, in)
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: ProxyAdmin_RemoveFirewallRule_FullMethodName,
|
FullMethod: ProxyAdminService_RemoveFirewallRule_FullMethodName,
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(ProxyAdminServer).RemoveFirewallRule(ctx, req.(*RemoveFirewallRuleRequest))
|
return srv.(ProxyAdminServiceServer).RemoveFirewallRule(ctx, req.(*RemoveFirewallRuleRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ProxyAdmin_GetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _ProxyAdminService_GetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(GetStatusRequest)
|
in := new(GetStatusRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if interceptor == nil {
|
if interceptor == nil {
|
||||||
return srv.(ProxyAdminServer).GetStatus(ctx, in)
|
return srv.(ProxyAdminServiceServer).GetStatus(ctx, in)
|
||||||
}
|
}
|
||||||
info := &grpc.UnaryServerInfo{
|
info := &grpc.UnaryServerInfo{
|
||||||
Server: srv,
|
Server: srv,
|
||||||
FullMethod: ProxyAdmin_GetStatus_FullMethodName,
|
FullMethod: ProxyAdminService_GetStatus_FullMethodName,
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(ProxyAdminServer).GetStatus(ctx, req.(*GetStatusRequest))
|
return srv.(ProxyAdminServiceServer).GetStatus(ctx, req.(*GetStatusRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProxyAdmin_ServiceDesc is the grpc.ServiceDesc for ProxyAdmin service.
|
// ProxyAdminService_ServiceDesc is the grpc.ServiceDesc for ProxyAdminService service.
|
||||||
// It's only intended for direct use with grpc.RegisterService,
|
// It's only intended for direct use with grpc.RegisterService,
|
||||||
// and not to be introspected or modified (even as a copy)
|
// and not to be introspected or modified (even as a copy)
|
||||||
var ProxyAdmin_ServiceDesc = grpc.ServiceDesc{
|
var ProxyAdminService_ServiceDesc = grpc.ServiceDesc{
|
||||||
ServiceName: "mc_proxy.v1.ProxyAdmin",
|
ServiceName: "mc_proxy.v1.ProxyAdminService",
|
||||||
HandlerType: (*ProxyAdminServer)(nil),
|
HandlerType: (*ProxyAdminServiceServer)(nil),
|
||||||
Methods: []grpc.MethodDesc{
|
Methods: []grpc.MethodDesc{
|
||||||
{
|
{
|
||||||
MethodName: "ListRoutes",
|
MethodName: "ListRoutes",
|
||||||
Handler: _ProxyAdmin_ListRoutes_Handler,
|
Handler: _ProxyAdminService_ListRoutes_Handler,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
MethodName: "AddRoute",
|
MethodName: "AddRoute",
|
||||||
Handler: _ProxyAdmin_AddRoute_Handler,
|
Handler: _ProxyAdminService_AddRoute_Handler,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
MethodName: "RemoveRoute",
|
MethodName: "RemoveRoute",
|
||||||
Handler: _ProxyAdmin_RemoveRoute_Handler,
|
Handler: _ProxyAdminService_RemoveRoute_Handler,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
MethodName: "GetFirewallRules",
|
MethodName: "GetFirewallRules",
|
||||||
Handler: _ProxyAdmin_GetFirewallRules_Handler,
|
Handler: _ProxyAdminService_GetFirewallRules_Handler,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
MethodName: "AddFirewallRule",
|
MethodName: "AddFirewallRule",
|
||||||
Handler: _ProxyAdmin_AddFirewallRule_Handler,
|
Handler: _ProxyAdminService_AddFirewallRule_Handler,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
MethodName: "RemoveFirewallRule",
|
MethodName: "RemoveFirewallRule",
|
||||||
Handler: _ProxyAdmin_RemoveFirewallRule_Handler,
|
Handler: _ProxyAdminService_RemoveFirewallRule_Handler,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
MethodName: "GetStatus",
|
MethodName: "GetStatus",
|
||||||
Handler: _ProxyAdmin_GetStatus_Handler,
|
Handler: _ProxyAdminService_GetStatus_Handler,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc.StreamDesc{},
|
Streams: []grpc.StreamDesc{},
|
||||||
Metadata: "proto/mc-proxy/v1/admin.proto",
|
Metadata: "proto/mc_proxy/v1/admin.proto",
|
||||||
}
|
}
|
||||||
@@ -25,7 +25,8 @@ type GRPC struct {
|
|||||||
Addr string `toml:"addr"`
|
Addr string `toml:"addr"`
|
||||||
TLSCert string `toml:"tls_cert"`
|
TLSCert string `toml:"tls_cert"`
|
||||||
TLSKey string `toml:"tls_key"`
|
TLSKey string `toml:"tls_key"`
|
||||||
ClientCA string `toml:"client_ca"`
|
CACert string `toml:"ca_cert"` // CA cert for verifying the server (client-side)
|
||||||
|
ClientCA string `toml:"client_ca"` // CA cert for verifying clients (server-side mTLS)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Listener struct {
|
type Listener struct {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import (
|
|||||||
"google.golang.org/grpc/status"
|
"google.golang.org/grpc/status"
|
||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
|
||||||
pb "git.wntrmute.dev/kyle/mc-proxy/gen/mc-proxy/v1"
|
pb "git.wntrmute.dev/kyle/mc-proxy/gen/mc_proxy/v1"
|
||||||
"git.wntrmute.dev/kyle/mc-proxy/internal/config"
|
"git.wntrmute.dev/kyle/mc-proxy/internal/config"
|
||||||
"git.wntrmute.dev/kyle/mc-proxy/internal/db"
|
"git.wntrmute.dev/kyle/mc-proxy/internal/db"
|
||||||
"git.wntrmute.dev/kyle/mc-proxy/internal/server"
|
"git.wntrmute.dev/kyle/mc-proxy/internal/server"
|
||||||
@@ -24,7 +24,7 @@ import (
|
|||||||
|
|
||||||
// AdminServer implements the ProxyAdmin gRPC service.
|
// AdminServer implements the ProxyAdmin gRPC service.
|
||||||
type AdminServer struct {
|
type AdminServer struct {
|
||||||
pb.UnimplementedProxyAdminServer
|
pb.UnimplementedProxyAdminServiceServer
|
||||||
srv *server.Server
|
srv *server.Server
|
||||||
store *db.Store
|
store *db.Store
|
||||||
logger *slog.Logger
|
logger *slog.Logger
|
||||||
@@ -63,7 +63,7 @@ func New(cfg config.GRPC, srv *server.Server, store *db.Store, logger *slog.Logg
|
|||||||
store: store,
|
store: store,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
}
|
}
|
||||||
pb.RegisterProxyAdminServer(grpcServer, admin)
|
pb.RegisterProxyAdminServiceServer(grpcServer, admin)
|
||||||
|
|
||||||
ln, err := net.Listen("tcp", cfg.Addr)
|
ln, err := net.Listen("tcp", cfg.Addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ syntax = "proto3";
|
|||||||
|
|
||||||
package mc_proxy.v1;
|
package mc_proxy.v1;
|
||||||
|
|
||||||
option go_package = "git.wntrmute.dev/kyle/mc-proxy/gen/mc-proxy/v1;mcproxyv1";
|
option go_package = "git.wntrmute.dev/kyle/mc-proxy/gen/mc_proxy/v1;mcproxyv1";
|
||||||
|
|
||||||
import "google/protobuf/timestamp.proto";
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
service ProxyAdmin {
|
service ProxyAdminService {
|
||||||
// Routes
|
// Routes
|
||||||
rpc ListRoutes(ListRoutesRequest) returns (ListRoutesResponse);
|
rpc ListRoutes(ListRoutesRequest) returns (ListRoutesResponse);
|
||||||
rpc AddRoute(AddRouteRequest) returns (AddRouteResponse);
|
rpc AddRoute(AddRouteRequest) returns (AddRouteResponse);
|
||||||
Reference in New Issue
Block a user