fix overrides

This commit is contained in:
Andrew Nester 2024-10-08 17:44:29 +02:00
parent 1280428f25
commit 75948368a3
No known key found for this signature in database
GPG Key ID: 12BC628A44B7DA57
7 changed files with 80 additions and 16 deletions

View File

@ -185,10 +185,16 @@ func newUpdate() *cobra.Command {
a := root.AccountClient(ctx) a := root.AccountClient(ctx)
if cmd.Flags().Changed("json") { if cmd.Flags().Changed("json") {
err = updateJson.Unmarshal(&updateReq) diags := updateJson.Unmarshal(&updateReq)
if diags.HasError() {
return diags.Error()
}
if len(diags) > 0 {
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
if err != nil { if err != nil {
return err return err
} }
}
} else { } else {
return fmt.Errorf("please provide command input in JSON format by specifying the --json flag") return fmt.Errorf("please provide command input in JSON format by specifying the --json flag")
} }

View File

@ -187,10 +187,16 @@ func newUpdate() *cobra.Command {
w := root.WorkspaceClient(ctx) w := root.WorkspaceClient(ctx)
if cmd.Flags().Changed("json") { if cmd.Flags().Changed("json") {
err = updateJson.Unmarshal(&updateReq) diags := updateJson.Unmarshal(&updateReq)
if diags.HasError() {
return diags.Error()
}
if len(diags) > 0 {
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
if err != nil { if err != nil {
return err return err
} }
}
} else { } else {
return fmt.Errorf("please provide command input in JSON format by specifying the --json flag") return fmt.Errorf("please provide command input in JSON format by specifying the --json flag")
} }

View File

@ -34,10 +34,18 @@ func createOverride(createCmd *cobra.Command, createReq *workspace.CreateRepoReq
createJson := createCmd.Flag("json").Value.(*flags.JsonFlag) createJson := createCmd.Flag("json").Value.(*flags.JsonFlag)
createCmd.RunE = func(cmd *cobra.Command, args []string) (err error) { createCmd.RunE = func(cmd *cobra.Command, args []string) (err error) {
ctx := cmd.Context() ctx := cmd.Context()
var diags diag.Diagnostics
w := root.WorkspaceClient(ctx) w := root.WorkspaceClient(ctx)
if cmd.Flags().Changed("json") { if cmd.Flags().Changed("json") {
diags = createJson.Unmarshal(createReq) diags := createJson.Unmarshal(createReq)
if diags.HasError() {
return diags.Error()
}
if len(diags) > 0 {
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
if err != nil {
return err
}
}
} else { } else {
createReq.Url = args[0] createReq.Url = args[0]
if len(args) > 1 { if len(args) > 1 {
@ -54,7 +62,7 @@ func createOverride(createCmd *cobra.Command, createReq *workspace.CreateRepoReq
if err != nil { if err != nil {
return err return err
} }
return cmdio.RenderWithDiagnostics(ctx, response, diags) return cmdio.Render(ctx, response)
} }
} }
@ -104,6 +112,15 @@ func updateOverride(updateCmd *cobra.Command, updateReq *workspace.UpdateRepoReq
w := root.WorkspaceClient(ctx) w := root.WorkspaceClient(ctx)
if cmd.Flags().Changed("json") { if cmd.Flags().Changed("json") {
diags = updateJson.Unmarshal(&updateReq) diags = updateJson.Unmarshal(&updateReq)
if diags.HasError() {
return diags.Error()
}
if len(diags) > 0 {
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
if err != nil {
return err
}
}
} else { } else {
updateReq.RepoId, err = repoArgumentToRepoID(ctx, w, args) updateReq.RepoId, err = repoArgumentToRepoID(ctx, w, args)
if err != nil { if err != nil {
@ -115,7 +132,7 @@ func updateOverride(updateCmd *cobra.Command, updateReq *workspace.UpdateRepoReq
if err != nil { if err != nil {
return err return err
} }
return diags.Error() return nil
} }
} }

View File

@ -75,6 +75,12 @@ func newPutSecret() *cobra.Command {
if diags.HasError() { if diags.HasError() {
return diags.Error() return diags.Error()
} }
if len(diags) > 0 {
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
if err != nil {
return err
}
}
} else { } else {
putSecretReq.Scope = args[0] putSecretReq.Scope = args[0]
putSecretReq.Key = args[1] putSecretReq.Key = args[1]

View File

@ -868,11 +868,17 @@ func newPutAiGateway() *cobra.Command {
w := root.WorkspaceClient(ctx) w := root.WorkspaceClient(ctx)
if cmd.Flags().Changed("json") { if cmd.Flags().Changed("json") {
err = putAiGatewayJson.Unmarshal(&putAiGatewayReq) diags := putAiGatewayJson.Unmarshal(&putAiGatewayReq)
if diags.HasError() {
return diags.Error()
}
if len(diags) > 0 {
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
if err != nil { if err != nil {
return err return err
} }
} }
}
putAiGatewayReq.Name = args[0] putAiGatewayReq.Name = args[0]
response, err := w.ServingEndpoints.PutAiGateway(ctx, putAiGatewayReq) response, err := w.ServingEndpoints.PutAiGateway(ctx, putAiGatewayReq)

View File

@ -94,11 +94,17 @@ func newGenerateTemporaryTableCredentials() *cobra.Command {
w := root.WorkspaceClient(ctx) w := root.WorkspaceClient(ctx)
if cmd.Flags().Changed("json") { if cmd.Flags().Changed("json") {
err = generateTemporaryTableCredentialsJson.Unmarshal(&generateTemporaryTableCredentialsReq) diags := generateTemporaryTableCredentialsJson.Unmarshal(&generateTemporaryTableCredentialsReq)
if diags.HasError() {
return diags.Error()
}
if len(diags) > 0 {
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
if err != nil { if err != nil {
return err return err
} }
} }
}
response, err := w.TemporaryTableCredentials.GenerateTemporaryTableCredentials(ctx, generateTemporaryTableCredentialsReq) response, err := w.TemporaryTableCredentials.GenerateTemporaryTableCredentials(ctx, generateTemporaryTableCredentialsReq)
if err != nil { if err != nil {

View File

@ -443,6 +443,20 @@ const warningTemplate = `{{ "Warning" | yellow }}: {{ .Summary }}
` `
const recommendationTemplate = `{{ "Recommendation" | blue }}: {{ .Summary }}
{{- range $index, $element := .Paths }}
{{ if eq $index 0 }}at {{else}} {{ end}}{{ $element.String | green }}
{{- end }}
{{- range $index, $element := .Locations }}
{{ if eq $index 0 }}in {{else}} {{ end}}{{ $element.String | cyan }}
{{- end }}
{{- if .Detail }}
{{ .Detail }}
{{- end }}
`
func RenderDiagnosticsToErrorOut(ctx context.Context, diags diag.Diagnostics) error { func RenderDiagnosticsToErrorOut(ctx context.Context, diags diag.Diagnostics) error {
c := fromContext(ctx) c := fromContext(ctx)
return RenderDiagnostics(c.err, diags) return RenderDiagnostics(c.err, diags)
@ -451,6 +465,7 @@ func RenderDiagnosticsToErrorOut(ctx context.Context, diags diag.Diagnostics) er
func RenderDiagnostics(out io.Writer, diags diag.Diagnostics) error { func RenderDiagnostics(out io.Writer, diags diag.Diagnostics) error {
errorT := template.Must(template.New("error").Funcs(renderFuncMap).Parse(errorTemplate)) errorT := template.Must(template.New("error").Funcs(renderFuncMap).Parse(errorTemplate))
warningT := template.Must(template.New("warning").Funcs(renderFuncMap).Parse(warningTemplate)) warningT := template.Must(template.New("warning").Funcs(renderFuncMap).Parse(warningTemplate))
recommendationT := template.Must(template.New("recommendation").Funcs(renderFuncMap).Parse(recommendationTemplate))
// Print errors and warnings. // Print errors and warnings.
for _, d := range diags { for _, d := range diags {
@ -460,6 +475,8 @@ func RenderDiagnostics(out io.Writer, diags diag.Diagnostics) error {
t = errorT t = errorT
case diag.Warning: case diag.Warning:
t = warningT t = warningT
case diag.Recommendation:
t = recommendationT
} }
// Render the diagnostic with the appropriate template. // Render the diagnostic with the appropriate template.