main 4.9.2
asteam 1 week ago
parent e04dab77cb
commit 1b81a71504

@ -1,40 +1,23 @@
## Version 4.9.1 ## Version 4.9.2
### Добавлено ### Добавлено
### Исправлено ### Исправлено
#### account #### image
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BATF-823 | Ошибка удаления resource 'decort_cb_account' в cloudbroker/account |
| BATF-832 | Ошибка отлючения resource 'decort_account' в cloudapi/account и resource 'decort_cb_account' в cloudbroker/account |
#### k8s
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BATF-955 | Ошибка редактирования resource 'decort_cb_k8s_cp' в cloudbroker/k8s | | BATF-999 | Изменен тип поля `url` с optional на required в resource `decort_cb_image` в cloudbroker/image |
#### sep #### kvmvm
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BATF-823 | Ошибка при получении данных при заданном поле `rg_id` в datasource `decort_cb_available_sep_and_pools_list` в cloudbroker/sep и в datasource `decort_available_sep_and_pools_list` в cloudapi/sep | | BATF-1002 | Ошибка при смене `ip_address` в блоке `network` приводящаяя к смене MAC адрес сети в resource `decort_compute` и `decort_cb_compute` в cloupapi/kvmvm и cloudbroker/kvmvm |
### Удалено ### Удалено
#### image #### image
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BATF-835 | Вычисляемое поле `meta` в resources `decort_cb_cdrom_image`, `decort_cb_virtual_image` и data source `decort_cb_image_list_stacks` в cloudbroker/image | | BATF-999 | Опциональное поле `file_path` в resource `decort_cb_image` в cloudbroker/image |
| BATF-825 | Опциональное поле `accounts` в resources `decort_cb_image`, `decort_cb_image_from_blank_compute` `decort_cb_image_from_platform_disk` в cloudbroker/image |
#### kvmvm
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BATF-962 | Поле `stateless` в resource `decort_kvmvm` в cloudapi/kvmvm|
#### vins
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BATF-881 | Значение по умолчанию в поле `pre_reservations_num` в resource `decort_vins` в cloudapi/vins и в resource `decort_cb_vins` в cloudbroker/vins |

@ -7,7 +7,7 @@ ZIPDIR = ./zip
BINARY=${NAME} BINARY=${NAME}
WORKPATH= ./examples/terraform.d/plugins/${HOSTNAME}/${NAMESPACE}/${NAMESPACE}/${VERSION}/${OS_ARCH} WORKPATH= ./examples/terraform.d/plugins/${HOSTNAME}/${NAMESPACE}/${NAMESPACE}/${VERSION}/${OS_ARCH}
MAINPATH = ./cmd/decort/ MAINPATH = ./cmd/decort/
VERSION=4.9.1 VERSION=4.9.2
OS_ARCH=$(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH) OS_ARCH=$(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH)
FILES = ${BINARY}_${VERSION}_darwin_amd64\ FILES = ${BINARY}_${VERSION}_darwin_amd64\

@ -20,6 +20,7 @@ description: |-
- `boot_type` (String) Boot type of image bios or uefi - `boot_type` (String) Boot type of image bios or uefi
- `image_type` (String) Image type linux, windows or other - `image_type` (String) Image type linux, windows or other
- `name` (String) Name of the rescue disk - `name` (String) Name of the rescue disk
- `url` (String) URL where to download media from
### Optional ### Optional
@ -30,7 +31,6 @@ description: |-
- `drivers` (List of String) List of types of compute suitable for image. Example: [ "KVM_X86" ] - `drivers` (List of String) List of types of compute suitable for image. Example: [ "KVM_X86" ]
- `enabled` (Boolean) - `enabled` (Boolean)
- `enabled_stacks` (List of Number) - `enabled_stacks` (List of Number)
- `file_path` (String) path to image file
- `hot_resize` (Boolean) Does this machine supports hot resize - `hot_resize` (Boolean) Does this machine supports hot resize
- `network_interface_naming` (String) select a network interface naming pattern for your Linux machine. eth - onboard, ens - pci slot naming - `network_interface_naming` (String) select a network interface naming pattern for your Linux machine. eth - onboard, ens - pci slot naming
- `password` (String) Optional password for the image - `password` (String) Optional password for the image
@ -40,7 +40,6 @@ description: |-
- `shared_with` (List of Number) - `shared_with` (List of Number)
- `sync_mode` (Boolean) Create image from a media identified by URL (in synchronous mode) - `sync_mode` (Boolean) Create image from a media identified by URL (in synchronous mode)
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts)) - `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `url` (String) URL where to download media from
- `username` (String) Optional username for the image - `username` (String) Optional username for the image
- `username_dl` (String) username for upload binary media - `username_dl` (String) username for upload binary media

@ -8,7 +8,7 @@ require (
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0
github.com/sirupsen/logrus v1.9.0 github.com/sirupsen/logrus v1.9.0
golang.org/x/net v0.23.0 golang.org/x/net v0.23.0
repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4 repository.basistech.ru/BASIS/decort-golang-sdk v1.11.6
) )
require ( require (

@ -273,5 +273,5 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4 h1:OEFgSEGjzut+vVMGeNgoNq3dtk63FbXB6yGLTywtAas= repository.basistech.ru/BASIS/decort-golang-sdk v1.11.6 h1:CTcMkUJgwDsUA+Az8FI5iLpZDk4ubOO4JnAfbOwDnM0=
repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4/go.mod h1:OaUynHHuSjWMzpfyoL4au6oLcUogqUkPPBKA15pbHWo= repository.basistech.ru/BASIS/decort-golang-sdk v1.11.6/go.mod h1:OaUynHHuSjWMzpfyoL4au6oLcUogqUkPPBKA15pbHWo=

@ -397,15 +397,12 @@ func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap,
newMap := newNetwork.(map[string]interface{}) newMap := newNetwork.(map[string]interface{})
if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) { if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) {
found = true found = true
switch { if (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != "") {
case (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != ""):
changeIpMap = append(changeIpMap, newMap) changeIpMap = append(changeIpMap, newMap)
found = true }
fallthrough if newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "" {
case newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "":
newMap["old_mac"] = oldMap["mac"] newMap["old_mac"] = oldMap["mac"]
changeMacMap = append(changeMacMap, newMap) changeMacMap = append(changeMacMap, newMap)
found = true
} }
} }
if found { if found {

@ -49,30 +49,13 @@ import (
func resourceImageCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { func resourceImageCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
log.Debugf("resourceImageCreate: called for image %s", d.Get("name").(string)) log.Debugf("resourceImageCreate: called for image %s", d.Get("name").(string))
url, urlOk := d.GetOk("url") url, _ := d.GetOk("url")
filePath, fileImageOk := d.GetOk("file_path")
if !urlOk && !fileImageOk {
return diag.Errorf("resourceImageCreate: no valid url or file_path specified")
}
if urlOk && fileImageOk {
return diag.Errorf("resourceImageCreate: either url or resource file_path should be specified")
}
c := m.(*controller.ControllerCfg) c := m.(*controller.ControllerCfg)
syncMode := d.Get("sync_mode").(bool) syncMode := d.Get("sync_mode").(bool)
var imageId uint64 var imageId uint64
if fileImageOk {
var err error
url, err = c.CloudBroker().Image().UploadImageFile(ctx, filePath.(string))
if err != nil {
return diag.FromErr(err)
}
}
if syncMode { if syncMode {
req, err := SyncCreateRequest(ctx, d, m, url.(string)) req, err := SyncCreateRequest(ctx, d, m, url.(string))
if err != nil { if err != nil {

@ -1174,15 +1174,9 @@ func resourceImageSchemaMake() map[string]*schema.Schema {
}, },
"url": { "url": {
Type: schema.TypeString, Type: schema.TypeString,
Optional: true, Required: true,
Computed: true,
Description: "URL where to download media from", Description: "URL where to download media from",
}, },
"file_path": {
Type: schema.TypeString,
Optional: true,
Description: "path to image file",
},
"boot_type": { "boot_type": {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Required: true,

@ -764,15 +764,12 @@ func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap,
newMap := newNetwork.(map[string]interface{}) newMap := newNetwork.(map[string]interface{})
if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) { if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) {
found = true found = true
switch { if (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != "") {
case (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != ""):
changeIpMap = append(changeIpMap, newMap) changeIpMap = append(changeIpMap, newMap)
found = true }
fallthrough if newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "" {
case newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "":
newMap["old_mac"] = oldMap["mac"] newMap["old_mac"] = oldMap["mac"]
changeMacMap = append(changeMacMap, newMap) changeMacMap = append(changeMacMap, newMap)
found = true
} }
} }
if found { if found {

@ -38,19 +38,11 @@ resource "decort_cb_image" "my_image" {
name = "test_image_rename" name = "test_image_rename"
#адрес образа #адрес образа
#опциональный параметр #обязательный параметр
#внимание, для создания ресурса обязательно должен быть указан или url, или file_path
#тип - строка #тип - строка
#используется при создании #используется при создании
url = "https://colba.decs.online/index.php/s/G3H7AREngzeKGw2/download" url = "https://colba.decs.online/index.php/s/G3H7AREngzeKGw2/download"
#путь к образу для загрузки
#опциональный параметр
#внимание, для создания ресурса обязательно должен быть указан или url, или file_path
#тип - строка
#используется при создании
file_path = "img.iso"
#тип загрузки образа #тип загрузки образа
#обязательный параметр #обязательный параметр
#тип - строка #тип - строка

Loading…
Cancel
Save