meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
doc_recs4:software_interface [2023/10/13 10:06] bildoc_recs4:software_interface [2023/11/28 11:07] (current) – complete rework with new images and REST-API update bil
Line 13: Line 13:
 |{{ :documentation:statuscritical.png?nolink |}} |Critical Error. The system must be checked immediately and maybe has to be shut down to prevent hardware damage. indicated by a red line in a graph.| |{{ :documentation:statuscritical.png?nolink |}} |Critical Error. The system must be checked immediately and maybe has to be shut down to prevent hardware damage. indicated by a red line in a graph.|
  
-Figure 1 shows the first call of the Management Web****GUI. The menu on the left side contains the following:+On the left side is a menu, which can be toggled by clicking the menu button in the upper left corner of the screen. The menu contains the following items:
  
-[[documentation:software_interface#Overview|Overview:]] General overview of all managed RCU<sup></sup>s, RPU<sup></sup>s, installed nodes and health status\\ +[[doc_recs4:software_interface#Dashboard|Dashboard]]General overview of the managed system, installed nodes and health status\\ 
-[[documentation:software_interface#Management|Management:]] Selection of every managed RCU and RPU in the rack with a sensor view button for the Arneb\\ +[[doc_recs4:software_interface#Management|Management]]: Power control and monitoring for all nodes and fans\\ 
-[[documentation:software_interface#Global settings|Global settings:]] IP filter and firmware update\\ +[[doc_recs4:software_interface#Network|Network]]: VLAN-Configuration and of management network\\ 
-[[documentation:software_interface#Log Viewer|Log:]] Logs from the management software about system health and java messages. The logs can be downloaded as a zipfile\\+[[doc_recs4:software_interface#Composition|Composition]]: Configuration of PCIe resources\\ 
 +[[doc_recs4:software_interface#Users|Users]]: User management\\ 
 +[[doc_recs4:software_interface#Settings|Settings]]: System-wide configuration settings\\ 
 +[[doc_recs4:software_interface#Time|Time]]: System time settings\\ 
 +[[doc_recs4:software_interface#Firmware|Firmware]]: Firmware updates and overview of software versions\\ 
 +[[doc_recs4:software_interface#Logs|Logs]]Logs from the management software about system health and java messages.\\
  
-The second colum contains the buttons and sliders to manipulate the system. While the third colum is mostly for history information like power usage and temperature graphs.+==== Dashboard ====
  
-==== Overview ====+The Dashboard is seen first when opening the Web****GUI and displays the summarized system health status.
  
-All units that are installed in the rack and that are managed by the software are summarized on this page. +<imgcaption Dashboard View|> 
-The total power usage is summed up over all managed units. +{{:doc_recs4:deneb_dashboard.png?direct|Dashboard View}}</imgcaption>
- +
-<imgcaption web-gui-overview|> +
-{{ :documentation:web-gui-overview.jpg?direct&500 |Management Overview}}</imgcaption>+
  
 ==== Management ==== ==== Management ====
  
-An overview of the selected unit can be seen in this tab. The fans can be regulated by dragging the slider to the desired percentageAnd multiple nodes can be selected. By klicking on a node the[[documentation:management#node management|Node management]] page of the node is shown.+In this view, nodes can be turned on or off with a quick menu, which opens when clicking on the gear symbol of a node.\\ 
 +Multiple nodes can be controled at once via the panel "Batch-Control Nodes".\\ 
 +The view also shows fan monitoring data and allows a detailed look at the temperature map of the system's baseboard.\\ 
 +By clicking on a node label, the respective [[doc_recs4:software_interface#Node Management|Node Management]] view is opened.\\ 
 +Furthermore the view displays the summarized system health status.
  
-<imgcaption web-gui-rcu-overview|>{{ :documentation:web-gui-rcu-overview.jpg?direct&500 |Adds an ImageCaption tag}}</imgcaption>+<imgcaption Management View|> 
 +{{:doc_recs4:deneb_management.png?direct|Management View}}</imgcaption>
  
-A quick menu to control a node can be opened by klicking on the gear next to an CXP node. In this menu the node can be switched on and off and the KVM can be switched to the node. 
  
-<imgcaption web-gui-node-control|>{{ :documentation:web-gui-node-control.jpg?nolink&300 |Management pop-pu for Apalis nodes}}</imgcaption>+=== Node Management ===
  
-<WRAP round tip> +This view features controlling the power state of the selected node and monitoring its detailed status values and graphs.\\ 
-Apalis nodes do not show a management pop-up button due to size constraints.\\ Click on the node button while pressing the "Shift" key to open the management pop-up instead of navigating to the node view+It is also possible to change KVM settings or open a console to the node.\\ 
-</WRAP>+If the node is running and the [[documentation:recsdaemon|RECSDeamon]] is installed on it, even more detailed data is shown.
  
-<WRAP round tip+<imgcaption Node Management View|
-When pressing the "Shift" key while clicking, the "Select all" and "Select none" buttons select only nodes currently on or nodes currently off, respectively. +{{:doc_recs4:deneb_node-management.png?direct|Node Management View}}</imgcaption>
-</WRAP>+
  
-=== Node management === 
  
-On this page the selected node can be controlled and detailed status values and graphs can be seen.\\ +=== Network ===
-By klicking on the arrow, pointing downwards in the upper bar next to the nodename, the other nodes of the unit can be chosen.+
  
-<imgcaption web-gui-cxp-node-view|>{{ :documentation:web-gui-cxp-node-view.jpg?direct&500 |Node management}}</imgcaption>+The network view allows changing the settings of the managment port. This port is used to access the webinterface and all APIs.\\ 
 +In addition to that, VLANs of the node network can be configured and assigned to the ports of the nodes and the backpanel.
  
-==== Global settings ====+<imgcaption Network View|> 
 +{{:doc_recs4:deneb_network.png?direct|Network View}}</imgcaption>
  
-All IP<sup></sup>s that are allowed to access the Nagios interface have to be listet here.\\ 
-The firmware for the whole RECS<sup>(r)</sup>%%|%%Box can be uploaded here by klicking on the "Upload Firmware File" button and selecting the file. The update-process starts right after the file was uploaded.\\ 
-For the update process **all modules will be powered off!**\\ 
  
-<imgcaption web-gui-global_settings|>{{ :documentation:web-gui-global_settings.jpg?direct&500 |Golobal settings tab}}</imgcaption>+=== Composition ===
  
-==== Log viewer ====+This view allows the configuration of the PCIe resources in the form of composed nodes.\\ 
 +A composed node is a reserved bundle of resources, which utilize PCIe functions.\\ 
 +A wizard leads through the process of creating such composed nodes.
  
-In the system healths tab of the log page the status changes of the sensors, fan and boards can be seen.+<imgcaption Composition View|> 
 +{{:doc_recs4:deneb_composition.png?direct|Composition View}}</imgcaption>
  
-<imgcaption web-gui-log-standart_view|>{{ :documentation:web-gui-log-standart_view.jpg?direct&500 |System health log}}</imgcaption> 
  
-In the java tab of the log page all messages regarding the software can be found.+=== Users ===
  
-<imgcaption web-gui-log-java_messages-view|>{{ :documentation:web-gui-log-java_messages-view.jpg?direct&500 |Java messages}}</imgcaption>+This view features the user management. Users can be created, edited or deleted.\\ 
 +Additionally, IPMI passwords can be set.
  
 +<imgcaption Users View|>
 +{{:doc_recs4:deneb_users.png?direct|Users View}}</imgcaption>
 +
 +
 +=== Settings ===
 +
 +This view allows changing system-wide preferences (e.g. regarding the interfaces of the system).
 +
 +<imgcaption Settings View|>
 +{{:doc_recs4:deneb_settings.png?direct|Settings View}}</imgcaption>
 +
 +
 +=== Time ===
 +
 +Here, the system time can be set either manually or using NTP.
 +
 +<imgcaption Time View|>
 +{{:doc_recs4:deneb_time.png?direct|Time View}}</imgcaption>
 +
 +
 +=== Firmware ===
 +
 +This view shows the currently installed versions of the firmware and management software.\\
 +Furthermore, it is possible to update those software components.
 +
 +<imgcaption Firmware View|>
 +{{:doc_recs4:deneb_firmware.png?direct|Firmware View}}</imgcaption>
 +
 +
 +=== Logs ===
 +
 +In the System Events tab of this view, the status changes of the sensors, fan and boards can be seen.\\
 +In the Java Messages tab , all messages regarding the software can be found.\\
 Several filters can be set for both tabs at the top.\\ Several filters can be set for both tabs at the top.\\
-At the bottom the whole log can be downloaded as a ZIP file containing the individual logfiles.+The whole log can be downloaded as a ZIP file containing the individual logfiles. 
 + 
 +<imgcaption Logs View|> 
 +{{:doc_recs4:deneb_logs.png?direct|Logs View}}</imgcaption> 
  
 ===== Redfish API ===== ===== Redfish API =====
  
-The documentation of the RECS<sup>(r)</sup>%%|%%Box Redfish API can be seen at [[https://christmann.github.io/recs-redfish-api/index.html|Github]].+The management software also features a Redfish API.\\ 
 +The documentation can be seen at [[https://christmann.github.io/recs-redfish-api/index.html|Github]].
  
 ===== REST API ===== ===== REST API =====
Line 84: Line 127:
 ==== Access ==== ==== Access ====
  
-The RECS<sup>(r)</sup>%%|%%Box Management API is accessible via the IP-Address or the hostname of the TOR-Master of the cluster. The basic URL of the API has the format ''https://TOR-Master/REST/'' or ''http://TOR-Master/REST/''.+The REST API is accessible via the management IP-Address or the hostname of the system. The basic URL of the API has the format ''https://host/REST/''.
  
 Accessing the REST API requires HTTP Basic authentication. The authenticated user has to be in the "Admin" or "User" group to be able to execute the POST/PUT management calls. Accessing the REST API requires HTTP Basic authentication. The authenticated user has to be in the "Admin" or "User" group to be able to execute the POST/PUT management calls.
Line 90: Line 133:
 ==== Components ==== ==== Components ====
  
-The RECS<sup>(r)</sup>%%|%%Box Management API makes all hardware components in the cluster available as XML trees in software. The following components are supported by the API: \\+The REST API makes all hardware components in the cluster available as XML trees in software. The following components are supported by the API: \\
  
 ^ Attribute ^ Description ^ ^ Attribute ^ Description ^
-|''node'' | A single node+|''rcu'' |A RECS Computing Unit (RCU) represents the overall system
-|''backplane'' |A backplane can be equipped with zero or more baseboards|+|''backplane'' |A backplane holds sensors and controls fans|
 |''baseboard'' |A baseboard can be equipped with zero or more nodes| |''baseboard'' |A baseboard can be equipped with zero or more nodes|
-|''rcu'' |A RECS<sup>(r)</sup>%%|%%Box Computing Unit (RCU) can be equipped with zero or more baseboards| +|''node'' |A single node|
-|''rack'' |A rack consists of several RCU****s|+
  
-Many resources also return lists of components. These are named according to the scheme <component name>List (e.g. nodeList, rcuList) and contain the elements of the list.+=== RCU ===
  
-Example of a backplaneList:+The main entrypoint of this API is the RECS Computing Unit (RCU).
  
-<code xml><backplaneList+Request: 
-<backplane position="1" id="RCU_84055620466592_BP_1" infrastructurePower="0.0"  +<code bash
-lastSensorUpdate="1465470151268"> +curl -X GET -k -i https://host/REST/rcu 
-<temperatures>24.0</temperatures> +</code>
-<temperatures>25.0</temperatures> +
-<temperatures>26.0</temperatures> +
-<temperatures>27.0</temperatures> +
-<temperatures>28.0</temperatures> +
-</backplane> +
-</backplaneList></code>+
  
-=== Node ===+Response: 
 +<code xml> 
 +<rcu name="RCUMaster (192.168.XX.YY)" fanSpeed="100" fanProfile="Manual" health="OK" ip="192.168.XX.YY" lastSensorUpdate="1701160258937" type="RECS|Box Deneb" id="RCU_10995770589198"> 
 +  <temperature> 
 +    <sensor name="Backplane 1 temp. 0" unit="°C" health="OK">26,2</sensor> 
 +    <sensor name="Backplane 1 temp. 1" unit="°C" health="OK">32,1</sensor> 
 +    <sensor name="Backplane 1 temp. 2" unit="°C" health="OK">23,0</sensor> 
 +    <sensor name="Backplane 1 temp. 3" unit="°C" health="OK">28,0</sensor> 
 +    <sensor name="Backplane 1 temp. 4 (PCIe-Switch)" unit="°C" health="OK">47,2</sensor> 
 +    <sensor name="Backplane 1 temp. 5 (Ethernet-Switch)" unit="°C" health="OK">36,1</sensor> 
 +    <sensor name="Backplane 2 temp. 0" unit="°C" health="OK">26,0</sensor> 
 +    <sensor name="Backplane 2 temp. 1" unit="°C" health="OK">32,0</sensor> 
 +    <sensor name="Backplane 2 temp. 2" unit="°C" health="OK">23,1</sensor> 
 +    <sensor name="Backplane 2 temp. 3" unit="°C" health="OK">28,1</sensor> 
 +    <sensor name="Backplane 2 temp. 4 (PCIe-Switch)" unit="°C" health="OK">47,0</sensor> 
 +    <sensor name="Backplane 2 temp. 5 (Ethernet-Switch)" unit="°C" health="OK">36,1</sensor> 
 +    <sensor name="Backplane 3 temp. 0" unit="°C" health="OK">32,2</sensor> 
 +    <sensor name="Backplane 3 temp. 1" unit="°C" health="OK">44,2</sensor> 
 +    <sensor name="Backplane 3 temp. 2" unit="°C" health="OK">26,1</sensor> 
 +    <sensor name="Backplane 3 temp. 3" unit="°C" health="OK">36,0</sensor> 
 +    <sensor name="Backplane 3 temp. 4 (PCIe-Switch)" unit="°C" health="OK">74,0</sensor> 
 +    <sensor name="Backplane 3 temp. 5 (Ethernet-Switch)" unit="°C" health="OK">52,1</sensor> 
 +    <sensor name="Node average temperature" unit="°C" health="OK">38.279927272086105</sensor> 
 +    <sensor name="Node highest temperature" unit="°C" health="OK">62.24058727899749</sensor> 
 +    <sensor name="RCU infrastructure highest temperature" unit="°C" health="OK">74.00064867543587</sensor> 
 +  </temperature> 
 +  <backplane>RCU_10995770589198_BP_1</backplane> 
 +  <backplane>RCU_10995770589198_BP_2</backplane> 
 +  <backplane>RCU_10995770589198_BP_3</backplane> 
 +  <baseboard>RCU_10995770589198_BB_1</baseboard> 
 +  <baseboard>RCU_10995770589198_BB_2</baseboard> 
 +  <baseboard>RCU_10995770589198_BB_3</baseboard> 
 +  <baseboard>RCU_10995770589198_BB_4</baseboard> 
 +  <baseboard>RCU_10995770589198_BB_6</baseboard> 
 +  <baseboard>RCU_10995770589198_BB_7</baseboard> 
 +  <baseboard>RCU_10995770589198_BB_8</baseboard> 
 +  <baseboard>RCU_10995770589198_BB_9</baseboard> 
 +  <fan>RCU_10995770589198_Fan_DENEB_1</fan> 
 +  <fan>RCU_10995770589198_Fan_DENEB_2</fan> 
 +  <fan>RCU_10995770589198_Fan_DENEB_3</fan> 
 +  <node>RCU_10995770589198_BB_1_0</node> 
 +  <node>RCU_10995770589198_BB_1_2</node> 
 +  <node>RCU_10995770589198_BB_1_3</node> 
 +  <node>RCU_10995770589198_BB_1_4</node> 
 +  <node>RCU_10995770589198_BB_1_5</node> 
 +  <node>RCU_10995770589198_BB_1_6</node> 
 +  <node>RCU_10995770589198_BB_1_7</node> 
 +  <node>RCU_10995770589198_BB_1_8</node> 
 +  <node>RCU_10995770589198_BB_1_9</node> 
 +  <node>RCU_10995770589198_BB_1_10</node> 
 +  <node>RCU_10995770589198_BB_1_11</node> 
 +  <node>RCU_10995770589198_BB_1_12</node> 
 +  <node>RCU_10995770589198_BB_1_13</node> 
 +  <node>RCU_10995770589198_BB_1_14</node> 
 +  <node>RCU_10995770589198_BB_1_15</node> 
 +  <node>RCU_10995770589198_BB_2_0</node> 
 +  <node>RCU_10995770589198_BB_2_1</node> 
 +  <node>RCU_10995770589198_BB_2_2</node> 
 +  <node>RCU_10995770589198_BB_3_0</node> 
 +  <node>RCU_10995770589198_BB_3_1</node> 
 +  <node>RCU_10995770589198_BB_3_2</node> 
 +  <node>RCU_10995770589198_BB_4_0</node> 
 +  <node>RCU_10995770589198_BB_4_1</node> 
 +  <node>RCU_10995770589198_BB_4_2</node> 
 +  <node>RCU_10995770589198_BB_6_0</node> 
 +  <node>RCU_10995770589198_BB_6_1</node> 
 +  <node>RCU_10995770589198_BB_6_2</node> 
 +  <node>RCU_10995770589198_BB_7_0</node> 
 +  <node>RCU_10995770589198_BB_7_1</node> 
 +  <node>RCU_10995770589198_BB_7_2</node> 
 +  <node>RCU_10995770589198_BB_7_3</node> 
 +  <node>RCU_10995770589198_BB_7_4</node> 
 +  <node>RCU_10995770589198_BB_7_5</node> 
 +  <node>RCU_10995770589198_BB_7_6</node> 
 +  <node>RCU_10995770589198_BB_7_8</node> 
 +  <node>RCU_10995770589198_BB_7_9</node> 
 +  <node>RCU_10995770589198_BB_7_10</node> 
 +  <node>RCU_10995770589198_BB_7_11</node> 
 +  <node>RCU_10995770589198_BB_7_12</node> 
 +  <node>RCU_10995770589198_BB_7_13</node> 
 +  <node>RCU_10995770589198_BB_7_14</node> 
 +  <node>RCU_10995770589198_BB_7_15</node> 
 +  <node>RCU_10995770589198_BB_8_0</node> 
 +  <node>RCU_10995770589198_BB_8_1</node> 
 +  <node>RCU_10995770589198_BB_8_2</node> 
 +  <node>RCU_10995770589198_BB_8_3</node> 
 +  <node>RCU_10995770589198_BB_8_4</node> 
 +  <node>RCU_10995770589198_BB_8_5</node> 
 +  <node>RCU_10995770589198_BB_8_6</node> 
 +  <node>RCU_10995770589198_BB_8_7</node> 
 +  <node>RCU_10995770589198_BB_8_9</node> 
 +  <node>RCU_10995770589198_BB_8_10</node> 
 +  <node>RCU_10995770589198_BB_8_11</node> 
 +  <node>RCU_10995770589198_BB_8_12</node> 
 +  <node>RCU_10995770589198_BB_8_13</node> 
 +  <node>RCU_10995770589198_BB_8_14</node> 
 +  <node>RCU_10995770589198_BB_8_15</node> 
 +  <node>RCU_10995770589198_BB_9_0</node> 
 +  <node>RCU_10995770589198_BB_9_1</node> 
 +  <node>RCU_10995770589198_BB_9_2</node> 
 +  <node>RCU_10995770589198_BB_9_3</node> 
 +  <node>RCU_10995770589198_BB_9_4</node> 
 +  <node>RCU_10995770589198_BB_9_5</node> 
 +  <node>RCU_10995770589198_BB_9_6</node> 
 +  <node>RCU_10995770589198_BB_9_7</node> 
 +  <node>RCU_10995770589198_BB_9_8</node> 
 +  <node>RCU_10995770589198_BB_9_10</node> 
 +  <node>RCU_10995770589198_BB_9_11</node> 
 +  <node>RCU_10995770589198_BB_9_12</node> 
 +  <node>RCU_10995770589198_BB_9_13</node> 
 +  <node>RCU_10995770589198_BB_9_14</node> 
 +  <node>RCU_10995770589198_BB_9_15</node> 
 +  <power> 
 +    <sensor name="RCU total power usage" unit="W" health="OK">2024.3027830888711</sensor> 
 +    <sensor name="RCU infrastructure power usage" unit="W" health="OK">59.600615599470274</sensor> 
 +    <sensor name="RCU power usage (Node)" unit="W" health="OK">467.0563244508067</sensor> 
 +    <sensor name="RCU power usage (PEG)" unit="W" health="OK">1497.6458430385942</sensor> 
 +  </power> 
 +</rcu> 
 +</code>
  
-Example XML: +Attributes: \\
- +
-<code xml><node baseboardPosition="0" maxPowerUsage="44" actualNodePowerUsage="32.426884399865166"  +
-actualPEGPowerUsage="15.12053962324833" actualPowerUsage="47.54742402311349" architecture="x86"  +
-baseboardId="RCU_84055620466592_BB_1" health="OK" id="RCU_84055620466592_BB_1_0" inletTemperature="20.0"  +
-lastSensorUpdate="1465470151268" macAddressCompute="70:b3:d5:56:40:48" outletTemperature="20.0" state="1"  +
-highestTemperature="20.0" voltage="12.072700851453936"/></code> +
- +
-The following table shows the possible attributes (some are optional) and their meaning: \\+
  
 ^ Attribute ^ Description ^ Unit ^ Data type ^ ^ Attribute ^ Description ^ Unit ^ Data type ^
-|''id''|Unique ID for referencing the component|-|String| +|''name'' |Name of the RCU|-|String| 
-|''actualPowerUsage'' |Actual power consumption of a node (Node + PEG)|W|Double| +|''fanSpeed'' |Current speed setting of the fans in the RCU|%|Integer| 
-|''actualNodePowerUsage'' |Actual power consumption of a node (Node only)|W|Double| +|''fanProfile'' |Current fan profileof the RCU|%|Integer| 
-|''actualPEGPowerUsage'' |Actual power consumption of a PEG card|W|Double| +|''health'' |Health status of the RCU (OK, Warning, Critical)|-|String| 
-|''maxPowerUsage'' |Maximum power the node can draw|W|Integer| +|''ip'' |IP address of the RCU|-|String
-|''baseboardId'' |ID of the baseboard which hosts the node|-|String| +|''kvmNode'' |ID of the node to which the KVM system is switched (optional)|-|String|
-|''baseboardPosition'' |Position of the node on the baseboard|-|Integer| +
-|''state'' |Power state of the node (0=Off, 1=On, 2=Soft-off, 3=Standby, 4=Hibernate)|-|Integer+
-|''architecture'' |Architecture (x86, arm, UNKNOWN)|-|String+
-|''health'' |Health status of the node (OK, Warning, Critical)|-|String| +
-|''inletTemperature'' |Temperature of the inlet air|°C|Double+
-|''outletTemperature'' |Temperature of the outlet air|°C|Double| +
-|''highestTemperature'' |Highest temperature measured on the node's baseboard|°C|Double| +
-|''voltage'' |Supply voltage of the baseboard|V|Double|+
 |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long| |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long|
-|''macAddressCompute'' |MAC address of the NIC connected to the compute network (optional)|-|String| +|''type'' |Type of the RCU|-|String| 
-|''macAddressMgmt'' |MAC address of the NIC connected to the management network (optional)|-|String|+|''id'' |ID for referencing the component|-|String| 
 + 
 +Nested elements: \\ 
 + 
 +^ Element ^ Description ^ Unit ^ Data type ^ 
 +|''temperature'' |List of temperature sensors|°C|Double| 
 +|''backplane'' |ID of the backplanes which are installed in the RCU|-|String
 +|''baseboard'' |ID of the baseboards which are installed in the RCU|-|String| 
 +|''fan'' |ID****s of fans, which are installed in the RCU|-|String| 
 +|''node'' |ID****s of nodes, which are installed in the RCU|-|String| 
 +|''power'' |List of power sensors|W|Double|
  
-In accordance to the component node the API offers nodeList which returns multiple instances of node. 
  
 === Backplane === === Backplane ===
  
-Example XML:+Request: 
 +<code bash> 
 +curl -X GET -k -i https://host/REST/backplane/RCU_10995770589198_BP_1 
 +</code>
  
-<code xml><backplane position="1" id="RCU_84055620466592_BP_1infrastructurePower="0.0 +Response: 
-lastSensorUpdate="1465470151268"> +<code xml> 
-<temperatures>24.0</temperatures+<backplane rcuPosition="1" health="OKlastSensorUpdate="1701160658937id="RCU_10995770589198_BP_1"> 
-<temperatures>25.0</temperatures+  <current/> 
-<temperatures>26.0</temperatures+  <fan>RCU_10995770589198_Fan_DENEB_1</fan
-<temperatures>27.0</temperatures+  <fan>RCU_10995770589198_Fan_DENEB_2</fan
-<temperatures>28.0</temperatures+  <fan>RCU_10995770589198_Fan_DENEB_3</fan> 
-</backplane></code>+  <temperature> 
 +    <sensor name="Backplane 1 temp. 0" unit="°C" health="OK">26,1</sensor
 +    <sensor name="Backplane 1 temp. 1" unit="°C" health="OK">32,0</sensor> 
 +    <sensor name="Backplane 1 temp2" unit="°C" health="OK">23,0</sensor
 +    <sensor name="Backplane 1 temp. 3" unit="°C" health="OK">28,1</sensor> 
 +    <sensor name="Backplane 1 temp4 (PCIe-Switch)" unit="°C" health="OK">47,2</sensor> 
 +    <sensor name="Backplane 1 temp. 5 (Ethernet-Switch)" unit="°C" health="OK">36,2</sensor> 
 +  </temperature
 +</backplane> 
 +</code>
  
-The attributes have the following meaning: \\+Attributes: \\
  
 ^ Attribute ^ Description ^ Unit ^ Data type ^ ^ Attribute ^ Description ^ Unit ^ Data type ^
-|''id'' |Unique ID for referencing the component|-|String| +|''rcuPosition'' |Position of the backplane inside the RCU|-|Integer| 
-|''position'' |Position of the backplane in the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|Integer| +|''health'' |Health status of the backplane (OK, Warning, Critical)|-|String|
-|''infrastructurePower'' |Power usage of the infrastructure components on the backplane|W|Double|+
 |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long| |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long|
-|''temperatures'' |List of temperatures measured on the backplane|°C|Double|+|''id'' |ID for referencing the component|-|String| 
 + 
 +Nested elements: \\ 
 + 
 +^ Element ^ Description ^ Unit ^ Data type ^ 
 +|''fan'' |ID****s of fans, which are associated to the backplane|-|String| 
 +|''temperature'' |List of temperature sensors|°C|Double| 
 + 
 +The API offers backplaneList, which returns a list of the IDs of all backplanes within the system. 
 + 
 +<backplaneList> 
 +  <backplane>RCU_10995770589198_BP_1</backplane> 
 +  <backplane>RCU_10995770589198_BP_2</backplane> 
 +  <backplane>RCU_10995770589198_BP_3</backplane> 
 +</backplaneList>
  
-In accordance to the component backplane the API offers backplaneList which returns multiple instances of backplane. 
  
 === Baseboard === === Baseboard ===
  
-Example XML:+Request: 
 +<code bash> 
 +curl -X GET -k -i https://host/REST/baseboard/RCU_10995770589198_BB_3 
 +</code>
  
-<code xml><baseboard rcuPosition="6baseboardType="APLSid="RCU_84055620466592_BB_6infrastructurePower="9.8 +Response: 
-lastSensorUpdate="1465470151268rcuId="RCU_84055620466592"> +<code xml> 
-<nodeId>RCU_84055620466592_BB_6_1</nodeId+<baseboard type="COM ExpressexpansionBoardInserted="falsercuPosition="3health="OK" lastSensorUpdate="1701161214932id="RCU_10995770589198_BB_3"> 
-<nodeId>RCU_84055620466592_BB_6_2</nodeId+  <node>RCU_10995770589198_BB_3_0</node
-<nodeId>RCU_84055620466592_BB_6_3</nodeId+  <node>RCU_10995770589198_BB_3_1</node
-<temperatures>20.0</temperatures+  <node>RCU_10995770589198_BB_3_2</node
-<temperatures>20.0</temperatures+  <power> 
-<temperatures>20.0</temperatures+    <sensor name="Baseboard 3 infrastructure power" unit="W" health="OK">7,51</sensor> 
-<temperatures>20.0</temperatures+    <sensor name="Baseboard 3 power usage (Node + PEG)" unit="W" health="OK">54.91125326153526</sensor
-<temperatures>20.0</temperatures+    <sensor name="Baseboard 3 power usage (Node)" unit="W" health="OK">54.91125326153526</sensor> 
-</baseboard></code>+    <sensor name="Baseboard 3 power usage (PEG)" unit="W" health="OK">0.0</sensor
 +  </power> 
 +  <temperature> 
 +    <sensor name="Baseboard 3 temp. 0" unit="°C" health="OK">42,4</sensor
 +    <sensor name="Baseboard 3 temp. 1" unit="°C" health="OK">41,4</sensor> 
 +    <sensor name="Baseboard 3 temp2" unit="°C" health="OK">43,6</sensor> 
 +    <sensor name="Baseboard 3 temp. 3" unit="°C" health="OK">25,0</sensor
 +    <sensor name="Baseboard 3 temp. 4" unit="°C" health="OK">36,5</sensor> 
 +    <sensor name="Baseboard 3 temp5" unit="°C" health="OK">43,4</sensor> 
 +    <sensor name="Baseboard 3 temp. 6" unit="°C" health="OK">46,4</sensor> 
 +    <sensor name="Baseboard 3 temp. 7" unit="°C" health="NONE">255,0</sensor> 
 +    <sensor name="Baseboard 3 temp. 8 (PCIe-Switch)" unit="°C" health="OK">50,1</sensor> 
 +    <sensor name="Baseboard 3 temp. 9 (Ethernet-Switch)" unit="°C" health="OK">45,1</sensor> 
 +  </temperature> 
 +  <voltage> 
 +    <sensor name="Baseboard 3 voltage (12 V Input)" unit="V" health="OK">11,90</sensor> 
 +  </voltage
 +</baseboard> 
 +</code>
  
-The attributes have the following meaning: \\+Attributes: \\
  
 ^ Attribute ^ Description ^ Unit ^ Data type ^ ^ Attribute ^ Description ^ Unit ^ Data type ^
-|''id'' |Unique ID for referencing the component|-|String| +|''type'' |Type of the baseboard|-|String| 
-|''rcuId'' |Unique ID of the RECS<sup>(r)</sup>%%|%%Box Computing Unit hosting the baseboard|-|String+|''expansionBoardInserted'' |Indicates, if an expansion board is available|-|Boolean
-|''rcuPosition'' |Position of the baseboard inside the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|Integer| +|''rcuPosition'' |Position of the baseboard inside the RCU|-|Integer| 
-|''infrastructurePower'' |Power usage of the infrastructure components on the baseboard|W|Double|+|''health'' |Health status of the baseboard (OK, Warning, Critical)|-|String|
 |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long| |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long|
-|''baseboardType'' |Type of the baseboard (CXP, APLS)|-|String| +|''id'' |ID for referencing the component|-|String|
-|''nodeId'' |List of ID****s of the nodes installed on the baseboard|-|String+
-|''temperatures'' |List of temperatures measured on the backplane|°C|Double|+
  
-In accordance to the component baseboard the API offers baseboardList which returns multiple instances of baseboard.+Nested elements: \\
  
-=== RCU ===+^ Element ^ Description ^ Unit ^ Data type ^ 
 +|''fan'' |ID****s of fans, which are associated to the baseboard|-|String| 
 +|''node'' |ID****s of nodes, which are installed on the baseboard|-|String| 
 +|''power'' |List of power sensors|W|Double 
 +|''temperature'' |List of temperature sensors|°C|Double| 
 +|''voltage'' |List of voltage sensors|V|Double|
  
-Example XML:+The API offers baseboardList, which returns a list of the IDs of all baseboards within the system.
  
-<code xml><rcu rcuType="ANTARES" fanSpeed="60" fanProfile="adjust_by_temperature" rackId="RCK_1" name="RECSMaster (RCU) on 192.168.56.195" rackPosition="0" id="RCU_84055620466592" lastSensorUpdate="1465470151268"+<baseboardList
-<backplaneId>RCU_84055620466592_BP_1</backplaneId+  <baseboard>RCU_10995770589198_BB_1</baseboard
-<baseboardId>RCU_84055620466592_BB_1</baseboardId+  <baseboard>RCU_10995770589198_BB_2</baseboard
-<baseboardId>RCU_84055620466592_BB_2</baseboardId+  <baseboard>RCU_10995770589198_BB_3</baseboard
-<baseboardId>RCU_84055620466592_BB_3</baseboardId+  <baseboard>RCU_10995770589198_BB_4</baseboard
-<baseboardId>RCU_84055620466592_BB_4</baseboardId+  <baseboard>RCU_10995770589198_BB_6</baseboard
-<baseboardId>RCU_84055620466592_BB_5</baseboardId+  <baseboard>RCU_10995770589198_BB_7</baseboard
-<baseboardId>RCU_84055620466592_BB_6</baseboardId+  <baseboard>RCU_10995770589198_BB_8</baseboard
-</rcu></code>+  <baseboard>RCU_10995770589198_BB_9</baseboard> 
 +</baseboardList>
  
-The attributes have the following meaning: \\+=== Node === 
 + 
 +Request: 
 +<code bash> 
 +curl -X GET -k -i https://host/REST/node/RCU_10995770589198_BB_3_0 
 +</code> 
 + 
 +Response: 
 +<code xml> 
 +<node baseboardPosition="0" name="Node 1-1" type="Jetson" maxPowerUsage="21" powerState="On" health="OK" lastSensorUpdate="1701161458933" id="RCU_10995770589198_BB_1_0"> 
 +  <baseboard>RCU_10995770589198_BB_1</baseboard> 
 +  <deamon/> 
 +  <power> 
 +    <sensor name="Overall Node 1-1 power" unit="W" health="OK">20.280571457632558</sensor> 
 +    <sensor name="Node 1-1 power" unit="W" health="OK">20,28</sensor> 
 +  </power> 
 +  <processor type="GPU" cores="256" threads="0" maxSpeedMHz="1120" manufacturer="NVIDIA" model="Pascal GP10B" /> 
 +  <processor instructionSet="ARM-A64" architecture="ARM" type="CPU" cores="2" threads="2" maxSpeedMHz="2000" manufacturer="NVIDIA" model="Denver 2" /> 
 +  <processor instructionSet="ARM-A64" architecture="ARM" type="CPU" cores="4" threads="4" maxSpeedMHz="2000" manufacturer="ARM" model="Cortex-A57" partNumber="1SX280LN3F43E2VG" /> 
 +  <temperature> 
 +    <sensor name="Node 1-1 inlet temperature" unit="°C" health="OK">20.001274723105443</sensor> 
 +    <sensor name="Node 1-1 outlet temperature" unit="°C" health="OK">23.06943277191329</sensor> 
 +  </temperature> 
 +  <voltage> 
 +    <sensor name="Baseboard 1 voltage (12 V Input)" unit="V" health="OK">11,91</sensor> 
 +  </voltage> 
 +</node> 
 +</code> 
 + 
 +Attributes: \\
  
 ^ Attribute ^ Description ^ Unit ^ Data type ^ ^ Attribute ^ Description ^ Unit ^ Data type ^
-|''id'' |Unique ID for referencing the component|-|String| +|''baseboardPosition'' |Position of the node on the baseboard|-|Integer| 
-|''rackId'' |ID of the rack which hosts the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String| +|''name'' |Name of the node|-|String| 
-|''rackPosition'' |Position of the RECS<sup>(r)</sup>%%|%%Box Computing Unit in the rack|-|Integer| +|''type'' |Type of the node|-|String| 
-|''name'' |Name of the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String| +|''maxPowerUsage'' |Maximum power the node can draw|W|Integer
-|''ip'' |IP address of the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String| +|''powerState'' |Power state of the node (Off, On, Soft-off, Standby, Hibernate)|-|String| 
-|''rcuType'' |Type of the RECS<sup>(r)</sup>%%|%%Box Computing Unit (SIRIUS, ARNEB, ANTARES)|-|String+|''health'' |Health status of the node (OK, Warning, Critical)|-|String|
-|''kvmNode'' |ID of the node to which the KVM system is switched (optional)|-|String| +
-|''fanSpeed'' |Current speed setting of the fans in the RECS<sup>(r)</sup>%%|%%Box Computing Unit|%|Integer| +
-|''fanProfile'' |Current fan profileof the RECS<sup>(r)</sup>%%|%%Box Computing Unit|%|Integer|+
 |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long| |''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long|
-|''backplaneId'' |List of ID****s of backplanes which are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String| +|''id''|ID for referencing the component|-|String| 
-|''baseboardId'' |List of ID****s of baseboards which are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit|-|String|+|''macAddressCompute'' |MAC address of the NIC connected to the compute network (optional)|-|String| 
 +|''macAddressMgmt'' |MAC address of the NIC connected to the management network (optional)|-|String|
  
-In accordance to the component rcu the API offers rcuList which returns multiple instances of rcu.+Nested elements: \\
  
-=== Rack ===+^ Element ^ Description ^ Unit ^ Data type ^ 
 +|''baseboard'' |ID of the baseboard hosting the node|-|String| 
 +|''deamon'' |List of deamon sensors (optional)|-|Mixed| 
 +|''power'' |List of power sensors|W|Double| 
 +|''processor'' |List of processors of this node with detailed information|-|-| 
 +|''temperature'' |List of temperature sensors|°C|Double| 
 +|''voltage'' |List of voltage sensors|V|Double|
  
-Example XML:+The API offers nodeList, which returns a list of the IDs of all nodes within the system.
  
-<code xml><rack description="Default rack" id="RCK_1"+Request: 
-<rcuId>RCU_84055620466592</rcuId> +<code bash
-</rack></code>+curl -X GET -k -i https://host/REST/node 
 +</code>
  
-The attributes have the following meaning: \\+Response: 
 +<code xml> 
 +<nodeList> 
 +  <node>RCU_10995770589198_BB_1_0</node> 
 +  <node>RCU_10995770589198_BB_1_2</node> 
 +  <node>RCU_10995770589198_BB_1_3</node> 
 +  <node>RCU_10995770589198_BB_1_4</node> 
 +  <node>RCU_10995770589198_BB_1_5</node> 
 +  <node>RCU_10995770589198_BB_1_6</node> 
 +  <node>RCU_10995770589198_BB_1_7</node> 
 +  <node>RCU_10995770589198_BB_1_8</node> 
 +  <node>RCU_10995770589198_BB_1_9</node> 
 +  <node>RCU_10995770589198_BB_1_10</node> 
 +  <node>RCU_10995770589198_BB_1_11</node> 
 +  <node>RCU_10995770589198_BB_1_12</node> 
 +  <node>RCU_10995770589198_BB_1_13</node> 
 +  <node>RCU_10995770589198_BB_1_14</node> 
 +  <node>RCU_10995770589198_BB_1_15</node> 
 +  <node>RCU_10995770589198_BB_2_0</node> 
 +  <node>RCU_10995770589198_BB_2_1</node> 
 +  <node>RCU_10995770589198_BB_2_2</node> 
 +  <node>RCU_10995770589198_BB_3_0</node> 
 +  <node>RCU_10995770589198_BB_3_1</node> 
 +  <node>RCU_10995770589198_BB_3_2</node> 
 +  <node>RCU_10995770589198_BB_4_0</node> 
 +  <node>RCU_10995770589198_BB_4_1</node> 
 +  <node>RCU_10995770589198_BB_4_2</node> 
 +  <node>RCU_10995770589198_BB_6_0</node> 
 +  <node>RCU_10995770589198_BB_6_1</node> 
 +  <node>RCU_10995770589198_BB_6_2</node> 
 +  <node>RCU_10995770589198_BB_7_0</node> 
 +  <node>RCU_10995770589198_BB_7_1</node> 
 +  <node>RCU_10995770589198_BB_7_2</node> 
 +  <node>RCU_10995770589198_BB_7_3</node> 
 +  <node>RCU_10995770589198_BB_7_4</node> 
 +  <node>RCU_10995770589198_BB_7_5</node> 
 +  <node>RCU_10995770589198_BB_7_6</node> 
 +  <node>RCU_10995770589198_BB_7_8</node> 
 +  <node>RCU_10995770589198_BB_7_9</node> 
 +  <node>RCU_10995770589198_BB_7_10</node> 
 +  <node>RCU_10995770589198_BB_7_11</node> 
 +  <node>RCU_10995770589198_BB_7_12</node> 
 +  <node>RCU_10995770589198_BB_7_13</node> 
 +  <node>RCU_10995770589198_BB_7_14</node> 
 +  <node>RCU_10995770589198_BB_7_15</node> 
 +  <node>RCU_10995770589198_BB_8_0</node> 
 +  <node>RCU_10995770589198_BB_8_1</node> 
 +  <node>RCU_10995770589198_BB_8_2</node> 
 +  <node>RCU_10995770589198_BB_8_3</node> 
 +  <node>RCU_10995770589198_BB_8_4</node> 
 +  <node>RCU_10995770589198_BB_8_5</node> 
 +  <node>RCU_10995770589198_BB_8_6</node> 
 +  <node>RCU_10995770589198_BB_8_7</node> 
 +  <node>RCU_10995770589198_BB_8_9</node> 
 +  <node>RCU_10995770589198_BB_8_10</node> 
 +  <node>RCU_10995770589198_BB_8_11</node> 
 +  <node>RCU_10995770589198_BB_8_12</node> 
 +  <node>RCU_10995770589198_BB_8_13</node> 
 +  <node>RCU_10995770589198_BB_8_14</node> 
 +  <node>RCU_10995770589198_BB_8_15</node> 
 +  <node>RCU_10995770589198_BB_9_0</node> 
 +  <node>RCU_10995770589198_BB_9_1</node> 
 +  <node>RCU_10995770589198_BB_9_2</node> 
 +  <node>RCU_10995770589198_BB_9_3</node> 
 +  <node>RCU_10995770589198_BB_9_4</node> 
 +  <node>RCU_10995770589198_BB_9_5</node> 
 +  <node>RCU_10995770589198_BB_9_6</node> 
 +  <node>RCU_10995770589198_BB_9_7</node> 
 +  <node>RCU_10995770589198_BB_9_8</node> 
 +  <node>RCU_10995770589198_BB_9_10</node> 
 +  <node>RCU_10995770589198_BB_9_11</node> 
 +  <node>RCU_10995770589198_BB_9_12</node> 
 +  <node>RCU_10995770589198_BB_9_13</node> 
 +  <node>RCU_10995770589198_BB_9_14</node> 
 +  <node>RCU_10995770589198_BB_9_15</node> 
 +</nodeList> 
 +</code> 
 + 
 + 
 +=== Fan === 
 + 
 +Request: 
 +<code bash> 
 +curl -X GET -k -i https://host/REST/fan/RCU_10995770589198_Fan_TRECS_1 
 +</code> 
 + 
 +Response: 
 +<code xml> 
 +<fan position="DENEB_1" installed="true" nominalSpeed="100" rpm="11760" health="OK" lastSensorUpdate="0" id="RCU_10995770589198_Fan_DENEB_1" /> 
 +</code> 
 + 
 +Attributes: \\
  
 ^ Attribute ^ Description ^ Unit ^ Data type ^ ^ Attribute ^ Description ^ Unit ^ Data type ^
-|''id'' |Unique ID for referencing the component|-|String| +|''position'' |Position of the fan|-|String| 
-|''description ''|Description of the rack|-|String+|''installed'' |Indicates, if the fan is installed|-|Boolean
-|''rcuId ''|List of ID****s of RECS<sup>(r)</sup>%%|%%Box Computing Units which are installed in the rack|-|String|+|''nominalSpeed'' |Nominal speed of the fan|%|Integer| 
 +|''rpm'' |Actual rotational speed of the fan|rpm|Integer| 
 +|''health'' |Health status of the fan (OK, Warning, Critical)|-|String| 
 +|''lastSensorUpdate'' |Timestamp of the last sensor update|ms|Long| 
 +|''id''|ID for referencing the component|-|String|
  
-In accordance to the component rack the API offers rackList which returns multiple instances of rack.+The API offers fanList, which returns a list of the IDs of all fans within the system.
  
-==== Resources ====+Request: 
 +<code bash> 
 +curl -X GET -k -i https://host/REST/fan 
 +</code> 
 + 
 +Response: 
 +<code xml> 
 +<fanList> 
 +  <fan>RCU_10995770589198_Fan_DENEB_1</fan> 
 +  <fan>RCU_10995770589198_Fan_DENEB_2</fan> 
 +  <fan>RCU_10995770589198_Fan_DENEB_3</fan> 
 +</fanList> 
 +</code> 
 + 
 + 
 +==== Endpoints ====
  
 The resources are split into monitoring resources (for pure information gathering) and management resources (for changing the system configuration or state). The resources are split into monitoring resources (for pure information gathering) and management resources (for changing the system configuration or state).
Line 259: Line 600:
  
 ^ Attribute ^ Description ^ HTTP Method ^ ^ Attribute ^ Description ^ HTTP Method ^
-|''/node'' |Returns a nodeList with all nodes of the cluster|GET| +|''/rcu'' |Returns information about the RCU|GET| 
-|''/node/{node_id}'' |Returns information about the node with the given ID|GET| +|''/backplane'' |Returns a baseboardList with all backplane IDs of the RCU|GET|
-|''/baseboard'' |Returns a baseboardList with all baseboards of the cluster|GET| +
-|''/baseboard/{baseboard_id}'' |Returns information about the baseboard with the given ID|GET| +
-|''/baseboard/{baseboard_id}/node'' |Returns a nodeList with all nodes that are installed on the baseboard with the given ID|GET| +
-|''/backplane'' |Returns a backplaneList with all backplanes of the cluster|GET|+
 |''/backplane/{backplane_id}'' |Returns information about the backplane with the given ID|GET| |''/backplane/{backplane_id}'' |Returns information about the backplane with the given ID|GET|
-|''/rcu'' |Returns an rcuList with all RECS<sup>(r)</sup>%%|%%Box Computing Units of the cluster|GET| +|''/baseboard'' |Returns a baseboardList with all baseboard IDs of the RCU|GET| 
-|''/rcu/{rcu_id}'' |Returns information about the RECS<sup>(r)</sup>%%|%%Box Computing Unit with the given ID|GET| +|''/baseboard/{baseboard_id}'' |Returns information about the baseboard with the given ID|GET| 
-|''/rcu/{rcu_id}/baseboard'' |Returns a baseboardList with all baseboards that are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit with the given ID|GET| +|''/baseboard/{baseboard_id}/node'' |Returns a nodeList with all node IDs that are installed on the baseboard with the given ID|GET| 
-|''/rcu/{rcu_id}/backplane'' |Returns a backplaneList with all backplanes that are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit with the given ID|GET| +|''/node'' |Returns a nodeList with all node IDs of the RCU|GET| 
-|''/rcu/{rcu_id}/node'' |Returns a nodeList with all nodes that are installed in the RECS<sup>(r)</sup>%%|%%Box Computing Unit with the given ID|GET| +|''/node/{node_id}'' |Returns information about the node with the given ID|GET| 
-|''/rack'' |Returns a rackList with all racks of the cluster|GET| +|''/fan'' |Returns a fanList with all fan IDs of the RCU|GET| 
-|''/rack/{rack_id}'' |Returns information about the rack with the given ID|GET| +|''/fan/{fan_id}'' |Returns information about the fan with the given ID|GET|
-|''/rack/{rack_id}/rcu'' |Returns a rcuList with all RECS<sup>(r)</sup>%%|%%Box Computing Units that are installed in the rack with the given ID|GET|+
  
 === Management === === Management ===
Line 280: Line 616:
  
 ^ Attribute ^ Description ^ HTTP method ^ Parameter ^ ^ Attribute ^ Description ^ HTTP method ^ Parameter ^
-|''/node/{node_id}/manage/power_on'' |Turns on the node with the given ID and returns updated node XML|POST| | +|''/node/{node_id}/manage/power_on'' |Turns on the node with the given ID and returns updated node|POST| | 
-|''/node/{node_id}/manage/power_off'' |Turns off the node with the given ID and returns updated node XML|POST| | +|''/node/{node_id}/manage/power_button'' |Turns on/off the node with the given ID and returns updated node|POST| | 
-|''/node/{node_id}/manage/reset'' |Resets the node with the given ID and returns updated node XML|POST| | +|''/node/{node_id}/manage/power_off'' |Turns off the node with the given ID and returns updated node|POST| | 
-|''/node/{node_id}/manage/select_kvm'' |Switches the KVM port of the RECS<sup>(r)</sup>%%|%%Box Computing Unit containing the node to the node with the given ID and returns updated node XML|PUT| | +|''/node/{node_id}/manage/reset'' |Resets the node with the given ID and returns updated node|POST| | 
-|''/rcu/{rcu_id}/manage/set_fans'' |Sets the overall fan speed of the RCU with the given ID and returns the curent status of the RCU|PUT|percent={value}| +|''/node/{node_id}/manage/sleep'' |Sets the node with the given ID in sleep condition and returns updated node|POST| | 
-|''/rcu/{rcu_id}/manage/set_fan_profile'' |Sets the fan profile of the RCU with the given ID and returns the curent status of the RCU (Possible values: manual, increase_by_temperature, adjust_by_temperature)|PUT|percent={value}|+|''/node/{node_id}/manage/select_kvm'' |Switches the KVM port of the RCU to the node with the given ID and returns updated node|PUT| | 
 +|''/node/{node_id}/manage/set_bootsource'' |Sets the boot source of the node with the given ID and returns updated node|PUT|source={NONE,HDD,CD,PXE,USBSTICK},persistent={true,false}| 
 +|''/rcu/manage/set_fans'' |Sets the overall fan speed of the RCU and returns the current status of the RCU|PUT|percent={value}| 
 +|''/rcu/manage/set_fan_profile'' |Sets the fan profile of the RCU and returns the current status of the RCU|PUT|profile={manual,auto}| 
 +|''/fan/{fan_id}'' |Sets the speed of the fan with the given ID and returns the current status of the fan|PUT|percent={value}|
  
 === Errors === === Errors ===
Line 293: Line 633:
 ===== Prometheus ===== ===== Prometheus =====
  
-A prometheus exporter is built-in and can be enabled. It is accessable at ''https://TOR-Master/metrics/'' or ''http://TOR-Master/metrics/'' and needs a http basic authentication. +A prometheus exporter is built-in and can be enabled. It is accessable at ''https://host/metrics/'' or ''http://host/metrics/'' and needs a http basic authentication. 
  
-The big advantage of the Prometheus exporter compared to other APIs is that it dynamically exports its own metrics and thus, additional metrics can be added or removed during runtime after changing or hotplugging hardware. This allows to export only metrics of those microservers that are plugged in. As the RECS<sup>(r)</sup>%%|%%Box has a modular approach and every RECS<sup>(r)</sup>%%|%%Box can be equipped with different carrier blades and microserver configurations, this approach is of high relevance. Using traditional monitoring tools that don’t support the export of dynamic metrics needs regular manual changes of the configuration files which is annoying. +The big advantage of the Prometheus exporter compared to other APIs is that it dynamically exports its own metrics and thus, additional metrics can be added or removed during runtime after changing or hotplugging hardware. This allows to export only metrics of those microservers that are plugged in. As the RECS has a modular approach and every RECS can be equipped with different carrier blades and microserver configurations, this approach is of high relevance. Using traditional monitoring tools that don’t support the export of dynamic metrics needs regular manual changes of the configuration files which is annoying. 
  
 ==== Prometheus Configuration ==== ==== Prometheus Configuration ====
Line 318: Line 658:
 <imgcaption web-gui-overview|> <imgcaption web-gui-overview|>
 {{ :documentation:grafana.png?direct |Grafana Dashboard}}</imgcaption> {{ :documentation:grafana.png?direct |Grafana Dashboard}}</imgcaption>
-