-
Notifications
You must be signed in to change notification settings - Fork 173
openbmc_support
xuweibj edited this page May 30, 2018
·
3 revisions
To support OpenBMC management. Interface is openbmc.
mgt=openbmc
When send request bmc ip, username, password are needed. Create a new table ‘openbmc’, “#node,bmc,username,password,comments,disable”.
/opt/xcat/lib/perl/xCAT_plugin/openbmc.pm /opt/xcat/lib/perl/xCAT/OPENBMC.pm
%node_info = (
$node => {
bmc => "x.x.x.x",
username => "username",
password => "password",
cur_url => “”,
method => “”,
back_urls => (),
cur_status => "LOGIN_REQUEST",
},
);
%status_info = {
LOGIN_REQUEST => {
method => "POST",
init_url => "/login",
},
LOGIN_RESPONSE => {
process => \&login_response,
},
RPOWER_ON_REQUEST => {
method => "POST",
init_url => "/power/on”,
},
RPOWER_ON_RESPONSE => {
process => \&rpower_response,
},
};
%next_status = {
LOGIN_REQUEST => ”LOGIN_RESPONSE",
LOGIN_RESPONSE => "RPOWER_ON_REQUEST",
RPOWER_ON_REQUEST => “RPOWER_ON_RESPONSE”,
};
- Check errors.
- Get parameters and fill into %node_info hash, set cur_status as LOGIN_REQUEST
- Get subcommands fill into %next_status array.
-
OPENBMC (xCAT::OPENBMC->new)
- Generate request use HTTP::Request
- Create cookies use HTTP::Cookies
- Send request use add_with_opts (HTTP::Async)
- Return handle ID
-
openbmc
- Start Async
- Start while loop
- Get handle ID and cookies use xCAT::OPENBMC->new
- Change cur_status to LOGIN_RESPONSE
-
The code logic for main loop:
generate and send login request of each node while (1) if (the node array that stores nodes which hadn’t been dealt with is empty) and (pending response counter equal 0) # It means all nodes have been dealt, and no more response is expected, the loop will end break; endif while (wait_for_next_response) deal_with_response end while (wait_for_next_response) end while (1)
- Get response in while loop
- Compare ID to get node name
- Deal with response. If status is ‘OK’, go to next step, cur_status = RPOWER_ON_REQUEST. Or, return with error message.
- Check cur_status
- Get cur_url and pop first sub_url, generate url to send. If there is no cur_url, use url in %status_info.
- Send request use xCAT::OPENBMC->send_request
- Change cur_status to xxxx_RESPONSE
- Wait for response
- Check if there is info want to get
- If get, go next step. If not, check @sub_url whether empty.
- If empty, return error. If not, set cur_status as xxx_REQUEST. Send request.
- Nov 13, 2024: xCAT 2.17 released.
- Mar 08, 2023: xCAT 2.16.5 released.
- Jun 20, 2022: xCAT 2.16.4 released.
- Nov 17, 2021: xCAT 2.16.3 released.
- May 25, 2021: xCAT 2.16.2 released.
- Nov 06, 2020: xCAT 2.16.1 released.
- Jun 17, 2020: xCAT 2.16 released.
- Mar 06, 2020: xCAT 2.15.1 released.
- Nov 11, 2019: xCAT 2.15 released.
- Mar 29, 2019: xCAT 2.14.6 released.
- Dec 07, 2018: xCAT 2.14.5 released.
- Oct 19, 2018: xCAT 2.14.4 released.
- Aug 24, 2018: xCAT 2.14.3 released.
- Jul 13, 2018: xCAT 2.14.2 released.
- Jun 01, 2018: xCAT 2.14.1 released.
- Apr 20, 2018: xCAT 2.14 released.
- Mar 14, 2018: xCAT 2.13.11 released.
- Jan 26, 2018: xCAT 2.13.10 released.
- Dec 18, 2017: xCAT 2.13.9 released.
- Nov 03, 2017: xCAT 2.13.8 released.
- Sep 22, 2017: xCAT 2.13.7 released.
- Aug 10, 2017: xCAT 2.13.6 released.
- Jun 30, 2017: xCAT 2.13.5 released.
- May 19, 2017: xCAT 2.13.4 released.
- Apr 14, 2017: xCAT 2.13.3 released.
- Feb 24, 2017: xCAT 2.13.2 released.
- Jan 13, 2017: xCAT 2.13.1 released.
- Dec 09, 2016: xCAT 2.13 released.
- Dec 06, 2016: xCAT 2.9.4 (AIX only) released.
- Nov 11, 2016: xCAT 2.12.4 released.
- Sep 30, 2016: xCAT 2.12.3 released.
- Aug 19, 2016: xCAT 2.12.2 released.
- Jul 08, 2016: xCAT 2.12.1 released.
- May 20, 2016: xCAT 2.12 released.
- Apr 22, 2016: xCAT 2.11.1 released.
- Mar 11, 2016: xCAT 2.9.3 (AIX only) released.
- Dec 11, 2015: xCAT 2.11 released.
- Nov 11, 2015: xCAT 2.9.2 (AIX only) released.
- Jul 30, 2015: xCAT 2.10 released.
- Jul 30, 2015: xCAT migrates from sourceforge to github
- Jun 26, 2015: xCAT 2.7.9 released.
- Mar 20, 2015: xCAT 2.9.1 released.
- Dec 12, 2014: xCAT 2.9 released.
- Sep 5, 2014: xCAT 2.8.5 released.
- May 23, 2014: xCAT 2.8.4 released.
- Jan 24, 2014: xCAT 2.7.8 released.
- Nov 15, 2013: xCAT 2.8.3 released.
- Jun 26, 2013: xCAT 2.8.2 released.
- May 17, 2013: xCAT 2.7.7 released.
- May 10, 2013: xCAT 2.8.1 released.
- Feb 28, 2013: xCAT 2.8 released.
- Nov 30, 2012: xCAT 2.7.6 released.
- Oct 29, 2012: xCAT 2.7.5 released.
- Aug 27, 2012: xCAT 2.7.4 released.
- Jun 22, 2012: xCAT 2.7.3 released.
- May 25, 2012: xCAT 2.7.2 released.
- Apr 20, 2012: xCAT 2.7.1 released.
- Mar 19, 2012: xCAT 2.7 released.
- Mar 15, 2012: xCAT 2.6.11 released.
- Jan 23, 2012: xCAT 2.6.10 released.
- Nov 15, 2011: xCAT 2.6.9 released.
- Sep 30, 2011: xCAT 2.6.8 released.
- Aug 26, 2011: xCAT 2.6.6 released.
- May 20, 2011: xCAT 2.6 released.
- Feb 14, 2011: Watson plays on Jeopardy and is managed by xCAT!
- xCAT OS And Hw Support Matrix
- 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.