public async Task When_Disposing_Bucket_In_Parallel_Does_Not_Dispose_Referenced_Bucket() { var clusterController = new ClusterController(_clientConfig); var cluster1 = new Cluster(_clientConfig, clusterController); var cluster2 = new Cluster(_clientConfig, clusterController); IBucket bucket1 = null; IBucket bucket2 = null; var t1 = new Thread(() => { Thread.Sleep(100); // Give thread2 time to open the bucket using (bucket1 = cluster1.OpenBucket("default", "")) { } }); t1.Start(); using (bucket2 = cluster2.OpenBucket("default", "")) { Thread.Sleep(100); // Sleep while thread1 disposes the bucket await bucket2.ExistsAsync("Key"); // Used to throw ObjectDisposedException } t1.Join(); Assert.AreSame(bucket1, bucket2); }
public void When_Config_Contains_HOST_UpdateBoostrapList_Succeeds() { var json = File.ReadAllText(@"Data\\Configuration\\bucketconfig-host-placeholder.json"); var bytes = Encoding.UTF8.GetBytes(json); var totalBytes = new byte[24 + bytes.Length]; bytes.CopyTo(totalBytes, 24); var op = new Config(new AutoByteConverter(), _endPoint) { Data = new MemoryStream(totalBytes) }; op.Header = new OperationHeader { BodyLength = bytes.Length }; var bucketConfig = op.GetResult().Value; var controller = new ClusterController(new ClientConfiguration()); var updateBootstrapList = controller.GetType().GetMethod("UpdateBootstrapList", BindingFlags.NonPublic | BindingFlags.Instance); updateBootstrapList.Invoke(controller, new [] { bucketConfig }); }
//On collision with another ball void OnTriggerEnter(Collider other) { //Adds colliding ball to neighbour list. Second condition is to prevent blackBall from having grey neighbours if (other.tag == "BigBall" && !(gameObject.name == "BlackBall" && other.gameObject.renderer.material.color == Color.grey)) { neighbours.Add(other.gameObject); } //If other target is smallBall ->destroy the smallBall if (other.tag == "SmallBall" && !other.transform.IsChildOf(transform) && this.tag != "MagazinedBall" && this.tag != "Floater") { //Rotate cluster according to impact Vector3 deltaVec = other.transform.position - blackBall.transform.position; Vector3 rotateAxis = Vector3.Cross(deltaVec, direction); Vector3 sumVec = deltaVec + direction; Vector3 ortogVec = Vector3.Cross(rotateAxis, deltaVec); float rotSpeed = Vector3.Dot(ortogVec, sumVec); ClusterController clustCon = Camera.main.GetComponent <ClusterController>(); clustCon.setVectors(rotSpeed * 30, rotateAxis); //Destroy the projectile's smallball GameObject smallBall = other.gameObject; GameObject projectile = smallBall.transform.parent.gameObject; ProjectileController projectileScript = projectile.GetComponent <ProjectileController>(); projectileScript.collided = true; Destroy(smallBall); } if (other.tag == "Perimeter") { insidePerimeter = true; } }
public void CreateBucket_Throws_BootstrapException(string bucketType) { var mockConnectionPool = new Mock <IConnectionPool>(); mockConnectionPool.Setup(x => x.EndPoint) .Returns(new IPEndPoint(IPAddress.Any, 0)); var mockSaslMech = new Mock <ISaslMechanism>(); var mockIOService = new Mock <IIOService>(); mockIOService.Setup(x => x.ConnectionPool) .Returns(mockConnectionPool.Object); mockIOService.Setup(x => x.SupportsEnhancedAuthentication) .Returns(false); mockIOService.Setup(x => x.Execute(It.IsAny <IOperation>())) .Returns(new OperationResult { Success = true }); mockIOService.Setup(x => x.Execute(It.IsAny <IOperation <BucketConfig> >())) .Returns(new OperationResult <BucketConfig> { Success = false, Status = ResponseStatus.UnknownCommand }); var config = new ClientConfiguration(); var provider = new CarrierPublicationProvider( config, pool => mockIOService.Object, (c, e) => mockConnectionPool.Object, (ac, b, c, d) => mockSaslMech.Object, new DefaultConverter(), new DefaultTranscoder() ); var controller = new ClusterController( new ClientConfiguration { EnableDeadServiceUriPing = false, ConfigPollEnabled = false }, p => mockIOService.Object, (c, i) => mockConnectionPool.Object, (u, p, cp, t) => mockSaslMech.Object, new DefaultConverter(), new DefaultTranscoder()); controller.ConfigProviders.Clear(); controller.ConfigProviders.Add(provider); try { controller.CreateBucket("default"); Assert.Fail("Test failed if CreateBucket does not throw exception."); } catch (Exception e) { Assert.IsInstanceOf <BootstrapException>(e); Assert.IsTrue(e.Message.StartsWith("Could not bootstrap - check inner exceptions for details.")); Assert.IsInstanceOf <ConfigException>(e.InnerException); } }
public ClusterEdit(int id) { _clusterid = id; InitializeComponent(); Cluster cluster = new Cluster(); ClusterController clusterController = new ClusterController(); cluster = clusterController.SearchForId(id); ClusterName.Text = cluster.Name; ClusterManufacturer.Text = cluster.Manufacturer; }
private void Edit_Click(object sender, RoutedEventArgs e) { Cluster cluster = new Cluster(); ClusterController clusterController = new ClusterController(); cluster.Name = ClusterName.Text; cluster.Manufacturer = ClusterManufacturer.Text; clusterController.Edit(cluster); MessageBox.Show("Cluster editado com sucesso!"); }
private void Delete_Click(object sender, RoutedEventArgs e) { ClusterController clusterController = new ClusterController(); if (_clusterid.HasValue) { clusterController.Delete(_clusterid.Value); } else { MessageBox.Show("O valor do ID do cluster está inválido para deletar."); } }
private void Button_Click(object sender, RoutedEventArgs e) { Cluster cluster = new Cluster(); ClusterController clusterController = new ClusterController(); cluster.Name = ClusterName.Text; cluster.Manufacturer = ClusterManufacturer.Text; cluster.DatacenterID = (ComboBoxDatacenter.SelectedItem as Datacenter).DatacenterID; clusterController.Add(cluster); MessageBox.Show("Cluster criado com sucesso!"); }
public static void lost(GameObject causeOfLoss) { Debug.Log("You just lost"); hasLost = true; Camera.main.audio.clip = Resources.Load("lost") as AudioClip; Camera.main.audio.PlayOneShot(Camera.main.audio.clip); stopBalls(); //Make cluster preview rotate ClusterController clustCon = Camera.main.GetComponent <ClusterController>(); clustCon.previewSpin(0.0f, 30); //AudioSource[] audios = Camera.main.GetComponents<AudioSource>(); //audios[1].Play(); }
public async Task get_all_clusters_returns_expected_status_code() { var serviceProviderBuilder = new ServiceProviderBuilder(); var serviceProvider = serviceProviderBuilder .WithServicesFromStartup() .WithInMemoryDb() .OverwriteService(typeof(IRestClient), new StubKafkaRestClient()) .Build(); var clusterController = new ClusterController(serviceProvider.GetService <IClusterRepository>()); var response = await clusterController.GetAll(); var okResult = response as ObjectResult; Assert.Equal(HttpStatusCode.OK.GetHashCode(), okResult.StatusCode); }
public ClusterMonitor([NotNull] ClusterController clusterController) { if (clusterController == null) { throw new ArgumentNullException("clusterController"); } // Use Couchbase HTTP client even though we don't need authentication // So that we get our custom server certificate validation if SSL is being used _httpClient = new CouchbaseHttpClient("any-bucket", "") { Timeout = PingTimeout }; _clusterController = clusterController; _queryUriTester = new QueryUriTester(_httpClient); _searchUriTester = new SearchUriTester(_httpClient); }
public async Task get_all_clusters_returns_expected_body_when_no_clusters_available() { var serviceProviderBuilder = new ServiceProviderBuilder(); var serviceProvider = serviceProviderBuilder .WithServicesFromStartup() .WithInMemoryDb() .OverwriteService(typeof(IRestClient), new StubKafkaRestClient()) .Build(); var clusterController = new ClusterController(serviceProvider.GetService <IClusterRepository>()); var response = await clusterController.GetAll(); var okResult = response as OkObjectResult; Assert.Equal( expected: "[]", actual: JsonSerializer.Serialize(okResult.Value) ); }
public void SetUp() { var configuration = new ClientConfiguration(); var clusterManager = new ClusterController(configuration, (p) => { var operation = new FakeOperation(new ManualByteConverter()); operation.SetOperationResult(new FakeOperationResult(operation) { Message = "nmv", Cas = 231, Status = ResponseStatus.VBucketBelongsToAnotherServer, Success = false, Value = string.Empty }); return(new FakeIOStrategy <FakeOperation>(operation)); }); _cluster = new Cluster(configuration, clusterManager); }
public void When_HttpConfigProvider_Used_ClusterInfo_Accessible() { var clusterManager = new ClusterController(_clientConfig); //force use of StreamingHttpProvider by removing other providers clusterManager.ConfigProviders.Remove( clusterManager.ConfigProviders.Find(provider => !(provider is HttpStreamingProvider))); var cluster = new Cluster(_clientConfig, clusterManager); var bucket = cluster.OpenBucket("default", ""); var info = cluster.Info; cluster.CloseBucket(bucket); cluster.Dispose(); Assert.NotNull(info); Assert.NotNull(info.Pools()); Assert.NotNull(info.BucketConfigs()); Assert.Greater(info.BucketConfigs().Count, 0); Assert.NotNull(info.BucketConfigs().ElementAt(0)); }
/// <summary> /// Updates the configuration if the <see cref="IOperation"/> returns a <see cref="IBucketConfig"/> /// </summary> /// <param name="operation">The <see cref="IOperation"/> with the <see cref="IBucketConfig"/> to check for.</param> /// <returns></returns> public bool CheckForConfigUpdates(IOperation operation) { var requiresRetry = false; try { var bucketConfig = operation.GetConfig(); if (bucketConfig != null) { Log.Info(m => m("New config found {0}|{1}", bucketConfig.Rev, ConfigInfo.BucketConfig.Rev)); ClusterController.NotifyConfigPublished(bucketConfig); requiresRetry = true; } } catch (Exception e) { Log.Error(e); } return(requiresRetry); }
public void When_Same_Bucket_Requested_Twice_In_Parallel_Only_One_Bootstrap_Is_Done() { var clusterController = new ClusterController(_clientConfig); var cluster1 = new Cluster(_clientConfig, clusterController); var cluster2 = new Cluster(_clientConfig, clusterController); object bucket1 = null; object bucket2 = null; var t1 = new Thread(() => bucket1 = cluster1.OpenBucket("default", "")); var t2 = new Thread(() => bucket2 = cluster2.OpenBucket("default", "")); t1.Start(); t2.Start(); t1.Join(); t2.Join(); Assert.IsNotNull(bucket1); Assert.AreSame(bucket1, bucket2); }
/// <summary> /// Updates the configuration if the <see cref="IOperation"/> returns a <see cref="IBucketConfig"/> /// </summary> /// <param name="operation">The <see cref="IOperation"/> with the <see cref="IBucketConfig"/> to check for.</param> /// <returns></returns> public bool CheckForConfigUpdates(IOperation operation) { var requiresRetry = false; try { var bucketConfig = operation.GetConfig(ClusterController.ServerConfigTranscoder); if (bucketConfig != null) { Log.Info("New config found {0}|{1}", bucketConfig.Rev, ConfigInfo.BucketConfig.Rev); Log.Debug("{0}", JsonConvert.SerializeObject(bucketConfig)); ClusterController.NotifyConfigPublished(bucketConfig); requiresRetry = true; } } catch (Exception e) { Log.Error(e); } return(requiresRetry); }
public async Task get_all_clusters_returns_expected_body_with_clusters_available() { var serviceProviderBuilder = new ServiceProviderBuilder(); var serviceProvider = serviceProviderBuilder .WithServicesFromStartup() .WithInMemoryDb() .OverwriteService(typeof(IRestClient), new StubKafkaRestClient()) .Build(); var clusterController = new ClusterController(serviceProvider.GetService <IClusterRepository>()); var clusterRepository = serviceProvider.GetService <IClusterRepository>(); await clusterRepository.AddAsync("Dummy test cluster #1", "lkc-9999", true, Guid.Parse("1d569b07-75b4-4e2f-b067-6583401a09c8")); await clusterRepository.AddAsync("Dummy test cluster #2", "lkc-9998", true, Guid.Parse("b8c32078-9eec-4809-8f4e-5efbe509b78f")); var response = await clusterController.GetAll(); var okResult = response as OkObjectResult; Assert.Equal( expected: "[{\"Name\":\"Dummy test cluster #1\",\"Description\":\"\",\"Enabled\":true,\"ClusterId\":\"lkc-9999\",\"DomainEvents\":[],\"Id\":\"1d569b07-75b4-4e2f-b067-6583401a09c8\"},{\"Name\":\"Dummy test cluster #2\",\"Description\":\"\",\"Enabled\":true,\"ClusterId\":\"lkc-9998\",\"DomainEvents\":[],\"Id\":\"b8c32078-9eec-4809-8f4e-5efbe509b78f\"}]", actual: JsonSerializer.Serialize(okResult.Value) ); }
private void setUpLevel() { Debug.Log("Setting up level"); GameMaster.levelComplete = false; //Setting power ups upgrades["BombFrequency"] = upgrades["BombFrequencyBase"] - (PlayerPrefs.GetInt("BombFrequencyLevel")); upgrades["BombSize"] = upgrades["BombSizeBase"] + (PlayerPrefs.GetInt("BombSizeLevel")); upgrades["FreeView"] = upgrades["FreeViewBase"] + (PlayerPrefs.GetInt("FreeViewLevel")); GameObject playMaster = GameObject.Find("PlayLevelMaster"); GameGUI gameGUIScript = playMaster.GetComponent <GameGUI>(); gameGUIScript.initiateBomb(); getLevelInfo(); PerimeterController.missLeft = GameMaster.missToShrinkPer; ColorManager.setColors(nColors); Camera.main.audio.clip = Resources.Load("DST-Destiny") as AudioClip; Camera.main.audio.PlayOneShot(Camera.main.audio.clip); Camera.main.audio.volume = 0.02f; //Set background GameObject backGround = GameObject.Find("BackGroundPlane"); backGround.renderer.material.mainTexture = backGroundTex; //Remove existing objects GameObject[] clusterBalls = GameObject.FindGameObjectsWithTag("BigBall"); foreach (GameObject go in clusterBalls) { Destroy(go); } GameObject[] magazinedBalls = GameObject.FindGameObjectsWithTag("MagazinedBall"); foreach (GameObject go in magazinedBalls) { Destroy(go); } //if(GameMaster.world == "space" && GameMaster.levelNr==GameMaster.nLevelsInWorld+1) GameMaster.hasWon = true; //else{ GameObject perimeter = GameObject.FindWithTag("Perimeter"); if (perimeter != null) { Destroy(perimeter); } GameObject playLevelMaster = GameObject.FindWithTag("PlayLevelMaster"); if (playLevelMaster != null) { SpawnBalls spawnBallsScript = playLevelMaster.GetComponent <SpawnBalls>(); spawnBallsScript.initiateLevel(); } //Make cluster preview rotate ClusterController clustCon = Camera.main.GetComponent <ClusterController>(); clustCon.previewSpin(4.0f, 360); gameGUIScript.popUpText("Level " + levelNr, 3.5f); Invoke("setLevelReady", 4.5f); //Invoke("setLevelReady",0.5f); //} }
public void StartMonitoring() { Task.Run(async() => { Thread.CurrentThread.Name = "CM"; var index = 0; while (!_cts.IsCancellationRequested) { try { _log.Debug("Waiting to check configs..."); // Test at every interval. Wait before first test. await Task.Delay(TimeSpan.FromMilliseconds(Configuration.ConfigPollInterval), _cts.Token); _log.Debug("Checking configs..."); var now = DateTime.Now; var lastCheckedPlus = ClusterController. LastConfigCheckedTime. AddMilliseconds(Configuration.ConfigPollCheckFloor); if (lastCheckedPlus > now) { _log.Info("By-passing config checks because {0} > {1}", lastCheckedPlus, now); continue; } foreach (var provider in ClusterController.ConfigProviders.OfType <CarrierPublicationProvider>()) { var contexts = provider.ConfigContexts; foreach (var ctx in contexts) { var servers = ctx.Servers.Where(x => x.IsDataNode && !x.IsDown).ToList(); // ReSharper disable once PossibleMultipleEnumeration if (!servers.Any()) { _log.Info("No servers with Data service available for bucket {0}", ctx.BucketName); continue; } index = (index + 1) % servers.Count; var server = servers[index]; _log.Info("Using index {0} - server {1}", index, server); var operation = new Config( ClusterController.Transcoder, Configuration.DefaultOperationLifespan, server.EndPoint); IOperationResult <BucketConfig> configResult; using (Configuration.Tracer.StartParentSpan(operation, addIgnoreTag: true)) { configResult = server.Send(operation); } if (configResult.Success && configResult.Status == ResponseStatus.Success) { var config = configResult.Value; if (config != null) { _log.Info("Checking config with revision #{0}", config.Rev); ClusterController.EnqueueConfigForProcessing(config); break; } } } } } catch (OperationCanceledException) { /*ignore*/ break; } catch (Exception ex) { _log.Info("Unhandled error in ConfigMonitor, ignoring", ex); } finally { ClusterController.LastConfigCheckedTime = DateTime.Now; } } }, _cts.Token).ContinueOnAnyContext(); }
private void ClusterList_Loaded(object sender, RoutedEventArgs e) { ClusterController clusterController = new ClusterController(); ClusterList.ItemsSource = clusterController.ListAll(); }