From: <no...@us...> - 2008-07-18 17:51:55
|
Revision: 1895 http://xcat.svn.sourceforge.net/xcat/?rev=1895&view=rev Author: nott Date: 2008-07-18 17:52:01 +0000 (Fri, 18 Jul 2008) Log Message: ----------- fixx blank in lsdef output Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-07-18 13:44:38 UTC (rev 1894) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-07-18 17:52:01 UTC (rev 1895) @@ -2430,7 +2430,7 @@ { # don't print unless set - if ($attrval ne " ") + if ( $attrval && ($attrval ne " ")) { my $rsp; $rsp->{data}->[0] = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2008-07-29 17:43:38
|
Revision: 1956 http://xcat.svn.sourceforge.net/xcat/?rev=1956&view=rev Author: nott Date: 2008-07-29 17:43:47 +0000 (Tue, 29 Jul 2008) Log Message: ----------- make lsdef help output alphabetical Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-07-28 21:45:59 UTC (rev 1955) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-07-29 17:43:47 UTC (rev 1956) @@ -454,13 +454,16 @@ $rsp->{data}->[1] = "Attribute Description\n"; my @alreadydone; # the same attr may appear more then once + my @attrlist; my $outstr = ""; foreach my $this_attr (@{$datatype->{'attrs'}}) { my $attr = $this_attr->{attr_name}; my $desc = $this_attr->{description}; - if (!defined($desc)) { # description key not there, so go to the corresponding entry in tabspec to get the description + if (!defined($desc)) { + # description key not there, so go to the corresponding + # entry in tabspec to get the description my ($tab, $at) = split(/\./, $this_attr->{tabentry}); my $schema = xCAT::Table->getTableSchema($tab); $desc = $schema->{descriptions}->{$at}; @@ -472,15 +475,17 @@ if (!grep(/^$attr$/, @alreadydone)) { - # $outstr .= "$attr\n\t\t- $desc \n\t\t(Table: $tab)\n\n"; - #$outstr .= "$attr\n\t\t- $desc\n\n"; my $space = (length($attr)<7 ? "\t\t" : "\t"); - $outstr .= "$attr:$space$desc\n\n"; + push(@attrlist, "$attr:$space$desc\n\n"); } push(@alreadydone, $attr); } - chop($outstr); chop($outstr); + # print the output in alphabetical order + foreach my $a (sort @attrlist) { + $outstr .= "$a"; + } + chop($outstr); chop($outstr); $rsp->{data}->[2] = $outstr; # the monitoring table is special This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2008-08-22 14:07:47
|
Revision: 2052 http://xcat.svn.sourceforge.net/xcat/?rev=2052&view=rev Author: nott Date: 2008-08-22 14:07:55 +0000 (Fri, 22 Aug 2008) Log Message: ----------- Misc. code cleanup. Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-08-20 18:17:21 UTC (rev 2051) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-08-22 14:07:55 UTC (rev 2052) @@ -651,7 +651,7 @@ } # must have object name(s) - - if (!@::clobjnames && !@::fileobjnames) + if ((scalar(@::clobjnames) == 0) && (scalar(@::fileobjnames) == 0)) { my $rsp; $rsp->{data}->[0] = @@ -662,13 +662,13 @@ # combine object name all object names provided @::allobjnames = @::clobjnames; - if (@::fileobjnames) + if (scalar(@::fileobjnames) > 0) { # add list from stanza or xml file push @::allobjnames, @::fileobjnames; } - elsif (@::objfilelist) + elsif (scalar(@::objfilelist) > 0) { # add list from "-f" file option @@ -2205,7 +2205,7 @@ next; } - if (!grep(/$obj/, @tmplist)) + if (!grep(/^$obj$/, @tmplist)) { my $rsp; $rsp->{data}->[0] = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jbj...@us...> - 2008-10-12 15:05:19
|
Revision: 2321 http://xcat.svn.sourceforge.net/xcat/?rev=2321&view=rev Author: jbjohnso Date: 2008-10-12 15:04:48 +0000 (Sun, 12 Oct 2008) Log Message: ----------- -Fix problem where lsdef would not realize '0' is a valid value to display Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-10-10 18:51:50 UTC (rev 2320) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-10-12 15:04:48 UTC (rev 2321) @@ -2435,7 +2435,7 @@ { # don't print unless set - if ( $attrval && ($attrval ne " ")) + if ( (defined $attrval) && ($attrval ne " ")) { my $rsp; $rsp->{data}->[0] = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2008-10-12 17:44:11
|
Revision: 2323 http://xcat.svn.sourceforge.net/xcat/?rev=2323&view=rev Author: nott Date: 2008-10-12 17:43:32 +0000 (Sun, 12 Oct 2008) Log Message: ----------- Fix problem with groups being defined when using a stanza file. Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-10-12 15:05:08 UTC (rev 2322) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-10-12 17:43:32 UTC (rev 2323) @@ -1104,8 +1104,51 @@ } } # end - if group type - } + # + # Need special handling for node objects that have the + # groups attr set - may need to create group defs + # + if (($type eq "node") && $::FINALATTRS{$obj}{groups}) + { + # get the list of groups in the "groups" attr + my @grouplist; + @grouplist = split(/,/, $::FINALATTRS{$obj}{groups}); + + # get the list of all defined group objects + + my @definedgroups = xCAT::DBobjUtils->getObjectsOfType("group"); + + my %GroupHash; + foreach my $g (@grouplist) + { + if (!grep(/^$g$/, @definedgroups)) + { + + # define it + $GroupHash{$g}{objtype} = "group"; + $GroupHash{$g}{grouptype} = "static"; + $GroupHash{$g}{members} = "static"; + } + } + if (defined(%GroupHash)) + { + + if (xCAT::DBobjUtils->setobjdefs(\%GroupHash) != 0) + { + my $rsp; + $rsp->{data}->[0] = + "Could not write data to the xCAT database.\n"; + + # xCAT::MsgUtils->message("E", $rsp, $::callback); + $error = 1; + } + } + + } # end - if type = node + + } # end of each obj + # # write each object into the tables in the xCAT database # @@ -1729,6 +1772,7 @@ } } # end - if type = node + } # end - for each object to update # This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wan...@us...> - 2008-11-10 03:11:22
|
Revision: 2489 http://xcat.svn.sourceforge.net/xcat/?rev=2489&view=rev Author: wanghuaz Date: 2008-11-10 03:11:12 +0000 (Mon, 10 Nov 2008) Log Message: ----------- Added verboses to chdef, mkdef. Defect 2186000 [https://sourceforge.net/tracker/index.php?func=detail&aid=2186000&group_id=208749&atid=1006945] Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-11-10 02:49:15 UTC (rev 2488) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-11-10 03:11:12 UTC (rev 2489) @@ -848,6 +848,13 @@ else { $::CLIATTRS{$objname}{$attr} = $::ATTRS{$attr}; + if ($::verbose) + { + my $rsp; + $rsp->{data}->[0] = "\nFunction: defmk-->set the attrs for each object definition"; + $rsp->{data}->[1] = "defmk: objname=$objname, attr=$attr, value=$::ATTRS{$attr}"; + xCAT::MsgUtils->message("I", $rsp, $::callback); + } } } # end - foreach attr @@ -878,6 +885,13 @@ @{$objTypeLists{$t}} = xCAT::DBobjUtils->getObjectsOfType($t); } + if ($::verbose) + { + my $rsp; + $rsp->{data}->[0] = "\ndefmk: list objects that are defined for each type"; + $rsp->{data}->[1] = "@{$objTypeLists{$t}}\n"; + xCAT::MsgUtils->message("I", $rsp, $::callback); + } } foreach my $obj (keys %::FINALATTRS) @@ -898,6 +912,12 @@ # if object already exists if (grep(/$obj/, @{$objTypeLists{$type}})) { + if ($::verbose) + { + my $rsp; + $rsp->{data}->[0] = "defmk: object already exists, remove old ones"; + xCAT::MsgUtils->message("I", $rsp, $::callback); + } if ($::opt_f) { @@ -1061,6 +1081,12 @@ my $newgroups; foreach my $n (@memberlist) { + if ($::verbose) + { + my $rsp; + $rsp->{data}->[0] = "defmk: add group name [$n] to nodelist table"; + xCAT::MsgUtils->message("I", $rsp, $::callback); + } # add this group name to the node entry in # the nodelist table @@ -1129,7 +1155,12 @@ } if (defined(%GroupHash)) { - + if ($::verbose) + { + my $rsp; + $rsp->{data}->[0] = "Write GroupHash: %GroupHash to xCAT database\n"; + xCAT::MsgUtils->message("I", $rsp, $::callback); + } if (xCAT::DBobjUtils->setobjdefs(\%GroupHash) != 0) { my $rsp; @@ -1364,6 +1395,13 @@ { @{$objTypeLists{$t}} = xCAT::DBobjUtils->getObjectsOfType($t); } + if ($::verbose) + { + my $rsp; + $rsp->{data}->[0] = "\ndefch: list objects that are defined for each type"; + $rsp->{data}->[1] = "@{$objTypeLists{$t}}\n"; + xCAT::MsgUtils->message("I", $rsp, $::callback); + } } foreach my $obj (keys %::FINALATTRS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2008-12-11 17:58:45
|
Revision: 2542 http://xcat.svn.sourceforge.net/xcat/?rev=2542&view=rev Author: nott Date: 2008-12-11 17:58:37 +0000 (Thu, 11 Dec 2008) Log Message: ----------- Fix bogus error message from rmdef. Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-12-11 16:08:45 UTC (rev 2541) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2008-12-11 17:58:37 UTC (rev 2542) @@ -2764,7 +2764,7 @@ # make a new "groups" list for the node without the # group that is being removed my $first = 1; - my $newgrps; + my $newgrps = ""; foreach my $grp (@gprslist) { chomp($grp); @@ -2780,7 +2780,7 @@ { $newgrps .= ","; } - $newgrps .= $grp; + $newgrps .="$grp"; $first = 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2009-01-29 18:43:09
|
Revision: 2669 http://xcat.svn.sourceforge.net/xcat/?rev=2669&view=rev Author: nott Date: 2009-01-29 18:42:59 +0000 (Thu, 29 Jan 2009) Log Message: ----------- Add check to make sure the objtype value is provided. Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-01-29 16:37:52 UTC (rev 2668) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-01-29 18:42:59 UTC (rev 2669) @@ -1916,6 +1916,15 @@ } # get the data type definition from Schema.pm + + if (!$::FILEATTRS{$objname}{objtype}) { + my $rsp; + $rsp->{data}->[0] = "\nNo objtype value was specified for \'$objname\'. Cannot create object definition.\n"; + xCAT::MsgUtils->message("E", $rsp, $::callback); + $error = 1; + next; + } + my $datatype = $xCAT::Schema::defspec{$::FILEATTRS{$objname}{objtype}}; my @list; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2009-03-19 18:12:17
|
Revision: 2944 http://xcat.svn.sourceforge.net/xcat/?rev=2944&view=rev Author: nott Date: 2009-03-19 18:12:11 +0000 (Thu, 19 Mar 2009) Log Message: ----------- Make lsdef display zero values Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-03-19 17:31:48 UTC (rev 2943) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-03-19 18:12:11 UTC (rev 2944) @@ -2518,7 +2518,7 @@ { # don't print unless set - if ($attrval) + if (defined($attrval)) { my $rsp; $rsp->{data}->[0] = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2009-03-22 17:27:20
|
Revision: 2957 http://xcat.svn.sourceforge.net/xcat/?rev=2957&view=rev Author: nott Date: 2009-03-22 17:27:17 +0000 (Sun, 22 Mar 2009) Log Message: ----------- Update site table descriptions Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-03-22 17:04:04 UTC (rev 2956) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-03-22 17:27:17 UTC (rev 2957) @@ -439,7 +439,7 @@ my $schema = xCAT::Table->getTableSchema('site'); my $desc; - $rsp->{data}->[0] = "\nThere can only be one site definition. The name of the \nsite definition is \'clustersite\'. This definiton consists of an \nunlimited list of user-defined attributes and values. Some specific attribute \nvalues are required to support xCAT features. The following is a list \nof the attributes currently used by xCAT.\n"; + $rsp->{data}->[0] = "\nThere can only be one xCAT site definition. This definition consists \nof an unlimited list of user-defined attributes and values that represent \nglobal settings for the whole cluster. The following is a list \nof the attributes currently supported by xCAT.\n"; $desc = $schema->{descriptions}->{'key'}; $rsp->{data}->[1] = $desc; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2009-04-22 17:29:21
|
Revision: 3243 http://xcat.svn.sourceforge.net/xcat/?rev=3243&view=rev Author: nott Date: 2009-04-22 17:29:11 +0000 (Wed, 22 Apr 2009) Log Message: ----------- Fix grep to avoid bogus error message Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-04-22 17:18:06 UTC (rev 3242) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-04-22 17:29:11 UTC (rev 3243) @@ -918,7 +918,7 @@ } # if object already exists - if (grep(/$obj/, @{$objTypeLists{$type}})) + if (grep(/^$obj$/, @{$objTypeLists{$type}})) { if ($::verbose) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2009-05-15 13:00:26
|
Revision: 3393 http://xcat.svn.sourceforge.net/xcat/?rev=3393&view=rev Author: nott Date: 2009-05-15 13:00:18 +0000 (Fri, 15 May 2009) Log Message: ----------- Fix network definition error Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-05-15 12:38:40 UTC (rev 3392) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-05-15 13:00:18 UTC (rev 3393) @@ -921,11 +921,12 @@ } my %nethash = xCAT::DBobjUtils->getobjdefs(\%objhash); foreach my $o (keys %nethash) { - if ( ($nethash{$o}{net} eq $::FINALATTRS{$o}{net}) && ($nethash{$o}{mask} eq $::FINALATTRS{$o}{mask}) ) { + if ( ($nethash{$o}{net} eq $::FINALATTRS{$obj}{net}) && ($nethash{$o}{mask} eq $::FINALATTRS{$obj}{mask}) ) { my $rsp; $rsp->{data}->[0] = "A network definition called \'$o\' already exists that contains the same net and mask values. Cannot create a definition for \'$obj\'.\n"; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; + delete $::FINALATTRS{$obj}; next OBJ; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <no...@us...> - 2009-06-30 17:22:26
|
Revision: 3677 http://xcat.svn.sourceforge.net/xcat/?rev=3677&view=rev Author: nott Date: 2009-06-30 17:22:25 +0000 (Tue, 30 Jun 2009) Log Message: ----------- Do not list blank value. Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-06-30 17:17:48 UTC (rev 3676) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-06-30 17:22:25 UTC (rev 3677) @@ -2537,7 +2537,7 @@ { # don't print unless set - if (defined($attrval)) + if ( (defined($attrval)) && ($attrval ne '') ) { my $rsp; $rsp->{data}->[0] = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2009-07-24 03:40:53
|
Revision: 3876 http://xcat.svn.sourceforge.net/xcat/?rev=3876&view=rev Author: daniceexi Date: 2009-07-24 03:40:40 +0000 (Fri, 24 Jul 2009) Log Message: ----------- fix a minor message error Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-07-24 03:12:12 UTC (rev 3875) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-07-24 03:40:40 UTC (rev 3876) @@ -843,7 +843,7 @@ { my $rsp; $rsp->{data}->[0] = - "\'$attr\' is not a valid attribute name for for an object type of \'$::objtype\'.\n"; + "\'$attr\' is not a valid attribute name for an object type of \'$::objtype\'.\n"; $rsp->{data}->[1] = "Skipping to the next attribute.\n"; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-07-21 19:36:25
|
Revision: 3851 http://xcat.svn.sourceforge.net/xcat/?rev=3851&view=rev Author: ligc Date: 2009-07-21 19:36:14 +0000 (Tue, 21 Jul 2009) Log Message: ----------- fix bug 2819359: chdef should check attr syntax Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-07-21 19:35:18 UTC (rev 3850) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-07-21 19:36:14 UTC (rev 3851) @@ -397,7 +397,7 @@ foreach my $t (@tmptypes) { - if (!grep(/$t/, @xdeftypes)) + if (!grep(/^$t$/, @xdeftypes)) { my $rsp; $rsp->{data}->[0] = @@ -839,7 +839,7 @@ # set the attrs from the attr=val pairs foreach my $attr (keys %::ATTRS) { - if (!grep(/$attr/, @list) && ($::objtype ne 'site') && ($::objtype ne 'monitoring')) + if (!grep(/^$attr$/, @list) && ($::objtype ne 'site') && ($::objtype ne 'monitoring')) { my $rsp; $rsp->{data}->[0] = @@ -1391,7 +1391,7 @@ # set the attrs from the attr=val pairs foreach my $attr (keys %::ATTRS) { - if (!grep(/$attr/, @list) && ($::objtype ne 'site') && ($::objtype ne 'monitoring')) + if (!grep(/^$attr$/, @list) && ($::objtype ne 'site') && ($::objtype ne 'monitoring')) { my $rsp; $rsp->{data}->[0] = @@ -1459,7 +1459,7 @@ next; } - if (grep(/$obj/, @{$objTypeLists{$type}})) + if (grep(/^$obj$/, @{$objTypeLists{$type}})) { $isDefined = 1; } @@ -1942,7 +1942,7 @@ # check if this object is one of the type specified if (@::clobtypes) { - if (!grep(/$::FILEATTRS{$objname}{objtype}/, @::clobtypes)) + if (!grep(/^$::FILEATTRS{$objname}{objtype}$/, @::clobtypes)) { next; } @@ -1974,7 +1974,7 @@ { # see if valid attr - if (!grep(/$attr/, @list) && ($::FILEATTRS{$objname}{objtype} ne 'site') && ($::FILEATTRS{$objname}{objtype} ne 'monitoring')) + if (!grep(/^$attr$/, @list) && ($::FILEATTRS{$objname}{objtype} ne 'site') && ($::FILEATTRS{$objname}{objtype} ne 'monitoring')) { my $rsp; @@ -2011,7 +2011,7 @@ if ($attr eq 'objtype') { if ( - !grep(/^$::FINALATTRS{$objname}{objtype}/, @::finalTypeList) + !grep(/^$::FINALATTRS{$objname}{objtype}$/, @::finalTypeList) ) { my $type = $::FINALATTRS{$objname}{objtype}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-08-06 01:33:24
|
Revision: 3948 http://xcat.svn.sourceforge.net/xcat/?rev=3948&view=rev Author: ligc Date: 2009-08-06 01:33:14 +0000 (Thu, 06 Aug 2009) Log Message: ----------- fix for bug 2832009, set default imagetype=NIM if not specified with chdef Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-05 16:23:52 UTC (rev 3947) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-06 01:33:14 UTC (rev 3948) @@ -1840,6 +1840,13 @@ } } # end - if type = node + #special case for osimage, if the osimage was not defined, + #chdef can not create it correctly if no attribute in osimage table is defined + #set the default imagetype 'NIM' if it is not specified + if ((!$isDefined) && ($type eq 'osimage') && (!defined($::FINALATTRS{$obj}{imagetype}))) + { + $::FINALATTRS{$obj}{imagetype} = 'NIM'; + } } # end - for each object to update This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-08-07 01:18:23
|
Revision: 3962 http://xcat.svn.sourceforge.net/xcat/?rev=3962&view=rev Author: ligc Date: 2009-08-07 01:18:17 +0000 (Fri, 07 Aug 2009) Log Message: ----------- fix for bug 2821742 Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-06 12:58:14 UTC (rev 3961) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-07 01:18:17 UTC (rev 3962) @@ -910,6 +910,7 @@ $rsp->{data}->[0] = "No type was provided for object \'$obj\'.\n"; $rsp->{data}->[1] = "Skipping to the next object.\n"; xCAT::MsgUtils->message("I", $rsp, $::callback); + $error = 1; next; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-08-07 02:09:44
|
Revision: 3963 http://xcat.svn.sourceforge.net/xcat/?rev=3963&view=rev Author: ligc Date: 2009-08-07 02:09:33 +0000 (Fri, 07 Aug 2009) Log Message: ----------- fix for bug 2833468 Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-07 01:18:17 UTC (rev 3962) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-07 02:09:33 UTC (rev 3963) @@ -985,6 +985,17 @@ { if ($::opt_d) { + # For dynamic node group, + # can not assign attributes for inherit + # only the 'objtype' in %::FINALATTRS + if (scalar(keys %{$::FINALATTRS{$obj}}) > 1) + { + my $rsp; + $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'.\n"; + xCAT::MsgUtils->message("E", $rsp, $::callback); + $error = 1; + next; + } $::FINALATTRS{$obj}{grouptype} = 'dynamic'; $::FINALATTRS{$obj}{members} = 'dynamic'; } @@ -1490,6 +1501,20 @@ # what kind of group is this? - static or dynamic my $grptype; my %objhash; + if ($::opt_d) + { + # For dynamic node group, + # can not assign attributes for inherit + # only the 'objtype' in %::FINALATTRS + if (scalar(keys %{$::FINALATTRS{$obj}}) > 1) + { + my $rsp; + $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'.\n"; + xCAT::MsgUtils->message("E", $rsp, $::callback); + $error = 1; + next; + } + } if ($isDefined) { $objhash{$obj} = $type; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-08-07 04:26:31
|
Revision: 3964 http://xcat.svn.sourceforge.net/xcat/?rev=3964&view=rev Author: ligc Date: 2009-08-07 04:26:25 +0000 (Fri, 07 Aug 2009) Log Message: ----------- fix for bug 2833494 Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-07 02:09:33 UTC (rev 3963) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-07 04:26:25 UTC (rev 3964) @@ -2264,6 +2264,52 @@ return 0; } + + # need a special case for the node postscripts attribute, + # The 'xcatdefaults' postscript should be added to the postscript attribute + my $getnodes = 0; + foreach my $objtype (@::clobjtypes) + { + if ($objtype eq 'node') + { + $getnodes = 1; + last; + } + } + if ($getnodes) + { + my $xcatdefaultsps; + my @TableRowArray = xCAT::DBobjUtils->getDBtable('postscripts'); + if (defined(@TableRowArray)) + { + foreach my $tablerow (@TableRowArray) + { + if(($tablerow->{node} eq 'xcatdefaults') && !($tablerow->{disable})) + { + $xcatdefaultsps = $tablerow->{postscripts}; + last; + } + } + } + foreach my $obj (keys %myhash) + { + if ($myhash{$obj}{objtype} eq 'node') + { + if($xcatdefaultsps) + { + if ($myhash{$obj}{postscripts}) + { + $myhash{$obj}{postscripts} = $xcatdefaultsps . ',' . $myhash{$obj}{postscripts}; + } + else + { + $myhash{$obj}{postscripts} = $xcatdefaultsps; + } + } + } + } + } + # the list of objects may be limited by the "-w" option # see which objects have attr/val that match the where values # - if provided This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-08-07 04:34:23
|
Revision: 3965 http://xcat.svn.sourceforge.net/xcat/?rev=3965&view=rev Author: ligc Date: 2009-08-07 04:34:10 +0000 (Fri, 07 Aug 2009) Log Message: ----------- fix for bug 2833494 Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-07 04:26:25 UTC (rev 3964) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-08-07 04:34:10 UTC (rev 3965) @@ -2268,12 +2268,14 @@ # need a special case for the node postscripts attribute, # The 'xcatdefaults' postscript should be added to the postscript attribute my $getnodes = 0; - foreach my $objtype (@::clobjtypes) - { - if ($objtype eq 'node') + if (!$::opt_z) { #if -z flag is specified, do not add the xcatdefaults + foreach my $objtype (@::clobjtypes) { - $getnodes = 1; - last; + if ($objtype eq 'node') + { + $getnodes = 1; + last; + } } } if ($getnodes) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-10-10 03:20:39
|
Revision: 4336 http://xcat.svn.sourceforge.net/xcat/?rev=4336&view=rev Author: ligc Date: 2009-10-10 03:20:33 +0000 (Sat, 10 Oct 2009) Log Message: ----------- fix for bug 2873042: set {}{objtype} before calling xCAT::DBobjUtils->setobjdefs if the group does not exist Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-10-10 01:55:15 UTC (rev 4335) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-10-10 03:20:33 UTC (rev 4336) @@ -1668,6 +1668,7 @@ { $membhash{$n}{groups} = $obj; + $membhash{$n}{objtype} = 'node'; } $::plus_option = 1; $::minus_option = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-10-10 07:05:50
|
Revision: 4337 http://xcat.svn.sourceforge.net/xcat/?rev=4337&view=rev Author: ligc Date: 2009-10-10 07:05:40 +0000 (Sat, 10 Oct 2009) Log Message: ----------- fix for bug 2871938: add check for rmdef flags, check node attribute when create dynamic node group Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-10-10 03:20:33 UTC (rev 4336) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-10-10 07:05:40 UTC (rev 4337) @@ -308,6 +308,25 @@ } } + # Check arguments for rmdef command + # rmdef is very dangerous if wrong flag is specified + # it may cause all the objects to be deleted, check the flags + # for example: rmdef -t node -d, the user want to delete the node named "-d", + # but it will delete all the nodes! + # use -o instead + if ($::command eq 'rmdef') + { + if (defined($::opt_d) || defined($::opt_i) || defined($::opt_l) + || defined($::opt_m) || defined($::opt_p) || defined($::opt_w) + || defined($::opt_x) || defined($::opt_z)) + { + my $rsp; + $rsp->{data}->[0] = "Invalid flag specified, see rmdef manpage for details."; + xCAT::MsgUtils->message("E", $rsp, $::callback); + return 1; + } + } + # Option -h for Help # if user specifies "-t" & "-h" they want a list of valid attrs if (defined($::opt_h) && !defined($::opt_t)) @@ -696,6 +715,26 @@ xCAT::MsgUtils->message("E", $rsp, $::callback); return 3; } + # For dynamic node groups, check the selection string + if (($::opt_t eq 'group') && ($::opt_d)) + { + my $datatype = $xCAT::Schema::defspec{'node'}; + my @nodeattrs = (); + foreach my $this_attr (@{$datatype->{'attrs'}}) + { + push @nodeattrs, $this_attr->{attr_name}; + } + foreach my $whereattr (keys %::WhereHash) + { + if (!grep(/^$whereattr$/, @nodeattrs)) + { + my $rsp; + $rsp->{data}->[0] = "Incorrect attribute \'$whereattr\' in the selection string specified with -w flag."; + xCAT::MsgUtils->message("E", $rsp, $::callback); + return 1; + } + } + } } # check for the -i option This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-10-12 07:42:00
|
Revision: 4349 http://xcat.svn.sourceforge.net/xcat/?rev=4349&view=rev Author: ligc Date: 2009-10-12 07:41:52 +0000 (Mon, 12 Oct 2009) Log Message: ----------- fix for bug 2868914: chdef group allows creation of invalid node Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-10-12 07:41:20 UTC (rev 4348) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-10-12 07:41:52 UTC (rev 4349) @@ -295,7 +295,7 @@ if (!defined($attr) || !defined($value)) { my $rsp; - $rsp->{data}->[0] = "Incorrect \'attr=val\' pair - $a\n"; + $rsp->{data}->[0] = "Incorrect \'attr=val\' pair - $a."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 3; } @@ -339,7 +339,7 @@ { my $rsp; my $version=xCAT::Utils->Version(); - push @{$rsp->{data}}, "$::command - $version\n"; + push @{$rsp->{data}}, "$::command - $version"; xCAT::MsgUtils->message("I", $rsp, $::callback); return 1; # no usage - just exit } @@ -365,7 +365,7 @@ if ($rc) { my $rsp; - $rsp->{data}->[0] = "Could not process file input data.\n"; + $rsp->{data}->[0] = "Could not process file input data."; xCAT::MsgUtils->message("I", $rsp, $::callback); return 1; } @@ -393,7 +393,7 @@ { my $rsp; $rsp->{data}->[0] = - "Cannot combine multiple types with \'att=val\' pairs on the command line.\n"; + "Cannot combine multiple types with \'att=val\' pairs on the command line."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 3; } @@ -442,7 +442,7 @@ my $rsp; if ( !$::opt_z && !$::opt_x) { # don't want this msg in stanza or xml output - #$rsp->{data}->[0] = "Assuming an object type of \'node\'.\n"; + #$rsp->{data}->[0] = "Assuming an object type of \'node\'."; #xCAT::MsgUtils->message("I", $rsp, $::callback); } } @@ -460,7 +460,7 @@ my $schema = xCAT::Table->getTableSchema('site'); my $desc; - $rsp->{data}->[0] = "\nThere can only be one xCAT site definition. This definition consists \nof an unlimited list of user-defined attributes and values that represent \nglobal settings for the whole cluster. The following is a list \nof the attributes currently supported by xCAT.\n"; + $rsp->{data}->[0] = "\nThere can only be one xCAT site definition. This definition consists \nof an unlimited list of user-defined attributes and values that represent \nglobal settings for the whole cluster. The following is a list \nof the attributes currently supported by xCAT."; $desc = $schema->{descriptions}->{'key'}; $rsp->{data}->[1] = $desc; @@ -472,7 +472,7 @@ # get the data type definition from Schema.pm my $datatype = $xCAT::Schema::defspec{$t}; - $rsp->{data}->[0] = "The valid attribute names for object type '$t' are:\n"; + $rsp->{data}->[0] = "The valid attribute names for object type '$t' are:"; # get the objkey for this type object (ex. objkey = 'node') my $objkey = $datatype->{'objkey'}; @@ -516,7 +516,7 @@ # the monitoring table is special if ($t eq 'monitoring') { - $rsp->{data}->[3] = "\nYou can also include additional monitoring plug-in specific settings. These settings will be used by the monitoring plug-in to customize the behavior such as event filter, sample interval, responses etc.\n"; + $rsp->{data}->[3] = "\nYou can also include additional monitoring plug-in specific settings. These settings will be used by the monitoring plug-in to customize the behavior such as event filter, sample interval, responses etc."; } xCAT::MsgUtils->message("I", $rsp, $::callback); @@ -541,7 +541,7 @@ push(@::clobjnames, 'clustersite'); my $rsp; $rsp->{data}->[0] ="Only one site definition is supported."; - $rsp->{data}->[1] = "Setting the name of the site definition to \'clustersite\'.\n"; + $rsp->{data}->[1] = "Setting the name of the site definition to \'clustersite\'."; xCAT::MsgUtils->message("I", $rsp, $::callback); } @@ -626,7 +626,7 @@ { my $rsp; $rsp->{data}->[0] = - "Could not get objects of type \'$t\'.\n"; + "Could not get objects of type \'$t\'."; #$rsp->{data}->[1] = "Skipping to the next type.\n"; xCAT::MsgUtils->message("E", $rsp, $::callback); return 3; @@ -651,7 +651,7 @@ my $rsp; $rsp->{data}->[0] = - "Cannot use \'-a\' with \'-o\', a noderange or file input.\n"; + "Cannot use \'-a\' with \'-o\', a noderange or file input."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 3; } @@ -711,7 +711,7 @@ if ($rc != 0) { my $rsp; - $rsp->{data}->[0] = "Incorrect selection string specified with -w flag\n"; + $rsp->{data}->[0] = "Incorrect selection string specified with -w flag."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 3; } @@ -742,7 +742,7 @@ { my $rsp; $rsp->{data}->[0] = - "The \'-i\' option is only valid for the lsdef command.\n"; + "The \'-i\' option is only valid for the lsdef command."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 3; } @@ -820,7 +820,7 @@ { my $rsp; $rsp->{data}->[0] = - "Cannot combine \'-t\' and \'-a\', \'-z\', or \'-x\' options.\n"; + "Cannot combine \'-t\' and \'-a\', \'-z\', or \'-x\' options."; xCAT::MsgUtils->message("E", $rsp, $::callback); &defmk_usage; return 1; @@ -831,7 +831,7 @@ { my $rsp; $rsp->{data}->[0] = "Cannot use \'-z\' with \'-o\' or a noderange."; - $rsp->{data}->[1] = "Example of -z usage:\n\t\'cat stanzafile | mkdef -z\'\n"; + $rsp->{data}->[1] = "Example of -z usage:\n\t\'cat stanzafile | mkdef -z\'"; xCAT::MsgUtils->message("E", $rsp, $::callback); &defmk_usage; return 1; @@ -841,7 +841,7 @@ if (!@::allobjnames) { my $rsp; - $rsp->{data}->[0] = "No object names were provided.\n"; + $rsp->{data}->[0] = "No object names were provided."; xCAT::MsgUtils->message("E", $rsp, $::callback); &defmk_usage; return 1; @@ -882,8 +882,8 @@ { my $rsp; $rsp->{data}->[0] = - "\'$attr\' is not a valid attribute name for an object type of \'$::objtype\'.\n"; - $rsp->{data}->[1] = "Skipping to the next attribute.\n"; + "\'$attr\' is not a valid attribute name for an object type of \'$::objtype\'."; + $rsp->{data}->[1] = "Skipping to the next attribute."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -932,7 +932,7 @@ { my $rsp; $rsp->{data}->[0] = "\ndefmk: list objects that are defined for each type"; - $rsp->{data}->[1] = "@{$objTypeLists{$t}}\n"; + $rsp->{data}->[1] = "@{$objTypeLists{$t}}"; xCAT::MsgUtils->message("I", $rsp, $::callback); } } @@ -946,8 +946,8 @@ if (!$type) { my $rsp; - $rsp->{data}->[0] = "No type was provided for object \'$obj\'.\n"; - $rsp->{data}->[1] = "Skipping to the next object.\n"; + $rsp->{data}->[0] = "No type was provided for object \'$obj\'."; + $rsp->{data}->[1] = "Skipping to the next object."; xCAT::MsgUtils->message("I", $rsp, $::callback); $error = 1; next; @@ -968,7 +968,7 @@ foreach my $o (keys %nethash) { if ( ($nethash{$o}{net} eq $::FINALATTRS{$obj}{net}) && ($nethash{$o}{mask} eq $::FINALATTRS{$obj}{mask}) ) { my $rsp; - $rsp->{data}->[0] = "A network definition called \'$o\' already exists that contains the same net and mask values. Cannot create a definition for \'$obj\'.\n"; + $rsp->{data}->[0] = "A network definition called \'$o\' already exists that contains the same net and mask values. Cannot create a definition for \'$obj\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; delete $::FINALATTRS{$obj}; @@ -990,7 +990,7 @@ $error = 1; my $rsp; $rsp->{data}->[0] = - "Could not remove the definition for \'$obj\'.\n"; + "Could not remove the definition for \'$obj\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); } } @@ -1000,11 +1000,11 @@ # won't remove the old one unless the force option is used my $rsp; $rsp->{data}->[0] = - "\nA definition for \'$obj\' already exists.\n"; + "\nA definition for \'$obj\' already exists."; $rsp->{data}->[1] = - "To remove the old definition and replace it with \na new definition use the force \'-f\' option.\n"; + "To remove the old definition and replace it with \na new definition use the force \'-f\' option."; $rsp->{data}->[2] = - "To change the existing definition use the \'chdef\' command.\n"; + "To change the existing definition use the \'chdef\' command."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -1030,7 +1030,7 @@ if (scalar(keys %{$::FINALATTRS{$obj}}) > 1) { my $rsp; - $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'.\n"; + $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -1058,8 +1058,8 @@ { my $rsp; $rsp->{data}->[0] = - "The \'where\' attributes and values were not provided for dynamic group \'$obj\'.\n"; - $rsp->{data}->[1] = "Skipping to the next group.\n"; + "The \'where\' attributes and values were not provided for dynamic group \'$obj\'."; + $rsp->{data}->[1] = "Skipping to the next group."; xCAT::MsgUtils->message("E", $rsp, $::callback); next; } @@ -1073,7 +1073,7 @@ { my $rsp; $rsp->{data}->[0] = - "Cannot use a list of members together with the \'-w\' option.\n"; + "Cannot use a list of members together with the \'-w\' option."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 1; } @@ -1127,11 +1127,29 @@ { my $rsp; $rsp->{data}->[0] = - "Cannot determine a member list for group \'$obj\'.\n"; + "Cannot determine a member list for group \'$obj\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); } } + # mkdef -t group should not create new nodes + my @tmpmemlist = (); + my @allnodes = xCAT::DBobjUtils->getObjectsOfType('node'); + foreach my $tmpnode (@memberlist) + { + if (!grep(/^$tmpnode$/, @allnodes)) + { + my $rsp; + $rsp->{data}->[0] = "Could not find a node named \'$tmpnode\', skipping to the next node."; + xCAT::MsgUtils->message("E", $rsp, $::callback); + } + else + { + push @tmpmemlist, $tmpnode; + } + } + @memberlist = @tmpmemlist; + # need to add group name to all members in nodelist table my $tab = xCAT::Table->new('nodelist', -create => 1, -autocommit => 0); @@ -1217,7 +1235,7 @@ { $indynamicgrp = 1; my $rsp; - $rsp->{data}->[0] = "nodegroup $g is a dynamic node group, should not add a node into a dynamic node group statically.\n"; + $rsp->{data}->[0] = "nodegroup $g is a dynamic node group, should not add a node into a dynamic node group statically."; xCAT::MsgUtils->message("I", $rsp, $::callback); last; } @@ -1238,14 +1256,14 @@ if ($::verbose) { my $rsp; - $rsp->{data}->[0] = "Write GroupHash: %GroupHash to xCAT database\n"; + $rsp->{data}->[0] = "Write GroupHash: %GroupHash to xCAT database"; xCAT::MsgUtils->message("I", $rsp, $::callback); } if (xCAT::DBobjUtils->setobjdefs(\%GroupHash) != 0) { my $rsp; $rsp->{data}->[0] = - "Could not write data to the xCAT database.\n"; + "Could not write data to the xCAT database."; # xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; @@ -1272,7 +1290,7 @@ if (xCAT::DBobjUtils->setobjdefs(\%::FINALATTRS) != 0) { my $rsp; - $rsp->{data}->[0] = "Could not write data to the xCAT database.\n"; + $rsp->{data}->[0] = "Could not write data to the xCAT database."; # xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; @@ -1282,7 +1300,7 @@ { my $rsp; $rsp->{data}->[0] = - "One or more errors occured when attempting to create or modify xCAT \nobject definitions.\n"; + "One or more errors occured when attempting to create or modify xCAT \nobject definitions."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 1; } @@ -1294,13 +1312,13 @@ # give results my $rsp; $rsp->{data}->[0] = - "The database was updated for the following objects:\n"; + "The database was updated for the following objects:"; xCAT::MsgUtils->message("I", $rsp, $::callback); my $n = 1; foreach my $o (sort(keys %::FINALATTRS)) { - $rsp->{data}->[$n] = "$o\n"; + $rsp->{data}->[$n] = "$o"; $n++; } xCAT::MsgUtils->message("I", $rsp, $::callback); @@ -1309,7 +1327,7 @@ { my $rsp; $rsp->{data}->[0] = - "Object definitions have been created or modified.\n"; + "Object definitions have been created or modified."; xCAT::MsgUtils->message("I", $rsp, $::callback); } return 0; @@ -1347,10 +1365,13 @@ my $rc = 0; my $error = 0; - my $firsttime = 1; + my $firsttime = 1; - my %objTypeLists; + my %objTypeLists; + # hash that contains all the new objects that are being created + my %newobjects; + # process the command line $rc = &processArgs; if ($rc != 0) @@ -1383,7 +1404,7 @@ { my $rsp; $rsp->{data}->[0] = - "Cannot combine \'-t\' and \'-a\', \'-z\', or \'-x\' options.\n"; + "Cannot combine \'-t\' and \'-a\', \'-z\', or \'-x\' options."; xCAT::MsgUtils->message("E", $rsp, $::callback); &defch_usage; return 1; @@ -1394,7 +1415,7 @@ { my $rsp; $rsp->{data}->[0] = "Cannot use \'-z\' with \'-o\' or a noderange."; - $rsp->{data}->[1] = "Example of -z usage:\n\t\'cat stanzafile | chdef -z\'\n"; + $rsp->{data}->[1] = "Example of -z usage:\n\t\'cat stanzafile | chdef -z\'"; xCAT::MsgUtils->message("E", $rsp, $::callback); &defch_usage; return 1; @@ -1404,7 +1425,7 @@ if (!@::allobjnames) { my $rsp; - $rsp->{data}->[0] = "No object names were provided.\n"; + $rsp->{data}->[0] = "No object names were provided."; xCAT::MsgUtils->message("E", $rsp, $::callback); &defch_usage; return 1; @@ -1446,8 +1467,8 @@ { my $rsp; $rsp->{data}->[0] = - "\'$attr\' is not a valid attribute name for for an object type of \'$::objtype\'.\n"; - $rsp->{data}->[1] = "Skipping to the next attribute.\n"; + "\'$attr\' is not a valid attribute name for for an object type of \'$::objtype\'."; + $rsp->{data}->[1] = "Skipping to the next attribute."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -1488,7 +1509,7 @@ { my $rsp; $rsp->{data}->[0] = "\ndefch: list objects that are defined for each type"; - $rsp->{data}->[1] = "@{$objTypeLists{$t}}\n"; + $rsp->{data}->[1] = "@{$objTypeLists{$t}}"; xCAT::MsgUtils->message("I", $rsp, $::callback); } } @@ -1503,8 +1524,8 @@ if (!$type) { my $rsp; - $rsp->{data}->[0] = "No type was provided for object \'$obj\'.\n"; - $rsp->{data}->[1] = "Skipping to the next object.\n"; + $rsp->{data}->[0] = "No type was provided for object \'$obj\'."; + $rsp->{data}->[1] = "Skipping to the next object."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -1515,6 +1536,10 @@ $isDefined = 1; } + if (!$isDefined) + { + $newobjects{$obj} = $type; + } if (!$isDefined && $::opt_m) { @@ -1522,7 +1547,7 @@ #error - cannot remove items from an object that does not exist. my $rsp; $rsp->{data}->[0] = - "The \'-m\' option is not valid since the \'$obj\' definition does not exist.\n"; + "The \'-m\' option is not valid since the \'$obj\' definition does not exist."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -1548,7 +1573,7 @@ if (scalar(keys %{$::FINALATTRS{$obj}}) > 1) { my $rsp; - $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'.\n"; + $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -1562,7 +1587,7 @@ { my $rsp; $rsp->{data}->[0] = - "Could not get xCAT object definitions.\n"; + "Could not get xCAT object definitions."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 1; @@ -1607,7 +1632,7 @@ { my $rsp; $rsp->{data}->[0] = - "Cannot use a list of members together with the \'-w\' option.\n"; + "Cannot use a list of members together with the \'-w\' option."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -1668,6 +1693,24 @@ } # end - get memberlist for static group + # chdef -t group should not create new nodes + my @tmpmemlist = (); + my @allnodes = xCAT::DBobjUtils->getObjectsOfType('node'); + foreach my $tmpnode (@memberlist) + { + if (!grep(/^$tmpnode$/, @allnodes)) + { + my $rsp; + $rsp->{data}->[0] = "Could not find a node named \'$tmpnode\', skipping to the next node."; + xCAT::MsgUtils->message("E", $rsp, $::callback); + } + else + { + push @tmpmemlist, $tmpnode; + } + } + @memberlist = @tmpmemlist; + if (!$isDefined) { @@ -1682,8 +1725,8 @@ { my $rsp; $rsp->{data}->[0] = - "The \'where\' attributes and values were not provided for dynamic group \'$obj\'.\n"; - $rsp->{data}->[1] = "Skipping to the next group.\n"; + "The \'where\' attributes and values were not provided for dynamic group \'$obj\'."; + $rsp->{data}->[1] = "Skipping to the next group."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -1873,7 +1916,7 @@ { $indynamicgrp = 1; my $rsp; - $rsp->{data}->[0] = "nodegroup $g is a dynamic node group, should not add a node into a dynamic node group statically.\n"; + $rsp->{data}->[0] = "nodegroup $g is a dynamic node group, should not add a node into a dynamic node group statically."; xCAT::MsgUtils->message("I", $rsp, $::callback); last; } @@ -1897,7 +1940,7 @@ { my $rsp; $rsp->{data}->[0] = - "Could not write data to the xCAT database.\n"; + "Could not write data to the xCAT database."; # xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; @@ -1935,7 +1978,7 @@ if (xCAT::DBobjUtils->setobjdefs(\%::FINALATTRS) != 0) { my $rsp; - $rsp->{data}->[0] = "Could not write data to the xCAT database.\n"; + $rsp->{data}->[0] = "Could not write data to the xCAT database."; # xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; @@ -1945,7 +1988,7 @@ { my $rsp; $rsp->{data}->[0] = - "One or more errors occured when attempting to create or modify xCAT \nobject definitions.\n"; + "One or more errors occured when attempting to create or modify xCAT \nobject definitions."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 1; } @@ -1957,7 +2000,7 @@ # give results my $rsp; $rsp->{data}->[0] = - "The database was updated for the following objects:\n"; + "The database was updated for the following objects:"; xCAT::MsgUtils->message("I", $rsp, $::callback); my $n = 1; @@ -1972,8 +2015,17 @@ { my $rsp; $rsp->{data}->[0] = - "Object definitions have been created or modified.\n"; + "Object definitions have been created or modified."; xCAT::MsgUtils->message("I", $rsp, $::callback); + if (scalar(keys %newobjects) > 0) + { + my $newobj = join(',', sort(keys %newobjects)); + my $rsp; + $rsp->{data}->[0] = "New object definitions \'$newobj\' have been created."; + xCAT::MsgUtils->message("I", $rsp, $::callback); + } + + } return 0; } @@ -2026,7 +2078,7 @@ if (!$::FILEATTRS{$objname}{objtype}) { my $rsp; - $rsp->{data}->[0] = "\nNo objtype value was specified for \'$objname\'. Cannot create object definition.\n"; + $rsp->{data}->[0] = "\nNo objtype value was specified for \'$objname\'. Cannot create object definition."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -2052,7 +2104,7 @@ my $rsp; $rsp->{data}->[0] = - "\'$attr\' is not a valid attribute name for for an object type of \'$::objtype\'.\n"; + "\'$attr\' is not a valid attribute name for for an object type of \'$::objtype\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; next; @@ -2213,7 +2265,7 @@ if (!defined(%myhash)) { my $rsp; - $rsp->{data}->[0] = "Could not get xCAT object definitions.\n"; + $rsp->{data}->[0] = "Could not get xCAT object definitions."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 1; @@ -2230,7 +2282,7 @@ if (!defined(%myhash)) { my $rsp; - $rsp->{data}->[0] = "Could not get xCAT object definitions.\n"; + $rsp->{data}->[0] = "Could not get xCAT object definitions."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 1; } @@ -2262,7 +2314,7 @@ { my $rsp; $rsp->{data}->[0] = - "Could not get objects of type \'$t\'.\n"; + "Could not get objects of type \'$t\'."; xCAT::MsgUtils->message("I", $rsp, $::callback); } } @@ -2271,7 +2323,7 @@ if (!defined(%myhash)) { my $rsp; - $rsp->{data}->[0] = "Could not get xCAT object definitions.\n"; + $rsp->{data}->[0] = "Could not get xCAT object definitions."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 1; } @@ -2284,7 +2336,7 @@ if (!defined(%myhash)) { my $rsp; - $rsp->{data}->[0] = "Could not get xCAT object definitions.\n"; + $rsp->{data}->[0] = "Could not get xCAT object definitions."; xCAT::MsgUtils->message("E", $rsp, $::callback); return 1; } @@ -2299,7 +2351,7 @@ if (!defined(%myhash)) { my $rsp; - $rsp->{data}->[0] = "Could not find any objects to display.\n"; + $rsp->{data}->[0] = "Could not find any objects to display."; xCAT::MsgUtils->message("I", $rsp, $::callback); return 0; } @@ -2403,7 +2455,7 @@ { my $rsp; $rsp->{data}->[0] = - "Could not find any object definitions to display.\n"; + "Could not find any object definitions to display."; xCAT::MsgUtils->message("I", $rsp, $::callback); return 0; } @@ -2427,7 +2479,7 @@ { my $rsp; $rsp->{data}->[0] = - "Could not find any objects of type \'$defhash{$obj}{'objtype'}\'.\n"; + "Could not find any objects of type \'$defhash{$obj}{'objtype'}\'."; xCAT::MsgUtils->message("I", $rsp, $::callback); next; } @@ -2436,7 +2488,7 @@ { my $rsp; $rsp->{data}->[0] = - "Could not find an object named \'$obj\' of type \'$defhash{$obj}{'objtype'}\'.\n"; + "Could not find an object named \'$obj\' of type \'$defhash{$obj}{'objtype'}\'."; xCAT::MsgUtils->message("I", $rsp, $::callback); next; } @@ -2778,7 +2830,7 @@ { my $rsp; $rsp->{data}->[0] = - "You must use the \'-f\' option when using the \'-a\' option.\n"; + "You must use the \'-f\' option when using the \'-a\' option."; xCAT::MsgUtils->message("E", $rsp, $::callback); &defrm_usage; return 1; @@ -2871,7 +2923,7 @@ if (!grep(/^$obj$/, @{$objTypeLists{$objtype}})) #Object is not in the db, do not need to delete { my $rsp; - $rsp->{data}->[0] = "Could not find an object named \'$obj\' of type \'$objtype\'.\n"; + $rsp->{data}->[0] = "Could not find an object named \'$obj\' of type \'$objtype\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); next; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-10-12 08:26:45
|
Revision: 4350 http://xcat.svn.sourceforge.net/xcat/?rev=4350&view=rev Author: ligc Date: 2009-10-12 08:26:35 +0000 (Mon, 12 Oct 2009) Log Message: ----------- sort the output of lsdef Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-10-12 07:41:52 UTC (rev 4349) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-10-12 08:26:35 UTC (rev 4350) @@ -2461,7 +2461,7 @@ } # for each object - foreach my $obj (keys %defhash) + foreach my $obj (sort keys %defhash) { unless ($obj) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <li...@us...> - 2009-11-06 06:50:57
|
Revision: 4495 http://xcat.svn.sourceforge.net/xcat/?rev=4495&view=rev Author: ligc Date: 2009-11-06 06:50:51 +0000 (Fri, 06 Nov 2009) Log Message: ----------- fix for bug 2881601: should not assign nodes attributes to dynamic node group Modified Paths: -------------- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm Modified: xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm =================================================================== --- xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-11-06 03:25:48 UTC (rev 4494) +++ xcat-core/trunk/xCAT-server/lib/xcat/plugins/DBobjectdefs.pm 2009-11-06 06:50:51 UTC (rev 4495) @@ -1033,6 +1033,7 @@ $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; + delete($::FINALATTRS{$obj}); next; } $::FINALATTRS{$obj}{grouptype} = 'dynamic'; @@ -1579,6 +1580,7 @@ $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'."; xCAT::MsgUtils->message("E", $rsp, $::callback); $error = 1; + delete($::FINALATTRS{$obj}); next; } } @@ -1596,6 +1598,15 @@ } $grptype = $grphash{$obj}{grouptype}; + if (($grptype eq "dynamic") && (scalar(keys %{$::FINALATTRS{$obj}}) > 1)) + { + my $rsp; + $rsp->{data}->[0] = "Can not assign attributes to dynamic node group \'$obj\'."; + xCAT::MsgUtils->message("E", $rsp, $::callback); + $error = 1; + delete($::FINALATTRS{$obj}); + next; + } # for now all groups are static #$grptype = 'static'; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |