mirror of https://github.com/databricks/cli.git
Support inlining contents
This commit is contained in:
parent
fb903fdf25
commit
9646e8859b
|
@ -27,10 +27,16 @@ type Dashboard struct {
|
|||
// WarehouseID is the ID of the warehouse to use for the dashboard.
|
||||
WarehouseID string `json:"warehouse_id,omitempty"`
|
||||
|
||||
// SerializedDashboard is the serialized dashboard definition.
|
||||
SerializedDashboard string `json:"serialized_dashboard,omitempty"`
|
||||
|
||||
// ===========================
|
||||
// ==== END OF API FIELDS ====
|
||||
// ===========================
|
||||
|
||||
// Contents can contain an object representing the unmarshalled version of the serialized dashboard.
|
||||
Contents any `json:"contents,omitempty"`
|
||||
|
||||
// DefinitionPath points to the local `.lvdash.json` file containing the dashboard definition.
|
||||
DefinitionPath string `json:"definition_path,omitempty"`
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package tfdyn
|
|||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
"github.com/databricks/cli/bundle/internal/tf/schema"
|
||||
|
@ -27,6 +28,19 @@ func convertDashboardResource(ctx context.Context, vin dyn.Value) (dyn.Value, er
|
|||
}
|
||||
}
|
||||
|
||||
// Include marshalled copy of "contents" if set.
|
||||
contents := vin.Get("contents")
|
||||
if contents.Kind() == dyn.KindMap {
|
||||
buf, err := json.Marshal(contents.AsAny())
|
||||
if err != nil {
|
||||
return dyn.InvalidValue, fmt.Errorf("failed to marshal contents: %w", err)
|
||||
}
|
||||
vout, err = dyn.Set(vout, "serialized_dashboard", dyn.V(string(buf)))
|
||||
if err != nil {
|
||||
return dyn.InvalidValue, fmt.Errorf("failed to set serialized_dashboard: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
return vout, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,35 @@ resources:
|
|||
display_name: "Foobar"
|
||||
parent_path: ${workspace.file_path}
|
||||
warehouse_id: ${var.warehouse_id}
|
||||
definition_path: ./dashboard.lvdash.json
|
||||
# definition_path: ./dashboard.lvdash.json
|
||||
|
||||
contents:
|
||||
pages:
|
||||
- displayName: New Page
|
||||
layout:
|
||||
- position:
|
||||
height: 4
|
||||
width: 6
|
||||
x: 0
|
||||
y: 0
|
||||
widget:
|
||||
name: 82eb9107
|
||||
textbox_spec: |
|
||||
# My bundle target: ${bundle.target}
|
||||
|
||||
I'm running this as ${workspace.current_user.short_name}.
|
||||
|
||||
The workspace I'm targeting is [${workspace.host}](${workspace.host}).
|
||||
|
||||
- position:
|
||||
height: 1
|
||||
width: 3
|
||||
x: 0
|
||||
y: 4
|
||||
widget:
|
||||
name: ffa6de4f
|
||||
textbox_spec: another widget
|
||||
name: fdd21a3c
|
||||
|
||||
|
||||
# # file_path: ./dashboard.lvdash.json
|
||||
|
|
Loading…
Reference in New Issue