private void MaybeCreateInstanceOnEmulator(string projectId) { if (SpannerClientCreationOptions.UsesEmulator) { // Try to create an instance on the emulator and ignore any AlreadyExists error. var adminClientBuilder = new InstanceAdminClientBuilder { EmulatorDetection = EmulatorDetection.EmulatorOnly }; var instanceAdminClient = adminClientBuilder.Build(); var instanceName = InstanceName.FromProjectInstance(projectId, SpannerInstance); try { instanceAdminClient.CreateInstance(new CreateInstanceRequest { InstanceId = instanceName.InstanceId, ParentAsProjectName = ProjectName.FromProject(projectId), Instance = new Instance { InstanceName = instanceName, ConfigAsInstanceConfigName = new InstanceConfigName(projectId, "emulator-config"), DisplayName = "Test Instance", NodeCount = 1, }, }).PollUntilCompleted(); } catch (RpcException e) when(e.StatusCode == StatusCode.AlreadyExists) { // Ignore } } }
private static async Task MaybeCreateInstanceOnEmulatorAsync(string projectId, string instanceId) { // Try to create an instance on the emulator and ignore any AlreadyExists error. var adminClientBuilder = new InstanceAdminClientBuilder { EmulatorDetection = EmulatorDetection.EmulatorOnly }; var instanceAdminClient = await adminClientBuilder.BuildAsync(); var instanceName = InstanceName.FromProjectInstance(projectId, instanceId); try { await instanceAdminClient.CreateInstance(new CreateInstanceRequest { InstanceId = instanceName.InstanceId, ParentAsProjectName = ProjectName.FromProject(projectId), Instance = new Instance { InstanceName = instanceName, ConfigAsInstanceConfigName = new InstanceConfigName(projectId, "emulator-config"), DisplayName = "Sample Instance", NodeCount = 1, }, }).PollUntilCompletedAsync(); } catch (RpcException e) when(e.StatusCode == StatusCode.AlreadyExists) { // Ignore } }
public void NoHeaderOnCreateInstanceIfEmptyProjectName() { var invoker = new FakeCallInvoker(); var client = new InstanceAdminClientBuilder { CallInvoker = invoker }.Build(); client.CreateInstance(new CreateInstanceRequest()); Assert.Null(invoker.Metadata.FirstOrDefault(e => e.Key == ResourcePrefixHeader)); }
public void NoHeaderOnGetInstanceConfigIfEmptyInstanceConfigName() { var invoker = new FakeCallInvoker(); var client = new InstanceAdminClientBuilder { CallInvoker = invoker }.Build(); client.GetInstanceConfig(new GetInstanceConfigRequest()); Assert.Null(invoker.Metadata.FirstOrDefault(e => e.Key == ResourcePrefixHeader)); }
public void NoHeaderOnGetInstanceIfInvalidInstanceName() { var invoker = new FakeCallInvoker(); var client = new InstanceAdminClientBuilder { CallInvoker = invoker }.Build(); client.GetInstance(new GetInstanceRequest { Name = "projects/instances" }); Assert.Null(invoker.Metadata.FirstOrDefault(e => e.Key == ResourcePrefixHeader)); }
public void SetsHeaderOnDeleteInstance() { var invoker = new FakeCallInvoker(); var client = new InstanceAdminClientBuilder { CallInvoker = invoker }.Build(); client.DeleteInstance(new DeleteInstanceRequest { Name = SampleInstanceName }); Metadata.Entry entry = Assert.Single(invoker.Metadata, e => e.Key == ResourcePrefixHeader); Assert.Equal(SampleInstanceName, entry.Value); }
public void SetsHeaderOnListInstances() { var invoker = new FakeCallInvoker(); var client = new InstanceAdminClientBuilder { CallInvoker = invoker }.Build(); client.ListInstances(new ListInstancesRequest { Parent = SampleProjectName }).AsRawResponses().First(); Metadata.Entry entry = Assert.Single(invoker.Metadata, e => e.Key == ResourcePrefixHeader); Assert.Equal(SampleProjectName, entry.Value); }