===== Примеры использования Web Services API (WSAPI) в составе 3PAR OS на СХД HPE 3PAR ===== {{:hewlett-packard:hpe-3par-web-services-api-wsapi-from-3par-os-query-examples-with-curl:pasted:20220203-123939.png }} В данной заметке описаны базовые примеры и приёмы работы с программным интерфейсом **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| Все допустимые варианты и примеры запросов можно найти в [[https://support.hpe.com/hpesc/public/docDisplay?docId=c03606339|документации]]. В данном примере извлекаются данные о текущей конфигурации самой службы **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
---- Дополнительные источники информации: * Официальную документацию по использованию текущей версии WSAPI можно найти здесь: [[https://support.hpe.com/hpesc/public/docDisplay?docId=c03606339|HPE 3PAR Web Services API 1.6.15 Developer Guide]] * Примеры кода на языке Python для работы с WSAPI: [[https://github.com/hpe-storage/python-3parclient/blob/master/hpe3parclient|hpe-storage/python-3parclient]] ---- Проверено на следующих конфигурациях: ^ Модель СХД ^ Версия 3PAR OS ^ | HP 3PAR 7200 2-Node | 3.3.1 (MU5) | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 03.02.2022 12:42 {{tag>Storage HP HPE 3PAR "3PAR 7200" StoreServ "3PAR OS" WSAPI}} ~~DISCUSSION~~