Skip to content

Commit 014f8f2

Browse files
authored
feat(info): add support for project (#1448)
1 parent 71f1701 commit 014f8f2

File tree

4 files changed

+38
-0
lines changed

4 files changed

+38
-0
lines changed

internal/namespaces/info/custom.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ func infosRoot() *core.Command {
7979
defaultRegion(ctx, config, profileName),
8080
defaultZone(ctx, config, profileName),
8181
defaultOrganizationID(ctx, config, profileName),
82+
defaultProjectID(ctx, config, profileName),
8283
accessKey(ctx, config, profileName),
8384
secretKey(ctx, config, profileName, req.ShowSecret),
8485
},
@@ -203,6 +204,29 @@ func defaultOrganizationID(ctx context.Context, config *scw.Config, profileName
203204
}
204205
return setting
205206
}
207+
func defaultProjectID(ctx context.Context, config *scw.Config, profileName string) *setting {
208+
setting := &setting{Key: "default_project_id"}
209+
switch {
210+
// Environment variable check
211+
case core.ExtractEnv(ctx, scw.ScwDefaultProjectIDEnv) != "":
212+
setting.Value = core.ExtractEnv(ctx, scw.ScwDefaultProjectIDEnv)
213+
setting.Origin = fmt.Sprintf("env (%s)", scw.ScwDefaultProjectIDEnv)
214+
// There is no config file
215+
case config == nil:
216+
setting.Origin = ""
217+
// Config file with profile name
218+
case config.Profiles[profileName] != nil && config.Profiles[profileName].DefaultProjectID != nil:
219+
setting.Value = *config.Profiles[profileName].DefaultProjectID
220+
setting.Origin = fmt.Sprintf("profile (%s)", profileName)
221+
// Default config
222+
case config.Profile.DefaultProjectID != nil:
223+
setting.Value = *config.Profile.DefaultProjectID
224+
setting.Origin = defaultProfileOrigin
225+
default:
226+
setting.Origin = unknownOrigin
227+
}
228+
return setting
229+
}
206230

207231
func accessKey(ctx context.Context, config *scw.Config, profileName string) *setting {
208232
setting := &setting{Key: "access_key"}

internal/namespaces/info/custom_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ func Test_Info(t *testing.T) {
1717
OverrideEnv: map[string]string{
1818
"SCW_SECRET_KEY": "22222222-2222-2222-2222-222222222222",
1919
"SCW_DEFAULT_ORGANIZATION_ID": "22222222-2222-2222-2222-222222222222",
20+
"SCW_DEFAULT_PROJECT_ID": "22222222-2222-2222-2222-222222222222",
2021
"SCW_ACCESS_KEY": "SCWYYYYYYYYYYYYYYYYY",
2122
"SCW_CONFIG_PATH": "/tmp/.config/scw/config.yaml",
2223
"SCW_DEFAULT_REGION": "fr-par",
@@ -34,6 +35,7 @@ func Test_Info(t *testing.T) {
3435
OverrideEnv: map[string]string{
3536
"SCW_SECRET_KEY": "22222222-2222-2222-2222-222222222222",
3637
"SCW_DEFAULT_ORGANIZATION_ID": "22222222-2222-2222-2222-222222222222",
38+
"SCW_DEFAULT_PROJECT_ID": "22222222-2222-2222-2222-222222222222",
3739
"SCW_ACCESS_KEY": "SCWYYYYYYYYYYYYYYYYY",
3840
"SCW_CONFIG_PATH": "/tmp/.config/scw/config.yaml",
3941
"SCW_DEFAULT_REGION": "fr-par",

internal/namespaces/info/testdata/test-info-show-secret.golden

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ profile default -
1616
default_region fr-par env (SCW_DEFAULT_REGION)
1717
default_zone fr-par-1 env (SCW_DEFAULT_ZONE)
1818
default_organization_id 22222222-2222-2222-2222-222222222222 env (SCW_DEFAULT_ORGANIZATION_ID)
19+
default_project_id 22222222-2222-2222-2222-222222222222 env (SCW_DEFAULT_PROJECT_ID)
1920
access_key SCWYYYYYYYYYYYYYYYYY env (SCW_ACCESS_KEY)
2021
secret_key 22222222-2222-2222-2222-222222222222 env (SCW_SECRET_KEY)
2122
🟩🟩🟩 JSON STDOUT 🟩🟩🟩
@@ -55,6 +56,11 @@ secret_key 22222222-2222-2222-2222-222222222222 env (SCW_SECRET_K
5556
"value": "22222222-2222-2222-2222-222222222222",
5657
"origin": "env (SCW_DEFAULT_ORGANIZATION_ID)"
5758
},
59+
{
60+
"key": "default_project_id",
61+
"value": "22222222-2222-2222-2222-222222222222",
62+
"origin": "env (SCW_DEFAULT_PROJECT_ID)"
63+
},
5864
{
5965
"key": "access_key",
6066
"value": "SCWYYYYYYYYYYYYYYYYY",

internal/namespaces/info/testdata/test-info-simple.golden

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ profile default -
1616
default_region fr-par env (SCW_DEFAULT_REGION)
1717
default_zone fr-par-1 env (SCW_DEFAULT_ZONE)
1818
default_organization_id 22222222-2222-2222-2222-222222222222 env (SCW_DEFAULT_ORGANIZATION_ID)
19+
default_project_id 22222222-2222-2222-2222-222222222222 env (SCW_DEFAULT_PROJECT_ID)
1920
access_key SCWYYYYYYYYYYYYYYYYY env (SCW_ACCESS_KEY)
2021
secret_key 22222222-xxxx-xxxx-xxxx-xxxxxxxxxxxx env (SCW_SECRET_KEY)
2122
🟩🟩🟩 JSON STDOUT 🟩🟩🟩
@@ -55,6 +56,11 @@ secret_key 22222222-xxxx-xxxx-xxxx-xxxxxxxxxxxx env (SCW_SECRET_K
5556
"value": "22222222-2222-2222-2222-222222222222",
5657
"origin": "env (SCW_DEFAULT_ORGANIZATION_ID)"
5758
},
59+
{
60+
"key": "default_project_id",
61+
"value": "22222222-2222-2222-2222-222222222222",
62+
"origin": "env (SCW_DEFAULT_PROJECT_ID)"
63+
},
5864
{
5965
"key": "access_key",
6066
"value": "SCWYYYYYYYYYYYYYYYYY",

0 commit comments

Comments
 (0)