@@ -11,13 +11,15 @@ import (
11
11
12
12
"github.com/briandowns/spinner"
13
13
"github.com/fatih/color"
14
+ "github.com/google/uuid"
14
15
"github.com/manifoldco/promptui"
15
16
"github.com/spf13/cobra"
16
17
"golang.org/x/xerrors"
17
18
18
19
"github.com/coder/coder/coderd"
19
20
"github.com/coder/coder/codersdk"
20
21
"github.com/coder/coder/database"
22
+ "github.com/coder/coder/provisionerd"
21
23
)
22
24
23
25
func projectCreate () * cobra.Command {
@@ -49,8 +51,8 @@ func projectCreate() *cobra.Command {
49
51
Default : filepath .Base (directory ),
50
52
Label : "What's your project's name?" ,
51
53
Validate : func (s string ) error {
52
- _ , err = client .Project (cmd .Context (), organization .Name , s )
53
- if err == nil {
54
+ project , _ : = client .Project (cmd .Context (), organization .Name , s )
55
+ if project . ID . String () != uuid . Nil . String () {
54
56
return xerrors .New ("A project already exists with that name!" )
55
57
}
56
58
return nil
@@ -63,6 +65,7 @@ func projectCreate() *cobra.Command {
63
65
spin := spinner .New (spinner .CharSets [0 ], 25 * time .Millisecond )
64
66
spin .Suffix = " Uploading current directory..."
65
67
spin .Start ()
68
+
66
69
defer spin .Stop ()
67
70
68
71
bytes , err := tarDirectory (directory )
@@ -79,14 +82,6 @@ func projectCreate() *cobra.Command {
79
82
StorageMethod : database .ProvisionerStorageMethodFile ,
80
83
StorageSource : resp .Hash ,
81
84
Provisioner : database .ProvisionerTypeTerraform ,
82
- // SkipResources on first import to detect variables defined by the project.
83
- SkipResources : true ,
84
- // ParameterValues: []coderd.CreateParameterValueRequest{{
85
- // Name: "aws_access_key",
86
- // SourceValue: "tomato",
87
- // SourceScheme: database.ParameterSourceSchemeData,
88
- // DestinationScheme: database.ParameterDestinationSchemeProvisionerVariable,
89
- // }},
90
85
})
91
86
if err != nil {
92
87
return err
@@ -102,33 +97,60 @@ func projectCreate() *cobra.Command {
102
97
if ! ok {
103
98
break
104
99
}
105
- _ , _ = fmt .Fprintf (cmd .OutOrStdout (), "%s %s\n " , color .HiGreenString ("[parse ]" ), log .Output )
100
+ _ , _ = fmt .Fprintf (cmd .OutOrStdout (), "%s %s\n " , color .HiGreenString ("[tf ]" ), log .Output )
106
101
}
107
102
108
- _ , _ = fmt .Fprintf (cmd .OutOrStdout (), "Parsed project source... displaying parameters:" )
109
-
110
- schemas , err := client .ProvisionerJobParameterSchemas (cmd .Context (), organization .Name , job .ID )
103
+ job , err = client .ProvisionerJob (cmd .Context (), organization .Name , job .ID )
111
104
if err != nil {
112
105
return err
113
106
}
114
107
115
- values , err := client .ProvisionerJobParameterValues (cmd .Context (), organization .Name , job .ID )
108
+ if provisionerd .IsMissingParameterError (job .Error ) {
109
+ fmt .Printf ("Missing something!\n " )
110
+ return nil
111
+ }
112
+
113
+ resources , err := client .ProvisionerJobResources (cmd .Context (), organization .Name , job .ID )
116
114
if err != nil {
117
115
return err
118
116
}
119
- valueBySchemaID := map [string ]coderd.ComputedParameterValue {}
120
- for _ , value := range values {
121
- valueBySchemaID [value .SchemaID .String ()] = value
122
- }
123
117
124
- for _ , schema := range schemas {
125
- if value , ok := valueBySchemaID [schema .ID .String ()]; ok {
126
- fmt .Printf ("Value for: %s %s\n " , value .Name , value .SourceValue )
127
- continue
128
- }
129
- fmt .Printf ("No value for: %s\n " , schema .Name )
118
+ fmt .Printf ("Resources: %+v\n " , resources )
119
+
120
+ project , err := client .CreateProject (cmd .Context (), organization .Name , coderd.CreateProjectRequest {
121
+ Name : name ,
122
+ VersionImportJobID : job .ID ,
123
+ })
124
+ if err != nil {
125
+ return err
130
126
}
131
127
128
+ fmt .Printf ("Project: %+v\n " , project )
129
+
130
+ // _, _ = fmt.Fprintf(cmd.OutOrStdout(), "Parsed project source... displaying parameters:")
131
+
132
+ // schemas, err := client.ProvisionerJobParameterSchemas(cmd.Context(), organization.Name, job.ID)
133
+ // if err != nil {
134
+ // return err
135
+ // }
136
+
137
+ // values, err := client.ProvisionerJobParameterValues(cmd.Context(), organization.Name, job.ID)
138
+ // if err != nil {
139
+ // return err
140
+ // }
141
+ // valueBySchemaID := map[string]coderd.ComputedParameterValue{}
142
+ // for _, value := range values {
143
+ // valueBySchemaID[value.SchemaID.String()] = value
144
+ // }
145
+
146
+ // for _, schema := range schemas {
147
+ // if value, ok := valueBySchemaID[schema.ID.String()]; ok {
148
+ // fmt.Printf("Value for: %s %s\n", value.Name, value.SourceValue)
149
+ // continue
150
+ // }
151
+ // fmt.Printf("No value for: %s\n", schema.Name)
152
+ // }
153
+
132
154
// schemas, err := client.ProvisionerJobParameterSchemas(cmd.Context(), organization.Name, job.ID)
133
155
// if err != nil {
134
156
// return err
0 commit comments