_Data source_ функция **dynamix_kvmvm_list** служит для получения информации о списке компьютов. ## Аргументы _Data source_ функция **dynamix_kvmvm_list** принимает следующие аргументы: | Аргумент | Тип | Обязательный | Описание | | --- | --- | --- | --- | | by_id | int | :x: | Фильтр по ID | | name | string | :x: | Фильтр по имени | | account_id | int | :x: | Фильтр по ID аккаунта | | rg_id | int | :x: | Фильтр по ID ресурсной группы | | rg_name | string | :x: | Фильтр по имени рес. группы | | tech_status | string | :x: | Фильтр по тех.статусу | | status | string | :x: | Фильтр по статусу | | ip_address | string | :x: | Фильтр по IP адресу | | extnet_name | string | :x: | Фильтр по имени внешней сети | | extnet_id | int | :x: | Фильтр по extnet ID | | includedeleted | bool | :x: | Включить в результат удаленные ресурсы | | sort_by | string | :x: | Фильтр по одному из поддерживаемых полей, формат: +или- название поля | | page | int | :x: | Номер страниц | | size | int | :x: | Размер страницы | ## Возвращаемые значения В случае успешного выполнения _data source_ функция **dynamix_kvmvm_list** возвращает в указанную при вызове переменную, в поле _items_ массив, каждый элемент которого состоит из следующих параметров: | Параметр | Тип | Описание | | --- | --- | --- | | acl | []Struct [см. ниже](#описание-структуры-acl) | Cписок Acces Control | | account_id | int | Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины. | | account_name | string | Имя подписчика, которому принадлежит данная виртуальная машина. | | affinity_label | string | Лейбл аффинити | | affinity_rules | []Struct [см. ниже](#описание-структуры-affinity-rules) | Правила аффинити для компьютов | | affinity_weight | int | weight аффинити | | anti_affinity_rules | []Struct [см. ниже](#описание-структуры-affinity-rules) | Правила анти аффинити для компьютов | | arch | string | Архитектура | | boot_order | []string | Boot order | | boot_disk_size | int | Размер загрузочного диска в ГБ. | | chipset | string | Тип эмулируемой системы | | cd_image_id | int | ID cd image id | | cpu_pin | bool | Необходимость запускать ВМ на выделенных CPU ядрах | | clone_reference | int | кол-во клонов | | clones | []int | id клонов | | cpus | int | Количество виртуальных CPU, выделенных данному серверу | | created_by | string | Кес создан ресурс | | created_time | int | Время создания ресурса | | custom_fields | string | Кастомные поля | | deleted_by | string | Кем удален ресурс | | deleted_time | int | Время удаления ресурса | | desc | string | Текстовое описание виртуальной машины. | | devices | string | Девайсы | | disks | []Struct [см. ниже](#описание-структуры-disks) | информация о дисках компьюта | | driver | string | Аппаратная архитектура данной виртуальной машины. | | gid | int | GID | | guid | int | GUID | | hp_backed | bool | Необходимость использовать для выделения RAM виртуальной машины Huge Pages ядрах | | compute_id | int | ID компьюта | | image_id | int | Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. | | interfaces | []Struct [см. ниже](#описание-структуры-interfaces) | Информация о интерфейсах компьюта | | lock_status | string | Статус доступности | | manager_id | int | Manager id | | manager_type | string | Type manager | | migrationjob | int | Migrationjob | | milestones | int | Вехи | | name | string | Имя виртуального сервера | | need_reboot | bool | Флаг, указывающий, что требуется перезагрузка | | numa_affinity | string | Необходимость выравнивать ВМ по NUMA | | numa_node_id | int | ID узла NUMA | | pinned | bool | добавлен ли компьют на стек | | ram | int | Объём оперативной памяти в МБ, выделенной этой виртуальной машине. | | reference_id | string | ID reference | | registered | bool | Компьют зарегестрирован | | res_name | string | Res name | | reserved_node_cpus | []int | Количество зарезервированных CPU в узле | | rg_id | int | Идентификатор ресурсной группы, к которой принадлежит виртуальная машина. | | rg_name | string | Имя ресурсной группы, к которой принадлежит виртуальная машина. | | snap_sets | []Struct [см. ниже](#описание-структуры-snap-sets) | Snap sets | | stateless_sep_id | int | ID сеп | | stateless_sep_type | string | Тип сеп | | status | string | Статус диска | | tags | []Struct [см. ниже](#описание-структуры-tags) | Тэги | | tech_status | string | Технический статус диска | | total_disk_size | int | Размер диска | | updated_by | string | Кем обновлен ресурс | | updated_time | int | Время обновления ресурса | | user_managed | bool | User managed | | userdata | string | Параметры cloud_init | | vgpus | []int | Список vgpu | | vins_connected | int | Кол-во присоединенных винсов | | virtual_image_id | int | ID виртуального образа | ### Описание структуры acl | Параметр | Тип | Описание | | --- | --- | --- | | explicit | bool | Явно ли указан доступ | | guid | string | guid Ресурса | | right | string | Права на ресурс | | status | string | Статус ресурса | | type | string | Тип ресурса | | user_group_id | string | ID user group | ### Описание структуры affinity rules | Параметр | Тип | Описание | | --- | --- | --- | | guid | string | guid | | key | string | Ключ | | mode | string | Режим сравнения | | policy | string | Степень "строгости" этого правила | | topology | string | Топология | | value | string | Значение | ### Описание структуры disks | Параметр | Тип | Описание | | bus_number | int | Номер шины | | disk_id | int | ID диска | | pci_slot | int | id pci слота, к которому подключен диск | ### Описание структуры interfaces | Параметр | Тип | Описание | | --- | --- | --- | | bus_number | int | Номер шины | | conn_id | int | ID connect | | conn_type | string | Тип connect | | def_gw | string | Шлюз по умолчанию | | enabled | bool | Доступность подключения | | flip_group_id | int | id flip group | | guid | string | GUID | | ip_address | string | IP адрес | | libvirt_settings | []Struct{}[см. ниже](#описание-структуры-libvirt_settings) | Параметры libvirt virtio интерфейса | | listen_ssh | bool | открыт ли ssh connect | | mac | string | MAC адрес устройства | | name | string | Имя | | net_id | int | ID сети | | netmask | int | Маска сети | | net_type | string | Тип сети | | node_id | int | ID узла | | pci_slot | int | Pci Slot | | qos | []Struct{}[см. ниже](#описание-структуры-qos) | QOS | | target | string | Цель сети | | type | string | Тип | | vnfs | []int | VNFS | ### Описание структуры libvirt_settings | Параметр | Тип | Описание | | --- | --- | --- | | guid | string | GUID | | txmode | string | TX mode | | ioeventfd | string | IO event | | event_idx | string | Event ID | | queues | int | Количество очередей | | rx_queue_size | int | Длина очереди RX | | tx_queue_size | int | Длина очереди TX | ### Описание структуры qos | Параметр | Тип | Описание | | --- | --- | --- | | e_rate | int | E rate | | guid | string | ID ресурса | | in_brust | int | In brust | | in_rate | int | In rate | ### Описание структуры snap sets | Параметр | Тип | Описание | | --- | --- | --- | | disks | []int | Список id дисков | | guid | string | GUID | | label | string | Лейбл | | timestamp | int | Время | ### Описание структуры tags | Параметр | Тип | Описание | | --- | --- | --- | | key | string | Ключ тэга | | val | string | Значение тэга | ## Пример использования ```terraform data "dynamix_kvmvm_list" "compute_list" { #фильтр по id ВМ #опциональный параметр #тип - целое число #by_id = 100 #фильтр по имени ВМ #опциональный параметр #тип - строка #name = "test" #id аккаунта для получения списка ВМ #опциональный параметр #тип - целое число #account_id = 11111 #фильтр по имени ресурсной группы #опциональный параметр #тип - строка #rg_name = "test" #фильтр по id ресурсной группы #опциональный параметр #тип - целое число #rg_id = 100 #фильтр по техническому статусу #опциональный параметр #тип - строка #tech_status = "STOPPED" #фильтр по статусу #опциональный параметр #тип - строка #status = "ENABLED" #фильтр по ip #опциональный параметр #тип - строка #ip_address = "test" #фильтр по имени extnet #опциональный параметр #тип - строка #extnet_name = "test" #фильтр по id extnet #опциональный параметр #тип - целое число #extnet_id = 100 #флаг влючения в результат удаленных балансироващиков нагрузки #опциональный параметр #тип - булев #значение по-умолчанию - false #если не задан - выводятся все доступные неудаленные балансировщики #includedeleted = true #сортировка по одному из поддерживаемых полей #опциональный параметр #тип - строка #формат - "+поле" по возрастанию / "-поле" по убыванию #sort_by = "+name" #номер страницы для отображения #опциональный параметр #тип - целое число #если не задан - выводятся все доступные данные #page = 1 #размер страницы #опциональный параметр #тип - целое число #если не задан - выводятся все доступные данные #size = 1 } ``` Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DYNAMIX см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-dynamix/src/branch/main/wiki/1.1.0/04.02-Инициализация-Terraform-провайдера-DYNAMIX.md)). После успешного завершения такого вызова _data source_ функции **dynamix_kvmvm_list** в переменной `data.dynamix_kvmvm_list.compute_list` будут сохранены возвращаемые значения.