Add dsn opt to Cxn::connect() to change dsn. Update Cxn in pt-agent.

This commit is contained in:
Daniel Nichter
2013-12-04 16:14:17 -08:00
parent 0f63f75504
commit 1f93caf67c
3 changed files with 72 additions and 2 deletions

View File

@@ -24,6 +24,8 @@ my $q = new Quoter();
my $dp = new DSNParser(opts=>$dsn_opts);
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
my $master_dbh = $sb->get_dbh_for('master');
my $slave1_dbh = $sb->get_dbh_for('slave1');
my $slave1_dsn = $sb->dsn_for('slave1');
if ( !$master_dbh ) {
plan skip_all => 'Cannot connect to sandbox master';
@@ -319,6 +321,58 @@ is(
unlink $sync_file if -f $sync_file;
unlink $outfile if -f $outfile;
# #############################################################################
# Re-connect with new DSN.
# #############################################################################
SKIP: {
skip "Cannot connect to slave1", 4 unless $slave1_dbh;
$cxn = make_cxn(
dsn_string => 'h=127.1,P=12345,u=msandbox,p=msandbox',
);
$cxn->connect();
ok(
$cxn->dbh()->ping(),
"First connect()"
);
($row) = $cxn->dbh()->selectrow_hashref('SHOW SLAVE STATUS');
ok(
!defined $row,
"First connect() to master"
) or diag(Dumper($row));
$cxn->dbh->disconnect();
$cxn->connect(dsn => $dp->parse($slave1_dsn));
ok(
$cxn->dbh()->ping(),
"Re-connect connect()"
);
($row) = $cxn->dbh()->selectrow_hashref('SHOW SLAVE STATUS');
ok(
$row,
"Re-connect connect(slave_dsn) to slave"
) or diag(Dumper($row));
$cxn->dbh->disconnect();
$cxn->connect();
ok(
$cxn->dbh()->ping(),
"Re-re-connect connect()"
);
($row) = $cxn->dbh()->selectrow_hashref('SHOW SLAVE STATUS');
ok(
$row,
"Re-re-connect connect() to slave"
) or diag(Dumper($row));
}
# #############################################################################
# Done.
# #############################################################################