public bool IsRestored(string connectionName)
        {
            MongoServer server           = null;
            var         connectionString = ConfigurationManager.ConnectionStrings[connectionName]?.ConnectionString;

            if (string.IsNullOrEmpty(connectionString))
            {
                return(false);
            }

            try
            {
                var mongoUrl    = new MongoUrl(connectionString);
                var mongoClient = new MongoClient(mongoUrl);
                server = new MongoServer(MongoServerSettings.FromClientSettings(mongoClient.Settings));//mongoClient.GetServer();

                return(server.GetDatabase(mongoUrl.DatabaseName).CollectionExists(MongoRestoreSettings.RestoredDbTokenCollection));
            }
            catch (FormatException ex)
            {
                Log.Error("Wrong connection string format", ex, this);
                throw;
            }
            finally
            {
                server?.Disconnect();
            }
        }
Esempio n. 2
0
        public DataAccess()
        {
            var mongoUrl = new MongoUrl(connectionString);

            mongoClient = new MongoClient(mongoUrl);
            mongoServer = new MongoServer(MongoServerSettings.FromClientSettings(mongoClient.Settings));
            db          = mongoServer.GetDatabase(dbName);
        }
Esempio n. 3
0
        // public methods
        /// <summary>
        /// Gets a MongoServer object using this client's settings.
        /// </summary>
        /// <returns>A MongoServer.</returns>
        public MongoServer GetServer()
        {
            var serverSettings = MongoServerSettings.FromClientSettings(_settings);

#pragma warning disable 618
            return(MongoServer.Create(serverSettings));

#pragma warning restore
        }
Esempio n. 4
0
 public ToggleRepository(IOptions <AppSettings> config)
 {
     _config     = config;
     _mongoUrl   = new MongoUrl(_config.Value.ConnectionString);
     _client     = new MongoClient(_mongoUrl);
     _server     = new MongoServer(MongoServerSettings.FromClientSettings(_client.Settings));
     _db         = _server.GetDatabase(_config.Value.Database);
     _collection = _db.GetCollection <ToggleView>(_config.Value.Collection);
 }
Esempio n. 5
0
        public void TestFromClientSettings()
        {
            // set everything to non default values to test that all settings are converted
            var connectionString =
                "mongodb://*****:*****@somehost/?authSource=db;authMechanismProperties=CANONICALIZE_HOST_NAME:true;" +
                "appname=app;connect=direct;connectTimeout=123;uuidRepresentation=pythonLegacy;ipv6=true;heartbeatInterval=1m;heartbeatTimeout=2m;localThreshold=128;" +
                "maxIdleTime=124;maxLifeTime=125;maxPoolSize=126;minPoolSize=127;" +
                "readPreference=secondary;readPreferenceTags=a:1,b:2;readPreferenceTags=c:3,d:4;retryReads=false;retryWrites=true;socketTimeout=129;" +
                "serverSelectionTimeout=20s;ssl=true;sslVerifyCertificate=false;waitqueuesize=130;waitQueueTimeout=131;" +
                "w=1;fsync=true;journal=true;w=2;wtimeout=131;gssapiServiceName=other";
            var builder        = new MongoUrlBuilder(connectionString);
            var url            = builder.ToMongoUrl();
            var clientSettings = MongoClientSettings.FromUrl(url);

            clientSettings.SdamLogFilename = "section-31";

            var settings = MongoServerSettings.FromClientSettings(clientSettings);

            Assert.Equal(url.ApplicationName, settings.ApplicationName);
            Assert.Equal(url.ConnectionMode, settings.ConnectionMode);
            Assert.Equal(url.ConnectTimeout, settings.ConnectTimeout);
#pragma warning disable 618
            Assert.Equal(1, settings.Credentials.Count());
#pragma warning restore
            Assert.Equal(url.Username, settings.Credential.Username);
            Assert.Equal(url.AuthenticationMechanism, settings.Credential.Mechanism);
            Assert.Equal("other", settings.Credential.GetMechanismProperty <string>("SERVICE_NAME", "mongodb"));
            Assert.Equal(true, settings.Credential.GetMechanismProperty <bool>("CANONICALIZE_HOST_NAME", false));
            Assert.Equal(url.AuthenticationSource, settings.Credential.Source);
            Assert.Equal(new PasswordEvidence(builder.Password), settings.Credential.Evidence);
            Assert.Equal(url.GuidRepresentation, settings.GuidRepresentation);
            Assert.Equal(url.HeartbeatInterval, settings.HeartbeatInterval);
            Assert.Equal(url.HeartbeatTimeout, settings.HeartbeatTimeout);
            Assert.Equal(url.IPv6, settings.IPv6);
            Assert.Equal(url.LocalThreshold, settings.LocalThreshold);
            Assert.Equal(url.MaxConnectionIdleTime, settings.MaxConnectionIdleTime);
            Assert.Equal(url.MaxConnectionLifeTime, settings.MaxConnectionLifeTime);
            Assert.Equal(url.MaxConnectionPoolSize, settings.MaxConnectionPoolSize);
            Assert.Equal(url.MinConnectionPoolSize, settings.MinConnectionPoolSize);
            Assert.Equal(url.ReadPreference, settings.ReadPreference);
            Assert.Equal(url.ReplicaSetName, settings.ReplicaSetName);
            Assert.Equal(url.RetryReads, settings.RetryReads);
            Assert.Equal(url.RetryWrites, settings.RetryWrites);
            Assert.Equal(url.Scheme, settings.Scheme);
            Assert.Equal(clientSettings.SdamLogFilename, settings.SdamLogFilename);
            Assert.True(url.Servers.SequenceEqual(settings.Servers));
            Assert.Equal(url.ServerSelectionTimeout, settings.ServerSelectionTimeout);
            Assert.Equal(url.SocketTimeout, settings.SocketTimeout);
            Assert.Equal(null, settings.SslSettings);
            Assert.Equal(url.UseSsl, settings.UseSsl);
            Assert.Equal(url.VerifySslCertificate, settings.VerifySslCertificate);
            Assert.Equal(url.ComputedWaitQueueSize, settings.WaitQueueSize);
            Assert.Equal(url.WaitQueueTimeout, settings.WaitQueueTimeout);
            Assert.Equal(url.GetWriteConcern(true), settings.WriteConcern);
        }
Esempio n. 6
0
        public void TestFromClientSettingsTlsInsecure()
        {
            var connectionString = "mongodb://lcars/?tlsInsecure=true";
            var builder          = new MongoUrlBuilder(connectionString);
            var url            = builder.ToMongoUrl();
            var clientSettings = MongoClientSettings.FromUrl(url);

            var settings = MongoServerSettings.FromClientSettings(clientSettings);

            settings.AllowInsecureTls.Should().BeTrue();
        }
Esempio n. 7
0
        public void TestFromClientSettingsTlsDisableCertificateRevocationCheck()
        {
            var connectionString = "mongodb://lcars/?tlsDisableCertificateRevocationCheck=true";
            var builder          = new MongoUrlBuilder(connectionString);
            var url            = builder.ToMongoUrl();
            var clientSettings = MongoClientSettings.FromUrl(url);

            var settings = MongoServerSettings.FromClientSettings(clientSettings);

            settings.SslSettings.Should().Be(new SslSettings {
                CheckCertificateRevocation = !url.TlsDisableCertificateRevocationCheck
            });
        }
Esempio n. 8
0
        public BlobTest()
        {
            JsonWriterSettings.Defaults.Indent = true;
            var mongoClientSettings = MongoClientSettings.FromUrl(new MongoUrl("mongodb://localhost"));
            var mongoServer         = new MongoServer(MongoServerSettings.FromClientSettings(mongoClientSettings));

            _mongoGridFs = new MongoGridFS(mongoServer, "Test", new MongoGridFSSettings());


            var mongoClient = new MongoClient(mongoClientSettings);

            _blobDataBase = mongoClient.GetDatabase("Test");
        }
        private void MarkAsRestored(MongoUrl mongoUrl)
        {
            MongoServer server = null;

            try
            {
                var mongoClient = new MongoClient(mongoUrl);
                server = new MongoServer(MongoServerSettings.FromClientSettings(mongoClient.Settings));//mongoClient.GetServer();

                server.GetDatabase(mongoUrl.DatabaseName).CreateCollection(MongoRestoreSettings.RestoredDbTokenCollection);
            }
            finally
            {
                server?.Disconnect();
            }
        }
Esempio n. 10
0
        public void SetUp()
        {
            fixtureComponentExecutor = new MongoDbReadExecutor();
            fixtureDbReadMongoDb     = fixtureComponentExecutor;
            fixtureDbReadMongoDb.ConnectionString = "mongodb://localhost:27017/testdb";
            fixtureDbReadMongoDb.Collection       = "TestCollection";
            fixtureDbReadMongoDb.ReturnModeType   = MongoDBReadShared.ReturnModeType.ListOfRows;

            personType = TypeReference.CreateGeneratedType(
                new TypeProperty("name", typeof(string)),
                new TypeProperty("gender", typeof(string)),
                new TypeProperty("age", typeof(float)),
                new TypeProperty("id", typeof(string))
                );
            eldestPersonType = TypeReference.CreateGeneratedType(new TypeProperty("Eldest", typeof(string)), new TypeProperty("total", typeof(int)));
            var connectionString = "mongodb://localhost:27017/testdb";
            var databaseName     = MongoUrl.Create(connectionString).DatabaseName;

            var clientSettings = new MongoClient(connectionString).Settings;
            MongoServerSettings serverSettings = MongoServerSettings.FromClientSettings(clientSettings);
            var server = new MongoServer(serverSettings);

            var database = server.GetDatabase(databaseName);
            MongoCollection <BsonDocument> test = database.GetCollection <BsonDocument>("TestCollection");

            test.RemoveAll();
            test.Insert(new BsonDocument {
                { "name", "Harry Potter" },
                { "gender", "male" },
                { "age", 8 },
            });
            test.Insert(new BsonDocument {
                { "name", "Nancy Drew" },
                { "gender", "female" },
                { "age", 14 },
            });
            test.Insert(new BsonDocument {
                { "name", "Adrian Mole" },
                { "gender", "male" },
                { "age", 13.75 },
            });
            test.Insert(new BsonDocument {
                { "name", "Cookie Monster" },
                { "gender", "male" },
                { "age", 40 },
            });
        }
        public HealthCheckFacet SitecoreMongo()
        {
            var checkResult = new HealthCheckFacet
            {
                Name    = "SitecoreMongo",
                Healthy = true,
            };


            var client = new MongoClient(_config.MongoDbConnectionString);

            var server = new MongoServer(MongoServerSettings.FromClientSettings(client.Settings));

            client.ListDatabases(CancellationToken.None);//get mongo to do something first, otherwise the server ping will fail the first time after the app starts
            server.Ping();

            return(checkResult);
        }
        public void TestFromClientSettings()
        {
            // set everything to non default values to test that all settings are converted
            var connectionString =
                "mongodb://*****:*****@somehost/?authSource=db;authMechanismProperties=CANONICALIZE_HOST_NAME:true;" +
                "connect=direct;connectTimeout=123;uuidRepresentation=pythonLegacy;ipv6=true;" +
                "maxIdleTime=124;maxLifeTime=125;maxPoolSize=126;minPoolSize=127;" +
                "readPreference=secondary;readPreferenceTags=a:1,b:2;readPreferenceTags=c:3,d:4;secondaryAcceptableLatency=128;socketTimeout=129;" +
                "ssl=true;sslVerifyCertificate=false;waitqueuesize=130;waitQueueTimeout=131;" +
                "w=1;fsync=true;journal=true;w=2;wtimeout=131;gssapiServiceName=other";
            var builder        = new MongoUrlBuilder(connectionString);
            var url            = builder.ToMongoUrl();
            var clientSettings = MongoClientSettings.FromUrl(url);

            var settings = MongoServerSettings.FromClientSettings(clientSettings);

            Assert.AreEqual(url.ConnectionMode, settings.ConnectionMode);
            Assert.AreEqual(url.ConnectTimeout, settings.ConnectTimeout);
            Assert.AreEqual(1, settings.Credentials.Count());
            Assert.AreEqual(url.Username, settings.Credentials.Single().Username);
            Assert.AreEqual(url.AuthenticationMechanism, settings.Credentials.Single().Mechanism);
            Assert.AreEqual("other", settings.Credentials.Single().GetMechanismProperty <string>("SERVICE_NAME", "mongodb"));
            Assert.AreEqual(true, settings.Credentials.Single().GetMechanismProperty <bool>("CANONICALIZE_HOST_NAME", false));
            Assert.AreEqual(url.AuthenticationSource, settings.Credentials.Single().Source);
            Assert.AreEqual(new PasswordEvidence(builder.Password), settings.Credentials.Single().Evidence);
            Assert.AreEqual(url.GuidRepresentation, settings.GuidRepresentation);
            Assert.AreEqual(url.IPv6, settings.IPv6);
            Assert.AreEqual(url.MaxConnectionIdleTime, settings.MaxConnectionIdleTime);
            Assert.AreEqual(url.MaxConnectionLifeTime, settings.MaxConnectionLifeTime);
            Assert.AreEqual(url.MaxConnectionPoolSize, settings.MaxConnectionPoolSize);
            Assert.AreEqual(url.MinConnectionPoolSize, settings.MinConnectionPoolSize);
            Assert.AreEqual(url.ReadPreference, settings.ReadPreference);
            Assert.AreEqual(url.ReplicaSetName, settings.ReplicaSetName);
            Assert.AreEqual(url.SecondaryAcceptableLatency, settings.SecondaryAcceptableLatency);
            Assert.IsTrue(url.Servers.SequenceEqual(settings.Servers));
            Assert.AreEqual(url.SocketTimeout, settings.SocketTimeout);
            Assert.AreEqual(null, settings.SslSettings);
            Assert.AreEqual(url.UseSsl, settings.UseSsl);
            Assert.AreEqual(url.VerifySslCertificate, settings.VerifySslCertificate);
            Assert.AreEqual(url.ComputedWaitQueueSize, settings.WaitQueueSize);
            Assert.AreEqual(url.WaitQueueTimeout, settings.WaitQueueTimeout);
            Assert.AreEqual(url.GetWriteConcern(true), settings.WriteConcern);
        }
Esempio n. 13
0
        public void SetUp()
        {
            fixtureMongoWrite                  = new MongoDBWriteExecutor();
            fixtureMongoWrite.Name             = "test";
            fixtureMongoWrite.ConnectionString = "mongodb://localhost:27017/testdb";
            fixtureMongoWrite.Collection       = "TestCollection";
            fixtureMongoWrite.UpdateOperation  = "{}";

            var connectionString = "mongodb://localhost:27017/testdb";
            var databaseName     = MongoUrl.Create(connectionString).DatabaseName;

            var clientSettings = new MongoClient(connectionString).Settings;
            MongoServerSettings serverSettings = MongoServerSettings.FromClientSettings(clientSettings);
            var server = new MongoServer(serverSettings);

            var database = server.GetDatabase(databaseName);

            mongoCollection = database.GetCollection <BsonDocument>("TestCollection");
            mongoCollection.RemoveAll();
            mongoCollection.Insert(new BsonDocument {
                { "name", "Harry Potter" },
                { "gender", "male" },
                { "age", 8 },
            });
            mongoCollection.Insert(new BsonDocument {
                { "name", "Nancy Drew" },
                { "gender", "female" },
                { "age", 14 },
            });
            mongoCollection.Insert(new BsonDocument {
                { "name", "Adrian Mole" },
                { "gender", "male" },
                { "age", 13.75 },
            });
            mongoCollection.Insert(new BsonDocument {
                { "name", "Cookie Monster" },
                { "gender", "male" },
                { "age", 40 },
            });
        }
        public void TestFromClientSettings()
        {
            // set everything to non default values to test that all settings are converted
            var connectionString =
                "mongodb://*****:*****@somehost/?" +
                "connect=direct;connectTimeout=123;uuidRepresentation=pythonLegacy;ipv6=true;" +
                "maxIdleTime=124;maxLifeTime=125;maxPoolSize=126;minPoolSize=127;" +
                "readPreference=secondary;readPreferenceTags=a:1,b:2;readPreferenceTags=c:3,d:4;secondaryAcceptableLatency=128;socketTimeout=129;" +
                "ssl=true;sslVerifyCertificate=false;waitqueuesize=130;waitQueueTimeout=131;" +
                "w=1;fsync=true;journal=true;w=2;wtimeout=131";
            var builder        = new MongoUrlBuilder(connectionString);
            var url            = builder.ToMongoUrl();
            var clientSettings = MongoClientSettings.FromUrl(url);

            var settings = MongoServerSettings.FromClientSettings(clientSettings);

            Assert.AreEqual(url.ConnectionMode, settings.ConnectionMode);
            Assert.AreEqual(url.ConnectTimeout, settings.ConnectTimeout);
            Assert.AreEqual("{}", settings.CredentialsStore.ToString());
            Assert.AreEqual(url.DefaultCredentials, settings.DefaultCredentials);
            Assert.AreEqual(url.GuidRepresentation, settings.GuidRepresentation);
            Assert.AreEqual(url.IPv6, settings.IPv6);
            Assert.AreEqual(url.MaxConnectionIdleTime, settings.MaxConnectionIdleTime);
            Assert.AreEqual(url.MaxConnectionLifeTime, settings.MaxConnectionLifeTime);
            Assert.AreEqual(url.MaxConnectionPoolSize, settings.MaxConnectionPoolSize);
            Assert.AreEqual(url.MinConnectionPoolSize, settings.MinConnectionPoolSize);
            Assert.AreEqual(url.ReadPreference, settings.ReadPreference);
            Assert.AreEqual(url.ReplicaSetName, settings.ReplicaSetName);
            Assert.AreEqual(url.SecondaryAcceptableLatency, settings.SecondaryAcceptableLatency);
            Assert.IsTrue(url.Servers.SequenceEqual(settings.Servers));
            Assert.AreEqual(url.SocketTimeout, settings.SocketTimeout);
            Assert.AreEqual(url.UseSsl, settings.UseSsl);
            Assert.AreEqual(url.VerifySslCertificate, settings.VerifySslCertificate);
            Assert.AreEqual(url.ComputedWaitQueueSize, settings.WaitQueueSize);
            Assert.AreEqual(url.WaitQueueTimeout, settings.WaitQueueTimeout);
            Assert.AreEqual(url.GetWriteConcern(true), settings.WriteConcern);
        }
 public static ProfiledMongoServer Create(MongoClient client)
 {
     return(Create(MongoServerSettings.FromClientSettings(client.Settings)));
 }
Esempio n. 16
0
        public void SetUp()
        {
            fixtureComponentExecutor = new MongoDBMapReduceExecutor();
            fixtureDbReduceMongoDb   = fixtureComponentExecutor;
            fixtureDbReduceMongoDb.ConnectionString = "mongodb://*****:*****@"function Map() {					
						for (var i = 0; i < this.grades.length; i++) 
						{
							emit(this._id, this.grades[i].score);
						}			
				}"                ;

            reduceFunction = @"function Reduce(key, values) 
					{
						total = { count: 0, sum: 0 };
						total.count = values.length;
						for (var i = 0; i < values.length; i++)
						{
							total.sum += values[i];
						}
						return total;
					}"                    ;
        }