gos_tech_4.4.3 v3.2.1
stSolo 2 years ago
parent cb7e573d26
commit 9402d6f291

@ -1,36 +1,5 @@
### New data sources
### Version 3.2.1
- decort_disk_snapshot_list
- decort_disk_snapshot
- decort_disk_list_deleted
- decort_disk_list_unattached
- decort_disk_list_types
- decort_disk_list_types_detailed
### Bug fixes
### New resources
- decort_disk_snapshot
### New features
- add dockerfile for creating an image for the tf provider
- change behaviour to disk resource: check the disk status during update the tf state
- add disks block to kvmvm resource
### New articles on wiki
- [Сборка terraform провайдера в образ](https://github.com/rudecs/terraform-provider-decort/wiki/04.05-Сборка-terraform-провайдера-в-образ)
- [Массовое создание ресурсов. Мета аргументы](https://github.com/rudecs/terraform-provider-decort/wiki/05.04-Массовое-создание-ресурсов.-Мета-аргументы)
- [Удаление ресурсов](https://github.com/rudecs/terraform-provider-decort/wiki/05.05-Удаление-ресурсов)
- [Управление снимком диска](https://github.com/rudecs/terraform-provider-decort/wiki/07.01.19-Resource-функция-decort_disk_snapshot-управление-снимком-диска)
- [Получение списка типов для диска](https://github.com/rudecs/terraform-provider-decort/wiki/06.01.39-Data-функция-decort_disk_list_types-получение-списка-типов-диска)
- [Расширенное получение списка поддерживаемых типов](https://github.com/rudecs/terraform-provider-decort/wiki/06.01.40-Data-функция-decort_disk_list_types_detailed-расширенное-получение-информации-о-поддерживаемых-типах-дисков)
- [Получение информации об удаленных дисках](https://github.com/rudecs/terraform-provider-decort/wiki/06.01.41-Data-функция-decort_disk_list_deleted-получение-информации-об-удаленных-дисках)
- [Получение информации о неподключенных дисках](https://github.com/rudecs/terraform-provider-decort/wiki/06.01.42-Data-функция-decort_disk_list_unattached-получение-информации-о-неподключенных-дисках)
- [Получение списка снимков состояния диска](https://github.com/rudecs/terraform-provider-decort/wiki/06.01.43-Data-функция-decort_disk_snapshot_list-получение-списка-снимков-состояния-диска)
- [Получение информацуии о снимке состояния диска](https://github.com/rudecs/terraform-provider-decort/wiki/06.01.44-Data-функция-decort_disk_snapshot-получение-информации-о-снимке-состояния)
### Update articles
- [Управление дисковыми ресурсами.](https://github.com/rudecs/terraform-provider-decort/wiki/07.01.03-Resource-функция-decort_disk-управление-дисковыми-ресурсами)
- [Управление виртуальными серверами, создаваемыми на базе системы виртуализации KVM](https://github.com/rudecs/terraform-provider-decort/wiki/07.01.01-Resource-функция-decort_kvmvm-управление-виртуальными-машинами-на-базе-KVM)
- Fix bug with creating kvmvm. Now, the resource kvmvm creates with user defined network.

@ -2,7 +2,7 @@ FROM docker.io/hashicorp/terraform:latest
WORKDIR /opt/decort/tf/
COPY provider.tf ./
COPY terraform-provider-decort ./terraform.d/plugins/digitalenergy.online/decort/decort/3.1.1/linux_amd64/
COPY terraform-provider-decort ./terraform.d/plugins/digitalenergy.online/decort/decort/3.2.1/linux_amd64/
RUN terraform init
WORKDIR /tf

@ -6,7 +6,7 @@ NAME=terraform-provider-decort
BINARY=${NAME}.exe
WORKPATH= ./examples/terraform.d/plugins/${HOSTNAME}/${NAMESPACE}/${NAMESPACE}/${VERSION}/${OS_ARCH}
MAINPATH = ./cmd/decort/
VERSION=3.1.1
VERSION=3.2.1
#OS_ARCH=darwin_amd64
#OS_ARCH=windows_amd64
#OS_ARCH=linux_amd64
@ -15,7 +15,7 @@ default: install
image:
GOOS=linux GOARCH=amd64 go build -o terraform-provider-decort ./cmd/decort/
docker build . -t rudecs/tf:3.1.1
docker build . -t rudecs/tf:3.2.1
rm terraform-provider-decort
lint:

@ -76,8 +76,7 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf
urlValues.Add("cpu", fmt.Sprintf("%d", d.Get("cpu").(int)))
urlValues.Add("ram", fmt.Sprintf("%d", d.Get("ram").(int)))
urlValues.Add("imageId", fmt.Sprintf("%d", d.Get("image_id").(int)))
urlValues.Add("bootDisk", fmt.Sprintf("%d", d.Get("boot_disk_size").(int)))
urlValues.Add("netType", "NONE") // at the 1st step create isolated compute
urlValues.Add("netType", "NONE")
urlValues.Add("start", "0") // at the 1st step create compute in a stopped state
argVal, argSet := d.GetOk("description")
@ -97,9 +96,26 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf
urlValues.Add("ipaType", ipaType.(string))
}
if bootSize, ok := d.GetOk("boot_disk_size"); ok {
urlValues.Add("bootDisk", fmt.Sprintf("%d", bootSize.(int)))
}
if IS, ok := d.GetOk("is"); ok {
urlValues.Add("IS", IS.(string))
}
if networks, ok := d.GetOk("network"); ok {
if networks.(*schema.Set).Len() > 0 {
ns := networks.(*schema.Set).List()
defaultNetwork := ns[0].(map[string]interface{})
urlValues.Set("netType", defaultNetwork["net_type"].(string))
urlValues.Add("netId", fmt.Sprintf("%d", defaultNetwork["net_id"].(int)))
ipaddr, ipSet := defaultNetwork["ip_address"] // "ip_address" key is optional
if ipSet {
urlValues.Add("ipAddr", ipaddr.(string))
}
}
}
/*
sshKeysVal, sshKeysSet := d.GetOk("ssh_keys")
@ -172,7 +188,7 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf
argVal, argSet = d.GetOk("network")
if argSet && argVal.(*schema.Set).Len() > 0 {
log.Debugf("resourceComputeCreate: calling utilityComputeNetworksConfigure to attach %d network(s)", argVal.(*schema.Set).Len())
err = utilityComputeNetworksConfigure(ctx, d, m, false) // do_delta=false, as we are working on a new compute
err = utilityComputeNetworksConfigure(ctx, d, m, false, true) // do_delta=false, as we are working on a new compute
if err != nil {
log.Errorf("resourceComputeCreate: error when attaching networks to a new Compute ID %d: %s", compId, err)
cleanup = true
@ -332,7 +348,7 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf
}
// 4. Calculate and apply changes to network connections
err := utilityComputeNetworksConfigure(ctx, d, m, true) // pass do_delta = true to apply changes, if any
err := utilityComputeNetworksConfigure(ctx, d, m, true, false) // pass do_delta = true to apply changes, if any
if err != nil {
return diag.FromErr(err)
}
@ -534,7 +550,7 @@ func ResourceComputeSchemaMake() map[string]*schema.Schema {
"boot_disk_size": {
Type: schema.TypeInt,
Required: true,
Optional: true,
Description: "This compute instance boot disk size in GB. Make sure it is large enough to accomodate selected OS image.",
},
@ -628,6 +644,7 @@ func ResourceComputeSchemaMake() map[string]*schema.Schema {
"network": {
Type: schema.TypeSet,
Optional: true,
MinItems: 1,
MaxItems: constants.MaxNetworksPerCompute,
Elem: &schema.Resource{
Schema: networkSubresourceSchemaMake(),

@ -146,7 +146,7 @@ func utilityComputeExtraDisksConfigure(ctx context.Context, d *schema.ResourceDa
return nil
}
func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData, m interface{}, do_delta bool) error {
func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData, m interface{}, do_delta bool, skip_zero bool) error {
// "d" is filled with data according to computeResource schema, so extra networks config is retrieved via "network" key
// If do_delta is true, this function will identify changes between new and existing specs for network and try to
// update compute configuration accordingly
@ -165,7 +165,10 @@ func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData
return nil
}
for _, runner := range new_set.(*schema.Set).List() {
for i, runner := range new_set.(*schema.Set).List() {
if i == 0 && skip_zero {
continue
}
urlValues := &url.Values{}
net_data := runner.(map[string]interface{})
urlValues.Add("computeId", d.Id())

@ -2,7 +2,7 @@ terraform {
required_providers {
decort = {
source = "digitalenergy.online/decort/decort"
version = "3.1.1"
version = "3.2.1"
}
}
}

Loading…
Cancel
Save