in pkg/cloud_provider/lustre/cloud.go [53:84]
func NewCloud(ctx context.Context, configPath, version, endpoint string) (*Cloud, error) {
configFile, err := maybeReadConfig(configPath)
if err != nil {
return nil, err
}
tokenSource, err := generateTokenSource(ctx, configFile)
if err != nil {
return nil, err
}
client, err := newOauthClient(ctx, tokenSource)
if err != nil {
return nil, err
}
service, err := NewLustreService(ctx, client, version, endpoint)
if err != nil {
return nil, err
}
project, zone, err := getProjectAndZone(ctx, configFile)
if err != nil {
return nil, fmt.Errorf("failed to initialize project information: %w", err)
}
return &Cloud{
LustreService: service,
Project: project,
Zone: zone,
}, nil
}