common/apiserver/regionidfile.go (41 lines of code) (raw):

package apiserver import ( "io" "os" "path/filepath" "strings" "github.com/aliyun/aliyun_assist_client/thirdparty/sirupsen/logrus" "github.com/aliyun/aliyun_assist_client/common/pathutil" "github.com/aliyun/aliyun_assist_client/common/requester" ) type RegionIdFileProvider struct {} func (*RegionIdFileProvider) Name() string { return "RegionIdFileProvider" } func (p *RegionIdFileProvider) RegionId(logger logrus.FieldLogger) (string, error) { regionId := p.getRegionIdInFile() if regionId == "" { return "", requester.ErrNotProvided } return regionId, nil } func (*RegionIdFileProvider) getRegionIdInFile() string { crossVersionDir, _ := pathutil.GetCrossVersionInboundDir() path := filepath.Join(crossVersionDir, "region-id") if regionIdFile, err := os.Open(path); err == nil { if raw, err2 := io.ReadAll(regionIdFile); err2 == nil { return strings.TrimSpace(strings.Trim(string(raw), "\r\t\n")) } } return "" } func (*RegionIdFileProvider) SaveRegionId(logger logrus.FieldLogger, regionId string) { crossVersionDir, _ := pathutil.GetCrossVersionInboundDir() path := filepath.Join(crossVersionDir, "region-id") err := os.WriteFile(path, []byte(regionId), os.FileMode(0o644)) if err != nil { logger.WithError(err).Warning("Failed to save detected region ID into cache file") } else { logger.Info("Saved detected region ID into cache file") } }