|
|
|
@ -1,187 +0,0 @@
|
|
|
|
|
_Resource_ функция **decort_disk** служит для управления дисковыми ресурсами ("disk") в облачной платформе DECORT.
|
|
|
|
|
|
|
|
|
|
## Изменения в версии 3.4.0
|
|
|
|
|
- В аргументы добавлено опциональное поле shareable
|
|
|
|
|
- В возвращаемые значения добавлено новое поле present_to
|
|
|
|
|
- Убраны поля compute_id и compute_name и заменены на поле computes, которое представляет из себя список структур [см. ниже](#описание-структуры-computes)
|
|
|
|
|
|
|
|
|
|
## Изменения в версии 3.2.0
|
|
|
|
|
- Начиная с версии 3.2.0 упразднено поле restore в конфигурации ресурса. Провайдер проверяет, при обновлении конфигурации ресурса, его статус, в случае, если диск был удален (статус - **DELETED**) в платформе (помещен в корзину), провайдер его восстанавливает, используя restore автоматически.
|
|
|
|
|
- Начиная с версии 3.2.0 провайдер, при обновлении ресурса, проверяет его статус. В случае, если диск имеет статус **DESTROYED** или **PURGED**, провайдер создает новый диск с требуемой конфигурацией и параметрами.
|
|
|
|
|
- При изменении параметров `account_id` и `gid` ресурс будет пересоздан, т.е. старый диск будет удален и произойдет создание нового диска.
|
|
|
|
|
|
|
|
|
|
## Аргументы
|
|
|
|
|
_Resource_ функция **decort_disk** принимает следующие аргументы:
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| account_id | int | :heavy_check_mark: | id аккаунта |
|
|
|
|
|
| disk_name | string | :heavy_check_mark: | Наименование диска |
|
|
|
|
|
| size_max | int | :heavy_check_mark: | Размер диска, ГБ |
|
|
|
|
|
| gid | int | :heavy_check_mark: | id площадки (grid id) |
|
|
|
|
|
| pool | string | :x: | Pool для расположения диска |
|
|
|
|
|
| sep_id | int | :x: | id sep |
|
|
|
|
|
| desc | string | :x: | Описание диска |
|
|
|
|
|
| type | string | :x: | Тип диска, не может быть изменен после создания. Доступные значения:<br/>"B" - признак загрузочного диска ("boot").<br/>"D" - признак дополнительного диска ("data") |
|
|
|
|
|
| detach | bool | :x: | Отсоединение диска от compute. Используется при удалении |
|
|
|
|
|
| permanently | bool | :x: | Мгновенное удаление диска. Используется при удалении |
|
|
|
|
|
| reason | string | :x: | Причина удаления. Используется при удалении |
|
|
|
|
|
| shareable | bool | :x: | Флаг, отвечающий за доступность диска дургим ресурсам |
|
|
|
|
|
| iotune | Struct{}[см. ниже](#описание-структуры-iotune) | :x: | Информация об ограничениях IO диска |
|
|
|
|
|
|
|
|
|
|
### Описание структуры iotune
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| read_bytes_sec | int | :x: | Кол-во байт для чтения в секунду |
|
|
|
|
|
| read_bytes_sec_max | int | :x: | Максимальное кол-во байт для чтения |
|
|
|
|
|
| read_iops_sec | int | :x: | Кол-во операций чтения io в секунду | |
|
|
|
|
|
| read_iops_sec_max | int | :x: | Максимальное число io операций чтения |
|
|
|
|
|
| size_iops_sec | int | :x: | Размер io операций |
|
|
|
|
|
| total_bytes_sec | int | :x: | Общий размер байт в секунду |
|
|
|
|
|
| total_bytes_sec_max | int | :x: | Максимальный общий размер байт в секунду |
|
|
|
|
|
| total_iops_sec | int | :x: | Общее кол-во io операций в секунду |
|
|
|
|
|
| total_iops_sec_max | int | :x: | Максимальное общее кол-во io операций в секунду |
|
|
|
|
|
| write_bytes_sec | int | :x: | Кол-во байт для записи в секунду |
|
|
|
|
|
| write_bytes_sec_max | int | :x: | Максимальное кол-во байт для записи в секунду |
|
|
|
|
|
| write_iops_sec | int | :x: | Кол-во операций записи в секунду |
|
|
|
|
|
| write_iops_sec_max | int | :x: | Максимальное число операций записей |
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
В случае успешного выполнения _data source_ функция **decort_disk** возвращает в указанную при вызове переменную следующие значения:
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| account_id | int | Уникальный идентификатор подписчика-владельца диска |
|
|
|
|
|
| account_name | string | Имя подписчика ("account"), которому принадлежит данный диск |
|
|
|
|
|
| computes | Struct{} [см. ниже](#описание-структуры-computes) | Информация о компьютах (виртуальных машинах) |
|
|
|
|
|
| created_time | int | Время создания |
|
|
|
|
|
| deleted_time | int | Время удаления |
|
|
|
|
|
| desc | string | Текстовое описание диска |
|
|
|
|
|
| destruction_time | int | Время окончательного удаления |
|
|
|
|
|
| devicename | string | Наименование устройства |
|
|
|
|
|
| disk_id | int | Идентификатор диска. Дублирует значение параметра `id`. |
|
|
|
|
|
| disk_path | string | Адрес диска |
|
|
|
|
|
| gid | int | Идентификатор площадки (grid id) |
|
|
|
|
|
| id | int | Идентификатор диска |
|
|
|
|
|
| image_id | int | Идентификатор образа, содержимое которого было склонировано/скопировано в данный диск при его создании. 0 означает, что данный диск не создавался как клон/копия какого-либо образа |
|
|
|
|
|
| images | []int | Идентификаторы образов, использующих диск |
|
|
|
|
|
| iotune | Struct{}[см. ниже](#описание-cтруктуры-iotune) | Информация об ограничениях IO диска|
|
|
|
|
|
| disk_name | string | Наименование диска |
|
|
|
|
|
| order | int | Номер диска |
|
|
|
|
|
| params | string | Параметры диска |
|
|
|
|
|
| parent_id | int | id родительского диска |
|
|
|
|
|
| pci_slot | int | id pci слота, к которому подключен диск |
|
|
|
|
|
| pool | string | Имя пула в системе хранения, на ресурсах которой размещён данный диск |
|
|
|
|
|
| present_to | []int | Список ID ресурсов, которым предоставлен диск |
|
|
|
|
|
| purge_time | int | Время последней попытки |
|
|
|
|
|
| res_id | int | id ресурса |
|
|
|
|
|
| res_name | string | Наименование ресурса |
|
|
|
|
|
| role | string | Роль диска |
|
|
|
|
|
| sep_id | int | Идентификатор Storage Endpoint Provider (SEP). SEP это способ идентифицировать конкретную систему хранения, на ресурсах которой размещён данный диск |
|
|
|
|
|
| sep_type | string | Тип SEP. Определяет тип системы хранения и содержит одно из заданных в облачной платформе значений |
|
|
|
|
|
| shareable | bool | Флаг, отвечающий за доступность диска дургим ресурсам |
|
|
|
|
|
| size_max | int | Размер диска в ГБ |
|
|
|
|
|
| size_used | int | Кол-во используемого места, в ГБ |
|
|
|
|
|
| snapshots | []Struct{}[см. ниже](#описание-структуры-snapshots)| Снимки состояния диска|
|
|
|
|
|
| status | string | Статус диска |
|
|
|
|
|
| tech_status | string | Технический статус диска |
|
|
|
|
|
| type | string | Тип диска с точки зрения его роли в составе _compute_. Может принимать одно из фиксированных значений:<br/>"B" - признак загрузочного диска ("boot").<br/>"D" - признак дополнительного диска ("data") |
|
|
|
|
|
| vmid | int | Идентификатор виртуальной машины (устаревшее) |
|
|
|
|
|
|
|
|
|
|
### Описание структуры computes
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| compute_id | int | Идентификатор компьюта |
|
|
|
|
|
| compute_name | string | Имя компьюта |
|
|
|
|
|
|
|
|
|
|
### Описание cтруктуры iotune
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| read_bytes_sec | int | Кол-во байт для чтения в секунду |
|
|
|
|
|
| read_bytes_sec_max | int | Максимальное кол-во байт для чтения |
|
|
|
|
|
| read_iops_sec | int | Кол-во операций чтения io в секунду | |
|
|
|
|
|
| read_iops_sec_max | int | Максимальное число io операций чтения |
|
|
|
|
|
| size_iops_sec | int | Размер io операций |
|
|
|
|
|
| total_bytes_sec | int | Общий размер байт в секунду |
|
|
|
|
|
| total_bytes_sec_max | int | Максимальный общий размер байт в секунду |
|
|
|
|
|
| total_iops_sec | int | Общее кол-во io операций в секунду |
|
|
|
|
|
| total_iops_sec_max | int | Максимальное общее кол-во io операций в секунду |
|
|
|
|
|
| write_bytes_sec | int | Кол-во байт для записи в секунду |
|
|
|
|
|
| write_bytes_sec_max | int | Максимальное кол-во байт для записи в секунду |
|
|
|
|
|
| write_iops_sec | int | Кол-во операций записи в секунду |
|
|
|
|
|
| write_iops_sec_max | int | Максимальное число операций записей |
|
|
|
|
|
|
|
|
|
|
### Описание структуры snapshots
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| guid | string | id снимка |
|
|
|
|
|
| label | string | Наименование снимка |
|
|
|
|
|
| res_id | string | Ссылка на снимок |
|
|
|
|
|
| snap_set_guid | string | Установленный id снимка |
|
|
|
|
|
| snap_set_time | int | Установленное время снимка |
|
|
|
|
|
| timestamp | int | Время снимка |
|
|
|
|
|
|
|
|
|
|
## Пример использования
|
|
|
|
|
```terraform
|
|
|
|
|
/*
|
|
|
|
|
Пример использования
|
|
|
|
|
Получение списка доступных образов
|
|
|
|
|
*/
|
|
|
|
|
#Расскомментируйте этот код,
|
|
|
|
|
#и внесите необходимые правки в версию и путь,
|
|
|
|
|
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
|
|
|
|
|
|
|
|
|
|
terraform {
|
|
|
|
|
required_providers {
|
|
|
|
|
decort = {
|
|
|
|
|
version = "1.1"
|
|
|
|
|
source = "digitalenergy.online/decort/decort"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
provider "decort" {
|
|
|
|
|
authenticator = "oauth2"
|
|
|
|
|
#controller_url = <DECORT_CONTROLLER_URL>
|
|
|
|
|
controller_url = "https://ds1.digitalenergy.online"
|
|
|
|
|
#oauth2_url = <DECORT_SSO_URL>
|
|
|
|
|
oauth2_url = "https://sso.digitalenergy.online"
|
|
|
|
|
allow_unverified_ssl = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "decort_disk" "disk" {
|
|
|
|
|
account_id = 88
|
|
|
|
|
gid = 212
|
|
|
|
|
disk_name = "super-disk"
|
|
|
|
|
size_max = 20
|
|
|
|
|
restore = true
|
|
|
|
|
permanently = true
|
|
|
|
|
reason = "delete"
|
|
|
|
|
shareable = false
|
|
|
|
|
iotune {
|
|
|
|
|
read_bytes_sec = 0
|
|
|
|
|
read_bytes_sec_max = 0
|
|
|
|
|
read_iops_sec = 0
|
|
|
|
|
read_iops_sec_max = 0
|
|
|
|
|
size_iops_sec = 0
|
|
|
|
|
total_bytes_sec = 0
|
|
|
|
|
total_bytes_sec_max = 0
|
|
|
|
|
total_iops_sec = 3000
|
|
|
|
|
total_iops_sec_max = 0
|
|
|
|
|
write_bytes_sec = 0
|
|
|
|
|
write_bytes_sec_max = 0
|
|
|
|
|
write_iops_sec = 0
|
|
|
|
|
write_iops_sec_max = 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
output "test" {
|
|
|
|
|
value = decort_disk.disk
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/04.02-Инициализация-Terraform-провайдера-DECORT)).
|
|
|
|
|
|
|
|
|
|
После успешного завершения такого вызова _resource_ функции **decort_disk** в переменной `decort_disk.disk` будут сохранены возвращаемые значения. В частности, для получения идентификатора диска следует использовать конструкцию `decort_disk.disk.id`.
|