diff --git a/07.01.03-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_disk-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D0%BC%D0%B8-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0%D0%BC%D0%B8.md b/07.01.03-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_disk-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D0%BC%D0%B8-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0%D0%BC%D0%B8.md new file mode 100644 index 0000000..3f2d106 --- /dev/null +++ b/07.01.03-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_disk-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D0%BC%D0%B8-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0%D0%BC%D0%B8.md @@ -0,0 +1,187 @@ +_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: | Тип диска, не может быть изменен после создания. Доступные значения:
"B" - признак загрузочного диска ("boot").
"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_. Может принимать одно из фиксированных значений:
"B" - признак загрузочного диска ("boot").
"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 = + controller_url = "https://ds1.digitalenergy.online" + #oauth2_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`.