Пример #1
0
        private static async Task <string> CreateLog(LoggingManagementClient client, string logGroup, string logDisplayName)
        {
            CreateLogRequest createLogRequest = new CreateLogRequest
            {
                LogGroupId = logGroup,
                // Create a createLogDetails to pass to Create Log Request
                CreateLogDetails = new CreateLogDetails
                {
                    DisplayName = logDisplayName,
                    LogType     = CreateLogDetails.LogTypeEnum.Custom
                }
            };

            // Pass createLogRequest to client to create the log
            logger.Info($"Creating Log {logDisplayName}");
            logger.Info("=============");
            CreateLogResponse createLogResponse = await client.CreateLog(createLogRequest);

            string workRequestId = createLogResponse.OpcWorkRequestId;

            logger.Info($"CreateLog work request ID is {workRequestId}");

            GetWorkRequestResponse workRequestResponse = WaitForWorkRequestFinished(client, workRequestId);
            string logId = GetLogId(workRequestResponse);

            logger.Info($"Created Log: {logDisplayName} under Log Group: {logGroup} with Log OCID:{logId}");
            return(logId);
        }
Пример #2
0
 protected override void ProcessRecord()
 {
     base.ProcessRecord();
     try
     {
         client?.Dispose();
         int timeout = GetPreferredTimeout();
         WriteDebug($"Cmdlet Timeout : {timeout} milliseconds.");
         client = new LoggingManagementClient(AuthProvider, new Oci.Common.ClientConfiguration
         {
             RetryConfiguration = retryConfig,
             TimeoutMillis      = timeout,
             ClientUserAgent    = PSUserAgent
         });
         string region = GetPreferredRegion();
         if (region != null)
         {
             WriteDebug("Choosing Region:" + region);
             client.SetRegion(region);
         }
         if (Endpoint != null)
         {
             WriteDebug("Choosing Endpoint:" + Endpoint);
             client.SetEndpoint(Endpoint);
         }
     }
     catch (Exception ex)
     {
         TerminatingErrorDuringExecution(ex);
     }
 }
Пример #3
0
        /**
         * Wait for a work request to finish
         * @param LoggingManagementClient the service client to use to get work request
         * @param workRequestId the id of work request
         *
         * @return a work request response object
         */
        private static GetWorkRequestResponse WaitForWorkRequestFinished(LoggingManagementClient client, string workRequestId)
        {
            var waiterConfiguration = new WaiterConfiguration
            {
                MaxAttempts           = 20,
                GetNextDelayInSeconds = DelayStrategy.GetExponentialDelayInSeconds
            };
            GetWorkRequestRequest getWorkRequest = new GetWorkRequestRequest
            {
                WorkRequestId = workRequestId
            };

            return(client.Waiters.ForWorkRequest(getWorkRequest, waiterConfiguration, OperationStatus.Succeeded).Execute());
        }
Пример #4
0
        private static async Task ListLogs(LoggingManagementClient client, string logGroup)
        {
            ListLogsRequest listLogsRequest = new ListLogsRequest
            {
                LogGroupId = logGroup
            };
            // Pass the log group whose logs you want to list
            ListLogsResponse response = await client.ListLogs(listLogsRequest);

            logger.Info("List Logs");
            logger.Info("=============");
            foreach (LogSummary logSummary in response.Items)
            {
                logger.Info($"Log Display Name: {logSummary.DisplayName}, Log Type:{logSummary.LogType}");
            }
        }
Пример #5
0
        private static async Task DeleteLog(LoggingManagementClient client, string logGroupId, string logId)
        {
            DeleteLogRequest deleteLogRequest = new DeleteLogRequest
            {
                LogGroupId = logGroupId,
                LogId      = logId
            };

            // Pass deleteLogRequest to client to delete the log
            logger.Info($"Deleting Log {logId}");
            logger.Info("=============");
            DeleteLogResponse response = await client.DeleteLog(deleteLogRequest);

            string workRequestId = response.OpcWorkRequestId;

            WaitForWorkRequestFinished(client, workRequestId);
            logger.Info("Log deleted");
        }
Пример #6
0
        public static async Task MainLogging()
        {
            string compartmentId  = Environment.GetEnvironmentVariable("OCI_COMPARTMENT_ID");
            string logGroupId     = Environment.GetEnvironmentVariable("OCI_LOG_GROUP");
            string logDisplayName = "oci-dotnet-sdk-example-log";
            // Accepts profile name and creates a auth provider based on config file
            var provider = new ConfigFileAuthenticationDetailsProvider(OciConfigProfileName);
            // Create clients for the service to enable using its APIs
            var logManagementClient = new LoggingManagementClient(provider, new ClientConfiguration());
            var logIngestionclient  = new LoggingClient(provider, new ClientConfiguration());
            var logSearchClient     = new LogSearchClient(provider, new ClientConfiguration());

            try
            {
                string logId = await CreateLog(logManagementClient, logGroupId, logDisplayName);

                //string logId = "ocid1.log.oc1.phx.amaaaaaaogrv47iah6om32dahq3g4p6sleadbnsyptckvirmilizekvjptza";
                await ListLogs(logManagementClient, logGroupId);
                await GetLog(logManagementClient, logGroupId, logId);

                // Wait for log to be accessible
                System.Threading.Thread.Sleep(50000);
                await PutLogDetails(logIngestionclient, logId);

                // Wait for PutLogs to ingest Logs
                System.Threading.Thread.Sleep(20000);
                await SearchLog(logSearchClient, compartmentId, logGroupId, logId);
                await DeleteLog(logManagementClient, logGroupId, logId);
            }
            catch (Exception e)
            {
                logger.Info($"Received exception due to {e.Message}");
            }
            finally
            {
                logManagementClient.Dispose();
                logIngestionclient.Dispose();
                logSearchClient.Dispose();
            }
        }
Пример #7
0
        private static async Task GetLog(LoggingManagementClient client, string logGroupId, string logId)
        {
            GetLogRequest getLogRequest = new GetLogRequest
            {
                LogGroupId = logGroupId,
                LogId      = logId
            };

            logger.Info("Getting log Details for this Log");
            logger.Info("=============");
            GetLogResponse getLogResponse = await client.GetLog(getLogRequest);

            Log log = getLogResponse.Log;

            logger.Info($"Name:{log.DisplayName}");
            logger.Info($"Log ID:{log.Id}");
            logger.Info($"Log Group ID:{log.LogGroupId}");
            logger.Info($"Log Lifecycle State:{log.LifecycleState}");
            logger.Info($"Time Created:{log.TimeCreated}");
            logger.Info($"Time Last Modified:{log.TimeLastModified}");
            logger.Info($"Retention Duration:{log.RetentionDuration} days");
        }
 public LoggingManagementWaiters(LoggingManagementClient client)
 {
     this.client = client;
 }
 public LoggingManagementPaginators(LoggingManagementClient client)
 {
     this.client = client;
 }