$text{'cmds_run'}:<\p>\n"; print "
${cmds_run_clipped}...
\n"; } # show buttons to enable/disable etc # # Parameters: # sub print_state_buttons() { print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; } # show svc chooser button # # Parameters: prop_name, form_index, button_value, type, add # sub print_svc_chooser() { ($prop_name, $form_index, $button_value, $type, $add) = @_; print "\n"; } # show path chooser button # # Parameters: prop_name, form_index, button_value, add # sub print_path_chooser() { ($prop_name, $form_index, $button_value, $add) = @_; print "\n"; } # subroutines used by index page # gather required information from svcs, storing as # array of hashes indexed by property... # # Parameters: filter, comma_separated_optlist # sub svcs_listing() { local ($filter, $opts, $opt, @optlist, @sinfo, $sinf, @sinf_array, $i); ($filter, $sortopt) = @_; $filter = "$filter\*"; $allopts = "FMRI,STATE,NSTATE,STIME,DESC"; $sinfo = &run_smf_cmds("/usr/bin/svcs -H -o $allopts $sortopt $filter"); @sinfo_list = split(/\n/, $sinfo); foreach $sinf (@sinfo_list) { chomp($sinf); if ($sinf =~ /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)/) { $listing[$i]{'FMRI'} = $1; $listing[$i]{'STATE'} = $2; $listing[$i]{'NSTATE'} = $3; $listing[$i]{'STIME'} = $4; $listing[$i]{'DESC'} = $5; $i = $i + 1; } } return @listing; } # subroutines used in wizard-based service creation # subfunction to create smf manifest from wizard datafiles. # # Parameters: sub create_smf_manifest() { local (%service_info, $manifest, @find_replace_array, @datafiles, $i); $manifest = $_[0]; unlink($manifest); # add service information to manifest %service_info = &wizard_get_data("smfwizard_service.cgi", "0"); @find_replace_array = ("SERVICE_NAME/$service_info{'service_name'}", "SERVICE_VERSION/$service_info{'service_version'}"); &fill_manifest_template("service_template.xml", $manifest, \@find_replace_array); # restarter %service_info = &wizard_get_data("smfwizard_restarter.cgi", "0"); if ($service_info{'restarter_fmri'} =~ /.+/) { @find_replace_array = ("RESTARTER_FMRI/$tab"; if ($tree_ref->{"$fmri"}->{'expand'} == 1) { $fmriinfo = &contractbutton($dependency_or_dependent, $tree_ref, $fmri); } else { $fmriinfo = &expandbutton($dependency_or_dependent, $tree_ref, $fmri); } # show expand/contract button... if ($level > 0) { print "$fmriinfo"; } # apply-to checkbox print " \n"; # fmri, link to state editor page for fmri print " $fmri"; if ($tree_ref->{"$fmri"}->{'state'} =~ /.+/) { $color = "$state_colors{$tree_ref->{$fmri}->{'state'}}"; print " $tree_ref->{$fmri}->{'state'}"; } if ($tree_ref->{"$fmri"}->{'grouping'} =~ /.+/) { print " ($tree_ref->{$fmri}->{'grouping'})"; } print "
\n"; if ($tree_ref->{"$fmri"}->{'expand'} == 1) { # we can expand foreach $child_fmri (@{$tree_ref->{"$fmri"}->{'children'}}) { &print_dep_tree($dependency_or_dependent, $tree_ref, $child_fmri, $level + 1); } } } sub contractbutton() { local ($dependency_or_dependent, $tree_ref, $fmri, $disable); ($dependency_or_dependent, $tree_ref, $fmri) = @_; $disable = ""; # for elements with no children, disable button... if ($tree_ref->{"$fmri"}->{'haschildren'} == 0) { $disable = "disabled=\"disabled\""; } return ""; } sub expandbutton() { local ($dependency_or_dependent, $tree_ref, $fmri, $disable); ($dependency_or_dependent, $tree_ref, $fmri) = @_; $disable = ""; if ($tree_ref->{"$fmri"}->{'haschildren'} == 0) { $disable = "disabled=\"disabled\""; } return ""; }