Ejemplo n.º 1
0
        protected override string GetConnectionStringWithLoginInfo(string userName, string password)
        {
            CassandraConnectionStringBuilder builder = new CassandraConnectionStringBuilder(ConnectionString);

            builder.Username = userName;
            builder.Password = password;

            return(builder.ToString());
        }
Ejemplo n.º 2
0
 protected override void TestFixtureSetUp()
 {
     base.TestFixtureSetUp();
     var cb = new CassandraConnectionStringBuilder
     {
         ContactPoints = new[] { TestCluster.InitialContactPoint }, 
         Port = 9042
     };
     _connection = new CqlConnection(cb.ToString());
 }
Ejemplo n.º 3
0
        public override void SetUp()
        {
            base.SetUp();
            var cb = new CassandraConnectionStringBuilder
            {
                ContactPoints = new[] { TestCluster.InitialContactPoint.Address.ToString() },
                Port          = 9042
            };

            _connection = new CqlConnection(cb.ToString());
        }
Ejemplo n.º 4
0
        protected override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            var cb = new CassandraConnectionStringBuilder
            {
                ContactPoints = new[] { TestCluster.InitialContactPoint },
                Port          = 9042
            };

            _connection = new CqlConnection(cb.ToString());
        }
Ejemplo n.º 5
0
 private void btnAdvanced_Click(object sender, EventArgs e)
 {
     using (AdvancedConnectionPropertiesForm form = new AdvancedConnectionPropertiesForm())
     {
         CassandraConnectionStringBuilder builder = new CassandraConnectionStringBuilder(ConnectionString);
         form.AdvancedProperties = builder;
         if (form.ShowDialog() == DialogResult.OK)
         {
             ConnectionString = form.AdvancedProperties.ToString();
         }
     }
 }
Ejemplo n.º 6
0
        protected override Cluster CreateCluster(CassandraConnectionStringBuilder connectionStringBuilder)
        {
            if (!_clusters.TryGetValue(_connectionStringBuilder.ClusterName, out Cluster cluster))
            {
                var builder = _connectionStringBuilder.MakeClusterBuilder();
                OnBuildingCluster(builder);
                cluster = builder.Build();
                _clusters.TryAdd(_connectionStringBuilder.ClusterName, cluster);
            }

            return(cluster);
        }
Ejemplo n.º 7
0
        public void SetFixture()
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
            CCMBridge.ReusableCCMCluster.Setup(2);
            CCMBridge.ReusableCCMCluster.Build(Cluster.Builder());
            session = CCMBridge.ReusableCCMCluster.Connect("tester");

            CassandraConnectionStringBuilder cb = new CassandraConnectionStringBuilder();

            cb.ContactPoints = new string[] { Options.Default.IP_PREFIX + "1" };
            cb.Port          = 9042;
            connection       = new CqlConnection(cb.ToString());
        }
Ejemplo n.º 8
0
        public override string GetConnectionId()
        {
            CassandraConnectionStringBuilder builder = new CassandraConnectionStringBuilder(ConnectionString);
            string info = "";

            try
            {
                info = builder.ClusterName;
            }
            catch
            {
            }
            return("Cassandra: " + info);
        }
Ejemplo n.º 9
0
        public override string[] GetTableNames()
        {
            CassandraConnectionStringBuilder builder = new CassandraConnectionStringBuilder(ConnectionString);

            Cluster cluster = Cluster.Builder().WithConnectionString(ConnectionString).Build();

            cluster.Connect(builder.DefaultKeyspace);

            List <string> tables = cluster.Metadata.GetTables(builder.DefaultKeyspace).ToList();

            cluster.Dispose();

            return(tables.ToArray());
        }
Ejemplo n.º 10
0
        internal string Generate()
        {
            var localConfiguration = JsonConvert.DeserializeObject <Utils.LocalSettings>(File.ReadAllText(_localConfigurationFile));
            var session            = Utils.CassandraUtils.OpenCassandraSessionFromLocalSettings(_localConfigurationFile);
            var cassandraConnectionStringBuilder = new CassandraConnectionStringBuilder();

            cassandraConnectionStringBuilder.ContactPoints   = localConfiguration.CassandraSettings.Hosts.Select(h => h.IpAddress).ToArray();
            cassandraConnectionStringBuilder.ClusterName     = session.Cluster.Metadata.ClusterName;
            cassandraConnectionStringBuilder.DefaultKeyspace = _keySpaceName;
            cassandraConnectionStringBuilder.Password        = localConfiguration.CassandraSettings.ClusterPassword;
            cassandraConnectionStringBuilder.Port            = (int)localConfiguration.CassandraSettings.Port;
            cassandraConnectionStringBuilder.Username        = localConfiguration.CassandraSettings.ClusterUser;
            return(cassandraConnectionStringBuilder.ToString());
        }
Ejemplo n.º 11
0
        protected override string GetConnectionString()
        {
            CassandraConnectionStringBuilder builder = new CassandraConnectionStringBuilder(FConnectionString);

            builder.ClusterName     = tbClusterName.Text;
            builder.DefaultKeyspace = tbKeyspace.Text;
            builder.ContactPoints   = new string[1] {
                tbContactPoint.Text
            };
            builder.Username = tbUserName.Text;
            builder.Password = tbPassword.Text;

            return(builder.ToString());
        }
Ejemplo n.º 12
0
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();

            var host = "127.0.0.1";

            if (TestUtils.UseRemoteCcm)
            {
                host = Options.Default.IP_PREFIX + "1";
            }
            var cb = new CassandraConnectionStringBuilder();

            cb.ContactPoints = new[] { host };
            cb.Port          = 9042;
            _connection      = new CqlConnection(cb.ToString());
        }
Ejemplo n.º 13
0
        public override void FillTableSchema(DataTable table, string selectCommand, CommandParameterCollection parameters)
        {
            CassandraConnectionStringBuilder builder = new CassandraConnectionStringBuilder(ConnectionString);

            using (DbConnection connection = GetConnection())
            {
                OpenConnection(connection);
                selectCommand = $"select * from {builder.DefaultKeyspace}.{table.TableName}";

                using (DbDataAdapter adapter = GetAdapter(selectCommand, connection, parameters))
                {
                    adapter.SelectCommand.CommandTimeout = CommandTimeout;
                    adapter.Fill(table);
                }
            }
        }
Ejemplo n.º 14
0
        public async Task <ICluster> GetClusterAsync()
        {
            if (cluster is null == false)
            {
                return(cluster);
            }

            Builder builder = initializer as Builder;

            if (builder is null)
            {
                builder = DataStax.Cluster.Builder();
                //  TODO: check inside the `cfg` (var cfg = builder.GetConfiguration();) if we already have connectionString specified

                string connectionString = options.ConnectionString;

                var hackyBuilder = new CassandraConnectionStringBuilder(connectionString);
                if (string.IsNullOrEmpty(hackyBuilder.DefaultKeyspace) == false)
                {
                    connectionString = connectionString.Replace(hackyBuilder.DefaultKeyspace, string.Empty);
                }
                baseConfigurationKeyspace = hackyBuilder.DefaultKeyspace;

                var connStrBuilder = new CassandraConnectionStringBuilder(connectionString);

                cluster?.Shutdown(30000);
                cluster = connStrBuilder
                          .ApplyToBuilder(builder)
                          .WithReconnectionPolicy(new ExponentialReconnectionPolicy(100, 100000))
                          .WithRetryPolicy(new NoHintedHandOffRetryPolicy())
                          .Build();

                await cluster.RefreshSchemaAsync().ConfigureAwait(false);
            }

            else
            {
                cluster = DataStax.Cluster.BuildFrom(initializer);
            }

            return(cluster);
        }
Ejemplo n.º 15
0
        protected override void SetConnectionString(string value)
        {
            FConnectionString = value;

            CassandraConnectionStringBuilder builder = new CassandraConnectionStringBuilder(value);

            tbClusterName.Text = builder.ClusterName;
            tbKeyspace.Text    = builder.DefaultKeyspace;
            try
            {
                tbContactPoint.Text = builder.ContactPoints[0];
            }
            catch
            {
                tbContactPoint.Text = "";
            }

            tbUserName.Text = builder.Username;
            tbPassword.Text = builder.Password;
        }
Ejemplo n.º 16
0
        public Cluster GetCluster()
        {
            if (cluster is null == false && optionsHasChanged == false)
            {
                return(cluster);
            }

            Builder builder = initializer as Builder;

            if (builder is null)
            {
                builder = Cluster.Builder();
                //  TODO: check inside the `cfg` (var cfg = builder.GetConfiguration();) if we already have connectionString specified

                string connectionString = options.ConnectionString;

                var hackyBuilder = new CassandraConnectionStringBuilder(connectionString);
                if (string.IsNullOrEmpty(hackyBuilder.DefaultKeyspace) == false)
                {
                    connectionString = connectionString.Replace(hackyBuilder.DefaultKeyspace, string.Empty);
                }
                baseConfigurationKeyspace = hackyBuilder.DefaultKeyspace;

                var connStrBuilder = new CassandraConnectionStringBuilder(connectionString);
                cluster = connStrBuilder
                          .ApplyToBuilder(builder)
                          .WithReconnectionPolicy(new ExponentialReconnectionPolicy(100, 100000))
                          .WithRetryPolicy(new NoHintedHandOffRetryPolicy())
                          .Build();
            }

            else
            {
                cluster = Cluster.BuildFrom(initializer);
            }

            optionsHasChanged = false;

            return(cluster);
        }
Ejemplo n.º 17
0
 public EFCassandraDbConnection(ICurrentDbContext currentDbContext, string connectionString, RelationalConnectionDependencies dependencies) : base(connectionString)
 {
     _currentDbContext          = currentDbContext;
     _cassandraOptionsExtension = CassandraOptionsExtension.Extract(dependencies.ContextOptions);
     _connectionStringBuilder   = new CassandraConnectionStringBuilder(connectionString);
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Initializes a <see cref="CqlConnection"/>.
 /// </summary>
 public CqlConnection()
 {
     _connectionStringBuilder = new CassandraConnectionStringBuilder();
 }
Ejemplo n.º 19
0
 /// <summary>
 /// Initializes a <see cref="CqlConnection"/>.
 /// </summary>
 /// <param name="connectionString">The connection string.</param>
 public CqlConnection(string connectionString)
 {
     _connectionStringBuilder = new CassandraConnectionStringBuilder(connectionString);
 }
Ejemplo n.º 20
0
 public CqlConnection(string connectionString, string clusterName)
 {
     _connectionStringBuilder = new CassandraConnectionStringBuilder(connectionString);
     _connectionStringBuilder.ClusterName = clusterName;
 }
Ejemplo n.º 21
0
 public CqlConnection(string connectionString)
 {
     _connectionStringBuilder = new CassandraConnectionStringBuilder(connectionString);
     _connectionStringBuilder.ClusterName = Guid.NewGuid().ToString();
 }
Ejemplo n.º 22
0
 /// <summary>
 ///  Configure the cluster by applying settings from ConnectionString. 
 /// </summary>
 /// <param name="connectionString"> the ConnectionString to use </param>
 /// 
 /// <returns>this Builder</returns>
 public Builder WithConnectionString(string connectionString)
 {
     var cnb = new CassandraConnectionStringBuilder(connectionString);
     return cnb.ApplyToBuilder(this);
 }
Ejemplo n.º 23
0
 public CqlConnection()
 {
     _connectionStringBuilder = new CassandraConnectionStringBuilder();
 }
Ejemplo n.º 24
0
        public void SetFixture()
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
            CCMBridge.ReusableCCMCluster.Setup(2);
            CCMBridge.ReusableCCMCluster.Build(Cluster.Builder());
            session = CCMBridge.ReusableCCMCluster.Connect("tester");

            CassandraConnectionStringBuilder cb = new CassandraConnectionStringBuilder();
            cb.ContactPoints = new string[] { Options.Default.IP_PREFIX + "1" };
            cb.Port = 9042;
            connection = new CqlConnection(cb.ToString());
        }
Ejemplo n.º 25
0
        /// <summary>
        /// SHelper method to ensure the image is setup correctly
        /// </summary>
        /// <returns>A Task for tracking completion.</returns>
        async Task StartDB()
        {
            Console.WriteLine("Starting fixture");

            Console.WriteLine("Downloading image");
            // Download image
            await _client.Images.CreateImageAsync(new ImagesCreateParameters()
            {
                FromImage = ImageName, Tag = ImageTag
            }, new AuthConfig(), new Progress <JSONMessage>()).ConfigureAwait(false);

            // Create the container
            var config = new Config()
            {
                Hostname = "localhost"
            };

            // Configure the ports to expose
            var hostConfig = new HostConfig
            {
                PortBindings = new Dictionary <string, IList <PortBinding> >
                {
                    { "9042/tcp", new List <PortBinding> {
                          new PortBinding {
                              HostIP   = "127.0.0.1",
                              HostPort = "9042"
                          }
                      } }
                },
                NetworkMode = "host"
            };

            Console.WriteLine("Creating container");
            // Create the container
            var response = await _client.Containers.CreateContainerAsync(new CreateContainerParameters(config)
            {
                Image      = ImageName + ":" + ImageTag,
                Name       = ContainerName,
                Tty        = false,
                HostConfig = hostConfig,
            }).ConfigureAwait(false);

            // Get the container object
            Console.WriteLine("Searching for container");
            var containers = await _client.Containers.ListContainersAsync(new ContainersListParameters()
            {
                All = true
            }).ConfigureAwait(false);

            var container = containers.First(c => c.ID == response.ID);

            Console.WriteLine("Checking state {0}", container.State);
            // Start the container is needed
            if (container.State != "running")
            {
                Console.WriteLine("Starting container");
                var started = await _client.Containers.StartContainerAsync(container.ID, new ContainerStartParameters()).ConfigureAwait(false);

                if (!started)
                {
                    throw new InvalidOperationException("Failed to start the container");
                }
            }

            // Wait for the cassandra database to be available
            Console.Write("Waiting for Cassandra to startup");
            var cluster = new CassandraConnectionStringBuilder
            {
                Port          = 9042,
                ContactPoints = new string[] { "localhost" }
            }.MakeClusterBuilder().Build();

            // Wait for Cassandra to start (up to 50 seconds, more is silly)
            for (var i = 0; i < 25; ++i)
            {
                try
                {
                    using (var session = await cluster.ConnectAsync().ConfigureAwait(false))
                        break;
                }
                catch (Exception)
                {
                    Console.Write(".");
                    await Task.Delay(2000).ConfigureAwait(false);
                }

                if (i == 24)
                {
                    throw new InvalidOperationException("Failed to start Cassandra!");
                }
            }

            Console.WriteLine("Ready");
        }
Ejemplo n.º 26
0
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();

            var host = "127.0.0.1";
            if (TestUtils.UseRemoteCcm)
            {
                host = Options.Default.IP_PREFIX + "1";
            }
            var cb = new CassandraConnectionStringBuilder();
            cb.ContactPoints = new[] { host};
            cb.Port = 9042;
            _connection = new CqlConnection(cb.ToString());
        }
Ejemplo n.º 27
0
 public CqlConnection(string connectionString)
 {
     _connectionStringBuilder = new CassandraConnectionStringBuilder(connectionString);
 }
Ejemplo n.º 28
0
        /// <summary>
        /// Creates a <see cref="Cluster"/>. By default <see cref="Cluster"/>s are created and cached
        /// by cluster name specified in connection string.
        /// 
        /// To be overridden in child classes to change the default creation and caching behavior.
        /// </summary>
        /// <param name="connectionStringBuilder">The <see cref="CassandraConnectionStringBuilder"/>.</param>
        /// <returns></returns>
        protected virtual Cluster CreateCluster(CassandraConnectionStringBuilder connectionStringBuilder)
        {
            Cluster cluster;
            if (!_clusters.TryGetValue(_connectionStringBuilder.ClusterName, out cluster))
            {
                var builder = _connectionStringBuilder.MakeClusterBuilder();
                OnBuildingCluster(builder);
                cluster = builder.Build();
                _clusters.TryAdd(_connectionStringBuilder.ClusterName, cluster);
            }

            return cluster;
        }