This commit is contained in:
2025-11-18 16:20:26 +03:00
parent 4b3f21d9be
commit e42fbcef39
397 changed files with 17560 additions and 1501 deletions

View File

@@ -439,6 +439,11 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Disk status",
},
"storage_policy_id": {
Type: schema.TypeFloat,
Computed: true,
Description: "Storage policy ID",
},
"tech_status": {
Type: schema.TypeString,
Computed: true,
@@ -462,6 +467,10 @@ func dataSourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
"to_clean": {
Type: schema.TypeBool,
Computed: true,
},
}
return rets

View File

@@ -123,6 +123,11 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "Page size",
},
"storage_policy_id": {
Type: schema.TypeInt,
Optional: true,
Description: "storage policy ID ",
},
"items": {
Type: schema.TypeList,
Computed: true,
@@ -508,6 +513,11 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Disk status",
},
"storage_policy_id": {
Type: schema.TypeFloat,
Computed: true,
Description: "Storage policy ID",
},
"tech_status": {
Type: schema.TypeString,
Computed: true,
@@ -531,6 +541,10 @@ func dataSourceDiskListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
"to_clean": {
Type: schema.TypeBool,
Computed: true,
},
},
},
},

View File

@@ -128,6 +128,11 @@ func dataSourceDiskListUnattachedSchemaMake() map[string]*schema.Schema {
Optional: true,
Description: "Page size",
},
"storage_policy_id": {
Type: schema.TypeInt,
Optional: true,
Description: "storage policy ID ",
},
"items": {
Type: schema.TypeList,
Computed: true,

View File

@@ -494,6 +494,11 @@ func dataSourceDiskDeletedListSchemaMake() map[string]*schema.Schema {
Computed: true,
Description: "Disk status",
},
"storage_policy_id": {
Type: schema.TypeFloat,
Computed: true,
Description: "Storage policy ID",
},
"tech_status": {
Type: schema.TypeString,
Computed: true,
@@ -517,6 +522,10 @@ func dataSourceDiskDeletedListSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
"to_clean": {
Type: schema.TypeBool,
Computed: true,
},
},
},
},

View File

@@ -120,11 +120,13 @@ func flattenDisk(d *schema.ResourceData, disk *disks.RecordDisk) {
d.Set("shareable", disk.Shareable)
d.Set("snapshots", flattenDiskSnapshotList(disk.Snapshots))
d.Set("status", disk.Status)
d.Set("storage_policy_id", disk.StoragePolicyID)
d.Set("tech_status", disk.TechStatus)
d.Set("type", disk.Type)
d.Set("vmid", disk.VMID)
d.Set("updated_by", disk.UpdatedBy)
d.Set("updated_time", disk.UpdatedTime)
d.Set("to_clean", disk.ToClean)
}
func flattenDiskReplication(rep disks.ItemReplication) []map[string]interface{} {
@@ -214,50 +216,52 @@ func flattenDiskList(dl *disks.ListDisks) []map[string]interface{} {
for _, disk := range dl.Data {
diskAcl, _ := json.Marshal(disk.ACL)
temp := map[string]interface{}{
"account_id": disk.AccountID,
"account_name": disk.AccountName,
"acl": string(diskAcl),
"computes": flattenDiskComputes(disk.Computes),
"created_by": disk.CreatedBy,
"created_time": disk.CreatedTime,
"deleted_by": disk.DeletedBy,
"deleted_time": disk.DeletedTime,
"desc": disk.Description,
"destruction_time": disk.DestructionTime,
"devicename": disk.DeviceName,
"gid": disk.GID,
"disk_id": disk.ID,
"image_id": disk.ImageID,
"images": disk.Images,
"iotune": flattenIOTune(disk.IOTune),
"machine_id": disk.MachineID,
"machine_name": disk.MachineName,
"milestones": disk.Milestones,
"disk_name": disk.Name,
"order": disk.Order,
"params": disk.Params,
"parent_id": disk.ParentID,
"pci_slot": disk.PCISlot,
"pool": disk.Pool,
"present_to": disk.PresentTo,
"purge_time": disk.PurgeTime,
"replication": flattenDiskReplication(disk.Replication),
"res_id": disk.ResID,
"res_name": disk.ResName,
"role": disk.Role,
"sep_id": disk.SepID,
"sep_type": disk.SepType,
"shareable": disk.Shareable,
"size_available": disk.SizeAvailable,
"size_max": disk.SizeMax,
"size_used": disk.SizeUsed,
"snapshots": flattenDiskSnapshotList(disk.Snapshots),
"status": disk.Status,
"tech_status": disk.TechStatus,
"type": disk.Type,
"vmid": disk.VMID,
"updated_by": disk.UpdatedBy,
"updated_time": disk.UpdatedTime,
"account_id": disk.AccountID,
"account_name": disk.AccountName,
"acl": string(diskAcl),
"computes": flattenDiskComputes(disk.Computes),
"created_by": disk.CreatedBy,
"created_time": disk.CreatedTime,
"deleted_by": disk.DeletedBy,
"deleted_time": disk.DeletedTime,
"desc": disk.Description,
"destruction_time": disk.DestructionTime,
"devicename": disk.DeviceName,
"gid": disk.GID,
"disk_id": disk.ID,
"image_id": disk.ImageID,
"images": disk.Images,
"iotune": flattenIOTune(disk.IOTune),
"machine_id": disk.MachineID,
"machine_name": disk.MachineName,
"milestones": disk.Milestones,
"disk_name": disk.Name,
"order": disk.Order,
"params": disk.Params,
"parent_id": disk.ParentID,
"pci_slot": disk.PCISlot,
"pool": disk.Pool,
"present_to": disk.PresentTo,
"purge_time": disk.PurgeTime,
"replication": flattenDiskReplication(disk.Replication),
"res_id": disk.ResID,
"res_name": disk.ResName,
"role": disk.Role,
"sep_id": disk.SepID,
"sep_type": disk.SepType,
"shareable": disk.Shareable,
"size_available": disk.SizeAvailable,
"size_max": disk.SizeMax,
"size_used": disk.SizeUsed,
"snapshots": flattenDiskSnapshotList(disk.Snapshots),
"status": disk.Status,
"storage_policy_id": disk.StoragePolicyID,
"tech_status": disk.TechStatus,
"type": disk.Type,
"vmid": disk.VMID,
"updated_by": disk.UpdatedBy,
"updated_time": disk.UpdatedTime,
"to_clean": disk.ToClean,
}
res = append(res, temp)
}

View File

@@ -62,6 +62,7 @@ func resourceDiskCreate(ctx context.Context, d *schema.ResourceData, m interface
req.AccountID = uint64(d.Get("account_id").(int))
req.Name = d.Get("disk_name").(string)
req.StoragePolicyID = uint64(d.Get("storage_policy_id").(int))
req.Size = uint64(d.Get("size_max").(int))
if sepId, ok := d.GetOk("sep_id"); ok {
@@ -235,6 +236,18 @@ func resourceDiskUpdate(ctx context.Context, d *schema.ResourceData, m interface
}
}
if d.HasChange("storage_policy_id") {
req := disks.ChangeDiskStoragePolicyRequest{
DiskID: disk.ID,
StoragePolicyID: uint64(d.Get("storage_policy_id").(int)),
}
_, err := c.CloudAPI().Disks().ChangeDiskStoragePolicy(ctx, req)
if err != nil {
return diag.FromErr(err)
}
}
if d.HasChange("size_max") {
oldSize, newSize := d.GetChange("size_max")
if oldSize.(int) < newSize.(int) {
@@ -353,6 +366,11 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
//ForceNew: true,
Description: "The unique ID of the subscriber-owner of the disk",
},
"storage_policy_id": {
Type: schema.TypeInt,
Required: true,
Description: "ID storage policy under which the disk will be created",
},
"created_by": {
Type: schema.TypeString,
Computed: true,
@@ -776,6 +794,10 @@ func resourceDiskSchemaMake() map[string]*schema.Schema {
Type: schema.TypeInt,
Computed: true,
},
"to_clean": {
Type: schema.TypeBool,
Computed: true,
},
}
return rets

View File

@@ -86,6 +86,9 @@ func utilityDiskListCheckPresence(ctx context.Context, d *schema.ResourceData, m
if size, ok := d.GetOk("size"); ok {
req.Size = uint64(size.(int))
}
if storagePolicyID, ok := d.GetOk("storage_policy_id"); ok {
req.StoragePolicyID = uint64(storagePolicyID.(int))
}
log.Debugf("utilityDiskListCheckPresence: load disk list")
diskList, err := c.CloudAPI().Disks().List(ctx, req)

View File

@@ -46,6 +46,9 @@ func utilityDiskListUnattachedCheckPresence(ctx context.Context, d *schema.Resou
if size, ok := d.GetOk("size"); ok {
req.Size = uint64(size.(int))
}
if storagePolicyID, ok := d.GetOk("storage_policy_id"); ok {
req.StoragePolicyID = uint64(storagePolicyID.(int))
}
log.Debugf("utilityDiskListUnattachedCheckPresence: load disk Unattached list")
unattachedList, err := c.CloudAPI().Disks().ListUnattached(ctx, req)