I've been having problems installing since this update. I'm using FC4 with make test from the most current trunk. I also tried last night's nightly just to confirm. Here's the output I'm getting in oscar_wizard:
============================================================================= == Prerequisites installed ============================================================================= --> OSCAR version: 5.0a1r5075 --> Command line invocation: ./install_cluster eth0 --> Hostname: headnode --> DNS domain name: --> Network interface: eth0 --> Linux distribution: fedora 4 --> Kernel version: 2.6.11-1.1369_FC4smp --> Architecture: i386 --> Running in directory: /tmp/oscar-trunk --> PATH: /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin --> Running: "./oscar_wizard" Global symbol "$values" requires explicit package name at /tmp/oscar-trunk/lib/OSCAR/Configbox.pm line 272. Compilation failed in require at /tmp/oscar-trunk/lib/OSCAR/Configurator.pm line 39. BEGIN failed--compilation aborted at /tmp/oscar-trunk/lib/OSCAR/Configurator.pm line 39. Compilation failed in require at ./oscar_wizard line 49. BEGIN failed--compilation aborted at ./oscar_wizard line 49. Oscar Wizard failed to run successfully at ./install_cluster line 302. On Wed, 28 Jun 2006, [EMAIL PROTECTED] wrote: > Author: efocht > Date: 2006-06-28 14:58:59 -0400 (Wed, 28 Jun 2006) > New Revision: 5066 > > Modified: > trunk/lib/OSCAR/Configbox.pm > trunk/lib/OSCAR/Configurator.pm > trunk/lib/OSCAR/Database.pm > trunk/packages/ganglia/scripts/edit_ganglia_conf > trunk/packages/ganglia/scripts/post_rpm_nochroot > trunk/packages/kernel_picker/scripts/post_clients > trunk/packages/ntpconfig/scripts/post_server_install > trunk/packages/oda/scripts/oscar_table.sql > trunk/packages/sge/scripts/post_install > trunk/packages/sge/scripts/post_rpm_nochroot > trunk/packages/sge/scripts/post_server_install > trunk/packages/switcher/scripts/user_settings.pm > Log: > Moved per opkg configuration variables to the OSCAR database. > This means: .configurator.values files are not created any more! > The values go to the Packages_config table in the OSCAR database. > > The Configbox.pm module was modified a bit to access the configurator > variables from the ODA. Also some packages' API scripts needed changes. I > tested this to work for ganglia and ntpconfig, I hope I cought all scripts > which needed to be changed. If you find anything which still needs to be > changed, please tell me. > > Configbox.pm takes care of the configurator values handling. Use > use OSCAR::Configbox; > my $values = readInConfigValues($cfile,$opkg,$context,[noarray=>1]); > > The noarray arg is optional. > You'll get back a hash reference, as you were used to. > > If you want to interact directly with the database use the routines: > set_pkgconfig_var > get_pkgconfig_vars > del_pkgconfig_vars > pkgconfig_values > from OSCAR::Database.pm (this is addressed to Wesley for CLI). > > Otherwise nothing changed. > > > Modified: trunk/lib/OSCAR/Configbox.pm > =================================================================== > --- trunk/lib/OSCAR/Configbox.pm 2006-06-28 18:52:02 UTC (rev 5065) > +++ trunk/lib/OSCAR/Configbox.pm 2006-06-28 18:58:59 UTC (rev 5066) > @@ -1,3 +1,6 @@ > +package OSCAR::Configbox; > + > +############################################################## > # This program is free software; you can redistribute it and/or modify > # it under the terms of the GNU General Public License as published by > # the Free Software Foundation; either version 2 of the License, or > @@ -17,11 +20,12 @@ > # > # Written by Terrence G. Fleury ([EMAIL PROTECTED]) > # > +# Extensions for configurator data stored in OSCAR database were > +# written by Erich Focht <[EMAIL PROTECTED]> > +# Copyright (c) 2006 Erich Focht > +# > # $Id$ > ############################################################## > -# MOVE THE STUFF BELOW TO THE TOP OF THE PERL SOURCE FILE! # > -############################################################## > -package OSCAR::Configbox; > > use strict; > use base qw(Exporter); > @@ -33,13 +37,14 @@ > use XML::Simple; > no warnings qw(closure); > use OSCAR::Tk; > +use File::Basename; > +use OSCAR::Database; > > my($top); # The Toplevel widget for the config box. > my($web); # The Tk::Web widget for displaying HTML file. > my($packagedir); > +my ($my_opkg, $my_context); > ############################################################## > -# MOVE THE STUFF ABOVE TO THE TOP OF THE PERL SOURCE FILE! # > -############################################################## > > # Sample SpecTcl main program for testing GUI > > @@ -243,24 +248,33 @@ > > ######################################################################### > # Subroutine: readInConfigValues # > -# Parameter : The name of the simple XML config file to read in. # > -# Returns : A HASH containing all of the XML tags and their values. # > -# This subroutine takes the name of a file and reads it as if it was # > -# a simple configuration file suitable for XML::Simple. It returns # > -# a reference to a HASH containing the key/value pairs. Note that # > -# the values are actually ARRAYS, so you must either iterate through # > -# each hash entry, or assume that there is but a single element in the # > -# array and thus access the 0th element. # > +# Parameter : 1. the configurator.html file location # > +# 2. the OSCAR package name # > +# 3. context (see Packages_config table in ODA) # > +# 4. selection arguments e.g. noarray => 1 # > +# Returns : A HASH reference with all related variable names (as # > +# keys) and their values (as anonymous array references) # > ######################################################################### > sub readInConfigValues # ($filename) -> $values > { > - my($filename) = @_; > + my ($conffile, $opkg, $context, %sel) = @_; > > - my($values) = eval > - { XMLin($filename, suppressempty => '', forcearray => '1'); }; > - undef $values if ($@); > + my @res = &get_pkgconfig_vars(opkg => "$opkg", context => "$context"); > + if ([EMAIL PROTECTED]) { > + &defaultConfigToDB($conffile, $opkg, $context); > + @res = &get_pkgconfig_vars(opkg => "$opkg", context => "$context"); > + } > > - return $values; > + my %values = &pkgconfig_values(@res); > + > + if (exists($sel{noarray})) { > + for my $k (keys(%values)) { > + if (scalar(@$values{$k}) <= 1) { > + $values{$k} = $values{$k}[0]; > + } > + } > + } > + return \%values; > } > > ######################################################################### > @@ -375,7 +389,92 @@ > } > } > > + > + > ######################################################################### > +# Subroutine: extractDefaultConfig # > +# Parameters: 1. The HTML tree generated by readInDefaultConfig. # > +# Returns : Values hash # > +# Tries to read in all input fields and sets the values hash # > +# accordingly. Used for filling the database with default # > +# config values. # > +######################################################################### > +sub extractDefaultConfig # ($tree) > +{ > + my($tree) = @_; > + > + my %values; > + > + # Scan through all "input" tags which are "checked" and > + # set their values accordingly > + for my $d ($tree->look_down( > + sub { > + return 1 if (($_[0]->tag eq 'input') && > + ($_[0]->attr('checked'))); > + return 0; > + } > + )) { > + my $name = $d->attr('name'); > + $values{"$name"} = [ 1 ]; > + } > + > + # Scan through all "input" tags which are neither checkboxes > + # nor radiobuttons > + for my $d ($tree->look_down( > + sub { > + return 1 if (($_[0]->tag eq 'input') && > + ($_[0]->attr('type') ne 'checkbox') && > + ($_[0]->attr('type') ne 'radio')); > + return 0; > + } > + )) { > + my $name = $d->attr('name'); > + next if exists($values{"$name"}); > + next if !$name; > + my $val = $d->attr('value'); > + $values{"$name"} = [ "$val" ]; > + } > + > + # Search for "select" tags and collect their subtree names > + # with "option" tags 'selected'. > + for my $d ($tree->look_down( > + sub { > + return 1 if ($_[0]->tag() eq 'select'); > + return 0; > + } )) { > + my $name = $d->attr('name'); > + # SELECT tag has OPTION tags as its children. > + my @kids = $d->content_list(); > + for my $kid (@kids) { > + next if (!ref $kid); # Ignore any text elements > + if (($kid->tag() eq 'option') && $kid->attr('selected')) { > + my $val = $kid->attr('value'); > + if (!exists($values{"$name"})) { > + $values{"$name"} = [ "$val" ]; > + } else { > + push @{$values{"$name"}}, "$val"; > + } > + } > + } > + } > + > + # extract textareas content > + for my $d ($tree->look_down( > + sub { > + return 1 if (($_[0]->tag eq 'textarea') && > + ($_[0]->attr('name'))); > + return 0; > + } > + )) { > + my $name = $d->attr('name'); > + my $text = $d->as_text(); > + $values{"$name"} = [ "$text" ]; > + } > + > + return %values; > +} > + > +######################################################################### > # Subroutine: writeOutTempConfig # > # Parameter : An HTML::Tree tree to output to file # > # Returns : Nothing # > @@ -446,13 +545,11 @@ > } > } > > - # We created the %result hash, now write it out to a Simple XML file. > - XMLout(\%result, > - outputfile => "$packagedir/.configurator.values", > - noescape => 1, > - rootname => 'config', > - noattr=> 1, > - ) if (scalar(keys %result) > 0); > + # now write config variables to the database > + for my $name (keys(%result)) { > + &set_pkgconfig_var(opkg => "$my_opkg", context => "$my_context", > + name => "$name", value => $result{$name}); > + } > } > > ######################################################################### > @@ -567,6 +664,8 @@ > # Subroutine: configurePackage # > # Parameters: 1. The parent of the Config Box (eg. $top or $root). # > # 2. The full path for an OSCAR package's directory. # > +# 3. The opkg name. # > +# 4. The "context" for these variables # > # Returns : Nothing # > # This subroutine takes the full path name of a subdirectory under the # > # OSCAR "packages" directory and attempts to render the configuration # > @@ -576,22 +675,46 @@ > { > my $parent = shift; > $packagedir = shift; > + my $opkg = shift; > + my $context = shift; > > + $my_opkg = $opkg; > + $my_context = $context; > + > # Check for the configuration HTML file > return if ((-s "$packagedir/.selection.ignore") || > (!(-s "$packagedir/configurator.html"))); > > - my($tree) = readInDefaultConfig("$packagedir/configurator.html"); > + my $tree = readInDefaultConfig("$packagedir/configurator.html"); > return if (!$tree); > - my($values) = readInConfigValues("$packagedir/.configurator.values"); > - preprocessConfig($tree,$values) if $values; > - writeOutTempConfig($tree); > + > + my $values = &readInConfigValues("$packagedir/configurator.html", > + $opkg, $context); > + &preprocessConfig($tree,$values) if $values; > + &writeOutTempConfig($tree); > $tree->delete; # Always delete the tree when you are done with it. > > displayWebPage($parent,"$packagedir/.configurator.temp.html"); > } > > +# > +# Read default config from configurator.html file and store results in > +# the OSCAR database. > +# > +sub defaultConfigToDB > +{ > + my ($conffile, $opkg, $context) = @_; > + return if (-s "$conffile"); > > + my($tree) = readInDefaultConfig("$conffile"); > + return if (!$tree); > + my %values = &extractDefaultConfig($tree); > + for my $name (keys(%values)) { > + &set_pkgconfig_var(opkg => "$opkg", context => "$context", > + name => "$name", value => $values{$name}); > + } > +} > + > #configurePackage($top,'/home/tfleury/develop/oscar/packages/kernel_picker'); > > > > Modified: trunk/lib/OSCAR/Configurator.pm > =================================================================== > --- trunk/lib/OSCAR/Configurator.pm 2006-06-28 18:52:02 UTC (rev 5065) > +++ trunk/lib/OSCAR/Configurator.pm 2006-06-28 18:58:59 UTC (rev 5066) > @@ -271,6 +271,7 @@ > -command => [ \&OSCAR::Configbox::configurePackage, > $root, > $packagedir, > + $package, > ], > -padx => 4, > ); > > Modified: trunk/lib/OSCAR/Database.pm > =================================================================== > --- trunk/lib/OSCAR/Database.pm 2006-06-28 18:52:02 UTC (rev 5065) > +++ trunk/lib/OSCAR/Database.pm 2006-06-28 18:58:59 UTC (rev 5066) > @@ -94,6 +94,7 @@ > delete_node > delete_group_packages > delete_groups > + del_pkgconfig_vars > do_select > get_client_nodes > get_client_nodes_info > @@ -119,6 +120,7 @@ > get_packages_switcher > get_packages_servicelists > get_packages_with_class > + get_pkgconfig_vars > get_selected_group > get_selected_group_packages > get_unselected_group_packages > @@ -128,6 +130,7 @@ > link_node_nic_to_network > list_selected_packages > pkgs_of_opkg > + pkgconfig_values > set_all_groups > set_group_packages > set_group_nodes > @@ -138,6 +141,7 @@ > set_install_mode > set_nics_with_node > set_node_with_group > + set_pkgconfig_var > set_status > update_node > update_node_package_status > @@ -2599,7 +2603,127 @@ > return do_update($sql, "Clusters", $options_ref, $error_strings_ref); > } > > +# set package configuration name/value pair > +# Usage example: > +# set_pkgconfig_var(opkg => "ganglia" , context => "", > +# name => "gmond_if", value => [ "eth0" ]); > +# > +# "value" needs to point to an anonymous array reference! > +# The arguments "name" and "context" are optional. > +sub set_pkgconfig_var { > + my (%val) = @_; > + if (!exists($val{opkg}) || !exists($val{name}) || !exists($val{value})) { > + croak("missing one of opkg/name/value : ".Dumper(%val)); > + } > + if (!exists($val{context}) || $val{context} eq "") { > + $val{context} = "global"; > + } > + my (%options, @errors); > + my %sel = %val; > + delete $sel{value}; > + my $sql; > + # delete all existing records > + &del_pkgconfig_vars(%sel); > > + # get opkg_id first > + my $opkg = $val{opkg}; > + delete $val{opkg}; > + > + my $pref = get_package_info_with_name($opkg,\%options,[EMAIL PROTECTED]); > + croak("No package $opkg found!") if (!$pref); > + my $opkg_id = $pref->{id}; > + $val{package_id} = $opkg_id; > + my @values = @{$val{value}}; > + delete $val{value}; > + > + for my $v (@values) { > + $val{value} = $v; > + $sql = "INSERT INTO Packages_config (".join(", ",(keys(%val))).") " . > + "VALUES ('" . join("', '",values(%val)) . "')";; > + croak("$0:Failed to insert values via << $sql >>") > + if !do_insert($sql, "Packages_config", \%options, [EMAIL > PROTECTED]); > + } > + return 1; > +} > + > +# get package configuration values > +# Usage example: > +# get_pkgconfig_vars(opkg => "ganglia", context => "", > +# name => "gmond_if"); > +# The arguments "name" and "context" are optional. > +# > +sub get_pkgconfig_vars { > + my (%sel) = @_; > + croak("opkg not specified!") if (!exists($sel{opkg})); > + if (!exists($sel{context}) || $sel{context} eq "") { > + $sel{context} = "global"; > + } > + my (%options, @errors); > + my $opkg = $sel{opkg}; > + delete $sel{opkg}; > + my $sql = "SELECT Packages.package AS opkg, " . > + "Packages_config.config_id AS config_id, " . > + "Packages_config.package_id AS package_id, " . > + "Packages_config.name AS name, " . > + "Packages_config.value AS value, " . > + "Packages_config.context AS context ". > + "FROM Packages_config, Packages " . > + "WHERE Packages_config.package_id=Packages.id AND ". > + "Packages.package='$opkg' AND "; > + my @where = map { "Packages_config.$_='".$sel{$_}."'" } keys(%sel); > + $sql .= join(" AND ", @where); > + my @result; > + die "$0:Failed to query values via << $sql >>" > + if (!do_select($sql,[EMAIL PROTECTED], \%options, [EMAIL > PROTECTED])); > + > + return @result; > +} > + > +# convert pkgconfig vars query result into a values hash tree > +# good to be used with the configurator routines > +sub pkgconfig_values { > + my (@result) = @_; > + my %values; > + for my $r (@result) { > + my $name = $r->{name}; > + my $val = $r->{value}; > + if (!exists($values{$name})) { > + $values{"$name"} = [ "$val" ]; > + } else { > + push @{$values{"$name"}}, "$val"; > + } > + } > + return %values; > +} > + > +# delete package configuration values > +# Usage example: > +# del_pkgconfig_vars(opkg => "ganglia", context => "", > +# name => "gmond_if"); > +# At least the "opkg" selection must be specified! > +# The arguments "name" and "context" are optional. > +sub del_pkgconfig_vars { > + my (%sel) = @_; > + croak("opkg not specified!") if (!exists($sel{opkg})); > + if (!exists($sel{context}) || $sel{context} eq "") { > + $sel{context} = "global"; > + } > + my (%options, @errors); > + > + my @exists = &get_pkgconfig_vars(%sel); > + return 1 if (!scalar(@exists)); > + > + for my $e (@exists) { > + my $id = $e->{config_id}; > + > + my $sql = "DELETE FROM Packages_config WHERE config_id='$id'"; > + my @result; > + die "$0:Failed to delete values via << $sql >>" > + if (!do_update($sql,[EMAIL PROTECTED], \%options, [EMAIL > PROTECTED])); > + } > + return 1; > +} > + > sub set_node_with_group { > my ($node, > $group, > > Modified: trunk/packages/ganglia/scripts/edit_ganglia_conf > =================================================================== > --- trunk/packages/ganglia/scripts/edit_ganglia_conf 2006-06-28 18:52:02 UTC > (rev 5065) > +++ trunk/packages/ganglia/scripts/edit_ganglia_conf 2006-06-28 18:58:59 UTC > (rev 5066) > @@ -22,7 +22,6 @@ > # Copyright 2005 Erich Focht <[EMAIL PROTECTED]> > # > > -use XML::Simple; > use Carp; > use strict; > use Getopt::Long; > @@ -32,6 +31,7 @@ > use SIS::Image; > use SIS::Client; > use Data::Dumper; > +use OSCAR::Configbox; > use OSCAR::Database; > use OSCAR::Opkg; > > @@ -52,8 +52,8 @@ > $gmond_conf = "gmond.conf"; > $ENV{OSCAR_PACKAGE_HOME} = "."; > } > -my $xml_data = "$ENV{OSCAR_PACKAGE_HOME}/.configurator.values"; > -my $xml_imgd = "$ENV{OSCAR_PACKAGE_HOME}/.configs"; > +my $masterconf = "$ENV{OSCAR_PACKAGE_HOME}/configurator.html"; > +my $imgconfd = "$ENV{OSCAR_PACKAGE_HOME}/.configs"; > > my $hostname = `hostname`; > chomp($hostname); > @@ -101,8 +101,8 @@ > > > my $master_conf; > -if (-e $xml_data) { > - $master_conf = XMLin($xml_data); > +if (-e $masterconf) { > + $master_conf = readInConfigValues($masterconf, "ganglia", "", > noarray=>1); > } else { > $master_conf = \%default; > } > @@ -114,13 +114,13 @@ > # > # per image configuration > # > - my $xml_img = "$xml_imgd/$image/.configurator.values"; > + my $imgconf = "$imgconfd/$image/configurator.html"; > # > # read in per image configurator data, if it exists > # > - if (-e $xml_img) { > - vprint("using per image values file $xml_img\n"); > - my $img_conf = XMLin($xml_img); > + if (-e $imgconf) { > + vprint("using per image config $imgconf\n"); > + my $img_conf = readInConfigValues($imgconf, "ganglia", > "image:$image", noarray=>1); > vprint(Dumper(%{$img_conf})); > add_missing_keys($master_conf, $img_conf); > &edit_gmond_conf($gmond_img, $img_conf); > @@ -261,7 +261,7 @@ > my $master_port = $config{udp_recv_channel__port}; > my $master_iface = $config{udp_recv_channel__mcast_if}; > # images configured > - my @imgs = glob("$xml_imgd/*"); > + my @imgs = glob("$imgconfd/*"); > vprint("img_datasources: images: ".join(" ",@imgs)."\n"); > foreach (@imgs) { > s/.*\///g; # basename > @@ -270,9 +270,9 @@ > vprint("finding gmetad config for image $img\n"); > # get cluster name and port from per image config > # if same port as master, skip > - my $xml_img = "$xml_imgd/$img/.configurator.values"; > - if (-e $xml_img) { > - %imgcfg = %{XMLin($xml_img)}; > + my $imgconf = "$imgconfd/$img/configurator.html"; > + if (-e $imgconf) { > + %imgcfg = > %{readInConfigValues($imgconf,"ganglia","image:$img",noarray=>1)}; > } else { > opkg_print "configurator values for image $img not found!\n"; > next; > > Modified: trunk/packages/ganglia/scripts/post_rpm_nochroot > =================================================================== > --- trunk/packages/ganglia/scripts/post_rpm_nochroot 2006-06-28 18:52:02 UTC > (rev 5065) > +++ trunk/packages/ganglia/scripts/post_rpm_nochroot 2006-06-28 18:58:59 UTC > (rev 5066) > @@ -33,6 +33,7 @@ > use XML::Simple; > use Tk; > use OSCAR::Configbox; > +use OSCAR::Database; > use lib '/usr/lib/systeminstaller'; > use SIS::DB; > use SIS::Image; > @@ -51,12 +52,11 @@ > ##################### > > my $imageconf = $configdir."/".$image; > -my $valuesfile = $imageconf."/.configurator.values"; > -my $mastervals = $ENV{OSCAR_PACKAGE_HOME}."/.configurator.values"; > +my $masterconf = $ENV{OSCAR_PACKAGE_HOME}."/configurator.html"; > > my $master_conf; > -if (-e $mastervals) { > - $master_conf = XMLin($mastervals); > +if (-e $masterconf) { > + $master_conf = readInConfigValues($masterconf,"ganglia","",noarray=>1); > # exit if no per-image config > exit 0 if ($master_conf->{gmond_per_image} ne "YES"); > } else { > @@ -77,7 +77,7 @@ > exit 1; > } > > -print "configuring gmond for image=$image valuesfile=$valuesfile\n"; > +print "configuring gmond for image=$image\n"; > > if (! -d $imageconf) { > !system("mkdir ".$imageconf) || do { > @@ -94,8 +94,10 @@ > print "Found $imageconf\n"; > } > > -if (!-f $valuesfile) { > - OSCAR::Configbox::configurePackage(0, $imageconf); > +# configure this only if no config values found in database > +my @res = get_pkgconfig_vars(opkg => "ganglia", context => "image:$image"); > +if ([EMAIL PROTECTED]) { > + OSCAR::Configbox::configurePackage(0, > $imageconf,"ganglia","image:$image"); > MainLoop(); > } > > > Modified: trunk/packages/kernel_picker/scripts/post_clients > =================================================================== > --- trunk/packages/kernel_picker/scripts/post_clients 2006-06-28 18:52:02 UTC > (rev 5065) > +++ trunk/packages/kernel_picker/scripts/post_clients 2006-06-28 18:58:59 UTC > (rev 5066) > @@ -20,11 +20,10 @@ > use lib "$ENV{OSCAR_HOME}/lib"; > use Carp; > use POSIX; > -use XML::Simple; > use OSCAR::Configbox; > > my $VERSION = '$Id'; > -my($valuesfile) = "$ENV{OSCAR_PACKAGE_HOME}/.configurator.values"; > +my $valuesfile = "$ENV{OSCAR_PACKAGE_HOME}/configurator.html"; > > ##################### > # BEGIN MAIN SCRIPT # > @@ -32,7 +31,7 @@ > > if (-e $valuesfile) > { > - my($values) = OSCAR::Configbox::readInConfigValues($valuesfile); > + my $values = readInConfigValues($valuesfile,"kernel_picker",""); > > # First, get any optional values > my $bootkernel = ""; > > Modified: trunk/packages/ntpconfig/scripts/post_server_install > =================================================================== > --- trunk/packages/ntpconfig/scripts/post_server_install 2006-06-28 > 18:52:02 UTC (rev 5065) > +++ trunk/packages/ntpconfig/scripts/post_server_install 2006-06-28 > 18:58:59 UTC (rev 5066) > @@ -23,13 +23,13 @@ > use lib "$ENV{OSCAR_HOME}/lib"; > use OSCAR::Network; > use OSCAR::Database; > -use XML::Simple; > +use OSCAR::Configbox; > use Carp; > > my $ntpBuffer = ""; > my $ntp_conf = "/etc/ntp.conf"; > my $step_tickers = "/etc/ntp/step-tickers"; > -my $xml_data = "$ENV{OSCAR_PACKAGE_HOME}/.configurator.values"; > +my $configurator = "$ENV{OSCAR_PACKAGE_HOME}/configurator.html"; > my $ntpd = "ntpd"; > > # SUSE Linux's ntpd initscript name is "ntp" > @@ -53,8 +53,8 @@ > $network = join(".", @results); > > # User has configured ntpconfig package with a NTP server > -if (-e $xml_data) { > - $ref = XMLin($xml_data); > +if (-e $configurator) { > + $ref = readInConfigValues($configurator,"ntpconfig","",noarray=>1); > # If ntpconfig package has configured NTP server before, replace > if ($ntpBuffer =~ /User selected NTP Server/) { > $ntpBuffer =~ s/^server.*\nrestrict.*\n/server > $ref->{ntpserver}\nrestrict $ref->{ntpserver} mask 255.255.255.255\n/m; > > Modified: trunk/packages/oda/scripts/oscar_table.sql > =================================================================== > --- trunk/packages/oda/scripts/oscar_table.sql 2006-06-28 18:52:02 UTC > (rev 5065) > +++ trunk/packages/oda/scripts/oscar_table.sql 2006-06-28 18:58:59 UTC > (rev 5066) > @@ -219,6 +219,18 @@ > CONSTRAINT Packages_provides_ibfk_1 FOREIGN KEY (p1_id) REFERENCES > Packages (id) ON DELETE CASCADE > )TYPE=INNODB; > > +-- Packages_provides > +CREATE TABLE IF NOT EXISTS Packages_config( > + config_id integer auto_increment not null unique, > + package_id integer not null, > + name VARCHAR(100) not null, > + value VARCHAR(256), > + context VARCHAR(100), > + PRIMARY KEY (config_id, package_id), > + KEY package_id ( package_id ), > + CONSTRAINT Packages_config_ibfk_1 FOREIGN KEY (package_id) REFERENCES > Packages (id) ON DELETE CASCADE > +)TYPE=INNODB; > + > -- Node_Package_Status > CREATE TABLE IF NOT EXISTS Node_Package_Status( > current integer, > > Modified: trunk/packages/sge/scripts/post_install > =================================================================== > --- trunk/packages/sge/scripts/post_install 2006-06-28 18:52:02 UTC (rev > 5065) > +++ trunk/packages/sge/scripts/post_install 2006-06-28 18:58:59 UTC (rev > 5066) > @@ -23,9 +23,9 @@ > > use strict; > use Carp; > -use XML::Simple; > > use lib "/usr/lib/systeminstaller","$ENV{OSCAR_HOME}/lib"; > +use OSCAR::Configbox; > use OSCAR::Database; > use OSCAR::Opkg; > use SystemInstaller::Machine; > @@ -109,11 +109,11 @@ > > if (%nodes) { > # Obtain any custom configure values from the user > - my $xml_data = "$ENV{OSCAR_PACKAGE_HOME}/.configurator.values"; > + my $xml_data = "$ENV{OSCAR_PACKAGE_HOME}/configurator.html"; > > # If user has configured the package, use the custom values, otherwise > use the default > if (-e $xml_data) { > - my $ref = XMLin($xml_data); > + my $ref = readInConfigValues($xml_data,"sge","",noarray=>1); > $cell = $ref->{cellname}; > } > > > Modified: trunk/packages/sge/scripts/post_rpm_nochroot > =================================================================== > --- trunk/packages/sge/scripts/post_rpm_nochroot 2006-06-28 18:52:02 UTC > (rev 5065) > +++ trunk/packages/sge/scripts/post_rpm_nochroot 2006-06-28 18:58:59 UTC > (rev 5066) > @@ -20,7 +20,8 @@ > > use strict; > use Carp; > -use XML::Simple; > +use lib "$ENV{OSCAR_HOME}/lib"; > +use OSCAR::Configbox; > > my $imagedir = shift; > > @@ -30,11 +31,11 @@ > my $cell = "default"; > > # Obtain any custom configure values from the user > -my $xml_data = "$ENV{OSCAR_PACKAGE_HOME}/.configurator.values"; > +my $xml_data = "$ENV{OSCAR_PACKAGE_HOME}/configurator.html"; > > # If user has configured the package, use the custom values, otherwise use > the default > if (-e $xml_data) { > - my $ref = XMLin($xml_data); > + my $ref = readInConfigValues($xml_data,"sge","",noarray=>1); > $cell = $ref->{cellname}; > } > > > Modified: trunk/packages/sge/scripts/post_server_install > =================================================================== > --- trunk/packages/sge/scripts/post_server_install 2006-06-28 18:52:02 UTC > (rev 5065) > +++ trunk/packages/sge/scripts/post_server_install 2006-06-28 18:58:59 UTC > (rev 5066) > @@ -23,9 +23,9 @@ > > use Carp; > use File::Copy; > -use XML::Simple; > > use lib "$ENV{OSCAR_HOME}/lib"; > +use OSCAR::Configbox; > use OSCAR::Database; > use OSCAR::Opkg; > > @@ -46,7 +46,7 @@ > my $admin_user = "sge"; > > # Obtain any custom configure values from the user > -my $xml_data = "$ENV{OSCAR_PACKAGE_HOME}/.configurator.values"; > +my $xml_data = "$ENV{OSCAR_PACKAGE_HOME}/configurator.html"; > > my $qmasterBuffer = ""; > > @@ -57,7 +57,7 @@ > > # If user has configured the package, use the custom values, otherwise use > the default > if (-e $xml_data) { > - my $ref = XMLin($xml_data); > + my $ref = readInConfigValues($xml_data,"sge","",noarray=>1); > $fullserver = $ref->{fullserver}; > $cellname = $ref->{cellname}; > $gidrange = $ref->{gidrange}; > > Modified: trunk/packages/switcher/scripts/user_settings.pm > =================================================================== > --- trunk/packages/switcher/scripts/user_settings.pm 2006-06-28 18:52:02 UTC > (rev 5065) > +++ trunk/packages/switcher/scripts/user_settings.pm 2006-06-28 18:58:59 UTC > (rev 5066) > @@ -36,11 +36,10 @@ > > # Read in the data from the results of the configurator step > > - my $infile = "$ENV{OSCAR_PACKAGE_HOME}/.configurator.values"; > - my $xs = new XML::Simple(keyattr => {}); > + my $infile = "$ENV{OSCAR_PACKAGE_HOME}/configurator.html"; > my $results; > if (-e $infile) { > - $results = $xs->XMLin($infile); > + $results = readInConfigValues($infile,"switcher","",noarray=>1); > } > > # Read in all the <switcher> blocks from the package > > > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Oscar-checkins mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/oscar-checkins > Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Oscar-devel mailing list Oscar-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oscar-devel