/// <summary>Snippet for ListTables</summary>
        public void ListTables()
        {
            // Snippet: ListTables(InstanceName,string,int?,CallSettings)
            // Create client
            BigtableTableAdminClient bigtableTableAdminClient = BigtableTableAdminClient.Create();
            // Initialize request argument(s)
            InstanceName parent = new InstanceName("[PROJECT]", "[INSTANCE]");
            // Make the request
            PagedEnumerable <ListTablesResponse, Table> response =
                bigtableTableAdminClient.ListTables(parent);

            // Iterate over all response items, lazily performing RPCs as required
            foreach (Table item in response)
            {
                // Do something with each item
                Console.WriteLine(item);
            }

            // Or iterate over pages (of server-defined size), performing one RPC per page
            foreach (ListTablesResponse page in response.AsRawResponses())
            {
                // Do something with each page of items
                Console.WriteLine("A page of results:");
                foreach (Table item in page)
                {
                    Console.WriteLine(item);
                }
            }

            // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
            int          pageSize   = 10;
            Page <Table> singlePage = response.ReadPage(pageSize);

            // Do something with the page of items
            Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
            foreach (Table item in singlePage)
            {
                Console.WriteLine(item);
            }
            // Store the pageToken, for when the next page is required.
            string nextPageToken = singlePage.NextPageToken;
            // End snippet
        }
    public async Task <Backup> CreateBackupWithEncryptionKeyAsync(string projectId, string instanceId, string databaseId, string backupId, CryptoKeyName kmsKeyName)
    {
        // Create a DatabaseAdminClient instance.
        DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create();

        // Create the CreateBackupRequest with encryption configuration.
        CreateBackupRequest request = new CreateBackupRequest
        {
            ParentAsInstanceName = InstanceName.FromProjectInstance(projectId, instanceId),
            BackupId             = backupId,
            Backup = new Backup
            {
                DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase(projectId, instanceId, databaseId),
                ExpireTime             = DateTime.UtcNow.AddDays(14).ToTimestamp(),
            },
            EncryptionConfig = new CreateBackupEncryptionConfig
            {
                EncryptionType            = CreateBackupEncryptionConfig.Types.EncryptionType.CustomerManagedEncryption,
                KmsKeyNameAsCryptoKeyName = kmsKeyName,
            },
        };
        // Execute the CreateBackup request.
        var operation = await databaseAdminClient.CreateBackupAsync(request);

        Console.WriteLine("Waiting for the operation to finish.");

        // Poll until the returned long-running operation is complete.
        var completedResponse = await operation.PollUntilCompletedAsync();

        if (completedResponse.IsFaulted)
        {
            Console.WriteLine($"Error while creating backup: {completedResponse.Exception}");
            throw completedResponse.Exception;
        }

        var backup = completedResponse.Result;

        Console.WriteLine($"Backup {backup.Name} of size {backup.SizeBytes} bytes " +
                          $"was created at {backup.CreateTime} " +
                          $"using encryption key {kmsKeyName}");
        return(backup);
    }
Example #3
0
        public void DeleteInstance()
        {
            Mock <InstanceAdmin.InstanceAdminClient> mockGrpcClient = new Mock <InstanceAdmin.InstanceAdminClient>(MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient())
            .Returns(new Mock <Operations.OperationsClient>().Object);
            DeleteInstanceRequest expectedRequest = new DeleteInstanceRequest
            {
                InstanceName = new InstanceName("[PROJECT]", "[INSTANCE]"),
            };
            Empty expectedResponse = new Empty();

            mockGrpcClient.Setup(x => x.DeleteInstance(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(expectedResponse);
            InstanceAdminClient client = new InstanceAdminClientImpl(mockGrpcClient.Object, null);
            InstanceName        name   = new InstanceName("[PROJECT]", "[INSTANCE]");

            client.DeleteInstance(name);
            mockGrpcClient.VerifyAll();
        }
Example #4
0
        public async Task DeleteInstanceAsync()
        {
            Mock <InstanceAdmin.InstanceAdminClient> mockGrpcClient = new Mock <InstanceAdmin.InstanceAdminClient>(MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient())
            .Returns(new Mock <Operations.OperationsClient>().Object);
            DeleteInstanceRequest expectedRequest = new DeleteInstanceRequest
            {
                InstanceName = new InstanceName("[PROJECT]", "[INSTANCE]"),
            };
            Empty expectedResponse = new Empty();

            mockGrpcClient.Setup(x => x.DeleteInstanceAsync(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(new Grpc.Core.AsyncUnaryCall <Empty>(Task.FromResult(expectedResponse), null, null, null, null));
            InstanceAdminClient client = new InstanceAdminClientImpl(mockGrpcClient.Object, null);
            InstanceName        name   = new InstanceName("[PROJECT]", "[INSTANCE]");
            await client.DeleteInstanceAsync(name);

            mockGrpcClient.VerifyAll();
        }
Example #5
0
        public BigtableFixtureBase()
        {
            GrpcInfo.EnableSubchannelCounting();

            string emulatorHost = Environment.GetEnvironmentVariable(EmulatorEnvironmentVariable);

            string projectId;
            string instanceId;

            if (!string.IsNullOrEmpty(emulatorHost))
            {
                projectId           = "emulator-test-project";
                EmulatorCallInvoker = new GcpCallInvoker(
                    emulatorHost,
                    ChannelCredentials.Insecure,
                    GrpcCoreAdapter.Instance.ConvertOptions(BigtableServiceApiSettings.GetDefault().CreateChannelOptions()));

                instanceId = "doesnt-matter";
            }
            else
            {
                projectId = Environment.GetEnvironmentVariable(TestProjectEnvironmentVariable);
                if (string.IsNullOrEmpty(projectId))
                {
                    throw new InvalidOperationException(
                              $"Please set either the {EmulatorEnvironmentVariable} or {TestProjectEnvironmentVariable} environment variable before running tests");
                }

                instanceId = Environment.GetEnvironmentVariable(TestInstanceEnvironmentVariable);
                if (string.IsNullOrEmpty(instanceId))
                {
                    throw new InvalidOperationException(
                              $"Please set the {TestInstanceEnvironmentVariable} environment variable before running non-emulator tests.");
                }
            }

            ProjectName  = new ProjectName(projectId);
            InstanceName = new InstanceName(projectId, instanceId);

            Task.Run(InitBigtableInstanceAndTable).Wait();
        }
        public async stt::Task GetBackupResourceNamesAsync()
        {
            moq::Mock <CloudFilestoreManager.CloudFilestoreManagerClient> mockGrpcClient = new moq::Mock <CloudFilestoreManager.CloudFilestoreManagerClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            GetBackupRequest request = new GetBackupRequest
            {
                BackupName = BackupName.FromProjectLocationBackup("[PROJECT]", "[LOCATION]", "[BACKUP]"),
            };
            Backup expectedResponse = new Backup
            {
                BackupName  = BackupName.FromProjectLocationBackup("[PROJECT]", "[LOCATION]", "[BACKUP]"),
                Description = "description2cf9da67",
                State       = Backup.Types.State.Ready,
                CreateTime  = new wkt::Timestamp(),
                Labels      =
                {
                    {
                        "key8a0b6e3c",
                        "value60c16320"
                    },
                },
                CapacityGb   = -8715396619027832166L,
                StorageBytes = 8453704516828373557L,
                SourceInstanceAsInstanceName = InstanceName.FromProjectLocationInstance("[PROJECT]", "[LOCATION]", "[INSTANCE]"),
                SourceFileShare    = "source_file_shareeecce468",
                SourceInstanceTier = Instance.Types.Tier.Premium,
                DownloadBytes      = -6512123273633363558L,
                SatisfiesPzs       = false,
            };

            mockGrpcClient.Setup(x => x.GetBackupAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Backup>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            CloudFilestoreManagerClient client = new CloudFilestoreManagerClientImpl(mockGrpcClient.Object, null);
            Backup responseCallSettings        = await client.GetBackupAsync(request.BackupName, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            Backup responseCancellationToken = await client.GetBackupAsync(request.BackupName, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
        public void GetInstanceAuthStringResourceNames()
        {
            moq::Mock <CloudRedis.CloudRedisClient> mockGrpcClient = new moq::Mock <CloudRedis.CloudRedisClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            GetInstanceAuthStringRequest request = new GetInstanceAuthStringRequest
            {
                InstanceName = InstanceName.FromProjectLocationInstance("[PROJECT]", "[LOCATION]", "[INSTANCE]"),
            };
            InstanceAuthString expectedResponse = new InstanceAuthString
            {
                AuthString = "auth_string7b7a4b11",
            };

            mockGrpcClient.Setup(x => x.GetInstanceAuthString(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse);
            CloudRedisClient   client   = new CloudRedisClientImpl(mockGrpcClient.Object, null);
            InstanceAuthString response = client.GetInstanceAuthString(request.InstanceName);

            xunit::Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
Example #8
0
    private async Task <bool> InitializeInstanceAsync()
    {
        InstanceAdminClient instanceAdminClient = await InstanceAdminClient.CreateAsync();

        InstanceName instanceName = InstanceName.FromProjectInstance(ProjectId, InstanceId);

        try
        {
            Instance response = await instanceAdminClient.GetInstanceAsync(instanceName);

            return(true);
        }
        catch (RpcException ex) when(ex.Status.StatusCode == StatusCode.NotFound)
        {
            CreateInstanceSample createInstanceSample = new CreateInstanceSample();

            await SafeCreateInstanceAsync(() => Task.FromResult(createInstanceSample.CreateInstance(ProjectId, InstanceId)));

            return(false);
        }
    }
Example #9
0
    private async Task CreateInstanceWithMultiRegionAsync()
    {
        InstanceAdminClient instanceAdminClient = await InstanceAdminClient.CreateAsync();

        var      projectName = ProjectName.FromProject(ProjectId);
        Instance instance    = new Instance
        {
            DisplayName = "Multi-region samples test",
            ConfigAsInstanceConfigName = InstanceConfigName.FromProjectInstanceConfig(ProjectId, InstanceConfigId),
            InstanceName = InstanceName.FromProjectInstance(ProjectId, InstanceIdWithMultiRegion),
            NodeCount    = 1,
        };

        await SafeCreateInstanceAsync(async() =>
        {
            var response = await instanceAdminClient.CreateInstanceAsync(projectName, InstanceIdWithMultiRegion, instance);
            // Poll until the returned long-running operation is complete
            response = await response.PollUntilCompletedAsync();
            return(response.Result);
        });
    }
        public async stt::Task GetInstanceRequestObjectAsync()
        {
            moq::Mock <Instances.InstancesClient> mockGrpcClient = new moq::Mock <Instances.InstancesClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            GetInstanceRequest request = new GetInstanceRequest
            {
                Name = "name1c9368b0",
            };
            Instance expectedResponse = new Instance
            {
                InstanceName     = InstanceName.FromAppServiceVersionInstance("[APP]", "[SERVICE]", "[VERSION]", "[INSTANCE]"),
                Id               = "id74b70bb8",
                AppEngineRelease = "app_engine_release0d3b73e6",
                Availability     = Instance.Types.Availability.Unspecified,
                VmName           = "vm_name2b89e867",
                VmZoneName       = "vm_zone_name0deb2195",
                VmId             = "vm_idb8ec0c0e",
                StartTime        = new wkt::Timestamp(),
                Requests         = 821139506,
                Errors           = 20586759,
                Qps              = 1.5122795E+17F,
                AverageLatency   = -1548461605,
                MemoryUsage      = -2914232593404547833L,
                VmStatus         = "vm_status3752e225",
                VmDebugEnabled   = false,
                VmIp             = "vm_ipe63c1f99",
                VmLiveness       = Instance.Types.Liveness.Types.LivenessState.Draining,
            };

            mockGrpcClient.Setup(x => x.GetInstanceAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Instance>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            InstancesClient client = new InstancesClientImpl(mockGrpcClient.Object, null);
            Instance        responseCallSettings = await client.GetInstanceAsync(request, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            Instance responseCancellationToken = await client.GetInstanceAsync(request, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
    public static Instance SpannerCreateInstance(string projectId, string instanceId)
    {
        // Create the InstanceAdminClient instance.
        InstanceAdminClient instanceAdminClient = InstanceAdminClient.Create();

        // Initialize request parameters.
        Instance instance = new Instance
        {
            InstanceName = InstanceName.FromProjectInstance(projectId, instanceId),
            ConfigAsInstanceConfigName =
                InstanceConfigName.FromProjectInstanceConfig(projectId, "regional-us-central1"),
            DisplayName = "This is a display name.",
            NodeCount   = 1,
            Labels      =
            {
                { "cloud_spanner_samples", "true" },
            }
        };
        ProjectName parentAsProjectName = ProjectName.FromProject(projectId);

        // Make the CreateInstance request.
        Operation <Instance, CreateInstanceMetadata> response =
            instanceAdminClient.CreateInstance(parentAsProjectName, instanceId, instance);

        Console.WriteLine("Waiting for the operation to finish.");

        // Poll until the returned long-running operation is complete.
        Operation <Instance, CreateInstanceMetadata> completedResponse =
            response.PollUntilCompleted();

        if (completedResponse.IsFaulted)
        {
            Console.WriteLine($"Error while creating instance: {completedResponse.Exception}");
            throw completedResponse.Exception;
        }

        Console.WriteLine($"Instance created successfully.");

        return(completedResponse.Result);
    }
Example #12
0
        private string GetExpressInstance()
        {
            string ExpressInstance = "";

            try
            {
                String[] InstanceNames;
                ExpressInstance = @"Server=localhost";  //.\SQLEXPRESS

                // *******************************************************************************************
                // * WORKS IN both x86 x64 mode
                // *******************************************************************************************
                RegistryKey localMachine = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
                RegistryKey windowsNTKey = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
                InstanceNames = (String[])windowsNTKey.GetValue("InstalledInstances");


                if (InstanceNames.Length == 1)
                {
                    ExpressInstance = @"Server=.\" + InstanceNames[0];
                }
                else if (InstanceNames.Length > 0)
                {
                    foreach (String InstanceName in InstanceNames)
                    {
                        if (InstanceName.Contains("EXPRESS"))
                        {
                            ExpressInstance = @"Server=.\" + InstanceName;
                        }
                        //Console.Write(element);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Unable able to find SQL Server 2008 r2 Express Instance", ex);
            }

            return(ExpressInstance);
        }
Example #13
0
    public async Task <Database> RestoreDatabaseWithEncryptionAsync(string projectId, string instanceId, string databaseId, string backupId, CryptoKeyName kmsKeyName)
    {
        // Create a DatabaseAdminClient instance.
        DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create();

        // Create the RestoreDatabaseRequest with encryption configuration.
        RestoreDatabaseRequest request = new RestoreDatabaseRequest
        {
            ParentAsInstanceName = InstanceName.FromProjectInstance(projectId, instanceId),
            DatabaseId           = databaseId,
            BackupAsBackupName   = BackupName.FromProjectInstanceBackup(projectId, instanceId, backupId),
            EncryptionConfig     = new RestoreDatabaseEncryptionConfig
            {
                EncryptionType            = RestoreDatabaseEncryptionConfig.Types.EncryptionType.CustomerManagedEncryption,
                KmsKeyNameAsCryptoKeyName = kmsKeyName,
            }
        };
        // Execute the RestoreDatabase request.
        var operation = await databaseAdminClient.RestoreDatabaseAsync(request);

        Console.WriteLine("Waiting for the operation to finish.");

        // Poll until the returned long-running operation is complete.
        var completedResponse = await operation.PollUntilCompletedAsync();

        if (completedResponse.IsFaulted)
        {
            Console.WriteLine($"Error while restoring database: {completedResponse.Exception}");
            throw completedResponse.Exception;
        }

        var database    = completedResponse.Result;
        var restoreInfo = database.RestoreInfo;

        Console.WriteLine($"Database {restoreInfo.BackupInfo.SourceDatabase} " +
                          $"restored to {database.Name} " +
                          $"from backup {restoreInfo.BackupInfo.Backup} " +
                          $"using encryption key {database.EncryptionConfig.KmsKeyName}");
        return(database);
    }
Example #14
0
    public Backup CreateBackup(string projectId, string instanceId, string databaseId, string backupId, DateTime versionTime)
    {
        // Create the DatabaseAdminClient instance.
        DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create();

        // Initialize request parameters.
        Backup backup = new Backup
        {
            DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase(projectId, instanceId, databaseId),
            ExpireTime             = DateTime.UtcNow.AddDays(14).ToTimestamp(),
            VersionTime            = versionTime.ToTimestamp(),
        };
        InstanceName instanceName = InstanceName.FromProjectInstance(projectId, instanceId);

        // Make the CreateBackup request.
        Operation <Backup, CreateBackupMetadata> response = databaseAdminClient.CreateBackup(instanceName, backup, backupId);

        Console.WriteLine("Waiting for the operation to finish.");

        // Poll until the returned long-running operation is complete.
        Operation <Backup, CreateBackupMetadata> completedResponse = response.PollUntilCompleted();

        if (completedResponse.IsFaulted)
        {
            Console.WriteLine($"Error while creating backup: {completedResponse.Exception}");
            throw completedResponse.Exception;
        }

        Console.WriteLine($"Backup created successfully.");

        // GetBackup to get more information about the created backup.
        BackupName backupName = BackupName.FromProjectInstanceBackup(projectId, instanceId, backupId);

        backup = databaseAdminClient.GetBackup(backupName);
        Console.WriteLine($"Backup {backup.Name} of size {backup.SizeBytes} bytes " +
                          $"was created at {backup.CreateTime} from {backup.Database} " +
                          $"and is in state {backup.State} " +
                          $"and has version time {backup.VersionTime.ToDateTime()}");
        return(backup);
    }
        public static object SpannerCancelBackupOperation(
            string projectId, string instanceId, string databaseId, string backupId)
        {
            // Create the DatabaseAdminClient instance.
            DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create();

            // Initialize request parameters.
            Backup backup = new Backup
            {
                DatabaseAsDatabaseName =
                    DatabaseName.FromProjectInstanceDatabase(projectId, instanceId, databaseId),
                ExpireTime = DateTime.UtcNow.AddDays(14).ToTimestamp()
            };
            InstanceName parentAsInstanceName = InstanceName.FromProjectInstance(projectId, instanceId);

            // Make the CreateBackup request.
            Operation <Backup, CreateBackupMetadata> operation =
                databaseAdminClient.CreateBackup(parentAsInstanceName, backup, backupId);

            // Cancel the operation.
            operation.Cancel();

            // Poll until the long-running operation is complete since the backup wasn't
            // cancelled before it was created.
            Console.WriteLine("Waiting for the operation to finish.");
            Operation <Backup, CreateBackupMetadata> completedOperation =
                operation.PollUntilCompleted();

            if (!completedOperation.IsFaulted)
            {
                Console.WriteLine("Delete backup because it completed before it could be cancelled.");
                BackupName backupAsBackupName =
                    BackupName.FromProjectInstanceBackup(projectId, instanceId, backupId);
                databaseAdminClient.DeleteBackup(backupAsBackupName);
            }

            Console.WriteLine($"Create backup operation cancelled: {operation.Name}");
            return(0);
        }
        /// <summary>
        /// Check The Given Table is exist or not in Google Cloud Bigtable
        /// </summary>
        /// <returns></returns>
        public bool IsTableExists()
        {
            SetEnvironmentVariable();
            if (!CheckProperty())
            {
                throw new Exception("One Or More Properties Not Set");
            }
            bool exists = false;

            try
            {
                BigtableTableAdminClient bigtableTableAdminClient = BigtableTableAdminClient.Create();
                InstanceName             instanceName             = new InstanceName(ProjectId, InstanceId);
                var tables = bigtableTableAdminClient.ListTables(instanceName);
                exists = tables.Any(x => x.TableName.TableId == TableName);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(exists);
        }
Example #17
0
        public async Task <Instance> CloudHealthAsync()
        {
            CloudRedisClient cloudRedisClient = CloudRedisClient.Create(channel);
            // Initialize request argument(s)
            InstanceName name = new InstanceName(
                configuration["GCPSetting:PROJECTNAME"],
                configuration["GCPSetting:LOCATIONNAME"],
                configuration["GCPSetting:INSTANCES:RedisINSTANCES"]
                );

            // Make the request
            Instance response = await cloudRedisClient.GetInstanceAsync(name);

            if (response != null)
            {
                return(response);
            }
            else
            {
                return(null);
            }
        }
        public static void DelelteBackups()
        {
            DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create();

            //delete backup contains "a"
            var dataTime          = DateTime.UtcNow.AddDays(1).ToString("yyyy-MM-dd");
            var listBackupRequest = new ListBackupsRequest
            {
                Parent = InstanceName.Format(projectId, instanceId),
                Filter = $"create_time < {dataTime}"
            };

            var backups = databaseAdminClient.ListBackups(listBackupRequest);

            foreach (var backup in backups)
            {
                var deleteBackupRequest = new DeleteBackupRequest()
                {
                    Name = backup.Name
                };
                databaseAdminClient.DeleteBackup(deleteBackupRequest);
            }
        }
        public void Get_unknownInformation_throwsKeyNotFoundException <TObject>(string iName, TObject dummyObject)
        {
            // arrange:
            List <object>            mocks = new List <object>();
            InstanceName <TObject>   name  = new InstanceName <TObject>(iName);
            EnvironmentChainLinkBase firstMockLink;
            EnvironmentChainLinkBase secondMockLink;
            EnvironmentsChain        underTest = CreateNewEnvironmentChainToTest(out firstMockLink, out secondMockLink);

            mocks.Add(firstMockLink);
            mocks.Add(secondMockLink);
            TObject varPlaceHolder;

            firstMockLink.Expect(l => l.TryGet <TObject>(name, out varPlaceHolder)).Return(false).Repeat.Once();
            secondMockLink.Expect(l => l.TryGet <TObject>(name, out varPlaceHolder)).Return(false).Repeat.Once();

            // assert:
            Assert.Throws <KeyNotFoundException>(delegate { underTest.Get <TObject>(name); });
            foreach (object mock in mocks)
            {
                mock.VerifyAllExpectations();
            }
        }
    public IEnumerable <Operation> ListBackupOperations(string projectId, string instanceId, string databaseId)
    {
        // Create the DatabaseAdminClient instance.
        DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create();

        var filter = $"(metadata.database:{databaseId}) AND (metadata.@type:type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata)";
        ListBackupOperationsRequest request = new ListBackupOperationsRequest
        {
            ParentAsInstanceName = InstanceName.FromProjectInstance(projectId, instanceId),
            Filter = filter
        };

        // List the create backup operations on the database.
        var backupOperations = databaseAdminClient.ListBackupOperations(request);

        foreach (var operation in backupOperations)
        {
            CreateBackupMetadata metadata = operation.Metadata.Unpack <CreateBackupMetadata>();
            Console.WriteLine($"Backup {metadata.Name} on " + $"database {metadata.Database} is " + $"{metadata.Progress.ProgressPercent}% complete");
        }

        return(backupOperations);
    }
Example #21
0
        public async Task TestIamPermissionsAsync()
        {
            Mock <InstanceAdmin.InstanceAdminClient> mockGrpcClient = new Mock <InstanceAdmin.InstanceAdminClient>(MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient())
            .Returns(new Mock <Operations.OperationsClient>().Object);
            TestIamPermissionsRequest expectedRequest = new TestIamPermissionsRequest
            {
                Resource    = new InstanceName("[PROJECT]", "[INSTANCE]").ToString(),
                Permissions = { },
            };
            TestIamPermissionsResponse expectedResponse = new TestIamPermissionsResponse();

            mockGrpcClient.Setup(x => x.TestIamPermissionsAsync(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(new Grpc.Core.AsyncUnaryCall <TestIamPermissionsResponse>(Task.FromResult(expectedResponse), null, null, null, null));
            InstanceAdminClient client             = new InstanceAdminClientImpl(mockGrpcClient.Object, null);
            string formattedResource               = new InstanceName("[PROJECT]", "[INSTANCE]").ToString();
            IEnumerable <string>       permissions = new List <string>();
            TestIamPermissionsResponse response    = await client.TestIamPermissionsAsync(formattedResource, permissions);

            Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
        /// <summary>Snippet for FailoverInstanceAsync</summary>
        public async Task FailoverInstanceAsync()
        {
            // Snippet: FailoverInstanceAsync(InstanceName,FailoverInstanceRequest.Types.DataProtectionMode,CallSettings)
            // Additional: FailoverInstanceAsync(InstanceName,FailoverInstanceRequest.Types.DataProtectionMode,CancellationToken)
            // Create client
            CloudRedisClient cloudRedisClient = await CloudRedisClient.CreateAsync();

            // Initialize request argument(s)
            InstanceName name = new InstanceName("[PROJECT]", "[LOCATION]", "[INSTANCE]");

            FailoverInstanceRequest.Types.DataProtectionMode dataProtectionMode = FailoverInstanceRequest.Types.DataProtectionMode.Unspecified;
            // Make the request
            Operation <Instance, OperationMetadata> response =
                await cloudRedisClient.FailoverInstanceAsync(name, dataProtectionMode);

            // Poll until the returned long-running operation is complete
            Operation <Instance, OperationMetadata> completedResponse =
                await response.PollUntilCompletedAsync();

            // Retrieve the operation result
            Instance result = completedResponse.Result;

            // Or get the name of the operation
            string operationName = response.Name;
            // This name can be stored, then the long-running operation retrieved later by name
            Operation <Instance, OperationMetadata> retrievedResponse =
                await cloudRedisClient.PollOnceFailoverInstanceAsync(operationName);

            // Check if the retrieved long-running operation has completed
            if (retrievedResponse.IsCompleted)
            {
                // If it has completed, then access the result
                Instance retrievedResult = retrievedResponse.Result;
            }
            // End snippet
        }
Example #23
0
        /// <summary>Snippet for CreateInstanceAsync</summary>
        public async Task CreateInstanceAsync()
        {
            // Snippet: CreateInstanceAsync(ProjectName,InstanceName,Instance,CallSettings)
            // Additional: CreateInstanceAsync(ProjectName,InstanceName,Instance,CancellationToken)
            // Create client
            InstanceAdminClient instanceAdminClient = await InstanceAdminClient.CreateAsync();

            // Initialize request argument(s)
            ProjectName  parent     = new ProjectName("[PROJECT]");
            InstanceName instanceId = new InstanceName("[PROJECT]", "[INSTANCE]");
            Instance     instance   = new Instance();
            // Make the request
            Operation <Instance, CreateInstanceMetadata> response =
                await instanceAdminClient.CreateInstanceAsync(parent, instanceId, instance);

            // Poll until the returned long-running operation is complete
            Operation <Instance, CreateInstanceMetadata> completedResponse =
                await response.PollUntilCompletedAsync();

            // Retrieve the operation result
            Instance result = completedResponse.Result;

            // Or get the name of the operation
            string operationName = response.Name;
            // This name can be stored, then the long-running operation retrieved later by name
            Operation <Instance, CreateInstanceMetadata> retrievedResponse =
                await instanceAdminClient.PollOnceCreateInstanceAsync(operationName);

            // Check if the retrieved long-running operation has completed
            if (retrievedResponse.IsCompleted)
            {
                // If it has completed, then access the result
                Instance retrievedResult = retrievedResponse.Result;
            }
            // End snippet
        }
        public async stt::Task GetInstanceAuthStringResourceNamesAsync()
        {
            moq::Mock <CloudRedis.CloudRedisClient> mockGrpcClient = new moq::Mock <CloudRedis.CloudRedisClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            GetInstanceAuthStringRequest request = new GetInstanceAuthStringRequest
            {
                InstanceName = InstanceName.FromProjectLocationInstance("[PROJECT]", "[LOCATION]", "[INSTANCE]"),
            };
            InstanceAuthString expectedResponse = new InstanceAuthString
            {
                AuthString = "auth_string7b7a4b11",
            };

            mockGrpcClient.Setup(x => x.GetInstanceAuthStringAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <InstanceAuthString>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            CloudRedisClient   client = new CloudRedisClientImpl(mockGrpcClient.Object, null);
            InstanceAuthString responseCallSettings = await client.GetInstanceAuthStringAsync(request.InstanceName, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            InstanceAuthString responseCancellationToken = await client.GetInstanceAuthStringAsync(request.InstanceName, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
Example #25
0
        public async Task GetInstanceAsync()
        {
            Mock <CloudRedis.CloudRedisClient> mockGrpcClient = new Mock <CloudRedis.CloudRedisClient>(MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient())
            .Returns(new Mock <Operations.OperationsClient>().Object);
            GetInstanceRequest expectedRequest = new GetInstanceRequest
            {
                InstanceName = new InstanceName("[PROJECT]", "[LOCATION]", "[INSTANCE]"),
            };
            Instance expectedResponse = new Instance
            {
                Name                   = "name2-1052831874",
                DisplayName            = "displayName1615086568",
                LocationId             = "locationId552319461",
                AlternativeLocationId  = "alternativeLocationId-718920621",
                RedisVersion           = "redisVersion-685310444",
                ReservedIpRange        = "reservedIpRange-1082940580",
                Host                   = "host3208616",
                Port                   = 3446913,
                CurrentLocationId      = "currentLocationId1312712735",
                StatusMessage          = "statusMessage-239442758",
                MemorySizeGb           = 34199707,
                AuthorizedNetwork      = "authorizedNetwork-1733809270",
                PersistenceIamIdentity = "persistenceIamIdentity1061944584",
            };

            mockGrpcClient.Setup(x => x.GetInstanceAsync(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(new Grpc.Core.AsyncUnaryCall <Instance>(Task.FromResult(expectedResponse), null, null, null, null));
            CloudRedisClient client   = new CloudRedisClientImpl(mockGrpcClient.Object, null);
            InstanceName     name     = new InstanceName("[PROJECT]", "[LOCATION]", "[INSTANCE]");
            Instance         response = await client.GetInstanceAsync(name);

            Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
        public static object SpannerRestoreDatabase(
            string projectId, string instanceId, string databaseId, string backupId)
        {
            // Create the DatabaseAdminClient instance.
            DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create();

            InstanceName parentAsInstanceName =
                InstanceName.FromProjectInstance(projectId, instanceId);
            BackupName backupAsBackupName =
                BackupName.FromProjectInstanceBackup(projectId, instanceId, backupId);

            // Make the RestoreDatabase request.
            Operation <Database, RestoreDatabaseMetadata> response =
                databaseAdminClient.RestoreDatabase(
                    parentAsInstanceName, databaseId, backupAsBackupName);

            Console.WriteLine("Waiting for the operation to finish");

            // Poll until the returned long-running operation is complete.
            var completedResponse = response.PollUntilCompleted();

            if (completedResponse.IsFaulted)
            {
                Console.WriteLine($"Database Restore Failed: {completedResponse.Exception}");
                return(1);
            }

            RestoreInfo restoreInfo = completedResponse.Result.RestoreInfo;

            Console.WriteLine(
                $"Database {restoreInfo.BackupInfo.SourceDatabase} was restored " +
                $"to {databaseId} from backup {restoreInfo.BackupInfo.Backup} " +
                $"with version time {restoreInfo.BackupInfo.VersionTime.ToDateTime()}");

            return(0);
        }
Example #27
0
        public BigtableFixtureBase()
        {
            string emulatorHost = Environment.GetEnvironmentVariable(EmulatorEnvironmentVariable);

            string projectId;
            string instanceId;

            if (!string.IsNullOrEmpty(emulatorHost))
            {
                projectId       = "emulator-test-project";
                EmulatorChannel = new Channel(emulatorHost, ChannelCredentials.Insecure);

                instanceId = "doesnt-matter";
            }
            else
            {
                projectId = Environment.GetEnvironmentVariable(TestProjectEnvironmentVariable);
                if (string.IsNullOrEmpty(projectId))
                {
                    throw new InvalidOperationException(
                              $"Please set either the {EmulatorEnvironmentVariable} or {TestProjectEnvironmentVariable} environment variable before running tests");
                }

                instanceId = Environment.GetEnvironmentVariable(TestInstanceEnvironmentVariable);
                if (string.IsNullOrEmpty(instanceId))
                {
                    throw new InvalidOperationException(
                              $"Please set the {TestInstanceEnvironmentVariable} environment variable before running non-emulator tests.");
                }
            }

            ProjectName  = new ProjectName(projectId);
            InstanceName = new InstanceName(projectId, instanceId);

            Task.Run(InitBigtableInstanceAndTable).Wait();
        }
        /// <summary>
        /// Validates this instance.
        /// </summary>
        /// <exception cref="System.ArgumentException">
        /// InstanceName must be set
        /// or
        /// TenantId must be set
        /// or
        /// SubscriptionId must be set
        /// or
        /// SharedAccessPolicy must be set
        /// </exception>
        /// <exception cref="ArgumentException">InstanceName must be set and AppId must be set and AppId must be set and
        /// TenantId must be set and SubscriptionId must be set.</exception>
        /// <inheritdoc />
        public override void Validate()
        {
            if (InstanceName.IsNullOrEmpty())
            {
                throw new ArgumentException("InstanceName must be set");
            }

            if (TenantId.IsNullOrEmpty())
            {
                throw new ArgumentException("TenantId must be set");
            }

            if (SubscriptionId.IsNullOrEmpty())
            {
                throw new ArgumentException("SubscriptionId must be set");
            }

            if (SharedAccessPolicyName.IsNullOrEmpty())
            {
                throw new ArgumentException("SharedAccessPolicy must be set");
            }

            base.Validate();
        }
        /// <summary>Snippet for CreateClusterAsync</summary>
        public async Task CreateClusterAsync()
        {
            // Snippet: CreateClusterAsync(InstanceName,string,Cluster,CallSettings)
            // Additional: CreateClusterAsync(InstanceName,string,Cluster,CancellationToken)
            // Create client
            BigtableInstanceAdminClient bigtableInstanceAdminClient = await BigtableInstanceAdminClient.CreateAsync();

            // Initialize request argument(s)
            InstanceName parent    = new InstanceName("[PROJECT]", "[INSTANCE]");
            string       clusterId = "";
            Cluster      cluster   = new Cluster();
            // Make the request
            Operation <Cluster, CreateClusterMetadata> response =
                await bigtableInstanceAdminClient.CreateClusterAsync(parent, clusterId, cluster);

            // Poll until the returned long-running operation is complete
            Operation <Cluster, CreateClusterMetadata> completedResponse =
                await response.PollUntilCompletedAsync();

            // Retrieve the operation result
            Cluster result = completedResponse.Result;

            // Or get the name of the operation
            string operationName = response.Name;
            // This name can be stored, then the long-running operation retrieved later by name
            Operation <Cluster, CreateClusterMetadata> retrievedResponse =
                await bigtableInstanceAdminClient.PollOnceCreateClusterAsync(operationName);

            // Check if the retrieved long-running operation has completed
            if (retrievedResponse.IsCompleted)
            {
                // If it has completed, then access the result
                Cluster retrievedResult = retrievedResponse.Result;
            }
            // End snippet
        }
Example #30
0
        protected virtual void ConfigureServerName(
            dynamic /*SqlConnectionStringBuilder*/ builder)
        {
            var dataSource = ServerName.NullIfEmpty() ?? LocalServerName;

            if (ServerPort.HasValue || InstanceName.HasContent())
            {
                var s = new StringBuilder(dataSource);

                if (InstanceName.HasContent())
                {
                    s.Append('\\').Append(InstanceName);
                }

                if (ServerPort.HasValue)
                {
                    s.Append(',').Append(ServerPort.Value.ToString(CultureInfo.InvariantCulture));
                }

                dataSource = s.ToString();
            }

            builder.DataSource = dataSource;
        }