Merge pull request #220 from dagger/layout-to-plan
terminology: rename layout -> plan
This commit is contained in:
commit
c5089d5c04
@ -33,9 +33,9 @@ var computeCmd = &cobra.Command{
|
||||
ctx := lg.WithContext(cmd.Context())
|
||||
|
||||
st := &dagger.DeploymentState{
|
||||
ID: uuid.New().String(),
|
||||
Name: "FIXME",
|
||||
LayoutSource: dagger.DirInput(args[0], []string{"*.cue", "cue.mod"}),
|
||||
ID: uuid.New().String(),
|
||||
Name: "FIXME",
|
||||
PlanSource: dagger.DirInput(args[0], []string{"*.cue", "cue.mod"}),
|
||||
}
|
||||
|
||||
for _, input := range viper.GetStringSlice("input-string") {
|
||||
|
@ -34,8 +34,8 @@ var newCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
st := &dagger.DeploymentState{
|
||||
Name: getNewDeploymentName(ctx),
|
||||
LayoutSource: getLayoutSource(ctx),
|
||||
Name: getNewDeploymentName(ctx),
|
||||
PlanSource: getPlanSource(ctx),
|
||||
}
|
||||
|
||||
err = store.CreateDeployment(ctx, st)
|
||||
@ -86,8 +86,8 @@ func getNewDeploymentName(ctx context.Context) string {
|
||||
return currentDir
|
||||
}
|
||||
|
||||
// FIXME: Implement options: --layout-*
|
||||
func getLayoutSource(ctx context.Context) dagger.Input {
|
||||
// FIXME: Implement options: --plan-*
|
||||
func getPlanSource(ctx context.Context) dagger.Input {
|
||||
lg := log.Ctx(ctx)
|
||||
|
||||
wd, err := os.Getwd()
|
||||
@ -102,10 +102,10 @@ func init() {
|
||||
newCmd.Flags().StringP("name", "n", "", "Specify a deployment name")
|
||||
newCmd.Flags().BoolP("up", "u", false, "Bring the deployment online")
|
||||
|
||||
newCmd.Flags().String("layout-dir", "", "Load layout from a local directory")
|
||||
newCmd.Flags().String("layout-git", "", "Load layout from a git repository")
|
||||
newCmd.Flags().String("layout-package", "", "Load layout from a cue package")
|
||||
newCmd.Flags().String("layout-file", "", "Load layout from a cue or json file")
|
||||
newCmd.Flags().String("plan-dir", "", "Load plan from a local directory")
|
||||
newCmd.Flags().String("plan-git", "", "Load plan from a git repository")
|
||||
newCmd.Flags().String("plan-package", "", "Load plan from a cue package")
|
||||
newCmd.Flags().String("plan-file", "", "Load plan from a cue or json file")
|
||||
|
||||
newCmd.Flags().String("setup", "auto", "Specify whether to prompt user for initial setup (no|yes|auto)")
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package layout
|
||||
package plan
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
@ -7,7 +7,7 @@ import (
|
||||
|
||||
var dirCmd = &cobra.Command{
|
||||
Use: "dir PATH",
|
||||
Short: "Load layout from a local directory",
|
||||
Short: "Load plan from a local directory",
|
||||
Args: cobra.ExactArgs(1),
|
||||
PreRun: func(cmd *cobra.Command, args []string) {
|
||||
// Fix Viper bug for duplicate flags:
|
@ -1,4 +1,4 @@
|
||||
package layout
|
||||
package plan
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
@ -7,7 +7,7 @@ import (
|
||||
|
||||
var fileCmd = &cobra.Command{
|
||||
Use: "file PATH|-",
|
||||
Short: "Load layout from a cue file",
|
||||
Short: "Load plan from a cue file",
|
||||
Args: cobra.ExactArgs(1),
|
||||
PreRun: func(cmd *cobra.Command, args []string) {
|
||||
// Fix Viper bug for duplicate flags:
|
@ -1,4 +1,4 @@
|
||||
package layout
|
||||
package plan
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
@ -7,7 +7,7 @@ import (
|
||||
|
||||
var gitCmd = &cobra.Command{
|
||||
Use: "git REMOTE REF [SUBDIR]",
|
||||
Short: "Load layout from a git package",
|
||||
Short: "Load plan from a git package",
|
||||
Args: cobra.MinimumNArgs(2),
|
||||
PreRun: func(cmd *cobra.Command, args []string) {
|
||||
// Fix Viper bug for duplicate flags:
|
@ -1,4 +1,4 @@
|
||||
package layout
|
||||
package plan
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
@ -7,7 +7,7 @@ import (
|
||||
|
||||
var packageCmd = &cobra.Command{
|
||||
Use: "package PKG",
|
||||
Short: "Load layout from a cue package",
|
||||
Short: "Load plan from a cue package",
|
||||
Args: cobra.ExactArgs(1),
|
||||
PreRun: func(cmd *cobra.Command, args []string) {
|
||||
// Fix Viper bug for duplicate flags:
|
@ -1,11 +1,11 @@
|
||||
package layout
|
||||
package plan
|
||||
|
||||
import "github.com/spf13/cobra"
|
||||
|
||||
// Cmd exposes the top-level command
|
||||
var Cmd = &cobra.Command{
|
||||
Use: "layout",
|
||||
Short: "Manage a deployment's layout",
|
||||
Use: "plan",
|
||||
Short: "Manage a deployment's plan",
|
||||
}
|
||||
|
||||
func init() {
|
@ -57,7 +57,7 @@ func init() {
|
||||
|
||||
queryCmd.Flags().BoolP("--no-input", "I", false, "Exclude inputs from query")
|
||||
queryCmd.Flags().BoolP("--no-output", "O", false, "Exclude outputs from query")
|
||||
queryCmd.Flags().BoolP("--no-layout", "L", false, "Exclude outputs from query")
|
||||
queryCmd.Flags().BoolP("--no-plan", "P", false, "Exclude outputs from query")
|
||||
|
||||
if err := viper.BindPFlags(queryCmd.Flags()); err != nil {
|
||||
panic(err)
|
||||
|
@ -5,8 +5,8 @@ import (
|
||||
"strings"
|
||||
|
||||
inputCmd "dagger.io/go/cmd/dagger/cmd/input"
|
||||
"dagger.io/go/cmd/dagger/cmd/layout"
|
||||
"dagger.io/go/cmd/dagger/cmd/output"
|
||||
"dagger.io/go/cmd/dagger/cmd/plan"
|
||||
"dagger.io/go/cmd/dagger/logger"
|
||||
"github.com/moby/buildkit/util/appcontext"
|
||||
"github.com/opentracing/opentracing-go"
|
||||
@ -36,7 +36,7 @@ func init() {
|
||||
historyCmd,
|
||||
loginCmd,
|
||||
logoutCmd,
|
||||
layout.Cmd,
|
||||
plan.Cmd,
|
||||
inputCmd.Cmd,
|
||||
output.Cmd,
|
||||
)
|
||||
|
@ -11,7 +11,7 @@ import (
|
||||
|
||||
var upCmd = &cobra.Command{
|
||||
Use: "up",
|
||||
Short: "Bring a deployment online with latest layout and inputs",
|
||||
Short: "Bring a deployment online with latest plan and inputs",
|
||||
Args: cobra.NoArgs,
|
||||
PreRun: func(cmd *cobra.Command, args []string) {
|
||||
// Fix Viper bug for duplicate flags:
|
||||
|
@ -132,7 +132,7 @@ func (c *Client) buildfn(ctx context.Context, deployment *Deployment, ch chan *b
|
||||
s := NewSolver(c.c, gw, ch)
|
||||
|
||||
lg.Debug().Msg("loading configuration")
|
||||
if err := deployment.LoadLayout(ctx, s); err != nil {
|
||||
if err := deployment.LoadPlan(ctx, s); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
@ -28,9 +28,9 @@ type DeploymentState struct {
|
||||
// FIXME: store multiple names?
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// Cue module containing the deployment layout
|
||||
// Cue module containing the deployment plan
|
||||
// The input's top-level artifact is used as a module directory.
|
||||
LayoutSource Input `json:"layout,omitempty"`
|
||||
PlanSource Input `json:"plan,omitempty"`
|
||||
|
||||
Inputs []inputKV `json:"inputs,omitempty"`
|
||||
}
|
||||
@ -64,8 +64,8 @@ func (s *DeploymentState) RemoveInputs(key string) error {
|
||||
type Deployment struct {
|
||||
st *DeploymentState
|
||||
|
||||
// Layer 1: layout configuration
|
||||
layout *compiler.Value
|
||||
// Layer 1: plan configuration
|
||||
plan *compiler.Value
|
||||
|
||||
// Layer 2: user inputs
|
||||
input *compiler.Value
|
||||
@ -73,7 +73,7 @@ type Deployment struct {
|
||||
// Layer 3: computed values
|
||||
output *compiler.Value
|
||||
|
||||
// All layers merged together: layout + input + output
|
||||
// All layers merged together: plan + input + output
|
||||
state *compiler.Value
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ func NewDeployment(st *DeploymentState) (*Deployment, error) {
|
||||
empty := compiler.EmptyStruct()
|
||||
d := &Deployment{
|
||||
st: st,
|
||||
layout: empty,
|
||||
plan: empty,
|
||||
input: empty,
|
||||
output: empty,
|
||||
}
|
||||
@ -116,12 +116,12 @@ func (d *Deployment) Name() string {
|
||||
return d.st.Name
|
||||
}
|
||||
|
||||
func (d *Deployment) LayoutSource() Input {
|
||||
return d.st.LayoutSource
|
||||
func (d *Deployment) PlanSource() Input {
|
||||
return d.st.PlanSource
|
||||
}
|
||||
|
||||
func (d *Deployment) Layout() *compiler.Value {
|
||||
return d.layout
|
||||
func (d *Deployment) Plan() *compiler.Value {
|
||||
return d.plan
|
||||
}
|
||||
|
||||
func (d *Deployment) Input() *compiler.Value {
|
||||
@ -136,19 +136,19 @@ func (d *Deployment) State() *compiler.Value {
|
||||
return d.state
|
||||
}
|
||||
|
||||
// LoadLayout loads the layout
|
||||
func (d *Deployment) LoadLayout(ctx context.Context, s Solver) error {
|
||||
span, ctx := opentracing.StartSpanFromContext(ctx, "deployment.LoadLayout")
|
||||
// LoadPlan loads the plan
|
||||
func (d *Deployment) LoadPlan(ctx context.Context, s Solver) error {
|
||||
span, ctx := opentracing.StartSpanFromContext(ctx, "deployment.LoadPlan")
|
||||
defer span.Finish()
|
||||
|
||||
layoutSource, err := d.st.LayoutSource.Compile()
|
||||
planSource, err := d.st.PlanSource.Compile()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
p := NewPipeline("[internal] source", s, nil)
|
||||
// execute updater script
|
||||
if err := p.Do(ctx, layoutSource); err != nil {
|
||||
if err := p.Do(ctx, planSource); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -157,11 +157,11 @@ func (d *Deployment) LoadLayout(ctx context.Context, s Solver) error {
|
||||
stdlib.Path: stdlib.FS,
|
||||
"/": p.FS(),
|
||||
}
|
||||
layout, err := compiler.Build(sources)
|
||||
plan, err := compiler.Build(sources)
|
||||
if err != nil {
|
||||
return fmt.Errorf("layout config: %w", err)
|
||||
return fmt.Errorf("plan config: %w", err)
|
||||
}
|
||||
d.layout = layout
|
||||
d.plan = plan
|
||||
|
||||
// Commit
|
||||
return d.mergeState()
|
||||
@ -202,12 +202,12 @@ func (d *Deployment) LocalDirs() map[string]string {
|
||||
localdirs(v.Get("#compute"))
|
||||
}
|
||||
|
||||
// 2. Scan the layout
|
||||
layout, err := d.st.LayoutSource.Compile()
|
||||
// 2. Scan the plan
|
||||
plan, err := d.st.PlanSource.Compile()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
localdirs(layout)
|
||||
localdirs(plan)
|
||||
return dirs
|
||||
}
|
||||
|
||||
@ -225,7 +225,7 @@ func (d *Deployment) mergeState() error {
|
||||
err error
|
||||
)
|
||||
|
||||
stateInst, err = stateInst.Fill(d.layout.Cue())
|
||||
stateInst, err = stateInst.Fill(d.plan.Cue())
|
||||
if err != nil {
|
||||
return fmt.Errorf("merge base & input: %w", err)
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
|
||||
func TestInputDir(t *testing.T) {
|
||||
st := &DeploymentState{
|
||||
LayoutSource: DirInput("/tmp/source", []string{}),
|
||||
PlanSource: DirInput("/tmp/source", []string{}),
|
||||
}
|
||||
require.NoError(t, st.AddInput("www.source", DirInput(".", []string{})))
|
||||
|
||||
|
@ -120,7 +120,7 @@ func (s *Store) indexDeployment(r *DeploymentState) {
|
||||
s.pathsByDeployment[r.ID] = append(s.pathsByDeployment[r.ID], i.Dir.Path)
|
||||
}
|
||||
|
||||
mapPath(r.LayoutSource)
|
||||
mapPath(r.PlanSource)
|
||||
for _, i := range r.Inputs {
|
||||
mapPath(i.Value)
|
||||
}
|
||||
|
Reference in New Issue
Block a user