Fix resource account, add comment for a resource account sample
This commit is contained in:
@@ -69,24 +69,56 @@ func resourceAccountCreate(d *schema.ResourceData, m interface{}) error {
|
|||||||
if resLimits, ok := d.GetOk("resource_limits"); ok {
|
if resLimits, ok := d.GetOk("resource_limits"); ok {
|
||||||
resLimit := resLimits.([]interface{})[0]
|
resLimit := resLimits.([]interface{})[0]
|
||||||
resLimitConv := resLimit.(map[string]interface{})
|
resLimitConv := resLimit.(map[string]interface{})
|
||||||
|
|
||||||
if resLimitConv["cu_m"] != nil {
|
if resLimitConv["cu_m"] != nil {
|
||||||
urlValues.Add("maxMemoryCapacity", strconv.Itoa(int(resLimitConv["cu_m"].(float64))))
|
maxMemCap := int(resLimitConv["cu_m"].(float64))
|
||||||
|
if maxMemCap == 0 {
|
||||||
|
urlValues.Add("maxMemoryCapacity", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxMemoryCapacity", strconv.Itoa(maxMemCap))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if resLimitConv["cu_d"] != nil {
|
if resLimitConv["cu_d"] != nil {
|
||||||
urlValues.Add("maxVDiskCapacity", strconv.Itoa(int(resLimitConv["cu_d"].(float64))))
|
maxDiskCap := int(resLimitConv["cu_d"].(float64))
|
||||||
|
if maxDiskCap == 0 {
|
||||||
|
urlValues.Add("maxVDiskCapacity", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxVDiskCapacity", strconv.Itoa(maxDiskCap))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if resLimitConv["cu_c"] != nil {
|
if resLimitConv["cu_c"] != nil {
|
||||||
urlValues.Add("maxCPUCapacity", strconv.Itoa(int(resLimitConv["cu_c"].(float64))))
|
maxCPUCap := int(resLimitConv["cu_c"].(float64))
|
||||||
|
if maxCPUCap == 0 {
|
||||||
|
urlValues.Add("maxCPUCapacity", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxCPUCapacity", strconv.Itoa(maxCPUCap))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if resLimitConv["cu_i"] != nil {
|
if resLimitConv["cu_i"] != nil {
|
||||||
urlValues.Add("maxNumPublicIP", strconv.Itoa(int(resLimitConv["cu_i"].(float64))))
|
maxNumPublicIP := int(resLimitConv["cu_i"].(float64))
|
||||||
|
if maxNumPublicIP == 0 {
|
||||||
|
urlValues.Add("maxNumPublicIP", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxNumPublicIP", strconv.Itoa(maxNumPublicIP))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if resLimitConv["cu_np"] != nil {
|
if resLimitConv["cu_np"] != nil {
|
||||||
urlValues.Add("maxNetworkPeerTransfer", strconv.Itoa(int(resLimitConv["cu_np"].(float64))))
|
maxNP := int(resLimitConv["cu_np"].(float64))
|
||||||
|
if maxNP == 0 {
|
||||||
|
urlValues.Add("maxNetworkPeerTransfer", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxNetworkPeerTransfer", strconv.Itoa(maxNP))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if resLimitConv["gpu_units"] != nil {
|
if resLimitConv["gpu_units"] != nil {
|
||||||
urlValues.Add("gpu_units", strconv.Itoa(int(resLimitConv["gpu_units"].(float64))))
|
gpuUnits := int(resLimitConv["gpu_units"].(float64))
|
||||||
|
if gpuUnits == 0 {
|
||||||
|
urlValues.Add("gpu_units", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("gpu_units", strconv.Itoa(gpuUnits))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -223,22 +255,55 @@ func resourceAccountEdit(d *schema.ResourceData, m interface{}) error {
|
|||||||
resLimitConv := resLimit.(map[string]interface{})
|
resLimitConv := resLimit.(map[string]interface{})
|
||||||
|
|
||||||
if resLimitConv["cu_m"] != nil {
|
if resLimitConv["cu_m"] != nil {
|
||||||
urlValues.Add("maxMemoryCapacity", strconv.Itoa(int(resLimitConv["cu_m"].(float64))))
|
maxMemCap := int(resLimitConv["cu_m"].(float64))
|
||||||
|
if maxMemCap == 0 {
|
||||||
|
urlValues.Add("maxMemoryCapacity", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxMemoryCapacity", strconv.Itoa(maxMemCap))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if resLimitConv["cu_d"] != nil {
|
if resLimitConv["cu_d"] != nil {
|
||||||
urlValues.Add("maxVDiskCapacity", strconv.Itoa(int(resLimitConv["cu_d"].(float64))))
|
maxDiskCap := int(resLimitConv["cu_d"].(float64))
|
||||||
|
if maxDiskCap == 0 {
|
||||||
|
urlValues.Add("maxVDiskCapacity", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxVDiskCapacity", strconv.Itoa(maxDiskCap))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if resLimitConv["cu_c"] != nil {
|
if resLimitConv["cu_c"] != nil {
|
||||||
urlValues.Add("maxCPUCapacity", strconv.Itoa(int(resLimitConv["cu_c"].(float64))))
|
maxCPUCap := int(resLimitConv["cu_c"].(float64))
|
||||||
|
if maxCPUCap == 0 {
|
||||||
|
urlValues.Add("maxCPUCapacity", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxCPUCapacity", strconv.Itoa(maxCPUCap))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if resLimitConv["cu_i"] != nil {
|
if resLimitConv["cu_i"] != nil {
|
||||||
urlValues.Add("maxNumPublicIP", strconv.Itoa(int(resLimitConv["cu_i"].(float64))))
|
maxNumPublicIP := int(resLimitConv["cu_i"].(float64))
|
||||||
|
if maxNumPublicIP == 0 {
|
||||||
|
urlValues.Add("maxNumPublicIP", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxNumPublicIP", strconv.Itoa(maxNumPublicIP))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if resLimitConv["cu_np"] != nil {
|
if resLimitConv["cu_np"] != nil {
|
||||||
urlValues.Add("maxNetworkPeerTransfer", strconv.Itoa(int(resLimitConv["cu_np"].(float64))))
|
maxNP := int(resLimitConv["cu_np"].(float64))
|
||||||
|
if maxNP == 0 {
|
||||||
|
urlValues.Add("maxNetworkPeerTransfer", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("maxNetworkPeerTransfer", strconv.Itoa(maxNP))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if resLimitConv["gpu_units"] != nil {
|
if resLimitConv["gpu_units"] != nil {
|
||||||
urlValues.Add("gpu_units", strconv.Itoa(int(resLimitConv["gpu_units"].(float64))))
|
gpuUnits := int(resLimitConv["gpu_units"].(float64))
|
||||||
|
if gpuUnits == 0 {
|
||||||
|
urlValues.Add("gpu_units", strconv.Itoa(-1))
|
||||||
|
} else {
|
||||||
|
urlValues.Add("gpu_units", strconv.Itoa(gpuUnits))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int)))
|
urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int)))
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
/*
|
/*
|
||||||
Пример использования
|
Пример использования
|
||||||
Ресурса cdrom image
|
Ресурса account
|
||||||
Ресурс позволяет:
|
Ресурс позволяет:
|
||||||
1. Создавать образ
|
1. Создавать аккаунт
|
||||||
2. Редактировать образ
|
2. Редактировать аккаунт
|
||||||
3. Удалять образ
|
3. Удалять аккаунт
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#Расскомментируйте этот код,
|
#Расскомментируйте этот код,
|
||||||
#и внесите необходимые правки в версию и путь,
|
#и внесите необходимые правки в версию и путь,
|
||||||
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
|
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
|
||||||
|
/*
|
||||||
terraform {
|
terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
decort = {
|
decort = {
|
||||||
@@ -19,7 +19,7 @@ terraform {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
provider "decort" {
|
provider "decort" {
|
||||||
authenticator = "oauth2"
|
authenticator = "oauth2"
|
||||||
@@ -31,26 +31,126 @@ provider "decort" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
resource "decort_account" "a" {
|
resource "decort_account" "a" {
|
||||||
#id аккаунта
|
#имя аккаунта
|
||||||
#обязательный параметр
|
#обязательный параметр
|
||||||
|
#тип - строка
|
||||||
|
#используется при создании и редактировании аккаунта
|
||||||
|
account_name = "new_my_account"
|
||||||
|
|
||||||
|
#имя пользователя - создателя аккаунта
|
||||||
|
#обязательный параметр
|
||||||
|
#тип - строка
|
||||||
|
username = "username@decs3o"
|
||||||
|
|
||||||
|
#доступность аккаунта
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - будев тип
|
||||||
|
#может применяться при редактировании аккаунта
|
||||||
|
enable = true
|
||||||
|
|
||||||
|
#id аккаунта, позволяет сформировать .tfstate, если аккаунт имеет в платформе
|
||||||
|
#необязательный параметр
|
||||||
#тип - число
|
#тип - число
|
||||||
account_id = 11111
|
account_id = 11111
|
||||||
account_name = "new_my_account"
|
|
||||||
username = "isername@decs3o"
|
#электронная почта, на которую будет отправлена информация о доступе
|
||||||
enable = true
|
#необязательный параметр
|
||||||
|
#тип - строка
|
||||||
|
#применяется при создании аккаунта
|
||||||
|
emailaddress = "fff@fff.ff"
|
||||||
|
|
||||||
|
#отправлять ли на электронную почту письмо о доступе
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - булев тип
|
||||||
|
#применяется при создании аккаунта и редактировании аккаунта
|
||||||
send_access_emails = true
|
send_access_emails = true
|
||||||
|
|
||||||
|
#добавление/редактирование/удаление пользователей, к которым привязан аккаунт
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - объект, кол-во таких объектов не ограничено
|
||||||
/*users {
|
/*users {
|
||||||
|
#id пользователя
|
||||||
|
#обязательный параметр
|
||||||
|
#тип - строка
|
||||||
user_id = "username_2@decs3o"
|
user_id = "username_2@decs3o"
|
||||||
|
|
||||||
|
#тип доступа пользователя
|
||||||
|
#обязательный параметр
|
||||||
|
#тип - строка
|
||||||
|
#возможные параметры:
|
||||||
|
#R - чтение
|
||||||
|
#RCX - запись
|
||||||
|
#ARCXDU - админ
|
||||||
access_type = "R"
|
access_type = "R"
|
||||||
|
|
||||||
|
#рекурсивное удаление пользователя из всех ресурсов аккаунтов
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - булев тип
|
||||||
|
#по-умолчанию - false
|
||||||
|
#применяется при удалении пользователя из аккаунта
|
||||||
|
recursive_delete = true
|
||||||
}
|
}
|
||||||
users {
|
users {
|
||||||
user_id = "username_1@decs3o"
|
user_id = "username_1@decs3o"
|
||||||
access_type = "R"
|
access_type = "R"
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
#ограничение используемых ресурсов
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - объект
|
||||||
|
#используется при создании и редактировании
|
||||||
resource_limits {
|
resource_limits {
|
||||||
|
#кол-во используемых ядер cpu
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - ичсло
|
||||||
|
#если установлена -1 - кол-во неограичено
|
||||||
|
cu_c = 2
|
||||||
|
|
||||||
|
#кол-во используемой RAM в МБ
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - ичсло
|
||||||
|
#если установлена -1 - кол-во неограичено
|
||||||
cu_m = 1024
|
cu_m = 1024
|
||||||
|
|
||||||
|
#размер дисков, в ГБ
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - ичсло
|
||||||
|
#если установлена -1 - размер неограичен
|
||||||
|
cu_d = 23
|
||||||
|
|
||||||
|
#кол-во используемых публичных IP
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - ичсло
|
||||||
|
#если установлена -1 - кол-во неограичено
|
||||||
|
cu_i = 2
|
||||||
|
|
||||||
|
#ограничения на кол-во передачи данных, в ГБ
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - ичсло
|
||||||
|
#если установлена -1 - кол-во неограичено
|
||||||
|
cu_np = 2
|
||||||
|
|
||||||
|
#кол-во графических процессоров
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - ичсло
|
||||||
|
#если установлена -1 - кол-во неограичено
|
||||||
|
gpu_units = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#восстановление аккаунта
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - булев тип
|
||||||
|
#применяется к удаленным аккаунтам
|
||||||
|
#по-умолчанию - false
|
||||||
|
#retore = false
|
||||||
|
|
||||||
|
#мгновеное удаление аккаунта, если да - то аккаунт невозможно будет восстановить
|
||||||
|
#необязательный параметр
|
||||||
|
#тип - булев тип
|
||||||
|
#используется при удалении аккаунта
|
||||||
|
#по-умолчанию - false
|
||||||
|
#permanently = true
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user