void tut_sync_connect_replica (void) { mongo_sync_connection *conn; conn = mongo_sync_connect ("mongo-master", 27017, TRUE); if (!conn) { perror ("mongo_sync_connect()"); return; } if (!mongo_sync_conn_set_auto_reconnect (conn, TRUE)) { perror ("mongo_sync_conn_set_auto_reconnect()"); return; } if (!mongo_sync_conn_seed_add (conn, "mongo-replica", 27017)) { perror ("mongo_sync_conn_seed_add()"); return; } if (!mongo_sync_conn_seed_add (conn, "mongo-replica-2", 27017)) { perror ("mongo_sync_conn_seed_add()"); return; } mongo_sync_disconnect (conn); }
static gboolean afmongodb_dd_connect(MongoDBDestDriver *self, gboolean reconnect) { GList *l; if (reconnect && self->conn) return TRUE; self->conn = mongo_sync_connect(self->host, self->port, FALSE); if (!self->conn) { msg_error ("Error connecting to MongoDB", NULL); return FALSE; } mongo_sync_conn_set_safe_mode(self->conn, self->safe_mode); l = self->servers; while ((l = g_list_next(l)) != NULL) { gchar *host = NULL; gint port = 27017; if (!mongo_util_parse_addr(l->data, &host, &port)) { msg_warning("Cannot parse MongoDB server address, ignoring", evt_tag_str("address", l->data), NULL); continue; } mongo_sync_conn_seed_add (self->conn, host, port); msg_verbose("Added MongoDB server seed", evt_tag_str("host", host), evt_tag_int("port", port), NULL); g_free(host); } /* if (self->user || self->password) { if (!self->user || !self->password) { msg_error("Neither the username, nor the password can be empty", NULL); return FALSE; } if (mongo_cmd_authenticate(&self->mongo_conn, self->db, self->user, self->password) != 1) { msg_error("MongoDB authentication failed", NULL); return FALSE; } } */ return TRUE; }
NEOERR* mmg_seed_add(mmg_conn *db, char *host, int port) { mtc_noise("add seed %s %d ...", host, port); if (!mongo_sync_conn_seed_add(db->con, host, port)) return nerr_raise(NERR_DB, "add seed: %s", strerror(errno)); return STATUS_OK; }
void test_mongo_sync_conn_seed_add (void) { mongo_sync_connection *c; c = test_make_fake_sync_conn (42, TRUE); ok (mongo_sync_conn_seed_add (NULL, "localhost", 27017) == FALSE, "mongo_sync_conn_seed_add() should fail with a NULL connection"); ok (mongo_sync_conn_seed_add (c, NULL, 27017) == FALSE, "mongo_sync_conn_seed_add() should fail with a NULL host"); ok (mongo_sync_conn_seed_add (c, "localhost", -1) == FALSE, "mongo_sync_conn_seed_add() should fail with an invalid port"); ok (mongo_sync_conn_seed_add (c, "localhost", 27017), "mongo_sync_conn_seed_add() works"); mongo_sync_disconnect (c); }
void test_func_mongo_sync_conn_seed_add (void) { mongo_sync_connection *conn; GList *l; conn = mongo_sync_connect (config.primary_host, config.primary_port, FALSE); close (conn->super.fd); l = conn->rs.hosts; while (l) { g_free (l->data); l = g_list_delete_link (l, l); } conn->rs.hosts = NULL; conn = mongo_sync_reconnect (conn, TRUE); ok (conn == NULL, "mongo_sync_reconnect() fails without seeds or discovery"); conn = mongo_sync_connect (config.primary_host, config.primary_port, FALSE); close (conn->super.fd); l = conn->rs.hosts; while (l) { g_free (l->data); l = g_list_delete_link (l, l); } conn->rs.hosts = NULL; ok (mongo_sync_conn_seed_add (conn, config.primary_host, config.primary_port), "mongo_sync_conn_seed_add() works"); conn = mongo_sync_reconnect (conn, TRUE); ok (conn != NULL, "mongo_sync_reconnect() works when properly seeded"); mongo_sync_disconnect (conn); }