Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New resource: azurerm_orchestrated_virtual_machine_scale_set #6626

Merged
merged 29 commits into from
May 21, 2020
Merged
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
b48bd4b
Refine VM ID parse functions
ArcturusZhang Apr 8, 2020
4f30719
Some follow ups on VM ID refactor
ArcturusZhang Apr 8, 2020
5658d03
VMSS and extension refactor
ArcturusZhang Apr 8, 2020
6facd42
VM extension refactor
ArcturusZhang Apr 8, 2020
94236b9
Managed disk ID
ArcturusZhang Apr 8, 2020
865f825
Fix CI
ArcturusZhang Apr 8, 2020
988a70c
Fix another missed one
ArcturusZhang Apr 8, 2020
48a2e32
go imports
ArcturusZhang Apr 9, 2020
d54f13f
Goimports again...
ArcturusZhang Apr 9, 2020
b873afe
Add new resource of VMSS in VMO mode
ArcturusZhang Apr 8, 2020
5a4cf2c
Modify VM to support create VM in VMSS VMO mode
ArcturusZhang Apr 8, 2020
79ddbbe
Fix some problems
ArcturusZhang Apr 9, 2020
b69881f
Initial commit of acc test
ArcturusZhang Apr 10, 2020
9d33259
Merge remote-tracking branch 'origin/master' into Orchestration-mode
ArcturusZhang Apr 10, 2020
0cb68ac
Finalize tests and doc
ArcturusZhang Apr 10, 2020
85d2761
Merge remote-tracking branch 'origin/master' into Orchestration-mode
ArcturusZhang Apr 10, 2020
86ea743
Merge remote-tracking branch 'origin/master' into Orchestration-mode
ArcturusZhang Apr 15, 2020
cec54f6
Finalize orchestration mode
ArcturusZhang Apr 22, 2020
8397ec4
Merge remote-tracking branch 'origin/master' into Orchestration-mode
ArcturusZhang Apr 22, 2020
aa5bb58
terrafmt
ArcturusZhang Apr 22, 2020
bd796fc
Resolve comments
ArcturusZhang Apr 26, 2020
cdcfa20
gofmt
ArcturusZhang Apr 26, 2020
b5bd514
terrafmt
ArcturusZhang Apr 26, 2020
4c43f60
Merge remote-tracking branch 'origin/master' into Orchestration-mode
ArcturusZhang May 8, 2020
23f8129
Rename virtual_machine_scale_set_orchestrator_vm to orchestrated_virt…
ArcturusZhang May 8, 2020
a7abdc5
Resolve comments
ArcturusZhang May 15, 2020
8351c72
Fix the bad link
ArcturusZhang May 15, 2020
8e7a2bd
Merge remote-tracking branch 'origin/master' into Orchestration-mode
ArcturusZhang May 18, 2020
563322f
Fix bad test cases
ArcturusZhang May 21, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Managed disk ID
  • Loading branch information
ArcturusZhang committed Apr 9, 2020
commit 94236b971104296a6ccbf16da6df7f9585e4c7a2
33 changes: 13 additions & 20 deletions azurerm/internal/services/compute/resource_arm_managed_disk.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"time"

"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-07-01/compute"
"github.com/hashicorp/go-azure-helpers/response"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
Expand All @@ -18,6 +17,7 @@ import (
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/locks"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/compute/parse"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/tags"
azSchema "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/tf/schema"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/timeouts"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"
)
Expand All @@ -29,9 +29,10 @@ func resourceArmManagedDisk() *schema.Resource {
Update: resourceArmManagedDiskUpdate,
Delete: resourceArmManagedDiskDelete,

Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
},
Importer: azSchema.ValidateResourceIDPriorToImport(func(id string) error {
_, err := parse.ManagedDiskID(id)
return err
}),

Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(30 * time.Minute),
Expand Down Expand Up @@ -502,25 +503,23 @@ func resourceArmManagedDiskRead(d *schema.ResourceData, meta interface{}) error
ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d)
defer cancel()

id, err := azure.ParseAzureResourceID(d.Id())
id, err := parse.ManagedDiskID(d.Id())
if err != nil {
return err
}
resGroup := id.ResourceGroup
name := id.Path["disks"]

resp, err := client.Get(ctx, resGroup, name)
resp, err := client.Get(ctx, id.ResourceGroup, id.Name)
if err != nil {
if utils.ResponseWasNotFound(resp.Response) {
log.Printf("[INFO] Disk %q does not exist - removing from state", d.Id())
d.SetId("")
return nil
}
return fmt.Errorf("[ERROR] Error making Read request on Azure Managed Disk %s (resource group %s): %s", name, resGroup, err)
return fmt.Errorf("Error making Read request on Azure Managed Disk %s (resource group %s): %s", id.Name, id.ResourceGroup, err)
}

d.Set("name", resp.Name)
d.Set("resource_group_name", resGroup)
d.Set("resource_group_name", id.ResourceGroup)
d.Set("zones", utils.FlattenStringSlice(resp.Zones))

if location := resp.Location; location != nil {
Expand Down Expand Up @@ -570,24 +569,18 @@ func resourceArmManagedDiskDelete(d *schema.ResourceData, meta interface{}) erro
ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d)
defer cancel()

id, err := azure.ParseAzureResourceID(d.Id())
id, err := parse.ManagedDiskID(d.Id())
if err != nil {
return err
}
resGroup := id.ResourceGroup
name := id.Path["disks"]

future, err := client.Delete(ctx, resGroup, name)
future, err := client.Delete(ctx, id.ResourceGroup, id.Name)
if err != nil {
if !response.WasNotFound(future.Response()) {
return fmt.Errorf("Error deleting Managed Disk %q (Resource Group %q): %+v", name, resGroup, err)
}
return fmt.Errorf("Error deleting Managed Disk %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err)
}

if err = future.WaitForCompletionRef(ctx, client.Client); err != nil {
if !response.WasNotFound(future.Response()) {
return fmt.Errorf("Error waiting for deletion of Managed Disk %q (Resource Group %q): %+v", name, resGroup, err)
}
return fmt.Errorf("Error waiting for deletion of Managed Disk %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err)
}

return nil
Expand Down