@@ -43,7 +43,7 @@ func (r *RemoteVmResource) Metadata(ctx context.Context, req resource.MetadataRe
4343}
4444
4545func (r * RemoteVmResource ) Schema (ctx context.Context , req resource.SchemaRequest , resp * resource.SchemaResponse ) {
46- resp .Schema = schemas .GetRemoteImageSchemaV1 (ctx )
46+ resp .Schema = schemas .GetRemoteImageSchemaV2 (ctx )
4747}
4848
4949func (r * RemoteVmResource ) Configure (ctx context.Context , req resource.ConfigureRequest , resp * resource.ConfigureResponse ) {
@@ -64,7 +64,7 @@ func (r *RemoteVmResource) Configure(ctx context.Context, req resource.Configure
6464}
6565
6666func (r * RemoteVmResource ) Create (ctx context.Context , req resource.CreateRequest , resp * resource.CreateResponse ) {
67- var data models.RemoteVmResourceModelV1
67+ var data models.RemoteVmResourceModelV2
6868
6969 telemetrySvc := telemetry .Get (ctx )
7070 telemetryEvent := telemetry .NewTelemetryItem (
@@ -369,11 +369,12 @@ func (r *RemoteVmResource) Create(ctx context.Context, req resource.CreateReques
369369
370370 externalIp := ""
371371 internalIp := ""
372+ data .HostUrl = types .StringValue (stoppedVm .HostUrl )
372373 retryAttempts := 10
373374 var refreshVm * apimodels.VirtualMachine
374375 var refreshDiag diag.Diagnostics
375376 for {
376- refreshVm , refreshDiag = apiclient .GetVm (ctx , hostConfig , refreshVm .ID )
377+ refreshVm , refreshDiag = apiclient .GetVm (ctx , hostConfig , stoppedVm .ID )
377378 if ! refreshDiag .HasError () {
378379 externalIp = refreshVm .HostExternalIpAddress
379380 internalIp = refreshVm .InternalIpAddress
@@ -450,7 +451,7 @@ func (r *RemoteVmResource) Create(ctx context.Context, req resource.CreateReques
450451}
451452
452453func (r * RemoteVmResource ) Read (ctx context.Context , req resource.ReadRequest , resp * resource.ReadResponse ) {
453- var data models.RemoteVmResourceModelV1
454+ var data models.RemoteVmResourceModelV2
454455
455456 telemetrySvc := telemetry .Get (ctx )
456457 telemetryEvent := telemetry .NewTelemetryItem (
@@ -522,8 +523,8 @@ func (r *RemoteVmResource) Read(ctx context.Context, req resource.ReadRequest, r
522523}
523524
524525func (r * RemoteVmResource ) Update (ctx context.Context , req resource.UpdateRequest , resp * resource.UpdateResponse ) {
525- var data models.RemoteVmResourceModelV1
526- var currentData models.RemoteVmResourceModelV1
526+ var data models.RemoteVmResourceModelV2
527+ var currentData models.RemoteVmResourceModelV2
527528
528529 telemetrySvc := telemetry .Get (ctx )
529530 telemetryEvent := telemetry .NewTelemetryItem (
@@ -753,6 +754,7 @@ func (r *RemoteVmResource) Update(ctx context.Context, req resource.UpdateReques
753754
754755 externalIp := ""
755756 internalIp := ""
757+ data .HostUrl = types .StringValue (vm .HostUrl )
756758 retryAttempts := 10
757759 var refreshVm * apimodels.VirtualMachine
758760 var refreshDiag diag.Diagnostics
@@ -860,7 +862,7 @@ func (r *RemoteVmResource) Update(ctx context.Context, req resource.UpdateReques
860862}
861863
862864func (r * RemoteVmResource ) Delete (ctx context.Context , req resource.DeleteRequest , resp * resource.DeleteResponse ) {
863- var data models.RemoteVmResourceModelV1
865+ var data models.RemoteVmResourceModelV2
864866 // Read Terraform prior state data into the model
865867 resp .Diagnostics .Append (req .State .Get (ctx , & data )... )
866868
@@ -988,11 +990,16 @@ func (r *RemoteVmResource) ImportState(ctx context.Context, req resource.ImportS
988990
989991func (r * RemoteVmResource ) UpgradeState (ctx context.Context ) map [int64 ]resource.StateUpgrader {
990992 v0Schema := schemas .GetRemoteImageSchemaV0 (ctx )
993+ V1Schema := schemas .GetRemoteImageSchemaV1 (ctx )
991994 return map [int64 ]resource.StateUpgrader {
992995 0 : {
993996 PriorSchema : & v0Schema ,
994997 StateUpgrader : UpgradeStateToV1 ,
995998 },
999+ 1 : {
1000+ PriorSchema : & V1Schema ,
1001+ StateUpgrader : UpgradeStateToV2 ,
1002+ },
9961003 }
9971004}
9981005
@@ -1038,7 +1045,50 @@ func UpgradeStateToV1(ctx context.Context, req resource.UpgradeStateRequest, res
10381045 resp .Diagnostics .Append (resp .State .Set (ctx , & upgradedStateData )... )
10391046}
10401047
1041- func updateReverseProxyHostsTarget (ctx context.Context , data * models.RemoteVmResourceModelV1 , hostConfig apiclient.HostConfig , targetVm * apimodels.VirtualMachine ) ([]reverseproxy.ReverseProxyHost , diag.Diagnostics ) {
1048+ func UpgradeStateToV2 (ctx context.Context , req resource.UpgradeStateRequest , resp * resource.UpgradeStateResponse ) {
1049+ var priorStateData models.RemoteVmResourceModelV1
1050+ resp .Diagnostics .Append (req .State .Get (ctx , & priorStateData )... )
1051+
1052+ if resp .Diagnostics .HasError () {
1053+ return
1054+ }
1055+
1056+ upgradedStateData := models.RemoteVmResourceModelV2 {
1057+ Authenticator : priorStateData .Authenticator ,
1058+ Host : priorStateData .Host ,
1059+ HostUrl : types .StringUnknown (),
1060+ Orchestrator : priorStateData .Orchestrator ,
1061+ ID : priorStateData .ID ,
1062+ OsType : priorStateData .OsType ,
1063+ ExternalIp : priorStateData .ExternalIp ,
1064+ InternalIp : priorStateData .InternalIp ,
1065+ OrchestratorHostId : priorStateData .OrchestratorHostId ,
1066+ CatalogId : priorStateData .CatalogId ,
1067+ Version : priorStateData .Version ,
1068+ Architecture : priorStateData .Architecture ,
1069+ Name : priorStateData .Name ,
1070+ Owner : priorStateData .Owner ,
1071+ CatalogConnection : priorStateData .CatalogConnection ,
1072+ Path : priorStateData .Path ,
1073+ Specs : priorStateData .Specs ,
1074+ PostProcessorScripts : priorStateData .PostProcessorScripts ,
1075+ OnDestroyScript : priorStateData .OnDestroyScript ,
1076+ SharedFolder : priorStateData .SharedFolder ,
1077+ Config : priorStateData .Config ,
1078+ PrlCtl : priorStateData .PrlCtl ,
1079+ RunAfterCreate : priorStateData .RunAfterCreate ,
1080+ Timeouts : priorStateData .Timeouts ,
1081+ ForceChanges : priorStateData .ForceChanges ,
1082+ KeepRunning : priorStateData .KeepRunning ,
1083+ ReverseProxyHosts : priorStateData .ReverseProxyHosts ,
1084+ }
1085+
1086+ println (fmt .Sprintf ("Upgrading state from version %v" , upgradedStateData ))
1087+
1088+ resp .Diagnostics .Append (resp .State .Set (ctx , & upgradedStateData )... )
1089+ }
1090+
1091+ func updateReverseProxyHostsTarget (ctx context.Context , data * models.RemoteVmResourceModelV2 , hostConfig apiclient.HostConfig , targetVm * apimodels.VirtualMachine ) ([]reverseproxy.ReverseProxyHost , diag.Diagnostics ) {
10421092 resultDiagnostic := diag.Diagnostics {}
10431093 var refreshedVm * apimodels.VirtualMachine
10441094 var rpDiag diag.Diagnostics
0 commit comments