Hc_restfs_clusters - Управление RestFS кластерами на уровне ECSS-10
Hc_restfs_clusters_declare
Команда добавляет новый Restfs кластер в список кластеров Restfs.
Аналог команды в CoCon:
restfs/declare
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/restfs_clusters_declare
Код HTTP-ответа:
- 201 – в случае успеха;
- 200 – в случае ошибки.
XSD-схема XML-запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="error.xsd"/>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="peer" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:choice>
<xs:element name="error" type="errorType" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
http://192.168.1.21:9999/commands/restfs_clusters_declare
<in>
<request>
<cluster name="new_cluster1" peer="http://192.168.2.21:9990"/>
<cluster name="new_cluster2" peer="ftp://filezilla.com:4815"/>
</request>
</in>
Ответ:
status: 201
content:
Hc_restfs_clusters_list
Команда показывает список кластеров Restfs.
Аналог команды в CoCon:
restfs/list
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/restfs_clusters_list
Код HTTP-ответа:
- 200 – в случае успеха;
- 434 – в случае ошибки.
XSD-схема XML-запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="error.xsd"/>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="peer" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:choice>
<xs:element name="error" type="errorType" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
http://192.168.1.21:9999/commands/restfs_clusters_list
<in>
<request/>
</in>
Ответ:
status: 201
content:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_restfs_clusters_list.xsd">
<response name="default" peer="http://system.restfs.ecss:9990" status="connected"/>
<response name="mpeg" peer="http://192.168.1.21:9990" status="connected"/>
<response name="new_cluster1" peer="http://192.168.2.21:9990" status="connected"/>
<response name="new_cluster2" peer="ftp://filezilla.com:4815" status="disconnected"/>
</out>
Hc_restfs_clusters_remove
Команда удаляет Restfs кластер из списка кластеров Restfs.
Аналог команды в CoCon:
restfs/remove
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/restfs_clusters_remove
Код HTTP-ответа:
- 204 – в случае успеха;
- 200 – в случае ошибки.
XSD-схема XML-запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="error.xsd"/>
<xs:complexType name="clusterType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="requestType">
<xs:sequence>
<xs:element name="cluster" type="clusterType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request" type="requestType" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:choice>
<xs:element name="error" type="errorType" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
http://192.168.1.21:9999/commands/restfs_clusters_remove
<in>
<request>
<cluster name="new_cluster2"/>
</request>
</in>
Ответ успешного удаления:
status: 204
content:
Ответ удаления несуществующего кластера:
status: 200
content:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_restfs_clusters_remove.xsd">
<error cmd="hc_restfs_clusters_remove" reason="unknown_name" entity="cluster99"/>
</out>
Hc_restfs_clusters_status
Команда показывает статус Restfs кластера.
Аналог команды в CoCon:
restfs/status
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/restfs_clusters_status
Код HTTP-ответа:
- 200 – в случае успеха;
- 434 – в случае ошибки.
XSD-схема XML-запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="error.xsd"/>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="error" type="xs:string" use="optional"/>
<xs:attribute name="status" type="xs:string" use="optional"/>
<xs:attribute name="active" type="xs:string" use="optional"/>
<xs:attribute name="reading" type="xs:string" use="optional"/>
<xs:attribute name="writing" type="xs:string" use="optional"/>
<xs:attribute name="waiting" type="xs:string" use="optional"/>
<xs:attribute name="realpath" type="xs:string" use="optional"/>
<xs:attribute name="nginx_version" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="error" type="errorType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
http://192.168.1.21:9999/commands/restfs_clusters_status
<in>
<request>
<cluster name="default"/>
<cluster name="mpeg"/>
<cluster name="new_cluster1"/>
</request>
</in>
Ответ:
status: 200
content:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_restfs_clusters_status.xsd">
<cluster name="default" status="Connected" realpath="/var/lib/ecss/restfs" reading="0" active="4" waiting="2" nginx_version="1.14.0" writing="2"/>
<cluster name="mpeg" status="Connected" realpath="/var/lib/ecss/restfs" reading="0" active="3" waiting="1" nginx_version="1.14.0" writing="2"/>
<cluster name="new_cluster1" status="Connected" realpath="/var/lib/ecss/restfs" reading="0" active="2" waiting="0" nginx_version="1.14.0" writing="2"/>
</out>
Hc_restfs_clusters_set
Команда изменяет Restfs кластер из списка кластеров Restfs'a
Аналог команды в CoCon:
restfs/change
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/restfs_clusters_set
Код HTTP-ответа:
- 204 – в случае успеха;
- 201 – в случае ошибки.
XSD-схема XML-запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="error.xsd"/>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="cluster" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="change" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:attribute name="port" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="peer" type="xs:string" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="host" type="xs:string" use="optional"/>
<xs:attribute name="schema" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:choice>
<xs:element name="error" type="errorType" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
http://192.168.1.21:9999/commands/restfs_clusters_set
<in>
<request>
<cluster name="new_cluster1">
<change name="new_cluster4" peer="http://192.168.2.61:9990"/>
</cluster>
</request>
</in>
Ответ:
status: 204
content: