Unverified Commit 109701a2 authored by Lemon-miaow's avatar Lemon-miaow
Browse files

fix(ci): 修正分布式实现的 staticcheck 错误

迁移 CLI 不再遮蔽 BeginMigration 的错误,拒绝启动时正确返回失败。规范节点批准错误文案和归档 HTTP 状态常量;tar.Reader 已将旧普通文件类型归一化,无需引用已弃用常量。

验证:CI 固定版本 staticcheck 全量通过;cmd/felis、archivetransfer、backup、distributed 的 go test -race 通过。
parent b01aae77
Loading
Loading
Loading
Loading
+2 −2
Changes for cmd/felis/node_approve.go: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -275,7 +275,7 @@ func approveNode(ctx context.Context, cl client.Client, cs kubernetes.Interface,
	for _, endpoint := range endpoints {
		c, err := net.DialTimeout("tcp", endpoint, 5*time.Second)
		if err != nil {
			return fmt.Errorf("Velocity host cannot dial backend Service %s: %w", endpoint, err)
			return fmt.Errorf("velocity host cannot dial backend Service %s: %w", endpoint, err)
		}
		c.Close()
	}
@@ -321,7 +321,7 @@ func approveNode(ctx context.Context, cl client.Client, cs kubernetes.Interface,
		return err
	}
	if len(game.Spec.Ingress) == 0 {
		return fmt.Errorf("Velocity ingress policy is not configured")
		return fmt.Errorf("velocity ingress policy is not configured")
	}
	prevGame := game.DeepCopy()
	for _, cidr := range observed {
+7 −7
Changes for cmd/felis/server_migrate.go: 7 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -76,19 +76,19 @@ func cmdServerMigrate(args []string, stdout, stderr io.Writer) int {
	var op distributed.Operation
	switch args[0] {
	case "start":
		host, err := config.Load(*cfgPath)
		if err != nil {
			fmt.Fprintln(stderr, err)
		host, cfgErr := config.Load(*cfgPath)
		if cfgErr != nil {
			fmt.Fprintln(stderr, cfgErr)
			return 1
		}
		drv, err := openPodStore(ctx, host.Database.URL, "migration", stderr)
		if err != nil {
			fmt.Fprintln(stderr, err)
		drv, dbErr := openPodStore(ctx, host.Database.URL, "migration", stderr)
		if dbErr != nil {
			fmt.Fprintln(stderr, dbErr)
			return 1
		}
		defer drv.Close()
		var owner sql.NullString
		if err = drv.DB().QueryRowContext(ctx, "SELECT owner_id FROM servers WHERE name=$1 AND deleted_at IS NULL AND retire_requested_at IS NULL", *name).Scan(&owner); err != nil {
		if err := drv.DB().QueryRowContext(ctx, "SELECT owner_id FROM servers WHERE name=$1 AND deleted_at IS NULL AND retire_requested_at IS NULL", *name).Scan(&owner); err != nil {
			fmt.Fprintln(stderr, err)
			return 1
		}
+5 −5
Changes for internal/archivetransfer/transfer.go: 5 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	}
	if r.URL.Path == "/archives" && r.Method == http.MethodDelete {
		if len(s.Key) < 32 || !hmac.Equal([]byte(strings.TrimPrefix(r.Header.Get("Authorization"), "Bearer ")), []byte(s.Key)) {
			http.Error(w, "unauthorized", 401)
			http.Error(w, "unauthorized", http.StatusUnauthorized)
			return
		}
		var q struct {
@@ -152,7 +152,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	}
	if r.URL.Path == "/inspect" && r.Method == http.MethodPost {
		if len(s.Key) < 32 || !hmac.Equal([]byte(strings.TrimPrefix(r.Header.Get("Authorization"), "Bearer ")), []byte(s.Key)) {
			http.Error(w, "unauthorized", 401)
			http.Error(w, "unauthorized", http.StatusUnauthorized)
			return
		}
		var q struct {
@@ -165,7 +165,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
		local := &backup.TarLocal{BackupRoot: s.Root}
		sum, err := local.Verify(r.Context(), backup.ArchiveRef(q.Ref), "")
		if err != nil {
			http.Error(w, "archive is absent or corrupt", 422)
			http.Error(w, "archive is absent or corrupt", http.StatusUnprocessableEntity)
			return
		}
		st, err := os.Stat(q.Ref)
@@ -347,7 +347,7 @@ func (s *Server) upload(r *http.Request, t Ticket) error {
func (s *Server) download(w http.ResponseWriter, r *http.Request, t Ticket) {
	root, err := os.OpenRoot(s.Root)
	if err != nil {
		http.Error(w, "archive unavailable", 503)
		http.Error(w, "archive unavailable", http.StatusServiceUnavailable)
		return
	}
	defer root.Close()
@@ -359,7 +359,7 @@ func (s *Server) download(w http.ResponseWriter, r *http.Request, t Ticket) {
	defer f.Close()
	st, err := f.Stat()
	if err != nil || !st.Mode().IsRegular() || st.Size() > t.Limit {
		http.Error(w, "archive exceeds transfer bounds", 413)
		http.Error(w, "archive exceeds transfer bounds", http.StatusRequestEntityTooLarge)
		return
	}
	w.Header().Set("Content-Type", "application/gzip")
+1 −1
Changes for internal/backup/verify_restored.go: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ func VerifyRestored(ctx context.Context, ref, world string) error {
		if err != nil {
			return err
		}
		if h.Typeflag != tar.TypeReg && h.Typeflag != tar.TypeRegA {
		if h.Typeflag != tar.TypeReg {
			continue
		}
		dst, err := root.Open(h.Name)