Browse Source

Merge remote-tracking branch 'upstream/develop' into avr/wip-aliyun-integ

Alan Rodrigues 3 years ago
parent
commit
be06e81045

+ 1 - 1
go.mod

@@ -47,6 +47,7 @@ require (
 	golang.org/x/exp v0.0.0-20220609121020-a51bd0440498
 	golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c
 	golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4
+	golang.org/x/text v0.4.0
 	google.golang.org/api v0.44.0
 	gopkg.in/yaml.v2 v2.4.0
 	k8s.io/api v0.20.4
@@ -127,7 +128,6 @@ require (
 	golang.org/x/net v0.1.0 // indirect
 	golang.org/x/sys v0.1.0 // indirect
 	golang.org/x/term v0.1.0 // indirect
-	golang.org/x/text v0.4.0 // indirect
 	golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect
 	golang.org/x/tools v0.1.12 // indirect
 	google.golang.org/appengine v1.6.7 // indirect

+ 2 - 2
pkg/cloud/awsprovider.go

@@ -7,8 +7,8 @@ import (
 	"encoding/csv"
 	"fmt"
 	"io"
-	"io/ioutil"
 	"net/http"
+	"os"
 	"regexp"
 	"strconv"
 	"strings"
@@ -1418,7 +1418,7 @@ func (aws *AWS) loadAWSAuthSecret(force bool) (*AWSAccessKey, error) {
 		return nil, fmt.Errorf("Failed to locate service account file: %s", authSecretPath)
 	}
 
-	result, err := ioutil.ReadFile(authSecretPath)
+	result, err := os.ReadFile(authSecretPath)
 	if err != nil {
 		return nil, err
 	}

+ 4 - 4
pkg/cloud/azureprovider.go

@@ -4,9 +4,9 @@ import (
 	"context"
 	"fmt"
 	"io"
-	"io/ioutil"
 	"net/http"
 	"net/url"
+	"os"
 	"regexp"
 	"strconv"
 	"strings"
@@ -275,7 +275,7 @@ func getRetailPrice(region string, skuName string, currencyCode string, spot boo
 
 	pricingPayload := AzureRetailPricing{}
 
-	body, err := ioutil.ReadAll(resp.Body)
+	body, err := io.ReadAll(resp.Body)
 	if err != nil {
 		return "", fmt.Errorf("Error getting response: %v", err)
 	}
@@ -617,7 +617,7 @@ func (az *Azure) loadAzureAuthSecret(force bool) (*AzureServiceKey, error) {
 		return nil, fmt.Errorf("Failed to locate service account file: %s", authSecretPath)
 	}
 
-	result, err := ioutil.ReadFile(authSecretPath)
+	result, err := os.ReadFile(authSecretPath)
 	if err != nil {
 		return nil, err
 	}
@@ -646,7 +646,7 @@ func (az *Azure) loadAzureStorageConfig(force bool) (*AzureStorageConfig, error)
 		return nil, fmt.Errorf("Failed to locate azure storage config file: %s", storageConfigSecretPath)
 	}
 
-	result, err := ioutil.ReadFile(storageConfigSecretPath)
+	result, err := os.ReadFile(storageConfigSecretPath)
 	if err != nil {
 		return nil, err
 	}

+ 4 - 4
pkg/cloud/gcpprovider.go

@@ -4,9 +4,9 @@ import (
 	"context"
 	"fmt"
 	"io"
-	"io/ioutil"
 	"math"
 	"net/http"
+	"os"
 	"regexp"
 	"strconv"
 	"strings"
@@ -209,13 +209,13 @@ func (*GCP) loadGCPAuthSecret() {
 		return
 	}
 
-	result, err := ioutil.ReadFile(authSecretPath)
+	result, err := os.ReadFile(authSecretPath)
 	if err != nil {
 		log.Warnf("Failed to load auth secret, or was not mounted: %s", err.Error())
 		return
 	}
 
-	err = ioutil.WriteFile(keyPath, result, 0644)
+	err = os.WriteFile(keyPath, result, 0644)
 	if err != nil {
 		log.Warnf("Failed to copy auth secret to %s: %s", keyPath, err.Error())
 	}
@@ -246,7 +246,7 @@ func (gcp *GCP) UpdateConfig(r io.Reader, updateType string) (*CustomPricing, er
 				path := env.GetConfigPathWithDefault("/models/")
 
 				keyPath := path + "key.json"
-				err = ioutil.WriteFile(keyPath, j, 0644)
+				err = os.WriteFile(keyPath, j, 0644)
 				if err != nil {
 					return err
 				}

+ 2 - 2
pkg/config/configmanager.go

@@ -1,7 +1,7 @@
 package config
 
 import (
-	"io/ioutil"
+	"os"
 	"sync"
 
 	"github.com/opencost/opencost/pkg/log"
@@ -59,7 +59,7 @@ func NewConfigFileManager(opts *ConfigFileManagerOpts) *ConfigFileManager {
 
 	var configStore storage.Storage
 	if opts.IsBucketStorageEnabled() {
-		bucketConfig, err := ioutil.ReadFile(opts.BucketStoreConfig)
+		bucketConfig, err := os.ReadFile(opts.BucketStoreConfig)
 		if err != nil {
 			log.Warnf("Failed to initialize config bucket storage: %s", err)
 		} else {

+ 4 - 3
pkg/costmodel/router.go

@@ -4,8 +4,9 @@ import (
 	"context"
 	"encoding/base64"
 	"fmt"
-	"io/ioutil"
+	"io"
 	"net/http"
+	"os"
 	"path"
 	"reflect"
 	"regexp"
@@ -1251,7 +1252,7 @@ func logsFor(c kubernetes.Interface, namespace string, pod string, container str
 		return "", err
 	}
 
-	podLogs, err := ioutil.ReadAll(reader)
+	podLogs, err := io.ReadAll(reader)
 	if err != nil {
 		return "", err
 	}
@@ -1354,7 +1355,7 @@ func (a *Accesses) AddServiceKey(w http.ResponseWriter, r *http.Request, ps http
 
 	key := r.PostForm.Get("key")
 	k := []byte(key)
-	err := ioutil.WriteFile(path.Join(env.GetConfigPathWithDefault("/var/configs/"), "key.json"), k, 0644)
+	err := os.WriteFile(path.Join(env.GetConfigPathWithDefault("/var/configs/"), "key.json"), k, 0644)
 	if err != nil {
 		fmt.Fprintf(w, "Error writing service key: "+err.Error())
 	}

+ 2 - 3
pkg/metrics/metricsconfig.go

@@ -3,7 +3,6 @@ package metrics
 import (
 	"encoding/json"
 	"fmt"
-	"io/ioutil"
 	"os"
 	"path"
 	"sync"
@@ -37,7 +36,7 @@ func GetMetricsConfig() (*MetricsConfig, error) {
 	metricsConfigLock.Lock()
 	defer metricsConfigLock.Unlock()
 	mc := &MetricsConfig{}
-	body, err := ioutil.ReadFile(metricsFilePath)
+	body, err := os.ReadFile(metricsFilePath)
 	if os.IsNotExist(err) {
 
 		return mc, nil
@@ -63,7 +62,7 @@ func UpdateMetricsConfig(mc *MetricsConfig) (*MetricsConfig, error) {
 		return nil, fmt.Errorf("error encoding metrics config struct: %s", err)
 	}
 
-	err = ioutil.WriteFile(metricsFilePath, mcb, 0644)
+	err = os.WriteFile(metricsFilePath, mcb, 0644)
 	if err != nil {
 		return nil, fmt.Errorf("error writing to metrics config file: %s", err)
 	}

+ 3 - 3
pkg/services/clusters/clustermanager.go

@@ -3,7 +3,7 @@ package clusters
 import (
 	"encoding/base64"
 	"fmt"
-	"io/ioutil"
+	"os"
 	"strings"
 
 	"github.com/google/uuid"
@@ -97,7 +97,7 @@ func NewConfiguredClusterManager(storage ClusterStorage, config string) *Cluster
 		return clusterManager
 	}
 
-	data, err := ioutil.ReadFile(config)
+	data, err := os.ReadFile(config)
 	if err != nil {
 		return clusterManager
 	}
@@ -223,7 +223,7 @@ func fromSecret(secretName string) (string, error) {
 		return "", fmt.Errorf("Failed to locate secret: %s", file)
 	}
 
-	data, err := ioutil.ReadFile(file)
+	data, err := os.ReadFile(file)
 	if err != nil {
 		return "", fmt.Errorf("Failed to load secret: %s", file)
 	}

+ 2 - 2
pkg/services/clusters/clustersendpoints.go

@@ -2,7 +2,7 @@ package clusters
 
 import (
 	"errors"
-	"io/ioutil"
+	"io"
 	"net/http"
 
 	"github.com/julienschmidt/httprouter"
@@ -50,7 +50,7 @@ func (cme *ClusterManagerHTTPService) GetAllClusters(w http.ResponseWriter, r *h
 func (cme *ClusterManagerHTTPService) PutCluster(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
 	w.Header().Set("Content-Type", "application/json")
 
-	data, err := ioutil.ReadAll(r.Body)
+	data, err := io.ReadAll(r.Body)
 	if err != nil {
 		w.Write(wrapData(nil, err))
 		return

+ 1 - 2
pkg/storage/azurestorage.go

@@ -9,7 +9,6 @@ import (
 	"context"
 	"fmt"
 	"io"
-	"io/ioutil"
 	"net"
 	"net/http"
 	"net/url"
@@ -563,7 +562,7 @@ func (b *AzureStorage) getBlobReader(ctx context.Context, name string, offset, l
 		return nil, errors.Wrapf(err, "cannot download blob, address: %s", blobURL.BlobURL)
 	}
 
-	return ioutil.NopCloser(bytes.NewReader(destBuffer)), nil
+	return io.NopCloser(bytes.NewReader(destBuffer)), nil
 }
 
 func getAzureStorageCredentials(conf AzureConfig) (blob.Credential, error) {

+ 20 - 5
pkg/storage/filestorage.go

@@ -2,7 +2,6 @@ package storage
 
 import (
 	gofs "io/fs"
-	"io/ioutil"
 	"os"
 	gopath "path"
 	"path/filepath"
@@ -52,10 +51,18 @@ func (fs *FileStorage) List(path string) ([]*StorageInfo, error) {
 	p := gopath.Join(fs.baseDir, path)
 
 	// Read files in the backup path
-	files, err := ioutil.ReadDir(p)
+	entries, err := os.ReadDir(p)
 	if err != nil {
 		return nil, err
 	}
+	files := make([]gofs.FileInfo, 0, len(entries))
+	for _, entry := range entries {
+		info, err := entry.Info()
+		if err != nil {
+			return nil, err
+		}
+		files = append(files, info)
+	}
 
 	return FilesToStorageInfo(files), nil
 }
@@ -64,10 +71,18 @@ func (fs *FileStorage) ListDirectories(path string) ([]*StorageInfo, error) {
 	p := gopath.Join(fs.baseDir, path)
 
 	// Read files in the backup path
-	files, err := ioutil.ReadDir(p)
+	entries, err := os.ReadDir(p)
 	if err != nil {
 		return nil, err
 	}
+	files := make([]gofs.FileInfo, 0, len(entries))
+	for _, entry := range entries {
+		info, err := entry.Info()
+		if err != nil {
+			return nil, err
+		}
+		files = append(files, info)
+	}
 
 	return DirFilesToStorageInfo(files, path), nil
 }
@@ -77,7 +92,7 @@ func (fs *FileStorage) ListDirectories(path string) ([]*StorageInfo, error) {
 func (fs *FileStorage) Read(path string) ([]byte, error) {
 	f := gopath.Join(fs.baseDir, path)
 
-	b, err := ioutil.ReadFile(f)
+	b, err := os.ReadFile(f)
 	if err != nil {
 		if os.IsNotExist(err) {
 			return nil, DoesNotExistError
@@ -95,7 +110,7 @@ func (fs *FileStorage) Write(path string, data []byte) error {
 	if err != nil {
 		return errors.Wrap(err, "Failed to prepare path")
 	}
-	err = ioutil.WriteFile(f, data, os.ModePerm)
+	err = os.WriteFile(f, data, os.ModePerm)
 	if err != nil {
 		return errors.Wrap(err, "Failed to write file")
 	}

+ 4 - 3
pkg/storage/s3storage.go

@@ -7,9 +7,10 @@ package storage
 import (
 	"bytes"
 	"context"
-	"io/ioutil"
+	"io"
 	"net"
 	"net/http"
+	"os"
 	"strings"
 	"time"
 
@@ -264,7 +265,7 @@ func NewS3StorageWith(config S3Config) (*S3Storage, error) {
 			}
 
 		case SSEC:
-			key, err := ioutil.ReadFile(config.SSEConfig.EncryptionKey)
+			key, err := os.ReadFile(config.SSEConfig.EncryptionKey)
 			if err != nil {
 				return nil, err
 			}
@@ -582,7 +583,7 @@ func (s3 *S3Storage) getRange(ctx context.Context, name string, off, length int6
 		return nil, errors.Wrap(err, "Read from S3 failed")
 	}
 
-	return ioutil.ReadAll(r)
+	return io.ReadAll(r)
 }
 
 // awsAuth retrieves credentials from the aws-sdk-go.

+ 2 - 2
pkg/storage/tlsconfig.go

@@ -4,7 +4,7 @@ import (
 	"crypto/tls"
 	"crypto/x509"
 	"fmt"
-	"io/ioutil"
+	"os"
 )
 
 // NewTLSConfig creates a new tls.Config from the given TLSConfig.
@@ -43,7 +43,7 @@ func NewTLSConfig(cfg *TLSConfig) (*tls.Config, error) {
 
 // readCAFile reads the CA cert file from disk.
 func readCAFile(f string) ([]byte, error) {
-	data, err := ioutil.ReadFile(f)
+	data, err := os.ReadFile(f)
 	if err != nil {
 		return nil, fmt.Errorf("unable to load specified CA cert %s: %s", f, err)
 	}