Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


hewlett-packard:hpe-3par-web-services-api-wsapi-from-3par-os-query-examples-with-curl:start

Примеры использования Web Services API (WSAPI) в составе 3PAR OS на СХД HPE 3PAR

В данной заметке описаны базовые примеры и приёмы работы с программным интерфейсом Web Services API (WSAPI), реализованным в составе 3PAR OS в вычислительных узлах (node) СХД HPE 3PAR.

Интерфейс WSAPI может рассматриваться, в первую очередь, как инструмент удалённого управления СХД. Объём возвращаемых данных об СХД в WSAPI не велик, в частности нет возможности получать полноценную информацию о показателях производительности. Поэтому не следует рассматривать WSAPI, как полноценный инструмент мониторинга. WSAPI может оказаться весьма полезен в качестве инструмента, применяемого в составе разнообразных сценариев автоматизации управления СХД 3PAR.

Базовым URL для подключения к WSAPI является:

https://{3PAR FQDN}:8080/api/v1/

Обмен данными в WSAPI выполняется в формате JSON.


Минимальные требования

  • На СХД должна быть включена поддержка протокола WSAPI. Для этого используются простые команды 3PAR CLI - showsapi, setwsapi, startwsapi;
  • На СХД должна быть создана учётная запись с ролью уровня brows (если требуется права только на удалённое чтение данных);
  • На сетевом уровне к СХД должен быть обеспечен удалённый доступ по порту веб-службы WSAPI (порт по умолчанию - TCP 8080).

Аутентификация WSAPI

Для подключения к интерфейсу WSAPI требуется выполнить процедуру предварительной аутентификации для получения временного сессионного ключа.

Пример такой аутентификации с помощть утилиты curl:

# curl -k -H "Accept:application/json" -H "Content-Type:application/json" \
--data-binary '{"user":"monitor","password":"myStr0ng!PWD"}' \
'https://3par01.my.com:8080/api/v1/credentials'

В случае успешной аутентификации мы должны получить от веб-службы WSAPI сессионный ключ:

{
  "key": "0-8839f294dffe9eb701c2708789f8e62c-4e4bf161"
}

Получение данных

Приведём ряд простых примеров запросов через WSAPI относительного базового URL /api/v1/:

URL запроса Описание
/wsapiconfiguration Get the WSAPI Configuration Information
/system Get the Storage System Information
/ports Get the list of ports on the 3PAR

Все допустимые варианты и примеры запросов можно найти в документации.

В данном примере извлекаются данные о текущей конфигурации самой службы WSAPI в СХД (/wsapiconfiguration):

# curl -k -H "X-HP3PAR-WSAPI-SessionKey:0-8839f294dffe9eb701c2708789f8e62c-4e4bf161" \
'https://3par01.my.com:8080/api/v1/wsapiconfiguration'

Пример ответа:

{
  "httpState": "Disabled",
  "httpPort": 8008,
  "httpsState": "Enabled",
  "httpsPort": 8080,
  "version": "1.6.5",
  "sessionsInUse": 2,
  "systemResourceUsage": 36,
  "sessionTimeout": 15,
  "eventSessionsInUse": 0,
  "maxEventSessions": 5
}

Другой пример - извлечение данных о конфигурации и статусе Adaptive Flash Cache (/flashcache):

# curl -k -H "X-HP3PAR-WSAPI-SessionKey:0-8839f294dffe9eb701c2708789f8e62c-4e4bf161" \
'https://3par01.my.com:8080/api/v1/flashcache'
{
  "mode": 2,
  "deviceType": 1,
  "sizeGiB": 768,
  "state": 1,
  "usedSizeGiB": 384,
  "links": [
    {
      "href": "https://3par01.my.com:8080/api/v1/flashcache",
      "rel": "self"
    }
  ]
}

Удаление сессии WSAPI

Интерфейс WSAPI позволяет выполнять ограниченное количество подключений, поэтому после выполнения обмена правильным тоном будет форсированное удаление ранее полученного сессионного ключа.

Пример запроса на удаление ключа:

# curl -k -X DELETE -H "Accept: application/json" \
https://3par01.my.com:8080/api/v1/credentials/0-8839f294dffe9eb701c2708789f8e62c-4e4bf161

Дополнительные источники информации:


Проверено на следующих конфигурациях:

Модель СХД Версия 3PAR OS
HP 3PAR 7200 2-Node 3.3.1 (MU5)

Автор первичной редакции:
Алексей Максимов
Время публикации: 03.02.2022 12:42

Обсуждение

Ваш комментарий:
 
hewlett-packard/hpe-3par-web-services-api-wsapi-from-3par-os-query-examples-with-curl/start.txt · Последнее изменение: 03.02.2022 12:43 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki