{
    use MIME::Base64 qw(encode_base64);

    my $service;
    my $rec;
    my $pw;

    # Enable InnoDB (needed for cacti?)
    $service = 'mysqld';

    $rec = $DB->get($service) || $DB->new_record($service, {type => 'service'});
    $rec->set_prop('InnoDB', 'enabled');

    # Store the cacti password in the configuration database (if not already there)
    $service = 'cacti';

    $rec = $DB->get($service) || $DB->new_record($service, {type => 'service'});

    $pw = $rec->prop('DbPassword');
    

	if (! $pw)
    	{
		
		if ( open( RANDOM, "/dev/urandom" ) )
	    	{
        		my $buf;
		        # 57 bytes is a full line of Base64 coding, and contains
		        # 456 bits of randomness - given a perfectly random /dev/random
	       		if ( read( RANDOM, $buf, 57 ) != 57 )
	        	{
	        	    warn("Short read from /dev/random: $!");
	        	}
	        	else
	        	{
	            		$pw = encode_base64($buf);
	        	    chomp $pw;
	        	}
	        	close RANDOM;
	    	}
	    	else
	    	{
	    	    warn "Could not open /dev/urandom: $!";
	    	}
		
	    	$rec->set_prop('DbPassword', $pw);
	}



}
