Домен даних: як використовувати вбудований REST API для DD та DDMC

Riepilogo: Як встановлення Data Domain (DD) (фізичного та віртуального), так і PowerProtect DD Management Center (DDMC) оснащені вбудованим сервісом REST. Клієнти можуть використовувати його для створення власних додатків для взаємодії з DD та DDMC. ...

Questo articolo si applica a Questo articolo non si applica a Questo articolo non è legato a un prodotto specifico. Non tutte le versioni del prodotto sono identificate in questo articolo.

Istruzioni

Останню документацію можна знайти за адресою https://developer.dell.com/apis/products/data-protection.

І DD, і DDMC за замовчуванням мали увімкнений веб-REST API. REST API — це засіб програмної взаємодії з DD та DDMC. У цій статті наведено приклади для DD, які надалі використовують простий клієнт-серверний протокол. HTTP-протокол не підтримує стан і дозволяє клієнту читати стан з DD і виконувати команди за допомогою спеціально створених HTTP-викликів.

З командного рядка наступна команда повідомляє про статус веб-сервісу REST API (веб-сервісу):

# adminaccess show
Service       Enabled   Allowed Hosts
-----------   -------   ---------------------
ssh           yes       -
scp           yes       (same as ssh)
telnet        no        DD3300.example.com
                        DD3300.example.com
ftp           no        DD3300.example.com
                        DD3300.example.com
ftps          yes       -
http          yes       -
https         yes       -
web-service   yes       N/A
-----------   -------   ---------------------
...

 


Зверніть увагу, оскільки REST API обслуговується з тих самих портів, що й інтерфейс, немає способу вимкнути його окремо. Це не становить загрози безпеці, оскільки всі запити до API мають бути автентифіковані, так само, як і запити до UI або CLI.

Найкращий спосіб почати з REST API — використовувати пакетний клієнт на кожному DD і DDMC. До нього можна дістатися за таким адресою:

https://DD_OR_DDMC_IP_ADDRESS/api/

 

Тут представлена сторінка з посиланнями на кілька важливих ресурсів, а саме:

  • Документація API: Детальний перелік усіх доступних API-викликів, які підтримуються DD або DDMC
  • Клієнт тестування REST: Перевірте виклики API безпосередньо з веб-інтерфейсу DD.


Документація API — це все, що програміст повинен використовувати, щоб використовувати DD REST API для створення додатків на основі DD. 

Для використання API потрібна автентифікація DD. Потрібні дві інформації:

  • X-DD-AUTH-TOKEN: файл cookie, який DD надає після успішної автентифікації і має використовуватися як автентифікатор для будь-яких подальших запитів.
  • X-DD-UUID: Унікальний ідентифікатор DD, який використовується для (більшості) запитів до API. Зверніть увагу, що для окремого DD це може здатися зайвим, але це явно необхідно для DDMC, де може бути обрано окремого DD.



Щоб автентифікувати за DD, використовуйте метод "/rest/v1.0/auth". Зробити це з будь-якого хоста з встановленим "curl" і мережевим доступом до DD і надіслати запит таким чином:

# curl --include --insecure -X 'POST' --header 'Content-Type: application/json' --header 'Accept: application/text' -d '{ "auth_info":{ "username":"sysadmin","password":"SomePass" } }' 'https://DD_OR_DDMC_IP_ADDRESS:3009/rest/v1.0/auth'

 

Нижче наведено кілька коментарів щодо командного рядка:

  • Потрібна опція "--include", оскільки деякі відповіді на запити повертаються як HTTP-теги, а не як частина тіла
  • Опція "--insecure" потрібна, коли curl налаштовано для перевірки сертифіката серверного CA за списком відомих і довірених органів CA. Оскільки клієнт REST TEST, що йде в комплекті з DD, не додає цієї опції, але її потрібно використовувати для перевірки сертифікатів CA, інакше всі команди, що виконуються з тестового клієнта, не працюють (undefinedERROR Text Status: error). Якщо спробувати запустити приклад «curl» з командного рядка, помилка буде такою:
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

 

  • Ми використовуємо HTTP-метод «POST». Кожен метод API має свій власний метод, який чітко підкреслено в документації.
  • Опції "--header" використовуються для передачі заголовків або опцій рівня HTTP до викликаного DD
  • "-d" надсилає тіло запиту DD, у цьому випадку — ім'я користувача та пароль
  • Нарешті, URI, що викликає конкретний метод автентифікації, називається останнім параметром (https://DD_OR_DDMC_IP_ADDRESS:3009/rest/v1.0/auth). Оскільки ми використовуємо HTTPS, облікові дані передаються зашифровано по дроту. Зверніть увагу, що хоча документація та вбудований тестовий клієнт доступні через порт 443, точка входу в сервіс REST API знаходиться на порті 3009 і повинна використовувати HTTPS (не HTTP) для роботи



Відповідь на запит про автентифікацію вище наведена нижче:

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 112
X-DD-AUTH-TOKEN: 434f1d6dc1528bb8d3ad66c70dc7f74f9
X-DD-UUID: 7850d7a24f93f502:1346d63c57821e38
Access-Control-Allow-Credentials: true
Cache-Control: no-cache
Server: Data Domain OS
Access-Control-Expose-Headers: AUTHORIZATION, X-DD-AUTH-TOKEN, X-DD-JSON-RESPONSE-WITH-ROOT, X-DD-PEER-USERNAME

{"service_status": {"details": "success", "code": 0, "link": [{"rel": "related", "href": "/rest/v1.0/system"}]}}

 

Все, що передує порожній рядок, — це HTTP-заголовки, які надсилаються у відповіді. Контент після — це тіло відповіді, яке в цьому випадку інформує про успіх. Для цього методу найважливішими даними:

  • X-DD-AUTH-TOKEN (434f1d6dc1528bb8d3ad66c70dc7f74f9) — це тимчасовий токен автентифікації, який може використовуватися протягом певного часу для автентифікації подальших операцій
  • X-DD-UUID (7850d7a24f93f502:1346d63c57821e38) ідентифікатор DD, який потрібно використовувати для наступних запитів


Для будь-яких подальших запитів ми повинні використовувати ці значення. Наприклад, припустимо, ми хочемо дізнатися інформацію про файлову систему DD. Перейдіть до «API Documentation», щоб знайти виклик, який найкраще відповідає нашим потребам, як на скріншоті нижче:


Документація локального API системи

Після перевірки необхідних параметрів ми можемо побудувати запит, як зазначено нижче.  Зверніть увагу, що в цьому випадку ми виконуємо запит типу «GET» замість «POST», як це застосовується у методі автентифікації:

# curl --include --insecure -X 'GET' --header 'Content-Type: application/json' --header 'Accept: application/text' --header 'X-DD-AUTH-TOKEN:434f1d6dc1528bb8d3ad66c70dc7f74f9' 'https://DD_OR_DDMC_IP_ADDRESS:3009/rest/v1.0/dd-systems/7850d7a24f93f502%3A1346d63c57821e38/file-systems'

 

Але ми отримуємо таку відповідь, що означає, що токен автентифікації або недійсний, або вже закінчився:

{"details": "**** Authentication token \"434f1d6dc1528bb8d3ad66c70dc7f74f9\" is invalid.", "code": 5427, "link": [{"rel": "self", "href": "/rest/v1.0/auth"}]}

 

Нам потрібно було б згенерувати новий токен автентифікації, щоб виконати запит і отримати бажані результати, наприклад:

# curl --include --insecure -X GET --header 'Accept: application/json' --header 'X-DD-AUTH-TOKEN: 178a7b8f337ce3027acdcd889ed10446c' 'https://DD_OR_DDMC_IP_ADDRESS:3009/rest/v1.0/dd-systems/7850d7a24f93f502%3A1346d63c57821e38/file-systems'
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1123
X-DD-AUTH-TOKEN: 178a7b8f337ce3027acdcd889ed10446c
X-DD-UUID: 7850d7a24f93f502:1346d63c57821e38
Access-Control-Allow-Credentials: true
Cache-Control: no-cache
Server: Data Domain OS
Access-Control-Expose-Headers: AUTHORIZATION, X-DD-AUTH-TOKEN, X-DD-JSON-RESPONSE-WITH-ROOT, X-DD-PEER-USERNAME

{"hostname": "DD3300.example.com", "fs_status": "sn_enabled", "fs_clean_status": "inactive", "fs_cleaning_info": {"filesys_clean_info": {"cleaning_status": "inactive", "cleaning_dates": {"start_epoch": 1663879075, "end_epoch": 1663879131, "success_epoch": 1663679711}, "is_aborted": true, "abort_reason": "Cleaning was aborted by user.", "throttle": 50, "schedule": {"occurrence": "weekly", "days": ["Tue"], "time": "0600"}}, "cloud_clean_info": {"cleaning_status": "inactive", "cleaning_dates": {}, "is_aborted": false, "throttle": 50, "frequency": 0}}, "fs_uptime_secs": 344738, "fs_options": [{"key": "local-compression-type", "value": "gz"}, {"key": "marker-type", "value": "auto"}, {"key": "report-replica-as-writable", "value": "disabled"}, {"key": "staging-reserve", "value": "5% = 4271.2 GiB percent of total space"}, {"key": "warning-space-usage", "value": "90"}, {"key": "critical-space-usage", "value": "95"}], "link": [{"rel": "self", "href": "/rest/v1.0/dd-systems/7850d7a24f93f502%3A1346d63c57821e38/file-systems"}, {"rel": "parent", "href": "/rest/v1.0/dd-systems/7850d7a24f93f502%3A1346d63c57821e38"}]}


Вихід у тілі відповіді надсилається абоненту у форматі JSON, який є стандартом.

Prodotti interessati

Data Domain
Proprietà dell'articolo
Numero articolo: 000203754
Tipo di articolo: How To
Ultima modifica: 30 lug 2026
Versione:  3
Trova risposta alle tue domande dagli altri utenti Dell
Support Services
Verifica che il dispositivo sia coperto dai Servizi di supporto.