@@ -2,6 +2,8 @@ package iterative
22
33import (
44 "context"
5+ "fmt"
6+ "log"
57 "sort"
68 "time"
79
@@ -36,7 +38,7 @@ func resourceMachine() *schema.Resource {
3638 Type : schema .TypeInt ,
3739 Optional : true ,
3840 ForceNew : true ,
39- Default : 100 ,
41+ Default : 10 ,
4042 },
4143 "instance_id" : & schema.Schema {
4244 Type : schema .TypeString ,
@@ -94,7 +96,7 @@ func resourceMachineCreate(ctx context.Context, d *schema.ResourceData, m interf
9496 Filters : []* ec2.Filter {
9597 {
9698 Name : aws .String ("name" ),
97- Values : []* string {aws .String ("Deep*Ubuntu 18.04* " )},
99+ Values : []* string {aws .String ("iterative-cml " )},
98100 },
99101 {
100102 Name : aws .String ("architecture" ),
@@ -130,6 +132,7 @@ func resourceMachineCreate(ctx context.Context, d *schema.ResourceData, m interf
130132
131133 pairName := "cml_" + id
132134 var keyMaterial string
135+ var vpcID string
133136
134137 // key-pair
135138 if len (keyPublic ) != 0 {
@@ -156,7 +159,7 @@ func resourceMachineCreate(ctx context.Context, d *schema.ResourceData, m interf
156159
157160 vpcsDesc , _ := svc .DescribeVpcs (& ec2.DescribeVpcsInput {})
158161 vpc := vpcsDesc .Vpcs [0 ]
159- vpcID : = * vpc .VpcId
162+ vpcID = * vpc .VpcId
160163
161164 gpResult , ee := svc .CreateSecurityGroup (& ec2.CreateSecurityGroupInput {
162165 GroupName : aws .String (securityGroup ),
@@ -193,15 +196,42 @@ func resourceMachineCreate(ctx context.Context, d *schema.ResourceData, m interf
193196 }
194197 }
195198
199+ sgDesc , sgDescErr := svc .DescribeSecurityGroupsWithContext (ctx , & ec2.DescribeSecurityGroupsInput {
200+ Filters : []* ec2.Filter {
201+ {
202+ Name : aws .String ("group-name" ),
203+ Values : []* string {aws .String (securityGroup )},
204+ },
205+ },
206+ })
207+
208+ if sgDescErr != nil {
209+ return diag .FromErr (sgDescErr )
210+ }
211+
212+ sgID := * sgDesc .SecurityGroups [0 ].GroupId
213+
214+ subDesc , _ := svc .DescribeSubnetsWithContext (ctx , & ec2.DescribeSubnetsInput {
215+ Filters : []* ec2.Filter {
216+ {
217+ Name : aws .String ("vpc-id" ),
218+ Values : []* string {aws .String (vpcID )},
219+ },
220+ },
221+ })
222+
223+ log .Printf ("[ERROR] %s %s %s" , instanceAmi , instanceType , sgID )
196224 runResult , err := svc .RunInstancesWithContext (ctx , & ec2.RunInstancesInput {
197225 ImageId : aws .String (instanceAmi ),
198226 KeyName : aws .String (pairName ),
199227 InstanceType : aws .String (instanceType ),
200228 MinCount : aws .Int64 (1 ),
201229 MaxCount : aws .Int64 (1 ),
202- SecurityGroups : []* string {
203- aws .String (securityGroup ),
204- },
230+ //SecurityGroups: []*string{
231+ //aws.String(securityGroup),
232+ //},
233+ SubnetId : aws .String (* subDesc .Subnets [0 ].SubnetId ),
234+ SecurityGroupIds : []* string {aws .String (sgID )},
205235 BlockDeviceMappings : []* ec2.BlockDeviceMapping {
206236 {
207237 //VirtualName: aws.String("Root"),
@@ -217,7 +247,17 @@ func resourceMachineCreate(ctx context.Context, d *schema.ResourceData, m interf
217247 },
218248 })
219249 if err != nil {
220- return diag .FromErr (err )
250+ diags = append (diags , diag.Diagnostic {
251+ Severity : diag .Error ,
252+ Summary : "Unable to create HashiCups client" ,
253+ Detail : fmt .Sprintf ("[ERROR] %s %s %s" , instanceAmi , instanceType , sgID ),
254+ })
255+
256+ diags = append (diags , diag .FromErr (err )[0 ])
257+
258+ //return diag.FromErr(err)
259+
260+ return diags
221261 }
222262
223263 // Add tags to the created instance
@@ -279,12 +319,9 @@ func resourceMachineDelete(ctx context.Context, d *schema.ResourceData, m interf
279319 pairName := d .Get ("key_name" ).(string )
280320 instanceID := d .Get ("instance_id" ).(string )
281321
282- _ , erro := svc .DeleteKeyPair (& ec2.DeleteKeyPairInput {
322+ svc .DeleteKeyPair (& ec2.DeleteKeyPairInput {
283323 KeyName : aws .String (pairName ),
284324 })
285- if erro != nil {
286- diag .FromErr (erro )
287- }
288325
289326 input := & ec2.TerminateInstancesInput {
290327 InstanceIds : []* string {
0 commit comments