Hc_cluster - Управление кластерами
Hc_cluster_info
Команда позволяет вывести информацию о кластере.
Аналог команды в CoCon:
/cluster/storage/<CLUSTER>/cluster/<CLUSTER_TYPE>/<CLUSTER_NAME>/info
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cluster_info
Код HTTP-ответа:
При выполнение команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла c ответом:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="common.xsd"/>
<!-- nodeType-->
<xs:complexType name="nodeType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- propertyType-->
<xs:complexType name="propertyType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<!-- clusterType -->
<xs:complexType name="clusterType">
<xs:all>
<xs:element name="nodes">
<xs:complexType>
<xs:sequence>
<xs:element name="node" type="nodeType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="properties">
<xs:complexType>
<xs:sequence>
<xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
<xs:attribute name="active" type="xs:boolean" use="required"/>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster">
<xs:complexType>
<xs:attribute name="storage" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:all>
<xs:element name="cluster" type="clusterType" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
common.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- dateTimeType -->
<xs:simpleType name="dateTimeType">
<xs:restriction base="xs:string">
<xs:pattern value="\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}(\.\d{0,3})?"/>
</xs:restriction>
</xs:simpleType>
<!-- roleType -->
<xs:simpleType name="roleType">
<xs:restriction base="xs:string">
<xs:enumeration value="core"/>
<xs:enumeration value="adapter"/>
<xs:enumeration value="storage"/>
<xs:enumeration value="mediator"/>
<xs:enumeration value="tts"/>
<xs:enumeration value="bus"/>
<xs:enumeration value="all"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cluster_info
<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cluster_info.xsd">
<cluster name="sip1" role="adapter" storage="ds1" />
</in>
Ответ:200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cluster_info.xsd">
<cluster name="sip1" role="adapter" active="true">
<nodes>
<node name="sip1@ecss1"/>
<node name="sip1@ecss2"/>
</nodes>
<properties>
<property name="restart_counter" value="93"/>
<property name="adapter_type" value="sip"/>
<property name="fix" value="["2.13.0.67"]"/>
<property name="ecss_cm\sip_cluster_network\ip_set" value="[{"ipset1","ᏄᏅᏆᏇᏈᏉᏎᏏᏐᏑᏒᏓ",24, [{sip1@ecss1,"192.168.2.61"},{sip1@ecss2,"192.168.2.62"}]}, {"ipset2","ᏢᏣ",0,[{sip1@ecss1,"192.168.2.61"},{sip1@ecss2,"127.0.0.1"}]}]"/>
<property name="eltexname_template" value=""default""/>
<property name="extra_isup_cause_locations" value="[]"/>
<property name="resource_limits_map" value="[{ets_count,[{normal,nolimit}, {warning,nolimit}, {minor,nolimit}, {major,limit}, {critical,limit}, {fatal,limit}]}]"/>
</properties>
</cluster>
</out>
Hc_list_of_adapter_clusters
Команда позволяет вывести список кластеров, определенных в системе с ролью adapter определенного типа (SIP, Megaco).
Аналог команды в CoCon:
/cluster/storage/<CLUSTER>/cluster/list adapter
Прямого аналога команды в CoCon нет. Для просмотра можно ввести путь cluster/adapter/
и нажать Tab.
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/list_of_adapter_clusters
Код HTTP-ответа:
При выполнение команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- adapterType -->
<xs:simpleType name="adapterType">
<xs:restriction base="xs:string">
<xs:enumeration value="sip"/>
<xs:enumeration value="megaco"/>
<xs:enumeration value="all"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType>
<xs:attribute name="type" type="adapterType" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="out">
<xs:complexType>
<xs:sequence>
<xs:element name="adapters">
<xs:complexType>
<xs:sequence>
<xs:element name="adapter" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="type" type="adapterType" use="required"/>
<xs:attribute name="active" type="xs:boolean" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/list_of_adapter_clusters
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_list_of_adapter_clusters.xsd">
<request type="all" />
</in>
Ответ:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_list_of_adapter_clusters.xsd">
<adapters>
<adapter name="sip1" type="sip" active="true"/>
</adapters>
</out>
Hc_get_cluster_properties
Команда позволяет вывести свойства кластера. Команда возвращает информацию, что и команда "Информация о кластере", только в другом формате.
Аналог команды в CoCon:
/cluster/storage/<CLUSTER>/cluster/<CLUSTER_TYPE>/<CLUSTER_NAME>/info
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса/ответа:
http://host:port/commands/get_cluster_properties
Код HTTP-ответа:
При выполнение команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="common.xsd"/>
<!-- nodeType-->
<xs:complexType name="nodeType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- propertyType-->
<xs:complexType name="propertyType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<!-- clusterType -->
<xs:complexType name="clusterType">
<xs:all>
<xs:element name="properties">
<xs:complexType>
<xs:sequence>
<xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster">
<xs:complexType>
<xs:attribute name="storage" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:all>
<xs:element name="cluster" type="clusterType" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/get_cluster_properties
<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cluster_properties.xsd">
<cluster name="ds1" role="storage" storage="ds1" />
</in>
Ответ:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cluster_properties.xsd">
<cluster name="ds1" role="storage">
<properties>
<property name="nodes" value="[ds1@ecss1,ds1@ecss2]"/>
<property name="isActive" value="true"/>
</properties>
</cluster>
</out>
Hc_cluster_set
Команда используется для задания свойств кластера.
данная команда доступна пользователю root (пароль для пользователя root задается в лицензии)
Аналог команды в CoCon:
/cluster/storage/<CLUSTER>/cluster/<CLUSTER_TYPE>/<CLUSTER_NAME>/set
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cluster_set
Код HTTP-ответа:
При выполнение команды HTTP-терминал может ответить следующими двумя сообщениями:
- 201 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла c запросом:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="common.xsd"/>
<!-- propertyType-->
<xs:complexType name="propertyType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="cluster" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="storage" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cluster_set
Параметры:
<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_cluster_set.xsd">
<cluster role="storage" storage="ds1" name="ds1">
<property name="key1" value="value1"/>
<property name="ilist" value="[1,2,3]"/>
<property name="clist" value="[1,2,3, [a, b], test]"/>
</cluster>
</in>
Ответ 403 - команда доступна с правами root:
<?xml version="1.0" encoding="UTF-8"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="common_error.xsd">
<error cmd="cluster_set" reason="no_rights" body="{not_authorized,no_rights}"/>
</out>
Hc_cluster_clear
Команда позволяет удалить свойство кластера (одного или все).
данная команда доступна пользователю root (пароль для пользователя root задается в лицензии)
Аналог команды в CoCon:
/cluster/storage/<CLUSTER>/cluster/<CLUSTER_TYPE>/<CLUSTER_NAME>/clean
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cluster_clear
Код HTTP-ответа:
При выполнение команды HTTP-терминал может ответить следующими сообщениями:
- 204 – в случае успеха;
- 403,404 – в случае ошибки.
XSD-схема XML-файла c запросом:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="common.xsd"/>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="cluster">
<xs:complexType>
<xs:sequence>
<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="storage" type="xs:string" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cluster_clear
<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_cluster_clear.xsd">
<cluster role="core" storage="ds1" name="core1">
<property name="a"/>
<property name="b"/>
</cluster>
</in>
Ответ: 403 (только с root-правами)
<?xml version="1.0" encoding="UTF-8"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="common_error.xsd">
<error cmd="cluster_clear" reason="no_rights" body="{not_authorized,no_rights}"/>
</out>
Hc_clusters_list
Команда возвращает список кластеров, определенных в системе.
Аналог команды в CoCon:
/cluster/storage/<CLUSTER>/cluster/list
Метод http запроса:
POST
Шаблон http запроса:
http://host:port/commands/list_of_clusters
Код http ответа:
200 – в случае успеха;
404 – в случае ошибки.
Xsd схема XML запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="common.xsd"/>
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType>
<xs:attribute name="role" type="roleType" use="optional"/>
<xs:attribute name="storage" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="out">
<xs:complexType>
<xs:sequence>
<xs:element name="clusters">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
<xs:attribute name="active" type="xs:boolean" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/list_of_clusters
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_list_of_clusters.xsd">
<request storage="ds1"/>
</in>
Ответ:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_list_of_clusters.xsd">
<clusters>
<cluster name=".virtual" role="adapter" active="true"/>
<cluster name="sip1" role="adapter" active="true"/>
<cluster name="core1" role="core" active="true"/>
<cluster name="ds1" role="storage" active="true"/>
<cluster name="megaco1" role="adapter" active="true"/>
<cluster name="md1" role="mediator" active="true"/>
<cluster name=".system_bridge" role="adapter" active="true"/>
</clusters>
</out>
Hc_cluster_properties
Команда возвращает свойства кластера. Hc_cluster_properties возвращает ту же информацию, что и команда Hc_cluster_info, только в другом формате.
Аналог команды в CoCon:
/cluster/storage/<CLUSTER>/cluster/<CLUSTER_TYPE>/<CLUSTER_NAME>/info
Метод http запроса:
POST
Шаблон http запроса/ответа:
http://host:port/commands/get_cluster_properties
Код http ответа:
200 – в случае успеха;
404 – в случае ошибки.
Xsd схема xml файла с запросом/ответом:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="common.xsd"/>
<!-- nodeType-->
<xs:complexType name="nodeType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- propertyType-->
<xs:complexType name="propertyType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<!-- clusterType -->
<xs:complexType name="clusterType">
<xs:all>
<xs:element name="properties">
<xs:complexType>
<xs:sequence>
<xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster">
<xs:complexType>
<xs:attribute name="storage" type="xs:string" use="required"/>
<xs:attribute name="role" type="roleType" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:all>
<xs:element name="cluster" type="clusterType" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema
common.xsd:
См. страницу Hc_cluster_info.
Пример:
Запрос: http://192.168.1.21:9999/commands/get_cluster_properties
<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cluster_properties.xsd">
<cluster name="sip1" role="adapter" storage="ds1" />
</in>
Ответ:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cluster_properties.xsd">
<cluster name="sip1" role="adapter">
<properties>
<property name="nodes" value="[sip1@ecss1,sip1@ecss2]"/>
<property name="isActive" value="true"/>
</properties>
</cluster>
</out>