예제 #1
0
 public ClusterPeersV2SimulacronTests() : base(
         options: new SimulacronOptions {
     Nodes = "3"
 },
         simulacronManager: SimulacronManager.GetForPeersTests())
 {
 }
예제 #2
0
        public static async Task <SimulacronCluster> CreateNewAsync(SimulacronManager simulacronManager, SimulacronOptions options)
        {
            var path = string.Format(CreateClusterPathFormat, options.Nodes, options.GetCassandraVersion(),
                                     options.GetDseVersion(), options.Name, options.ActivityLog, options.NumberOfTokens);
            var data = await Post(simulacronManager, path, null).ConfigureAwait(false);

            return(CreateFromData(simulacronManager, data));
        }
        protected static async Task DeleteAsync(SimulacronManager simulacronManager, string url)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = simulacronManager.BaseAddress;
                var response = await client.DeleteAsync(url).ConfigureAwait(false);

                await SimulacronBase.EnsureSuccessStatusCode(response).ConfigureAwait(false);
            }
        }
 protected SimulacronTest(
     bool shared = false,
     SimulacronOptions options = null,
     bool connect    = true,
     string keyspace = null,
     SimulacronManager simulacronManager = null)
 {
     _shared            = shared;
     _options           = options ?? new SimulacronOptions();
     _connect           = connect;
     _keyspace          = keyspace;
     _simulacronManager = simulacronManager;
 }
        protected static async Task <T> GetAsync <T>(SimulacronManager simulacronManager, string url)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = simulacronManager.BaseAddress;
                var response = await client.GetAsync(url).ConfigureAwait(false);

                await SimulacronBase.EnsureSuccessStatusCode(response).ConfigureAwait(false);

                var dataStr = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                return(JsonConvert.DeserializeObject <T>(dataStr));
            }
        }
        protected static async Task <JObject> Post(SimulacronManager simulacronManager, string url, object body)
        {
            var bodyStr = SimulacronBase.GetJsonFromObject(body);
            var content = new StringContent(bodyStr, Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                client.BaseAddress = simulacronManager.BaseAddress;
                var response = await client.PostAsync(url, content).ConfigureAwait(false);

                await SimulacronBase.EnsureSuccessStatusCode(response).ConfigureAwait(false);

                var dataStr = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                return(JObject.Parse(dataStr));
            }
        }
예제 #7
0
        private static SimulacronCluster CreateFromData(SimulacronManager simulacronManager, dynamic data)
        {
            var cluster = new SimulacronCluster(data["id"].ToString(), simulacronManager)
            {
                Data        = data,
                DataCenters = new List <SimulacronDataCenter>()
            };
            var dcs = (JArray)cluster.Data["data_centers"];

            foreach (var dc in dcs)
            {
                var dataCenter = new SimulacronDataCenter(cluster.Id + "/" + dc["id"], simulacronManager);
                cluster.DataCenters.Add(dataCenter);
                dataCenter.Nodes = new List <SimulacronNode>();
                var nodes = (JArray)dc["nodes"];
                foreach (var nodeJObject in nodes)
                {
                    var node = new SimulacronNode(dataCenter.Id + "/" + nodeJObject["id"], simulacronManager);
                    dataCenter.Nodes.Add(node);
                    node.ContactPoint = nodeJObject["address"].ToString();
                }
            }
            return(cluster);
        }
예제 #8
0
 public SimulacronNode(string id, SimulacronManager simulacronManager) : base(id, simulacronManager)
 {
 }
예제 #9
0
 private SimulacronCluster(string id, SimulacronManager simulacronManager) : base(id, simulacronManager)
 {
 }
예제 #10
0
        /// <summary>
        /// Creates a new cluster with POST body parameters.
        /// </summary>
        public static SimulacronCluster CreateNewWithPostBody(SimulacronManager simulacronManager, dynamic body)
        {
            var data = TaskHelper.WaitToComplete(Post(simulacronManager, CreateClusterPath, body));

            return(CreateFromData(simulacronManager, data));
        }
예제 #11
0
 public static SimulacronCluster CreateNew(SimulacronManager simulacronManager, SimulacronOptions options)
 {
     return(TaskHelper.WaitToComplete(CreateNewAsync(simulacronManager, options)));
 }
 public SimulacronDataCenter(string id, SimulacronManager simulacronManager) : base(id, simulacronManager)
 {
 }
예제 #13
0
 protected SimulacronBase(string id, SimulacronManager simulacronManager)
 {
     _simulacronManager = simulacronManager;
     Id = id;
 }
예제 #14
0
 protected static Task <JObject> PutAsync(SimulacronManager simulacronManager, string url, object body)
 {
     return(simulacronManager.PutAsync(url, body));
 }
예제 #15
0
 public SimulacronCluster(string id, SimulacronManager simulacronManager) : base(id, simulacronManager)
 {
 }
예제 #16
0
 protected static Task DeleteAsync(SimulacronManager simulacronManager, string url)
 {
     return(simulacronManager.DeleteAsync(url));
 }
예제 #17
0
 protected static Task <T> GetAsync <T>(SimulacronManager simulacronManager, string url)
 {
     return(simulacronManager.GetAsync <T>(url));
 }