convert error fromating to %w everywhere (#6995)

This commit is contained in:
Chris Lu
2025-07-16 23:39:27 -07:00
committed by GitHub
parent a524b4f485
commit 69553e5ba6
174 changed files with 524 additions and 524 deletions

View File

@@ -215,7 +215,7 @@ func (s *AdminServer) GetS3Buckets() ([]S3Bucket, error) {
})
if err != nil {
return nil, fmt.Errorf("failed to get volume information: %v", err)
return nil, fmt.Errorf("failed to get volume information: %w", err)
}
// Get filer configuration to determine FilerGroup
@@ -232,7 +232,7 @@ func (s *AdminServer) GetS3Buckets() ([]S3Bucket, error) {
})
if err != nil {
return nil, fmt.Errorf("failed to get filer configuration: %v", err)
return nil, fmt.Errorf("failed to get filer configuration: %w", err)
}
// Now list buckets from the filer and match with collection data
@@ -330,7 +330,7 @@ func (s *AdminServer) GetS3Buckets() ([]S3Bucket, error) {
})
if err != nil {
return nil, fmt.Errorf("failed to list Object Store buckets: %v", err)
return nil, fmt.Errorf("failed to list Object Store buckets: %w", err)
}
return buckets, nil
@@ -355,7 +355,7 @@ func (s *AdminServer) GetBucketDetails(bucketName string) (*BucketDetails, error
Name: bucketName,
})
if err != nil {
return fmt.Errorf("bucket not found: %v", err)
return fmt.Errorf("bucket not found: %w", err)
}
details.Bucket.CreatedAt = time.Unix(bucketResp.Entry.Attributes.Crtime, 0)
@@ -488,7 +488,7 @@ func (s *AdminServer) DeleteS3Bucket(bucketName string) error {
IgnoreRecursiveError: false,
})
if err != nil {
return fmt.Errorf("failed to delete bucket: %v", err)
return fmt.Errorf("failed to delete bucket: %w", err)
}
return nil
@@ -687,7 +687,7 @@ func (s *AdminServer) GetClusterFilers() (*ClusterFilersData, error) {
})
if err != nil {
return nil, fmt.Errorf("failed to get filer nodes from master: %v", err)
return nil, fmt.Errorf("failed to get filer nodes from master: %w", err)
}
return &ClusterFilersData{
@@ -729,7 +729,7 @@ func (s *AdminServer) GetClusterBrokers() (*ClusterBrokersData, error) {
})
if err != nil {
return nil, fmt.Errorf("failed to get broker nodes from master: %v", err)
return nil, fmt.Errorf("failed to get broker nodes from master: %w", err)
}
return &ClusterBrokersData{
@@ -1170,7 +1170,7 @@ func (as *AdminServer) getMaintenanceConfig() (*maintenance.MaintenanceConfigDat
func (as *AdminServer) updateMaintenanceConfig(config *maintenance.MaintenanceConfig) error {
// Save configuration to persistent storage
if err := as.configPersistence.SaveMaintenanceConfig(config); err != nil {
return fmt.Errorf("failed to save maintenance configuration: %v", err)
return fmt.Errorf("failed to save maintenance configuration: %w", err)
}
// Update maintenance manager if available
@@ -1357,7 +1357,7 @@ func (s *AdminServer) CreateTopicWithRetention(namespace, name string, partition
// Find broker leader to create the topic
brokerLeader, err := s.findBrokerLeader()
if err != nil {
return fmt.Errorf("failed to find broker leader: %v", err)
return fmt.Errorf("failed to find broker leader: %w", err)
}
// Create retention configuration
@@ -1391,7 +1391,7 @@ func (s *AdminServer) CreateTopicWithRetention(namespace, name string, partition
})
if err != nil {
return fmt.Errorf("failed to create topic: %v", err)
return fmt.Errorf("failed to create topic: %w", err)
}
glog.V(0).Infof("Created topic %s.%s with %d partitions (retention: enabled=%v, seconds=%d)",
@@ -1421,7 +1421,7 @@ func (s *AdminServer) UpdateTopicRetention(namespace, name string, enabled bool,
})
if err != nil {
return fmt.Errorf("failed to get broker nodes from master: %v", err)
return fmt.Errorf("failed to get broker nodes from master: %w", err)
}
if brokerAddress == "" {
@@ -1431,7 +1431,7 @@ func (s *AdminServer) UpdateTopicRetention(namespace, name string, enabled bool,
// Create gRPC connection
conn, err := grpc.Dial(brokerAddress, s.grpcDialOption)
if err != nil {
return fmt.Errorf("failed to connect to broker: %v", err)
return fmt.Errorf("failed to connect to broker: %w", err)
}
defer conn.Close()
@@ -1448,7 +1448,7 @@ func (s *AdminServer) UpdateTopicRetention(namespace, name string, enabled bool,
},
})
if err != nil {
return fmt.Errorf("failed to get current topic configuration: %v", err)
return fmt.Errorf("failed to get current topic configuration: %w", err)
}
// Create the topic configuration request, preserving all existing settings
@@ -1480,7 +1480,7 @@ func (s *AdminServer) UpdateTopicRetention(namespace, name string, enabled bool,
// Send the configuration request with preserved settings
_, err = client.ConfigureTopic(ctx, configRequest)
if err != nil {
return fmt.Errorf("failed to update topic retention: %v", err)
return fmt.Errorf("failed to update topic retention: %w", err)
}
glog.V(0).Infof("Updated topic %s.%s retention (enabled: %v, seconds: %d) while preserving %d partitions",

View File

@@ -251,7 +251,7 @@ func (s *AdminServer) SetBucketQuota(bucketName string, quotaBytes int64, quotaE
Name: bucketName,
})
if err != nil {
return fmt.Errorf("bucket not found: %v", err)
return fmt.Errorf("bucket not found: %w", err)
}
bucketEntry := lookupResp.Entry
@@ -275,7 +275,7 @@ func (s *AdminServer) SetBucketQuota(bucketName string, quotaBytes int64, quotaE
Entry: bucketEntry,
})
if err != nil {
return fmt.Errorf("failed to update bucket quota: %v", err)
return fmt.Errorf("failed to update bucket quota: %w", err)
}
return nil
@@ -308,7 +308,7 @@ func (s *AdminServer) CreateS3BucketWithObjectLock(bucketName string, quotaBytes
})
// Ignore error if directory already exists
if err != nil && !strings.Contains(err.Error(), "already exists") && !strings.Contains(err.Error(), "existing entry") {
return fmt.Errorf("failed to create /buckets directory: %v", err)
return fmt.Errorf("failed to create /buckets directory: %w", err)
}
// Check if bucket already exists
@@ -368,7 +368,7 @@ func (s *AdminServer) CreateS3BucketWithObjectLock(bucketName string, quotaBytes
},
})
if err != nil {
return fmt.Errorf("failed to create bucket directory: %v", err)
return fmt.Errorf("failed to create bucket directory: %w", err)
}
return nil

View File

@@ -25,7 +25,7 @@ func (s *AdminServer) GetClusterTopology() (*ClusterTopology, error) {
if err != nil {
currentMaster := s.masterClient.GetMaster(context.Background())
glog.Errorf("Failed to connect to master server %s: %v", currentMaster, err)
return nil, fmt.Errorf("gRPC topology request failed: %v", err)
return nil, fmt.Errorf("gRPC topology request failed: %w", err)
}
// Cache the result

View File

@@ -40,18 +40,18 @@ func (cp *ConfigPersistence) SaveMaintenanceConfig(config *MaintenanceConfig) er
// Create directory if it doesn't exist
if err := os.MkdirAll(cp.dataDir, ConfigDirPermissions); err != nil {
return fmt.Errorf("failed to create config directory: %v", err)
return fmt.Errorf("failed to create config directory: %w", err)
}
// Marshal configuration to JSON
configData, err := json.MarshalIndent(config, "", " ")
if err != nil {
return fmt.Errorf("failed to marshal maintenance config: %v", err)
return fmt.Errorf("failed to marshal maintenance config: %w", err)
}
// Write to file
if err := os.WriteFile(configPath, configData, ConfigFilePermissions); err != nil {
return fmt.Errorf("failed to write maintenance config file: %v", err)
return fmt.Errorf("failed to write maintenance config file: %w", err)
}
glog.V(1).Infof("Saved maintenance configuration to %s", configPath)
@@ -76,13 +76,13 @@ func (cp *ConfigPersistence) LoadMaintenanceConfig() (*MaintenanceConfig, error)
// Read file
configData, err := os.ReadFile(configPath)
if err != nil {
return nil, fmt.Errorf("failed to read maintenance config file: %v", err)
return nil, fmt.Errorf("failed to read maintenance config file: %w", err)
}
// Unmarshal JSON
var config MaintenanceConfig
if err := json.Unmarshal(configData, &config); err != nil {
return nil, fmt.Errorf("failed to unmarshal maintenance config: %v", err)
return nil, fmt.Errorf("failed to unmarshal maintenance config: %w", err)
}
glog.V(1).Infof("Loaded maintenance configuration from %s", configPath)
@@ -99,18 +99,18 @@ func (cp *ConfigPersistence) SaveAdminConfig(config map[string]interface{}) erro
// Create directory if it doesn't exist
if err := os.MkdirAll(cp.dataDir, ConfigDirPermissions); err != nil {
return fmt.Errorf("failed to create config directory: %v", err)
return fmt.Errorf("failed to create config directory: %w", err)
}
// Marshal configuration to JSON
configData, err := json.MarshalIndent(config, "", " ")
if err != nil {
return fmt.Errorf("failed to marshal admin config: %v", err)
return fmt.Errorf("failed to marshal admin config: %w", err)
}
// Write to file
if err := os.WriteFile(configPath, configData, ConfigFilePermissions); err != nil {
return fmt.Errorf("failed to write admin config file: %v", err)
return fmt.Errorf("failed to write admin config file: %w", err)
}
glog.V(1).Infof("Saved admin configuration to %s", configPath)
@@ -135,13 +135,13 @@ func (cp *ConfigPersistence) LoadAdminConfig() (map[string]interface{}, error) {
// Read file
configData, err := os.ReadFile(configPath)
if err != nil {
return nil, fmt.Errorf("failed to read admin config file: %v", err)
return nil, fmt.Errorf("failed to read admin config file: %w", err)
}
// Unmarshal JSON
var config map[string]interface{}
if err := json.Unmarshal(configData, &config); err != nil {
return nil, fmt.Errorf("failed to unmarshal admin config: %v", err)
return nil, fmt.Errorf("failed to unmarshal admin config: %w", err)
}
glog.V(1).Infof("Loaded admin configuration from %s", configPath)
@@ -164,7 +164,7 @@ func (cp *ConfigPersistence) ListConfigFiles() ([]string, error) {
files, err := os.ReadDir(cp.dataDir)
if err != nil {
return nil, fmt.Errorf("failed to read config directory: %v", err)
return nil, fmt.Errorf("failed to read config directory: %w", err)
}
var configFiles []string
@@ -196,11 +196,11 @@ func (cp *ConfigPersistence) BackupConfig(filename string) error {
// Copy file
configData, err := os.ReadFile(configPath)
if err != nil {
return fmt.Errorf("failed to read config file: %v", err)
return fmt.Errorf("failed to read config file: %w", err)
}
if err := os.WriteFile(backupPath, configData, ConfigFilePermissions); err != nil {
return fmt.Errorf("failed to create backup: %v", err)
return fmt.Errorf("failed to create backup: %w", err)
}
glog.V(1).Infof("Created backup of %s as %s", filename, backupName)
@@ -221,13 +221,13 @@ func (cp *ConfigPersistence) RestoreConfig(filename, backupName string) error {
// Read backup file
backupData, err := os.ReadFile(backupPath)
if err != nil {
return fmt.Errorf("failed to read backup file: %v", err)
return fmt.Errorf("failed to read backup file: %w", err)
}
// Write to config file
configPath := filepath.Join(cp.dataDir, filename)
if err := os.WriteFile(configPath, backupData, ConfigFilePermissions); err != nil {
return fmt.Errorf("failed to restore config: %v", err)
return fmt.Errorf("failed to restore config: %w", err)
}
glog.V(1).Infof("Restored %s from backup %s", filename, backupName)

View File

@@ -154,7 +154,7 @@ func (s *AdminServer) GetTopicDetails(namespace, topicName string) (*TopicDetail
// Find broker leader
brokerLeader, err := s.findBrokerLeader()
if err != nil {
return nil, fmt.Errorf("failed to find broker leader: %v", err)
return nil, fmt.Errorf("failed to find broker leader: %w", err)
}
var topicDetails *TopicDetailsData
@@ -172,7 +172,7 @@ func (s *AdminServer) GetTopicDetails(namespace, topicName string) (*TopicDetail
},
})
if err != nil {
return fmt.Errorf("failed to get topic configuration: %v", err)
return fmt.Errorf("failed to get topic configuration: %w", err)
}
// Initialize topic details
@@ -297,7 +297,7 @@ func (s *AdminServer) GetConsumerGroupOffsets(namespace, topicName string) ([]Co
if err == io.EOF {
break
}
return fmt.Errorf("failed to receive version entries: %v", err)
return fmt.Errorf("failed to receive version entries: %w", err)
}
// Only process directories that are versions (start with "v")
@@ -398,7 +398,7 @@ func (s *AdminServer) GetConsumerGroupOffsets(namespace, topicName string) ([]Co
})
if err != nil {
return nil, fmt.Errorf("failed to get consumer group offsets: %v", err)
return nil, fmt.Errorf("failed to get consumer group offsets: %w", err)
}
return offsets, nil
@@ -544,7 +544,7 @@ func (s *AdminServer) findBrokerLeader() (string, error) {
})
if err != nil {
return "", fmt.Errorf("failed to list brokers: %v", err)
return "", fmt.Errorf("failed to list brokers: %w", err)
}
if len(brokers) == 0 {

View File

@@ -34,7 +34,7 @@ func (p *TopicRetentionPurger) PurgeExpiredTopicData() error {
// Get all topics with retention enabled
topics, err := p.getTopicsWithRetention()
if err != nil {
return fmt.Errorf("failed to get topics with retention: %v", err)
return fmt.Errorf("failed to get topics with retention: %w", err)
}
glog.V(1).Infof("Found %d topics with retention enabled", len(topics))
@@ -67,7 +67,7 @@ func (p *TopicRetentionPurger) getTopicsWithRetention() ([]TopicRetentionConfig,
// Find broker leader to get topics
brokerLeader, err := p.adminServer.findBrokerLeader()
if err != nil {
return nil, fmt.Errorf("failed to find broker leader: %v", err)
return nil, fmt.Errorf("failed to find broker leader: %w", err)
}
// Get all topics from the broker
@@ -147,7 +147,7 @@ func (p *TopicRetentionPurger) purgeTopicData(topicRetention TopicRetentionConfi
if err == io.EOF {
break
}
return fmt.Errorf("failed to receive version entries: %v", err)
return fmt.Errorf("failed to receive version entries: %w", err)
}
// Only process directories that are versions (start with "v")
@@ -257,7 +257,7 @@ func (p *TopicRetentionPurger) deleteDirectoryRecursively(client filer_pb.Seawee
if err == io.EOF {
break
}
return fmt.Errorf("failed to receive entries: %v", err)
return fmt.Errorf("failed to receive entries: %w", err)
}
entryPath := filepath.Join(dirPath, resp.Entry.Name)

View File

@@ -53,7 +53,7 @@ func (s *AdminServer) CreateObjectStoreUser(req CreateUserRequest) (*ObjectStore
if err == credential.ErrUserAlreadyExists {
return nil, fmt.Errorf("user %s already exists", req.Username)
}
return nil, fmt.Errorf("failed to create user: %v", err)
return nil, fmt.Errorf("failed to create user: %w", err)
}
// Return created user
@@ -82,7 +82,7 @@ func (s *AdminServer) UpdateObjectStoreUser(username string, req UpdateUserReque
if err == credential.ErrUserNotFound {
return nil, fmt.Errorf("user %s not found", username)
}
return nil, fmt.Errorf("failed to get user: %v", err)
return nil, fmt.Errorf("failed to get user: %w", err)
}
// Create updated identity
@@ -112,7 +112,7 @@ func (s *AdminServer) UpdateObjectStoreUser(username string, req UpdateUserReque
// Update user using credential manager
err = s.credentialManager.UpdateUser(ctx, username, updatedIdentity)
if err != nil {
return nil, fmt.Errorf("failed to update user: %v", err)
return nil, fmt.Errorf("failed to update user: %w", err)
}
// Return updated user
@@ -145,7 +145,7 @@ func (s *AdminServer) DeleteObjectStoreUser(username string) error {
if err == credential.ErrUserNotFound {
return fmt.Errorf("user %s not found", username)
}
return fmt.Errorf("failed to delete user: %v", err)
return fmt.Errorf("failed to delete user: %w", err)
}
return nil
@@ -165,7 +165,7 @@ func (s *AdminServer) GetObjectStoreUserDetails(username string) (*UserDetails,
if err == credential.ErrUserNotFound {
return nil, fmt.Errorf("user %s not found", username)
}
return nil, fmt.Errorf("failed to get user: %v", err)
return nil, fmt.Errorf("failed to get user: %w", err)
}
details := &UserDetails{
@@ -204,7 +204,7 @@ func (s *AdminServer) CreateAccessKey(username string) (*AccessKeyInfo, error) {
if err == credential.ErrUserNotFound {
return nil, fmt.Errorf("user %s not found", username)
}
return nil, fmt.Errorf("failed to get user: %v", err)
return nil, fmt.Errorf("failed to get user: %w", err)
}
// Generate new access key
@@ -219,7 +219,7 @@ func (s *AdminServer) CreateAccessKey(username string) (*AccessKeyInfo, error) {
// Create access key using credential manager
err = s.credentialManager.CreateAccessKey(ctx, username, credential)
if err != nil {
return nil, fmt.Errorf("failed to create access key: %v", err)
return nil, fmt.Errorf("failed to create access key: %w", err)
}
return &AccessKeyInfo{
@@ -246,7 +246,7 @@ func (s *AdminServer) DeleteAccessKey(username, accessKeyId string) error {
if err == credential.ErrAccessKeyNotFound {
return fmt.Errorf("access key %s not found for user %s", accessKeyId, username)
}
return fmt.Errorf("failed to delete access key: %v", err)
return fmt.Errorf("failed to delete access key: %w", err)
}
return nil
@@ -266,7 +266,7 @@ func (s *AdminServer) GetUserPolicies(username string) ([]string, error) {
if err == credential.ErrUserNotFound {
return nil, fmt.Errorf("user %s not found", username)
}
return nil, fmt.Errorf("failed to get user: %v", err)
return nil, fmt.Errorf("failed to get user: %w", err)
}
return identity.Actions, nil
@@ -286,7 +286,7 @@ func (s *AdminServer) UpdateUserPolicies(username string, actions []string) erro
if err == credential.ErrUserNotFound {
return fmt.Errorf("user %s not found", username)
}
return fmt.Errorf("failed to get user: %v", err)
return fmt.Errorf("failed to get user: %w", err)
}
// Create updated identity with new actions
@@ -300,7 +300,7 @@ func (s *AdminServer) UpdateUserPolicies(username string, actions []string) erro
// Update user using credential manager
err = s.credentialManager.UpdateUser(ctx, username, updatedIdentity)
if err != nil {
return fmt.Errorf("failed to update user policies: %v", err)
return fmt.Errorf("failed to update user policies: %w", err)
}
return nil

View File

@@ -133,7 +133,7 @@ func (s *WorkerGrpcServer) WorkerStream(stream worker_pb.WorkerService_WorkerStr
// Wait for initial registration message
msg, err := stream.Recv()
if err != nil {
return fmt.Errorf("failed to receive registration message: %v", err)
return fmt.Errorf("failed to receive registration message: %w", err)
}
registration := msg.GetRegistration()

View File

@@ -307,19 +307,19 @@ func (h *FileBrowserHandlers) uploadFileToFiler(filePath string, fileHeader *mul
// Validate and sanitize the filer address
if err := h.validateFilerAddress(filerAddress); err != nil {
return fmt.Errorf("invalid filer address: %v", err)
return fmt.Errorf("invalid filer address: %w", err)
}
// Validate and sanitize the file path
cleanFilePath, err := h.validateAndCleanFilePath(filePath)
if err != nil {
return fmt.Errorf("invalid file path: %v", err)
return fmt.Errorf("invalid file path: %w", err)
}
// Open the file
file, err := fileHeader.Open()
if err != nil {
return fmt.Errorf("failed to open file: %v", err)
return fmt.Errorf("failed to open file: %w", err)
}
defer file.Close()
@@ -330,19 +330,19 @@ func (h *FileBrowserHandlers) uploadFileToFiler(filePath string, fileHeader *mul
// Create form file field
part, err := writer.CreateFormFile("file", fileHeader.Filename)
if err != nil {
return fmt.Errorf("failed to create form file: %v", err)
return fmt.Errorf("failed to create form file: %w", err)
}
// Copy file content to form
_, err = io.Copy(part, file)
if err != nil {
return fmt.Errorf("failed to copy file content: %v", err)
return fmt.Errorf("failed to copy file content: %w", err)
}
// Close the writer to finalize the form
err = writer.Close()
if err != nil {
return fmt.Errorf("failed to close multipart writer: %v", err)
return fmt.Errorf("failed to close multipart writer: %w", err)
}
// Create the upload URL with validated components
@@ -351,7 +351,7 @@ func (h *FileBrowserHandlers) uploadFileToFiler(filePath string, fileHeader *mul
// Create HTTP request
req, err := http.NewRequest("POST", uploadURL, &body)
if err != nil {
return fmt.Errorf("failed to create request: %v", err)
return fmt.Errorf("failed to create request: %w", err)
}
// Set content type with boundary
@@ -361,7 +361,7 @@ func (h *FileBrowserHandlers) uploadFileToFiler(filePath string, fileHeader *mul
client := &http.Client{Timeout: 60 * time.Second} // Increased timeout for larger files
resp, err := client.Do(req)
if err != nil {
return fmt.Errorf("failed to upload file: %v", err)
return fmt.Errorf("failed to upload file: %w", err)
}
defer resp.Body.Close()
@@ -383,7 +383,7 @@ func (h *FileBrowserHandlers) validateFilerAddress(address string) error {
// Parse the address to validate it's a proper host:port format
host, port, err := net.SplitHostPort(address)
if err != nil {
return fmt.Errorf("invalid address format: %v", err)
return fmt.Errorf("invalid address format: %w", err)
}
// Validate host is not empty
@@ -398,7 +398,7 @@ func (h *FileBrowserHandlers) validateFilerAddress(address string) error {
portNum, err := strconv.Atoi(port)
if err != nil {
return fmt.Errorf("invalid port number: %v", err)
return fmt.Errorf("invalid port number: %w", err)
}
if portNum < 1 || portNum > 65535 {

View File

@@ -53,7 +53,7 @@ func (mm *MaintenanceManager) Start() error {
// Validate configuration durations to prevent ticker panics
if err := mm.validateConfig(); err != nil {
return fmt.Errorf("invalid maintenance configuration: %v", err)
return fmt.Errorf("invalid maintenance configuration: %w", err)
}
mm.running = true

View File

@@ -35,7 +35,7 @@ func (ms *MaintenanceScanner) ScanForMaintenanceTasks() ([]*TaskDetectionResult,
// Get volume health metrics
volumeMetrics, err := ms.getVolumeHealthMetrics()
if err != nil {
return nil, fmt.Errorf("failed to get volume health metrics: %v", err)
return nil, fmt.Errorf("failed to get volume health metrics: %w", err)
}
// Use task system for all task types

View File

@@ -159,7 +159,7 @@ func (mws *MaintenanceWorkerService) executeGenericTask(task *MaintenanceTask) e
// Create task instance using the registry
taskInstance, err := mws.taskRegistry.CreateTask(taskType, taskParams)
if err != nil {
return fmt.Errorf("failed to create task instance: %v", err)
return fmt.Errorf("failed to create task instance: %w", err)
}
// Update progress to show task has started
@@ -168,7 +168,7 @@ func (mws *MaintenanceWorkerService) executeGenericTask(task *MaintenanceTask) e
// Execute the task
err = taskInstance.Execute(taskParams)
if err != nil {
return fmt.Errorf("task execution failed: %v", err)
return fmt.Errorf("task execution failed: %w", err)
}
// Update progress to show completion
@@ -405,7 +405,7 @@ func (mwc *MaintenanceWorkerCommand) Run() error {
// Start the worker service
err := mwc.workerService.Start()
if err != nil {
return fmt.Errorf("failed to start maintenance worker: %v", err)
return fmt.Errorf("failed to start maintenance worker: %w", err)
}
// Wait for interrupt signal