/// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            ListDatabasesResponse response = new ListDatabasesResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("DatabaseList", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <Database, DatabaseUnmarshaller>(DatabaseUnmarshaller.Instance);
                    response.DatabaseList = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("NextToken", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.NextToken = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
        public async Task ListDatabases()
        {
            Console.WriteLine("Listing Databases");

            try
            {
                var listDatabasesRequest = new ListDatabasesRequest
                {
                    MaxResults = 5
                };
                ListDatabasesResponse response = await writeClient.ListDatabasesAsync(listDatabasesRequest);

                PrintDatabases(response.Databases);
                var nextToken = response.NextToken;
                while (nextToken != null)
                {
                    listDatabasesRequest.NextToken = nextToken;
                    response = await writeClient.ListDatabasesAsync(listDatabasesRequest);

                    PrintDatabases(response.Databases);
                    nextToken = response.NextToken;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("List database failed:" + e.ToString());
            }
        }
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonTimestreamWriteConfig config = new AmazonTimestreamWriteConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonTimestreamWriteClient client = new AmazonTimestreamWriteClient(creds, config);

            ListDatabasesResponse resp = new ListDatabasesResponse();

            do
            {
                ListDatabasesRequest req = new ListDatabasesRequest
                {
                    NextToken = resp.NextToken
                    ,
                    MaxResults = maxItems
                };

                resp = client.ListDatabases(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.Databases)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
예제 #4
0
        public ListDatabasesResponse HandleRequest(ISqlConnectionFactory connectionFactory, ConnectionInfo connectionInfo)
        {
            ConnectionDetails connectionDetails = connectionInfo.ConnectionDetails.Clone();

            // Connect to master
            connectionDetails.DatabaseName = "master";
            using (var connection = connectionFactory.CreateSqlConnection(ConnectionService.BuildConnectionString(connectionDetails), connectionDetails.AzureAccountToken))
            {
                connection.Open();
                ListDatabasesResponse response = new ListDatabasesResponse();
                using (DbCommand command = connection.CreateCommand())
                {
                    command.CommandText    = this.QueryText;
                    command.CommandTimeout = 15;
                    command.CommandType    = CommandType.Text;
                    using (var reader = command.ExecuteReader())
                    {
                        List <T> results = new List <T>();
                        while (reader.Read())
                        {
                            results.Add(this.CreateItem(reader));
                        }
                        // Put system databases at the top of the list
                        results = results.Where(s => SystemDatabases.Any(x => this.NameMatches(x, s))).Concat(
                            results.Where(s => SystemDatabases.All(x => !this.NameMatches(x, s)))).ToList();
                        SetResponse(response, results.ToArray());
                    }
                }
                connection.Close();
                return(response);
            }
        }
예제 #5
0
        /// <summary>
        /// List all databases on the server specified
        /// </summary>
        public ListDatabasesResponse ListDatabases(ListDatabasesParams listDatabasesParams)
        {
            // Verify parameters
            var owner = listDatabasesParams.OwnerUri;

            if (string.IsNullOrEmpty(owner))
            {
                throw new ArgumentException(SR.ConnectionServiceListDbErrorNullOwnerUri);
            }

            // Use the existing connection as a base for the search
            ConnectionInfo info;

            if (!TryFindConnection(owner, out info))
            {
                throw new Exception(SR.ConnectionServiceListDbErrorNotConnected(owner));
            }
            ConnectionDetails connectionDetails = info.ConnectionDetails.Clone();

            // Connect to master and query sys.databases
            connectionDetails.DatabaseName = "master";
            var connection = this.ConnectionFactory.CreateSqlConnection(BuildConnectionString(connectionDetails));

            connection.Open();

            List <string> results         = new List <string>();
            var           systemDatabases = new[] { "master", "model", "msdb", "tempdb" };

            using (DbCommand command = connection.CreateCommand())
            {
                command.CommandText    = "SELECT name FROM sys.databases ORDER BY name ASC";
                command.CommandTimeout = 15;
                command.CommandType    = CommandType.Text;

                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        results.Add(reader[0].ToString());
                    }
                }
            }

            // Put system databases at the top of the list
            results =
                results.Where(s => systemDatabases.Any(s.Equals)).Concat(
                    results.Where(s => systemDatabases.All(x => !s.Equals(x)))).ToList();

            connection.Close();

            ListDatabasesResponse response = new ListDatabasesResponse();

            response.DatabaseNames = results.ToArray();

            return(response);
        }
        public static ListDatabasesResponse Unmarshall(UnmarshallerContext _ctx)
        {
            ListDatabasesResponse listDatabasesResponse = new ListDatabasesResponse();

            listDatabasesResponse.HttpResponse = _ctx.HttpResponse;
            listDatabasesResponse.RequestId    = _ctx.StringValue("ListDatabases.RequestId");
            listDatabasesResponse.Success      = _ctx.BooleanValue("ListDatabases.Success");
            listDatabasesResponse.ErrorMessage = _ctx.StringValue("ListDatabases.ErrorMessage");
            listDatabasesResponse.ErrorCode    = _ctx.StringValue("ListDatabases.ErrorCode");
            listDatabasesResponse.TotalCount   = _ctx.LongValue("ListDatabases.TotalCount");

            List <ListDatabasesResponse.ListDatabases_Database> listDatabasesResponse_databaseList = new List <ListDatabasesResponse.ListDatabases_Database>();

            for (int i = 0; i < _ctx.Length("ListDatabases.DatabaseList.Length"); i++)
            {
                ListDatabasesResponse.ListDatabases_Database database = new ListDatabasesResponse.ListDatabases_Database();
                database.InstanceId  = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].InstanceId");
                database.DatabaseId  = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].DatabaseId");
                database.EnvType     = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].EnvType");
                database.SchemaName  = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].SchemaName");
                database.CatalogName = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].CatalogName");
                database.Encoding    = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].Encoding");
                database.SearchName  = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].SearchName");
                database.State       = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].State");
                database.DbType      = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].DbType");
                database.Host        = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].Host");
                database.Port        = _ctx.IntegerValue("ListDatabases.DatabaseList[" + i + "].Port");
                database.Sid         = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].Sid");
                database.DbaName     = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].DbaName");
                database.DbaId       = _ctx.StringValue("ListDatabases.DatabaseList[" + i + "].DbaId");

                List <string> database_ownerIdList = new List <string>();
                for (int j = 0; j < _ctx.Length("ListDatabases.DatabaseList[" + i + "].OwnerIdList.Length"); j++)
                {
                    database_ownerIdList.Add(_ctx.StringValue("ListDatabases.DatabaseList[" + i + "].OwnerIdList[" + j + "]"));
                }
                database.OwnerIdList = database_ownerIdList;

                List <string> database_ownerNameList = new List <string>();
                for (int j = 0; j < _ctx.Length("ListDatabases.DatabaseList[" + i + "].OwnerNameList.Length"); j++)
                {
                    database_ownerNameList.Add(_ctx.StringValue("ListDatabases.DatabaseList[" + i + "].OwnerNameList[" + j + "]"));
                }
                database.OwnerNameList = database_ownerNameList;

                listDatabasesResponse_databaseList.Add(database);
            }
            listDatabasesResponse.DatabaseList = listDatabasesResponse_databaseList;

            return(listDatabasesResponse);
        }
예제 #7
0
        /// <summary>
        /// Handle requests to list databases on the current server
        /// </summary>
        protected async Task HandleListDatabasesRequest(
            ListDatabasesParams listDatabasesParams,
            RequestContext <ListDatabasesResponse> requestContext)
        {
            Logger.Write(LogLevel.Verbose, "ListDatabasesRequest");

            try
            {
                ListDatabasesResponse result = Instance.ListDatabases(listDatabasesParams);
                await requestContext.SendResult(result);
            }
            catch (Exception ex)
            {
                await requestContext.SendError(ex.ToString());
            }
        }
예제 #8
0
        public void ListDatabasesResourceNames()
        {
            moq::Mock <FirestoreAdmin.FirestoreAdminClient> mockGrpcClient = new moq::Mock <FirestoreAdmin.FirestoreAdminClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            ListDatabasesRequest request = new ListDatabasesRequest
            {
                ParentAsProjectName = gagr::ProjectName.FromProject("[PROJECT]"),
            };
            ListDatabasesResponse expectedResponse = new ListDatabasesResponse
            {
                Databases = { new Database(), },
            };

            mockGrpcClient.Setup(x => x.ListDatabases(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse);
            FirestoreAdminClient  client   = new FirestoreAdminClientImpl(mockGrpcClient.Object, null);
            ListDatabasesResponse response = client.ListDatabases(request.ParentAsProjectName);

            xunit::Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
예제 #9
0
        public async stt::Task ListDatabasesResourceNamesAsync()
        {
            moq::Mock <FirestoreAdmin.FirestoreAdminClient> mockGrpcClient = new moq::Mock <FirestoreAdmin.FirestoreAdminClient>(moq::MockBehavior.Strict);

            mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object);
            ListDatabasesRequest request = new ListDatabasesRequest
            {
                ParentAsProjectName = gagr::ProjectName.FromProject("[PROJECT]"),
            };
            ListDatabasesResponse expectedResponse = new ListDatabasesResponse
            {
                Databases = { new Database(), },
            };

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

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            ListDatabasesResponse responseCancellationToken = await client.ListDatabasesAsync(request.ParentAsProjectName, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
예제 #10
0
 protected abstract void SetResponse(ListDatabasesResponse response, T[] results);
예제 #11
0
 protected override void SetResponse(ListDatabasesResponse response, DatabaseInfo[] results)
 {
     response.Databases = results;
 }
예제 #12
0
 protected override void SetResponse(ListDatabasesResponse response, string[] results)
 {
     response.DatabaseNames = results;
 }