Функция доступна в провайдере версии 4.6.0 и выше.

_Data source_ функция **decort_cb_node_list** служит для получения информации об имеющихся в облачной платформе узлах.

## Аргументы

_Data source_ функция **decort_cb_node_list** принимает следующие аргументы:

| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| by_id | int | :x: | Фильтр по ID узла |
| name | string | :x: | Фильтр по имени узла |
| version | string | :x: | Фильтр по версии узла |
| release | string | :x: | Фильтр по релизу версии |
| sep_id | int | :x: | Фильтр по ID SEP |
| role | string | :x: | Фильтр по роли |
| status | string | :x: | Фильтр по статусу узла |
| sort_by | string | :x: | Фильтр по одному из поддерживаемых полей, формат: +или- название поля |
| page | int | :x: | Номер страниц |
| size | int | :x: | Размер страницы |

## Возвращаемые значения

В случае успешного выполнения _data source_ функция **decort_cb_node_list** возвращает в указанную при вызове переменную, в поле _items_, массив, каждый элемент которого состоит из следующих параметров:

| Параметр | Тип | Описание
| --- | --- | --- |
| additional_pkgs | []string | Список дополнительных пакетов |
| api_url | string | URL API узла |
| auto_start | bool | Флаг, указывающий необходимость перевода ноды в состояние enabled после перезапуска |
| auto_start_count | int | Количество перезапусков, при рестарте ноды (по умолчанию - 0) |
| cpu_allocation_ratio | float | Коэффициент выделения CPU |
| cpu_info | Struct{} [см. ниже](#Описание-структуры-cpu_info) | Информация о CPU |
| description | string | Описание |
| drivers | []string | Список драйверов |
| dpdk | [см. ниже](#Описание-структуры-dpdk) | Информация о dpdk |
| gid | int | Grid ID |
| guid | string | guid Ресурса |
| hostkey | string | hostkey |
| node_id | int | ID узла |
| ipaddr | []string | IP адрес |
| isolated_cpus | []string | Изолированные CPU |
| lastcheck | int | Временная метка последней проверки |
| machine_guid | string | guid ВМ |
| mainboard_sn | string | mainboard_sn |
| mem_allocation_ratio | float | Коэффициент выделения памяти |
| memory | int | Объем памяти |
| milestones | int | Вехи |
| model | string | Модель |
| name | string | Имя ноды |
| need_reboot | bool | Флаг перезапуска |
| net_addr | []Struct{} [см. ниже](#Описание-структуры-net_addr) | Информация о сетевых адресах |
| network_mode | string | Режим сети |
| usable_cpus | []string | Список совместимых виртуальных процессоров |
| old_compat_lvm_id | int | Старый ID LVM (для совместимости) |
| openvswitch_bridges | []string | Список мостов Open vSwitch |
| nic_info | []Struct{} [см. ниже](#Описание-структуры-nic_info) | Информация о сетевых интерфейсах |
| node_uuid | string | Уникальный иденификатор uuid ноды |
| numa_topology | Struct{} [см. ниже](#Описание-структуры-numa_topology) | Топология numa (Non Uniform Memory Access) |
| packages | map[string]map[string]string | Карта установленных пакетов (содержит ver и size) |
| peer_backup | int | Бэкап |
| peer_log | int | Логи |
| peer_stats | int | Статистика |
| pgpus | []int | Список pgpu |
| public_keys | []string | Список публичных ключей |
| release | string | Релиз |
| reserved_cpus | []string | Зарезервированные CPU |
| roles | []string | Список ролей |
| sdn_hypervisor_name | string | Имя SDN гипервизора |
| seps | []int | Список SEP |
| serial_num | string | Серийный номер |
| sriov_enabled | bool | Индикатор включения виртуализации сетевых интерфейсов для ВМ узла (SR-IOV) |
| status | string | Статус узла |
| tags | []string | Список тегов |
| type | string | Тип узла |
| uefi_firmware_file | string | путь к файлу прошивки UEFI |
| version | string | Версия платформы |
| zone_id | int | Идентификатор экземпляра zone |

### Описание структуры cpu_info

| Параметр | Тип | Описание |
| --- | --- | --- |
| clock_speed | int | Тактовая частота |
| core_count | int | Кол-во центральных процессоров |
| phys_count | int | Кол-во физических cpu |
| flags | []string | Список флагов процессора |
| model_name | string | Модель процессора |

### Описание структуры dpdk

| Параметр | Тип | Описание |
| --- | --- | --- |
| bridges | Struct{} [см. ниже](#Описание-структуры-bridges) | Информация об OVS Bridge |
| hp_memory | map[string]int | Объем память для каждого узла |
| pmd_cpu | []int | Список CPU используемых для работы PMD |

### Описание структуры bridges

| Параметр | Тип | Описание |
| --- | --- | --- |
| backplane1 | Struct{} [см. ниже](#Описание-структуры-backplane1) | Информация об backplane1 bridge |

### Описание структуры backplane1

| Параметр | Тип | Описание |
| --- | --- | --- |
| interfaces | []string | Список интерфейсов для моста |
| numa_node | int | Номер Numa узла |

### Описание структуры net_addr

| Параметр | Тип | Описание |
| --- | --- | --- |
| cidr | []string | Маска сети |
| index | int | Индекс |
| ip | []string | IP адрес |
| mac | string | MAC адрес |
| mtu | int | Максимальный размер пакета, который может быть передан по сети без фрагментации |
| name | string | Имя адреса |

### Описание структуры nic_info

| Параметр | Тип | Описание |
| --- | --- | --- |
| driver | string | Драйвер |
| max_vfs | int | Максимальное кол-во vfs |
| numa_node | int | Узел numa (Non Uniform Memory Access) |
| num_vfs | int | Количество vfs |
| os_name | string | Название ОС |
| pci_slot | string | Слот pci |
| vf_list | []string | список идентификаторов VF, зарезервированных на узле для vfpool |

### Описание структуры numa_topology

| Параметр | Тип | Описание |
| --- | --- | --- |
| node_num | int | Коливество узлов |
| nodes | []Struct{} [см. ниже](#Описание-структуры-nodes) | Информация об узлах |

### Описание структуры nodes

| Параметр | Тип | Описание |
| --- | --- | --- |
| cpu_list | []int | Список CPU |
| memory | Struct{} [см. ниже](#описание-структуры-memory) | Информация о памяти |

### Описание структуры memory

| Параметр | Тип | Описание |
| --- | --- | --- |
| one_g | int | 1G memory |
| two_m | int | 2M memory |
| total | int | Общая память |

## Пример использования

Пример вызова _data source_ функции **decort_cb_node_list**:

```terraform
data "decort_cb_node_list" "nodes" {
  #фильтр по id ноды
  #опциональный параметр
  #тип - целое число
  #by_id = 1234

  #фильтр по имени ноды
  #опциональный параметр
  #тип - строка
  #name = "node1"

  #фильтр по версии ноды
  #опциональный параметр
  #тип - строка
  #version = "version1"

  #фильтр по релизу ноды
  #опциональный параметр
  #тип - строка
  #release = "release1"

  #фильтр по sep id
  #опциональный параметр
  #тип - целое число
  #sep_id = 12

  #фильтр по ролям ноды
  #опциональный параметр
  #тип - строка
  #role = "service"

  #фильтр по статусу ноды
  #опциональный параметр
  #тип - строка
  #status = "disabled"

  #сортировка по одному из поддерживаемых полей
  #опциональный параметр
  #тип - строка
  #формат - "+поле" по возрастанию / "-поле" по убыванию
  #sort_by = "+name"

  #номер страницы для отображения
  #опциональный параметр
  #тип - целое число
  #page = 2

  #размер страницы
  #опциональный параметр
  #тип - целое число
  #size = 3
}
```

После успешного завершения такого вызова **decort_cb_node_list** в переменной `data.decort_cb_node_list.nodes` будут сохранены возвращаемые значения.
