Merge pull request #220 from dagger/layout-to-plan

terminology: rename layout -> plan
This commit is contained in:
Sam Alba 2021-03-30 20:03:51 -07:00 committed by GitHub
commit c5089d5c04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 51 additions and 51 deletions

View File

@ -33,9 +33,9 @@ var computeCmd = &cobra.Command{
ctx := lg.WithContext(cmd.Context()) ctx := lg.WithContext(cmd.Context())
st := &dagger.DeploymentState{ st := &dagger.DeploymentState{
ID: uuid.New().String(), ID: uuid.New().String(),
Name: "FIXME", Name: "FIXME",
LayoutSource: dagger.DirInput(args[0], []string{"*.cue", "cue.mod"}), PlanSource: dagger.DirInput(args[0], []string{"*.cue", "cue.mod"}),
} }
for _, input := range viper.GetStringSlice("input-string") { for _, input := range viper.GetStringSlice("input-string") {

View File

@ -34,8 +34,8 @@ var newCmd = &cobra.Command{
} }
st := &dagger.DeploymentState{ st := &dagger.DeploymentState{
Name: getNewDeploymentName(ctx), Name: getNewDeploymentName(ctx),
LayoutSource: getLayoutSource(ctx), PlanSource: getPlanSource(ctx),
} }
err = store.CreateDeployment(ctx, st) err = store.CreateDeployment(ctx, st)
@ -86,8 +86,8 @@ func getNewDeploymentName(ctx context.Context) string {
return currentDir return currentDir
} }
// FIXME: Implement options: --layout-* // FIXME: Implement options: --plan-*
func getLayoutSource(ctx context.Context) dagger.Input { func getPlanSource(ctx context.Context) dagger.Input {
lg := log.Ctx(ctx) lg := log.Ctx(ctx)
wd, err := os.Getwd() wd, err := os.Getwd()
@ -102,10 +102,10 @@ func init() {
newCmd.Flags().StringP("name", "n", "", "Specify a deployment name") newCmd.Flags().StringP("name", "n", "", "Specify a deployment name")
newCmd.Flags().BoolP("up", "u", false, "Bring the deployment online") newCmd.Flags().BoolP("up", "u", false, "Bring the deployment online")
newCmd.Flags().String("layout-dir", "", "Load layout from a local directory") newCmd.Flags().String("plan-dir", "", "Load plan from a local directory")
newCmd.Flags().String("layout-git", "", "Load layout from a git repository") newCmd.Flags().String("plan-git", "", "Load plan from a git repository")
newCmd.Flags().String("layout-package", "", "Load layout from a cue package") newCmd.Flags().String("plan-package", "", "Load plan from a cue package")
newCmd.Flags().String("layout-file", "", "Load layout from a cue or json file") 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)") newCmd.Flags().String("setup", "auto", "Specify whether to prompt user for initial setup (no|yes|auto)")

View File

@ -1,4 +1,4 @@
package layout package plan
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
@ -7,7 +7,7 @@ import (
var dirCmd = &cobra.Command{ var dirCmd = &cobra.Command{
Use: "dir PATH", Use: "dir PATH",
Short: "Load layout from a local directory", Short: "Load plan from a local directory",
Args: cobra.ExactArgs(1), Args: cobra.ExactArgs(1),
PreRun: func(cmd *cobra.Command, args []string) { PreRun: func(cmd *cobra.Command, args []string) {
// Fix Viper bug for duplicate flags: // Fix Viper bug for duplicate flags:

View File

@ -1,4 +1,4 @@
package layout package plan
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
@ -7,7 +7,7 @@ import (
var fileCmd = &cobra.Command{ var fileCmd = &cobra.Command{
Use: "file PATH|-", Use: "file PATH|-",
Short: "Load layout from a cue file", Short: "Load plan from a cue file",
Args: cobra.ExactArgs(1), Args: cobra.ExactArgs(1),
PreRun: func(cmd *cobra.Command, args []string) { PreRun: func(cmd *cobra.Command, args []string) {
// Fix Viper bug for duplicate flags: // Fix Viper bug for duplicate flags:

View File

@ -1,4 +1,4 @@
package layout package plan
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
@ -7,7 +7,7 @@ import (
var gitCmd = &cobra.Command{ var gitCmd = &cobra.Command{
Use: "git REMOTE REF [SUBDIR]", Use: "git REMOTE REF [SUBDIR]",
Short: "Load layout from a git package", Short: "Load plan from a git package",
Args: cobra.MinimumNArgs(2), Args: cobra.MinimumNArgs(2),
PreRun: func(cmd *cobra.Command, args []string) { PreRun: func(cmd *cobra.Command, args []string) {
// Fix Viper bug for duplicate flags: // Fix Viper bug for duplicate flags:

View File

@ -1,4 +1,4 @@
package layout package plan
import ( import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
@ -7,7 +7,7 @@ import (
var packageCmd = &cobra.Command{ var packageCmd = &cobra.Command{
Use: "package PKG", Use: "package PKG",
Short: "Load layout from a cue package", Short: "Load plan from a cue package",
Args: cobra.ExactArgs(1), Args: cobra.ExactArgs(1),
PreRun: func(cmd *cobra.Command, args []string) { PreRun: func(cmd *cobra.Command, args []string) {
// Fix Viper bug for duplicate flags: // Fix Viper bug for duplicate flags:

View File

@ -1,11 +1,11 @@
package layout package plan
import "github.com/spf13/cobra" import "github.com/spf13/cobra"
// Cmd exposes the top-level command // Cmd exposes the top-level command
var Cmd = &cobra.Command{ var Cmd = &cobra.Command{
Use: "layout", Use: "plan",
Short: "Manage a deployment's layout", Short: "Manage a deployment's plan",
} }
func init() { func init() {

View File

@ -57,7 +57,7 @@ func init() {
queryCmd.Flags().BoolP("--no-input", "I", false, "Exclude inputs from query") 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-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 { if err := viper.BindPFlags(queryCmd.Flags()); err != nil {
panic(err) panic(err)

View File

@ -5,8 +5,8 @@ import (
"strings" "strings"
inputCmd "dagger.io/go/cmd/dagger/cmd/input" 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/output"
"dagger.io/go/cmd/dagger/cmd/plan"
"dagger.io/go/cmd/dagger/logger" "dagger.io/go/cmd/dagger/logger"
"github.com/moby/buildkit/util/appcontext" "github.com/moby/buildkit/util/appcontext"
"github.com/opentracing/opentracing-go" "github.com/opentracing/opentracing-go"
@ -36,7 +36,7 @@ func init() {
historyCmd, historyCmd,
loginCmd, loginCmd,
logoutCmd, logoutCmd,
layout.Cmd, plan.Cmd,
inputCmd.Cmd, inputCmd.Cmd,
output.Cmd, output.Cmd,
) )

View File

@ -11,7 +11,7 @@ import (
var upCmd = &cobra.Command{ var upCmd = &cobra.Command{
Use: "up", 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, Args: cobra.NoArgs,
PreRun: func(cmd *cobra.Command, args []string) { PreRun: func(cmd *cobra.Command, args []string) {
// Fix Viper bug for duplicate flags: // Fix Viper bug for duplicate flags:

View File

@ -132,7 +132,7 @@ func (c *Client) buildfn(ctx context.Context, deployment *Deployment, ch chan *b
s := NewSolver(c.c, gw, ch) s := NewSolver(c.c, gw, ch)
lg.Debug().Msg("loading configuration") lg.Debug().Msg("loading configuration")
if err := deployment.LoadLayout(ctx, s); err != nil { if err := deployment.LoadPlan(ctx, s); err != nil {
return nil, err return nil, err
} }

View File

@ -28,9 +28,9 @@ type DeploymentState struct {
// FIXME: store multiple names? // FIXME: store multiple names?
Name string `json:"name,omitempty"` 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. // 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"` Inputs []inputKV `json:"inputs,omitempty"`
} }
@ -64,8 +64,8 @@ func (s *DeploymentState) RemoveInputs(key string) error {
type Deployment struct { type Deployment struct {
st *DeploymentState st *DeploymentState
// Layer 1: layout configuration // Layer 1: plan configuration
layout *compiler.Value plan *compiler.Value
// Layer 2: user inputs // Layer 2: user inputs
input *compiler.Value input *compiler.Value
@ -73,7 +73,7 @@ type Deployment struct {
// Layer 3: computed values // Layer 3: computed values
output *compiler.Value output *compiler.Value
// All layers merged together: layout + input + output // All layers merged together: plan + input + output
state *compiler.Value state *compiler.Value
} }
@ -81,7 +81,7 @@ func NewDeployment(st *DeploymentState) (*Deployment, error) {
empty := compiler.EmptyStruct() empty := compiler.EmptyStruct()
d := &Deployment{ d := &Deployment{
st: st, st: st,
layout: empty, plan: empty,
input: empty, input: empty,
output: empty, output: empty,
} }
@ -116,12 +116,12 @@ func (d *Deployment) Name() string {
return d.st.Name return d.st.Name
} }
func (d *Deployment) LayoutSource() Input { func (d *Deployment) PlanSource() Input {
return d.st.LayoutSource return d.st.PlanSource
} }
func (d *Deployment) Layout() *compiler.Value { func (d *Deployment) Plan() *compiler.Value {
return d.layout return d.plan
} }
func (d *Deployment) Input() *compiler.Value { func (d *Deployment) Input() *compiler.Value {
@ -136,19 +136,19 @@ func (d *Deployment) State() *compiler.Value {
return d.state return d.state
} }
// LoadLayout loads the layout // LoadPlan loads the plan
func (d *Deployment) LoadLayout(ctx context.Context, s Solver) error { func (d *Deployment) LoadPlan(ctx context.Context, s Solver) error {
span, ctx := opentracing.StartSpanFromContext(ctx, "deployment.LoadLayout") span, ctx := opentracing.StartSpanFromContext(ctx, "deployment.LoadPlan")
defer span.Finish() defer span.Finish()
layoutSource, err := d.st.LayoutSource.Compile() planSource, err := d.st.PlanSource.Compile()
if err != nil { if err != nil {
return err return err
} }
p := NewPipeline("[internal] source", s, nil) p := NewPipeline("[internal] source", s, nil)
// execute updater script // execute updater script
if err := p.Do(ctx, layoutSource); err != nil { if err := p.Do(ctx, planSource); err != nil {
return err return err
} }
@ -157,11 +157,11 @@ func (d *Deployment) LoadLayout(ctx context.Context, s Solver) error {
stdlib.Path: stdlib.FS, stdlib.Path: stdlib.FS,
"/": p.FS(), "/": p.FS(),
} }
layout, err := compiler.Build(sources) plan, err := compiler.Build(sources)
if err != nil { if err != nil {
return fmt.Errorf("layout config: %w", err) return fmt.Errorf("plan config: %w", err)
} }
d.layout = layout d.plan = plan
// Commit // Commit
return d.mergeState() return d.mergeState()
@ -202,12 +202,12 @@ func (d *Deployment) LocalDirs() map[string]string {
localdirs(v.Get("#compute")) localdirs(v.Get("#compute"))
} }
// 2. Scan the layout // 2. Scan the plan
layout, err := d.st.LayoutSource.Compile() plan, err := d.st.PlanSource.Compile()
if err != nil { if err != nil {
panic(err) panic(err)
} }
localdirs(layout) localdirs(plan)
return dirs return dirs
} }
@ -225,7 +225,7 @@ func (d *Deployment) mergeState() error {
err error err error
) )
stateInst, err = stateInst.Fill(d.layout.Cue()) stateInst, err = stateInst.Fill(d.plan.Cue())
if err != nil { if err != nil {
return fmt.Errorf("merge base & input: %w", err) return fmt.Errorf("merge base & input: %w", err)
} }

View File

@ -8,7 +8,7 @@ import (
func TestInputDir(t *testing.T) { func TestInputDir(t *testing.T) {
st := &DeploymentState{ st := &DeploymentState{
LayoutSource: DirInput("/tmp/source", []string{}), PlanSource: DirInput("/tmp/source", []string{}),
} }
require.NoError(t, st.AddInput("www.source", DirInput(".", []string{}))) require.NoError(t, st.AddInput("www.source", DirInput(".", []string{})))

View File

@ -120,7 +120,7 @@ func (s *Store) indexDeployment(r *DeploymentState) {
s.pathsByDeployment[r.ID] = append(s.pathsByDeployment[r.ID], i.Dir.Path) s.pathsByDeployment[r.ID] = append(s.pathsByDeployment[r.ID], i.Dir.Path)
} }
mapPath(r.LayoutSource) mapPath(r.PlanSource)
for _, i := range r.Inputs { for _, i := range r.Inputs {
mapPath(i.Value) mapPath(i.Value)
} }