AnyMongo
view release on metacpan or search on metacpan
lib/AnyMongo/Connection.pm view on Meta::CPAN
required => 1,
default => 20000,
);
has username => (
is => 'rw',
isa => 'Str',
required => 0,
);
has password => (
is => 'rw',
isa => 'Str',
required => 0,
);
has connected => (
isa => 'Bool',
is => 'rw',
default => 0,
);
lib/AnyMongo/Connection.pm view on Meta::CPAN
sub BUILD { shift->_init }
sub _init {
my ($self) = @_;
eval "use ${_}" # no Any::Moose::load_class becase the namespaces already have symbols from the xs bootstrap
for qw/AnyMongo::Database AnyMongo::Cursor AnyMongo::BSON::OID/;
$self->_parse_servers();
if ($self->auto_connect) {
$self->connect;
# if (defined $self->username && defined $self->password) {
# $self->authenticate($self->db_name, $self->username, $self->password);
# }
}
}
sub connect {
my ($self,%args) = @_;
return if $self->connected || $self->{_trying_connect};
# warn "connect...\n";
$self->{_trying_connect} = 1;
lib/AnyMongo/Connection.pm view on Meta::CPAN
sub get_database {
my ($self, $database_name) = @_;
return AnyMongo::Database->new(
_connection => $self,
name => $database_name,
);
}
sub authenticate {
my ($self, $dbname, $username, $password, $is_digest) = @_;
my $hash = $password;
# create a hash if the password isn't yet encrypted
if (!$is_digest) {
$hash = Digest::MD5::md5_hex("${username}:mongo:${password}");
}
# get the nonce
my $db = $self->get_database($dbname);
my $result = $db->run_command({getnonce => 1});
if (!$result->{'ok'}) {
return $result;
}
my $nonce = $result->{'nonce'};
( run in 0.920 second using v1.01-cache-2.11-cpan-49f99fa48dc )