Skip to content

Redfish_support

xuweibj edited this page May 31, 2018 · 6 revisions

Mini design of Redfish support

Background

To support Redfish interface for hardware control.

Node definition

Add new mgt type ‘redfish’. Definition: mgt=redfish

Table

Use the same table with openbmc, “#node,bmc,consport,taggedvlan,username,password,comments,disable".

Plugin file

/opt/xcat/lib/perl/xCAT_plugin/redfish.pm

/opt/xcat/lib/perl/xCAT/AGENT.pm (move agent related part from /opt/xcat/lib/perl/xCAT/OPENBMC.pm here)

Python file (take rpower as example)

/opt/xcat/lib/python/agent/xcatagent/redfish.py

/opt/xcat/lib/python/agent/hwctl/executor/redfish_power.py

/opt/xcat/lib/python/agent/hwctl/redfish_client.py

The implementation details (take rpower as example)

The main code logic:

  1. redfish.pm
  • Handle xcat command. (rpower on)
  • Check command and node definition error.
  • Collect all nodes’ bmc, bmcip, bmcusername, bmcpassword
  • Call AGENT.pm to call python agent
  1. AGENT.pm
  • Collect xcat attributes xcatdebugmode, verbose,cwd, envs
  • Start agent.py and build socket with python part
  • Send all information (nodes and xcat attributes) to python part
  • Receive socket message from python part and print out
  1. redfish.py
  • Receive all info from perl part
  • Parse and check args
  • Deal with command, call corresponding task RedfishPowerTask and method to deal with subcommand
  1. redfish_power.py
  • Send request and receive response data by calling redfish_client.py
  • Deal with response data to send message back to perl
  1. redfish_client.py
  • Do real work of send request and receive response by requests method
  • Deal with response, check error and raise error

RedfishPowerTask is sub class of ParallelNodesCommand, call gevent to deal with command for each node at the same time.

News

History

  • Oct 22, 2010: xCAT 2.5 released.
  • Apr 30, 2010: xCAT 2.4 is released.
  • Oct 31, 2009: xCAT 2.3 released. xCAT's 10 year anniversary!
  • Apr 16, 2009: xCAT 2.2 released.
  • Oct 31, 2008: xCAT 2.1 released.
  • Sep 12, 2008: Support for xCAT 2 can now be purchased!
  • June 9, 2008: xCAT breaths life into (at the time) the fastest supercomputer on the planet
  • May 30, 2008: xCAT 2.0 for Linux officially released!
  • Oct 31, 2007: IBM open sources xCAT 2.0 to allow collaboration among all of the xCAT users.
  • Oct 31, 1999: xCAT 1.0 is born!
    xCAT started out as a project in IBM developed by Egan Ford. It was quickly adopted by customers and IBM manufacturing sites to rapidly deploy clusters.
Clone this wiki locally