-
Notifications
You must be signed in to change notification settings - Fork 173
OS_Distro_Update_xCAT_command_osdistroupdate
Table of Contents
{{:Design Warning}}
This min-design is to provide the xCAT command interfaces which are for OS Distro Update. This osdistroupdate command is not exposed to end user, just for internal use. So there is no manpage, and only usage. The osdistroupdate command will provide creating/deleting/listing os distro update functions. This min-design is responsible for the the xCAT command interfaces and xCAT plugin. The xCAT plugin will invoke the function subroutines which Xu Xian implements. Wu Xian is responsible for the basic functions, such as download the os updates online and create the repodata on the mn.
osdistroupdate [-h|--help|-v|--version]
osdistroupdate -l [<osdistro-name>]
osdistroupdate -d <osdistroupdate-name>
osdistroupdate -c <osdistro-name> [-p <package directory>]
-h Show the help message
-v Show the version.
-l List OS distro update with specified OS distro name, if no OS distro specified, all OS distro updates in system will be listed. The osdistro-name value will be <osver>-<arh>, such as rhels6.2-x86_64 .
-d Delete an OS distro update in system
-c Create an OS distro updates in system
-p Specify local directory which contains packages downloaded from distro official site. This option is used to create OS update from local.
bash#osdistroupdate -c rhels6.2-x86_64
Creating the distro update for rhels6.2-x86_64 from internet, please wait...
Success! Please check the updates in /<distro-name>-<arch>-<downloaded time>-update/
bash#osdistroupdate -c rhels6.2-x86_64 -p /root/rhels6.2-x86_64-updates
Creating the distro update for rhels6.2-x86_64 from the directory /root/rhels6.2-x86_64-updates, please wait...
Success! Please check the updates in /<distro-name>-<arch>-<downloaded time>-update/
bash#osdistroupdate -l
osdistroupdate name: rhels6.2-x86_64-update1
osdistroname=rhels6.2-x86_64
osupdatedir=/install/osdistroupdates/rhels6.2-x86_64-20120828-update/
timestamp=2012.08.28 12:30:00
bash#osdistroupdate -d rhels6.2-x86_64-update1
Removing the distro update rhels6.2-x86_64-update1 for rhels5.5-x86_64, please wait...
Success!
The internal commands in xCAT are put into /$install/xcat/sbin, such as fsp-api, lpar_netboot.expect, gatherfip . Considering the osdistroupdate is an internal command, and we will put the osdistroupdate command in /$install/xcat/sbin. osdistroupdate will be a link to ../bin/xcatclientnnr . This link will be created in the xCAT-client.spec file, such as:
ln -sf ../bin/xcatclientnnr $RPM_BUILD_ROOT/%{prefix}/sbin/osdistroupdate
The osdistroupdate.pm plugin will be in the /$install/xcat/lib/perl/xCAT_plugin directory. Almost all the functions will be implemented in the osdistroupdate.pm plugin.
In the preprocess_request() of the osdistroupdate.pm plugin, there is a parse_args() subroutine. And the parse_args() subroutine will parse the arguments of the osdistroupdate command. The result will be stored in the %opt hash. This hash will be set to $request->{opt}.
The process_request() of the osdistroupdate.pm plugin is the main function. In the process_request(), the procedure is as following:
(1)get the option from the hash $request, such as my $opt = $request->{opt};
(2) If $opt->{l}== 1 , it will invoke the list_updates( $request, $callback)
If $opt->{c} exists, it will invoke the create_updates( $request, $callback)
If $opt->{d} exists, it will invoke the delete_update( $request, $callback)
Note: the $request is one basic hash variable in xCAT. $callback is used to return the msg immediately.
$opt = $request->{opt};
In the list_updates($request, $callback), the $opt will look like:
$opt = {
'osdistroupdate_name' => undef,
'l' => 1
};
or
$opt = {
'osdistroupdate_name' => 'rhels6.2',
'l' => 1
};
For create_updates($request, $callback), the $opt will look like:
$opt = {
'c' => 'rhels6.2_x86_64'
};
or
$opt = {
'p' => '/root/test',
'c' => 'rhels6.2_x86_64'
};
For delete_updates($request, $callback), the $opt will look like:
$opt = {
'd' => 'rhels6.2_x86_64'
};
About the 3 subroutines(list_updates,create_updates and delete_update), the return value will be an array,such as [$rc, $data]. The first element of the array will be the return code of the subroutine: 1 and 0. 0 -- success, 1 -- failed. The second element will be the return content of the subroutine.
For example, we will use the list_updates() as follows:
my $results = &list_updates($request, $callback);
$rc = shift(@$results); //$rc will be 0 or 1.
$data= $results;
For list_updates, if $rc = 1, the $data will be an array, and looks like [msg1, msg2, msg3,...];
if $rc = 0, the data will be an array, and looks like [h1, h2, h3...]. And h1,h2,h3 will look like:
h1= {
'osupdatename' => 'rhels6.2-x86_64-update12125',
'osdistroname' => 'rhels6.2-x86_64',
'dirpath' => '/install/osdistroupdates/rhels6.2-x86_64-20120228-update12125/',
'downloadtime' => '1330402626',
'comments' => undef,
'disable' => '0',
}
For create_updates/delete_update, if $rc=0 or 1, the data will be an array, and looks like [msg1, msg2, msg3 ...];
The 3 subroutines will be implemented by PCM.
- 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.