public void コンパートメント一覧取得()
        {
            var client = CreateClient();

            ListCompartmentRequest listCompartmentRequest = new ListCompartmentRequest
            {
                CompartmentId          = TenantOCID,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE,
                CompartmentIdInSubtree = true
            };
            var tenant = client.ListCompartment(listCompartmentRequest);

            Assert.IsTrue(tenant.Items.Count > 0);
        }
コード例 #2
0
        public static void ConsoleDisplay(ClientConfig config)
        {
            var identityClient = new IdentityClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            var budgetClient = new BudgetsClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClient.ListCompartment(listCompartmentRequest).Items;

            compartments.Add(new Compartment {
                Id             = config.TenancyId,
                Name           = "root compartment",
                LifecycleState = "ACTIVE"
            });

            Console.WriteLine("* Budgets Resources------------------------");
            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                Console.WriteLine($" Compartment<{com.Name}>--------");

                ListBudgetsRequest listBudgetsRequest = new ListBudgetsRequest()
                {
                    CompartmentId = com.Id
                };

                var budgets = budgetClient.ListBudgets(listBudgetsRequest);

                foreach (var budget in budgets.Items)
                {
                    Console.WriteLine($"\t|-name:{budget.DisplayName}, state:{budget.LifecycleState}, amount:{budget.Amount}");
                }
            }
        }
コード例 #3
0
        public static async void AuditDisplay(ClientConfig config)
        {
            // create client
            AuditClientAsync client = new AuditClientAsync(config)
            {
                Region = Regions.US_ASHBURN_1
            };
            IdentityClient identityClinet = new IdentityClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            DateTime now       = DateTime.Now.AddDays(-1);
            var      startDate = now.ToString("yyyy-MM-ddT00:00:00Z");
            var      endDate   = now.ToString("yyyy-MM-ddT10:30:00Z");

            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClinet.ListCompartment(listCompartmentRequest).Items;

            // get Audit Events
            Console.WriteLine("* Audit Events-------------------");
            foreach (var compartment in compartments)
            {
                // get config
                var configurationRequest = new GetConfigurationRequest()
                {
                    CompartmentId = compartment.Id
                };
                var auditConfig = await client.GetConfiguration(configurationRequest);

                Console.WriteLine($"compartment<{compartment.Name}>---");
                Console.WriteLine($"startTime:{startDate}, endTime:{endDate}");
                Console.WriteLine($"retentionPeriodDays:{auditConfig.Configuration.RetentionPeriodDays}");

                DisplayAudit(config, client, identityClinet, compartment.Id, startDate, endDate, "", "");
            }
        }
コード例 #4
0
        public static void MonitoringResourceExample(ClientConfig config)
        {
            // create client
            var identityClient = new IdentityClient(config);

            var computeClient = new ComputeClient(config);

            var monitoringClient = new MonitoringClient(config);

            var listCompartmenRequest = new ListCompartmentRequest()
            {
                CompartmentId          = identityClient.Config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE,
                Limit = 10
            };
            // get compartment
            var listCompartment = identityClient.ListCompartment(listCompartmenRequest).Items;

            Console.WriteLine("* List Instance Metrics------------------------");
            foreach (var compartment in listCompartment)
            {
                if (!compartment.IsAccessible.HasValue || !compartment.IsAccessible.Value)
                {
                    continue;
                }
                var listInstanceRequest = new ListInstancesRequest()
                {
                    CompartmentId  = compartment.Id,
                    Limit          = 50,
                    LifecycleState = ListInstancesRequest.LifecycleStates.RUNNING,
                    SortOrder      = SortOrder.ASC
                };

                var now     = DateTime.UtcNow.AddHours(-2);
                var endTime = DateTime.UtcNow;
                // get instance
                var listInstance = computeClient.ListInstances(listInstanceRequest).Items;
                foreach (var instance in listInstance)
                {
                    Console.WriteLine($" |-{instance.DisplayName}------------");

                    // get all computeagent
                    var listMetricsRequest = new ListMetricsRequest()
                    {
                        CompartmentId          = compartment.Id,
                        CompartmentIdInSubtree = compartment.CompartmentId == config.TenancyId,
                        ListMetricsDetails     = new ListMetricsDetails()
                        {
                            Namespace        = "oci_computeagent",
                            DimensionFilters = new DimensionFilter()
                            {
                                ResourceId = instance.Id
                            }
                        }
                    };
                    // get Metrics
                    try
                    {
                        var listMetrics = monitoringClient.ListMetrics(listMetricsRequest).Items;
                        foreach (var metrics in listMetrics)
                        {
                            Console.WriteLine($"\t| Mertics: {metrics.Name}");
                            Console.WriteLine($"\t| NameSpace: {metrics.Namespace}");
                            // metric dimensions
                            //Console.WriteLine($"\t| {metrics.Dimensions}".Replace("\n", ""));

                            var summarizeMetricsDataRequest = new SummarizeMetricsDataRequest()
                            {
                                CompartmentId               = compartment.Id,
                                CompartmentIdInSubtree      = compartment.CompartmentId == config.TenancyId,
                                SummarizeMetricsDataDetails = new SummarizeMetricsDataDetails()
                                {
                                    Namespace = metrics.Namespace,
                                    Query     = metrics.Name + "[1h]{resourceId = \"" + instance.Id + "\"}.mean()",
                                    StartTime = now.ToString("yyyy-MM-ddThh:MM:ssZ"),
                                    EndTime   = endTime.ToString("yyyy-MM-ddThh:MM:ssZ")
                                }
                            };

                            var SummarizeMetricsDatas = monitoringClient.SummarizeMetricsData(summarizeMetricsDataRequest).Items;
                            foreach (var summaryData in SummarizeMetricsDatas)
                            {
                                foreach (var aggregatedDatapoint in summaryData.AggregatedDatapoints)
                                {
                                    Console.WriteLine("\t| {");
                                    Console.WriteLine($"\t| \tTimeStamp: {aggregatedDatapoint.Timestamp}");
                                    Console.WriteLine($"\t| \tValue: {aggregatedDatapoint.Value}");
                                    Console.WriteLine("\t| }");
                                }
                            }
                        }
                    }
                    catch (WebException we)
                    {
                        Console.WriteLine($"notfund:{we.Message}");
                    }
                }
            }
            Console.WriteLine("* List compartment Alarms------------------------");
            foreach (var compartment in listCompartment)
            {
                Console.WriteLine("  Alarm status------------------------");
                var listAlarmsStatusRequest = new ListAlarmsStatusRequest()
                {
                    CompartmentId = compartment.Id,
                    Limit         = 1000
                };
                var alarmStatus = monitoringClient.ListAlarmsStatus(listAlarmsStatusRequest);
                if (alarmStatus.Items.Count > 0)
                {
                    Console.WriteLine($" |-{compartment.Name}------------");

                    foreach (var alarm in alarmStatus.Items)
                    {
                        Console.WriteLine($"\tid:{alarm.Id}");
                        Console.WriteLine($"\tname:{alarm.DisplayName}");
                        Console.WriteLine($"\tstatus:{alarm.Status}");
                        Console.WriteLine($"\tseverity:{alarm.Severity}");
                    }
                }

                var listAlarmsRequest = new ListAlarmsRequest()
                {
                    CompartmentId = compartment.Id,
                    Limit         = 10
                };

                Console.WriteLine("  Alarm logs------------------------");
                var listAlarms = monitoringClient.ListAlarms(listAlarmsRequest);
                if (listAlarms.Items.Count > 0)
                {
                    Console.WriteLine($" |-{compartment.Name}------------");

                    foreach (var alarm in listAlarms.Items)
                    {
                        Console.WriteLine($"\tid:{alarm.Id}");
                        Console.WriteLine($"\tname:{alarm.DisplayName}");
                        Console.WriteLine($"\tdestinations:{alarm.Destinations}");
                        Console.WriteLine($"\tenable:{alarm.IsEnabled}");
                        Console.WriteLine($"\tstate:{alarm.LifecycleState}");

                        var getAlarmHistoryRequest = new GetAlarmHistoryRequest()
                        {
                            AlarmId = alarm.Id,
                            TimestampGreaterThanOrEqualTo = DateTime.UtcNow.ToString()
                        };
                        var history = monitoringClient.GetAlarmHistory(getAlarmHistoryRequest);
                        foreach (var his in history.AlarmHistoryCollection.Entries)
                        {
                            Console.WriteLine($"\t\t|-summary:{his.Summary}");
                            Console.WriteLine($"\t\t| timestamp:{his.Timestamp}");
                            Console.WriteLine($"\t\t| timestampTriggered:{his.TimestampTriggered}");
                        }
                    }
                }

                // Transactions Per Second (TPS) per-tenancy limit for this operation: 1.
                System.Threading.Thread.Sleep(1000);
            }
        }
コード例 #5
0
        static void Main(string[] args)
        {
            Console.WriteLine("+----------------------------------------+");
            Console.WriteLine("|                                        |");
            Console.WriteLine("|         OCISDK SessionExample          |");
            Console.WriteLine("|                                        |");
            Console.WriteLine("+----------------------------------------+");

            string configPath = ".oci/config";

            System.OperatingSystem os = System.Environment.OSVersion;
            // windows
            if (os.Platform == PlatformID.Win32NT)
            {
                string rootPath = Directory.GetDirectoryRoot(Directory.GetCurrentDirectory());
                configPath = $"{rootPath}/{configPath}";
                if (!Directory.Exists($"{rootPath}/.oci"))
                {
                    Directory.CreateDirectory($"{rootPath}/.oci");
                }
            }
            else
            {
                configPath = $"/home/user/{configPath}";
            }

            string     profile;
            ConfigFile configReader;

            if (File.Exists(configPath))
            {
                Console.Write("Connection ProfileName(Empty Input is DEFAULT): ");
                profile = Console.ReadLine();
                if (string.IsNullOrEmpty(profile))
                {
                    profile = "DEFAULT";
                }

                // load connection file
                configReader = ConfigFileReader.Parse(configPath, profile);
            }
            else
            {
                profile = "DEFAULT";

                // create connection file
                Console.WriteLine("Create connection settings to Oracle Cloud Infrastructure");

                Console.Write("TenancyId (Required): ");
                string tenancyId = OCIDInput();

                Console.Write("UserId (Required): ");
                string userId = OCIDInput();

                Console.Write("Fingerprint (Required): ");
                string fingerprint = KeyInput();

                Console.Write("PrivateKeyPath (Required): ");
                string privateKeyPath = KeyInput();

                Console.Write("PrivateKeyPassphrase: ");
                string privateKeyPassphrase = InputPassword();

                string testFileContentsMyProfile = $"[{profile}]\n" +
                                                   $"tenancy={tenancyId}\n" +
                                                   $"user={userId}\n" +
                                                   $"fingerprint={fingerprint}\n" +
                                                   $"key_file={privateKeyPath}\n" +
                                                   $"pass_phrase={privateKeyPassphrase}\n";

                File.WriteAllText(configPath, testFileContentsMyProfile);

                configReader = ConfigFileReader.Parse(configPath, profile);
            }

            // ClientConfig settings
            var         configSt = new ClientConfigStream();
            IOciSession session;

            using (var st = File.OpenText(configReader.Get("key_file")))
            {
                configSt = new ClientConfigStream
                {
                    TenancyId            = configReader.Get("tenancy"),
                    UserId               = configReader.Get("user"),
                    Fingerprint          = configReader.Get("fingerprint"),
                    PrivateKey           = st,
                    PrivateKeyPassphrase = configReader.Get("pass_phrase"),
                    AccountId            = configReader.Get("accountId"),
                    IdentityDomain       = configReader.Get("domain"),
                    UserName             = configReader.Get("user"),
                    Password             = configReader.Get("password"),
                    HomeRegion           = configReader.Get("home_region")
                };

                session = new OciSession(configSt);
            }

            var comClient = session.GetCommercialClient();
            var listPurchaseEntitlementsRequest = new ListPurchaseEntitlementsRequest
            {
                CompartmentId = configSt.TenancyId
            };
            var purchase = comClient.ListPurchaseEntitlements(listPurchaseEntitlementsRequest);

            var getServiceEntitlementRegistrationsRequest = new ListServiceEntitlementRegistrationsRequest()
            {
                CompartmentId = configSt.TenancyId
            };
            var services = comClient.ListServiceEntitlementRegistrations(getServiceEntitlementRegistrationsRequest);

            var costClient = session.GetUsageCostsClient();
            var getSubscriptionInfoRequest = new GetSubscriptionInfoRequest
            {
                TenancyId = configSt.TenancyId
            };
            var subsc = costClient.GetSubscriptionInfo(getSubscriptionInfoRequest);

            // get Client
            var identityClient = session.GetIdentityClient();

            var getTenancyRequest = new GetTenancyRequest()
            {
                TenancyId = configSt.TenancyId
            };
            var getTenacy = identityClient.GetTenancy(getTenancyRequest);

            Console.WriteLine($"tenantName: {getTenacy.Tenancy.Name}");

            // get compute
            var computeClient = session.GetComputeClient();

            IDictionary <string, IDictionary <string, string> > tags = new Dictionary <string, IDictionary <string, string> >();

            tags.Add("CostTracking", new Dictionary <string, string> {
                { "cost-trakcerA", "aaaa" }
            });

            var dbClient = session.GetDatabaseClient();
            GetDbSystemRequest getDbSystemRequest = new GetDbSystemRequest()
            {
                DbSystemId = "ocid1.dbsystem.oc1.iad.abuwcljrbukbjzlameegvsn3u7qb3qcqvtcdvl74jxfth7xjsya7cxkdpibq"
            };
            var dbSystem = dbClient.GetDbSystem(getDbSystemRequest);

            UpdateDbSystemRequest updateDbSystemRequest = new UpdateDbSystemRequest()
            {
                DbSystemId            = "ocid1.dbsystem.oc1.iad.abuwcljrbukbjzlameegvsn3u7qb3qcqvtcdvl74jxfth7xjsya7cxkdpibq",
                UpdateDbSystemDetails = new OCISDK.Core.Database.Model.UpdateDbSystemDetails()
                {
                    DefinedTags = tags
                }
            };

            dbClient.UpdateDbSystem(updateDbSystemRequest);

            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = getTenacy.Tenancy.Id,
                CompartmentIdInSubtree = true
            };
            var cmparts = identityClient.ListCompartment(listCompartmentRequest);

            foreach (var com in cmparts.Items)
            {
                Console.WriteLine($"compartmentName: {com.Name}");

                var listInstanceRequest = new ListInstancesRequest()
                {
                    CompartmentId = com.Id,
                    Limit         = 10,
                    SortOrder     = SortOrder.ASC
                };
                var instances = computeClient.ListInstances(listInstanceRequest);
                foreach (var ins in instances.Items)
                {
                    Console.WriteLine($"rootCompartmentInstanceName: {ins.DisplayName}");


                    var workReqestClient        = session.GetWorkRequestClient();
                    var listWorkRequestsRequest = new OCISDK.Core.Core.Request.WorkRequest.ListWorkRequestsRequest()
                    {
                        CompartmentId = ins.CompartmentId,
                        ResourceId    = ins.Id
                    };
                    var workreqs = workReqestClient.ListWorkRequests(listWorkRequestsRequest);
                    foreach (var wq in workreqs.Items)
                    {
                        Console.WriteLine($"\tWorkRequest: {wq.OperationType}, state:{wq.Status}");

                        var getWorkRequestRequest = new OCISDK.Core.Core.Request.WorkRequest.GetWorkRequestRequest()
                        {
                            WorkRequestId = wq.Id
                        };
                        var gw = workReqestClient.GetWorkRequest(getWorkRequestRequest);
                        Console.WriteLine($"\taccepted:{gw.WorkRequest.TimeAccepted}, finished:{gw.WorkRequest.TimeFinished}");

                        var listWorkRequestErrorsRequest = new OCISDK.Core.Core.Request.WorkRequest.ListWorkRequestErrorsRequest()
                        {
                            WorkRequestId = wq.Id,
                            Limit         = 100,
                            SortOrder     = SortOrder.ASC
                        };
                        var wqErrors = workReqestClient.ListWorkRequestErrors(listWorkRequestErrorsRequest);
                        foreach (var error in wqErrors.Items)
                        {
                            Console.WriteLine($"\tErrorCode: {error.Code}, ErrorMessage:{error.Message}, ErrorTimeStamp:{error.Timestamp}");
                        }

                        var listWorkRequestLogsRequest = new OCISDK.Core.Core.Request.WorkRequest.ListWorkRequestLogsRequest()
                        {
                            WorkRequestId = wq.Id,
                            Limit         = 100,
                            SortOrder     = SortOrder.ASC
                        };
                        var wqLogs = workReqestClient.ListWorkRequestLogs(listWorkRequestLogsRequest);
                        foreach (var log in wqLogs.Items)
                        {
                            Console.WriteLine($"\tLogMessage:{log.Message}, LogTimeStamp:{log.Timestamp}");
                        }
                    }
                }
            }

            Console.WriteLine("Exit with key press...");
            Console.ReadLine();
        }
コード例 #6
0
        public static void BlockStoragesConsoleDisplay(ClientConfig config)
        {
            // create client
            BlockstorageClient blockstorageClient = new BlockstorageClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            // get list BootVolumes
            IdentityClient identityClient = new IdentityClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };
            // get ADs
            ListAvailabilityDomainsRequest listADsRequest = new ListAvailabilityDomainsRequest()
            {
                CompartmentId = config.TenancyId
            };
            var ads = identityClient.ListAvailabilityDomains(listADsRequest);

            ads.Items.ForEach(ad => {
                Console.WriteLine("* List BootVolumes-------------------" + ad.Name);
                var listBootVolumesRequest = new ListBootVolumesRequest()
                {
                    // target compartment is root compartment(tenancy)
                    CompartmentId      = config.TenancyId,
                    AvailabilityDomain = ad.Name,
                    Limit = 10,
                };
                var listBV = blockstorageClient.ListBootVolumes(listBootVolumesRequest);
                listBV.Items.ForEach(bv =>
                {
                    Console.WriteLine(" |-" + bv.DisplayName);
                    Console.WriteLine(" | id: " + bv.Id);
                    Console.WriteLine(" | lifecycle: " + bv.LifecycleState);
                    Console.WriteLine(" | sizeInGBs: " + bv.SizeInGBs);
                    Console.WriteLine(" | VolumeGroupId: " + bv.VolumeGroupId);
                });

                Console.WriteLine("* List VolumeGroups-------------------" + ad.Name);
                var listVolumeGroupsRequest = new ListVolumeGroupsRequest()
                {
                    // target compartment is root compartment(tenancy)
                    CompartmentId      = config.TenancyId,
                    AvailabilityDomain = ad.Name,
                    Limit = 10,
                };
                var listVolGroups = blockstorageClient.ListVolumeGroups(listVolumeGroupsRequest);
                listVolGroups.Items.ForEach(vg =>
                {
                    Console.WriteLine(" |-" + vg.DisplayName);
                    Console.WriteLine(" | id: " + vg.Id);
                    Console.WriteLine(" | lifecycle: " + vg.LifecycleState);
                    Console.WriteLine(" | sizeInGBs: " + vg.SizeInGBs);
                });
            });

            ListCompartmentRequest listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var listCom = identityClient.ListCompartment(listCompartmentRequest);

            Console.WriteLine("* List BootVolumeBackup-------------------");
            listCom.Items.ForEach(com => {
                ListBootVolumeBackupsRequest listBootVolumeBackupsRequest = new ListBootVolumeBackupsRequest()
                {
                    CompartmentId = com.Id,
                    SortOrder     = SortOrder.ASC
                };
                var listBootVolumeBackup = blockstorageClient.ListBootVolumeBackups(listBootVolumeBackupsRequest);
                listBootVolumeBackup.Items.ForEach(bvB =>
                {
                    Console.WriteLine(" |-" + bvB.DisplayName);
                    Console.WriteLine(" | id: " + bvB.Id);
                    Console.WriteLine(" | lifecycle: " + bvB.LifecycleState);
                    Console.WriteLine(" | type: " + bvB.Type);
                });
            });

            Console.WriteLine("* List VolumeBackup-------------------");
            listCom.Items.ForEach(com => {
                ListVolumeBackupsRequest listVolumeBackupsRequest = new ListVolumeBackupsRequest()
                {
                    CompartmentId = com.Id
                };
                var listVolumeBackup = blockstorageClient.ListVolumeBackups(listVolumeBackupsRequest);
                listVolumeBackup.Items.ForEach(vB =>
                {
                    Console.WriteLine(" |-" + vB.DisplayName);
                    Console.WriteLine(" | id: " + vB.Id);
                    Console.WriteLine(" | lifecycle: " + vB.LifecycleState);
                    Console.WriteLine(" | type: " + vB.Type);
                });
            });

            Console.WriteLine("* List Volume-------------------");
            listCom.Items.ForEach(com => {
                ListVolumesRequest listVolumesRequest = new ListVolumesRequest()
                {
                    CompartmentId = com.Id
                };
                var listVolume = blockstorageClient.ListVolumes(listVolumesRequest);
                listVolume.Items.ForEach(vol =>
                {
                    Console.WriteLine(" |-" + vol.DisplayName);
                    Console.WriteLine(" | id: " + vol.Id);
                    Console.WriteLine(" | lifecycle: " + vol.LifecycleState);
                    Console.WriteLine(" | sizeInGBs: " + vol.SizeInGBs);

                    var getVolumeKmsKeyRequest = new GetVolumeKmsKeyRequest()
                    {
                        VolumeId = vol.Id
                    };
                    try
                    {
                        var kms = blockstorageClient.GetVolumeKmsKey(getVolumeKmsKeyRequest);
                        Console.WriteLine(" | kms: " + kms.VolumeKmsKey.KmsKeyId);
                    }
                    catch (WebException we)
                    {
                        if (we.Status.Equals(WebExceptionStatus.ProtocolError))
                        {
                            var code = ((HttpWebResponse)we.Response).StatusCode;
                            if (code != HttpStatusCode.NotFound)
                            {
                                throw we;
                            }
                        }
                    }
                });
            });

            Console.WriteLine("* List VolumeGroupBackUp-------------------");
            listCom.Items.ForEach(com => {
                var listVolumeGroupBackupsRequest = new ListVolumeGroupBackupsRequest()
                {
                    CompartmentId = com.Id
                };
                var listVolumeGroupB = blockstorageClient.ListVolumeGroupBackups(listVolumeGroupBackupsRequest);
                listVolumeGroupB.Items.ForEach(vol =>
                {
                    Console.WriteLine(" |-" + vol.DisplayName);
                    Console.WriteLine(" | id: " + vol.Id);
                    Console.WriteLine(" | lifecycle: " + vol.LifecycleState);
                    Console.WriteLine(" | sizeInGBs: " + vol.SizeInGBs);
                });
            });

            Console.WriteLine("* List VolumeBackUpPolicy-------------------");
            var listVolumeBackupPoliciesRequest = new ListVolumeBackupPoliciesRequest()
            {
                Limit = 10
            };
            var backupPolicies = blockstorageClient.ListVolumeBackupPolicies(listVolumeBackupPoliciesRequest);

            backupPolicies.Items.ForEach(policy =>
            {
                Console.WriteLine(" |-" + policy.DisplayName);
                Console.WriteLine(" | id: " + policy.Id);
                Console.WriteLine(" | timeCreated: " + policy.TimeCreated);
            });
        }
コード例 #7
0
        public static void DisplayBucketAndObject(ClientConfig config, string namespaceName, ObjectStorageClient client, IdentityClient identityClient)
        {
            // Compartment required only to get a bucket
            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClient.ListCompartment(listCompartmentRequest).Items;

            // root(tenant) add
            compartments.Add(new OCISDK.Core.Identity.Model.Compartment {
                Id = config.TenancyId, Name = "root"
            });

            foreach (var compartment in compartments)
            {
                Console.WriteLine($"## Compartment<{compartment.Name}>--------");

                // list bucket
                ListBucketsRequest listBucketsRequest = new ListBucketsRequest()
                {
                    NamespaceName = namespaceName,
                    CompartmentId = compartment.Id
                };
                var listBucket = client.ListBuckets(listBucketsRequest);
                Console.WriteLine($"* Bucket------------------------");
                Console.WriteLine($" namespace : {namespaceName}");
                Console.WriteLine($" comaprtment : {config.TenancyId}");

                listBucket.Items.ForEach(bucket =>
                {
                    HeadBucketRequest headBucketRequest = new HeadBucketRequest()
                    {
                        NamespaceName = bucket.Namespace,
                        BucketName    = bucket.Name
                    };
                    var buckethead = client.HeadBucket(headBucketRequest);

                    // get bucket details
                    GetBucketRequest getBucketRequest = new GetBucketRequest()
                    {
                        NamespaceName = bucket.Namespace,
                        BucketName    = bucket.Name,
                        IfMatch       = buckethead.ETag
                    };
                    var bucketDetail = client.GetBucket(getBucketRequest);
                    Console.WriteLine($"\t|- * name : {bucketDetail.Bucket.Name}");
                    Console.WriteLine($"\t|    timeCreated : {bucketDetail.Bucket.TimeCreated}");

                    // Bucket workrequests
                    ListWorkRequestsRequest listWorkRequestsRequest = new ListWorkRequestsRequest
                    {
                        CompartmentId = bucketDetail.Bucket.CompartmentId,
                        BucketName    = bucket.Name
                    };
                    var wrs = client.ListWorkRequests(listWorkRequestsRequest);
                    Console.WriteLine($"\t|* WorkRequest------------------------");
                    foreach (var wr in wrs.Items)
                    {
                        Console.WriteLine($"\t|\t|- name : {wr.OperationType}");
                        Console.WriteLine($"\t|\t|- status : {wr.Status}");
                        Console.WriteLine($"\t|\t|- start : {wr.TimeStarted}");
                        Console.WriteLine($"\t|\t|- finish : {wr.TimeFinished}");
                    }

                    // objects
                    Console.WriteLine($"\t|* Object------------------------");
                    ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
                    {
                        NamespaceName = bucketDetail.Bucket.Namespace,
                        BucketName    = bucketDetail.Bucket.Name,
                        Fields        = new List <string> {
                            "size", "timeCreated", "md5"
                        }
                    };
                    var Objs = client.ListObjects(listObjectsRequest);
                    Objs.ListObjects.Objects.ForEach(obj =>
                    {
                        Console.WriteLine($"\t|\t|- name : {obj.Name}");

                        GetObjectRequest getObjectRequest = new GetObjectRequest()
                        {
                            NamespaceName = bucketDetail.Bucket.Namespace,
                            BucketName    = bucketDetail.Bucket.Name,
                            ObjectName    = obj.Name,
                        };
                        var ObjDetails = client.GetObject(getObjectRequest);
                        Console.WriteLine($"\t|\t|- contentLength : {ObjDetails.ContentLength}");

                        // download

                        /*if (!Directory.Exists("./ExampleDownload"))
                         * {
                         *  Directory.CreateDirectory("./ExampleDownload");
                         * }
                         * if (!File.Exists($"./ExampleDownload/{obj.Name.Replace('/', '_')}"))
                         * {
                         *  client.DownloadObject(getObjectRequest, "./ExampleDownload/", obj.Name.Replace('/', '_'));
                         * }*/
                    });
                });
            }
        }
コード例 #8
0
        public static void Example(ClientConfig config)
        {
            ThreadSafeSigner threadSafeSigner = new ThreadSafeSigner(new OciSigner(config));
            var client = new ObjectStorageClient(config, threadSafeSigner)
            {
                Region = Regions.AP_TOKYO_1
            };

            var identityClient = new IdentityClient(config, threadSafeSigner)
            {
                Region = Regions.AP_TOKYO_1
            };

            var nameSpaceName = client.GetNamespace(new GetNamespaceRequest());

            // Compartment required only to get a bucket
            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };

            var compartments = identityClient.ListCompartment(listCompartmentRequest).Items;

            // root(tenant) add
            compartments.Add(new OCISDK.Core.Identity.Model.Compartment {
                Id = config.TenancyId, Name = "root"
            });

            foreach (var compartment in compartments)
            {
                ListBucketsRequest listBucketsRequest = new ListBucketsRequest
                {
                    NamespaceName = nameSpaceName,
                    CompartmentId = compartment.Id,
                    Limit         = 10
                };
                var bukcets = client.ListBuckets(listBucketsRequest);

                foreach (var bukcet in bukcets.Items)
                {
                    ObjectStorageDirectoryInfo directoryInfo = new ObjectStorageDirectoryInfo(client, nameSpaceName, bukcet.Name);

                    Console.WriteLine($"* {bukcet.Name}");

                    // top files
                    var files = directoryInfo.EnumerateFiles("*", System.IO.SearchOption.TopDirectoryOnly);
                    foreach (var file in files)
                    {
                        Console.WriteLine($"\t|- {file.Name}");
                    }

                    // top directories and files
                    var topDirs = directoryInfo.EnumerateDirectories("*", System.IO.SearchOption.TopDirectoryOnly);

                    foreach (var dir in topDirs)
                    {
                        Console.WriteLine($"\t|- {dir.Name}");
                        files = dir.EnumerateFiles("*", System.IO.SearchOption.TopDirectoryOnly);

                        foreach (var file in files)
                        {
                            Console.WriteLine($"\t|\t|- {file.Name}");
                        }

                        // sub directories and files
                        var subDirInfo = new ObjectStorageDirectoryInfo(client, nameSpaceName, bukcet.Name, dir.Name + "/");
                        var subDirs    = subDirInfo.EnumerateDirectories("*", System.IO.SearchOption.TopDirectoryOnly);

                        foreach (var sub in subDirs)
                        {
                            Console.WriteLine($"\t|\t|- {sub.Name}");
                            files = sub.EnumerateFiles("*", System.IO.SearchOption.TopDirectoryOnly);

                            foreach (var file in files)
                            {
                                Console.WriteLine($"\t|\t|\t|- {file.Name}");
                            }
                        }
                    }

                    foreach (var dir in topDirs)
                    {
                        // prefix directories
                        Console.WriteLine("TopDirectoryOnly prefix-----[" + dir.Name + "]");
                        var preDir   = new ObjectStorageDirectoryInfo(client, nameSpaceName, bukcet.Name, dir.Name);
                        var preFiles = preDir.EnumerateFiles("*", System.IO.SearchOption.TopDirectoryOnly);

                        foreach (var file in preFiles)
                        {
                            Console.WriteLine($"\t|- {file.FullName}");
                        }
                    }


                    foreach (var dir in topDirs)
                    {
                        // prefix directories
                        Console.WriteLine("AllDirectories prefix-----[" + dir.Name + "]");
                        var preDir   = new ObjectStorageDirectoryInfo(client, nameSpaceName, bukcet.Name, dir.Name);
                        var preFiles = preDir.EnumerateFiles("*", System.IO.SearchOption.AllDirectories);

                        foreach (var file in preFiles)
                        {
                            Console.WriteLine($"\t|- {file.FullName}");
                        }
                    }
                }
            }
        }
コード例 #9
0
        public static void ConsoleDisplay(ClientConfig config)
        {
            var identityClient = new IdentityClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            var lbClient = new LoadBalancerClient(config);

            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClient.ListCompartment(listCompartmentRequest).Items;

            Console.WriteLine("* LB Resources------------------------");
            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                Console.WriteLine($" Compartment<{com.Name}>--------");

                var listLoadBalancersRequest = new ListLoadBalancersRequest()
                {
                    CompartmentId = com.Id,
                    SortBy        = ListLoadBalancersRequest.SortByParam.DISPLAYNAME
                };
                Console.WriteLine("   LoadBalancer------");
                var loadbalancers = lbClient.ListLoadBalancers(listLoadBalancersRequest).Items;
                foreach (var lb in loadbalancers)
                {
                    var getLoadBalancerRequest = new GetLoadBalancerRequest()
                    {
                        LoadBalancerId = lb.Id
                    };
                    var lbDetail = lbClient.GetLoadBalancer(getLoadBalancerRequest).LoadBalancer;
                    Console.WriteLine($"\t|- displayName: {lbDetail.DisplayName}");
                    Console.WriteLine($"\t|  state: {lbDetail.LifecycleState}");
                    Console.WriteLine($"\t|  shape: {lbDetail.ShapeName}");
                    Console.WriteLine($"\t|  timeCreated: {lbDetail.TimeCreated}");
                    Console.WriteLine($"\t|  ipAddresses: {lbDetail.IpAddresses}");
                    Console.WriteLine($"\t|  private: {lbDetail.IsPrivate}");
                    Console.WriteLine($"\t|  listeners:");
                    foreach (var key in lbDetail.Listeners.Keys)
                    {
                        Console.WriteLine($"\t|   |-{key} : {lbDetail.Listeners[key].DefaultBackendSetName}");
                    }
                    Console.WriteLine($"\t|  rules:");
                    foreach (var key in lbDetail.RuleSets.Keys)
                    {
                        Console.WriteLine($"\t|   |-{lbDetail.RuleSets[key].Name}");
                        foreach (var rule in lbDetail.RuleSets[key].Items)
                        {
                            Console.WriteLine($"\t|   |   |-{rule.Action}");
                        }
                    }

                    Console.WriteLine($"\t|  workRequest:");
                    var listWorkRequestsRequest = new ListWorkRequestsRequest()
                    {
                        LoadBalancerId = lb.Id
                    };
                    var works = lbClient.ListWorkRequests(listWorkRequestsRequest).Items;
                    foreach (var work in works)
                    {
                        Console.WriteLine($"\t|   |-{work.Type}");
                        Console.WriteLine($"\t|   | {work.LifecycleState}");
                    }
                }

                Console.WriteLine("   LoadBalancerHealth------");
                var listLoadBalancerHealthsRequest = new ListLoadBalancerHealthsRequest()
                {
                    CompartmentId = com.Id
                };
                var lbHealths = lbClient.ListLoadBalancerHealths(listLoadBalancerHealthsRequest).Items;
                foreach (var health in lbHealths)
                {
                    var getLoadBalancerHealthRequest = new GetLoadBalancerHealthRequest()
                    {
                        LoadBalancerId = health.LoadBalancerId
                    };
                    var healthDetail = lbClient.GetLoadBalancerHealth(getLoadBalancerHealthRequest).LoadBalancerHealth;
                    Console.WriteLine($"\t|- criticalStateBackendSetNames:");
                    foreach (var name in healthDetail.CriticalStateBackendSetNames)
                    {
                        Console.WriteLine($"\t|    |-{name}");
                    }
                    Console.WriteLine($"\t|- unknownStateBackendSetNames:");
                    foreach (var name in healthDetail.UnknownStateBackendSetNames)
                    {
                        Console.WriteLine($"\t|    |-{name}");
                    }
                    Console.WriteLine($"\t|- warningStateBackendSetNames:");
                    foreach (var name in healthDetail.WarningStateBackendSetNames)
                    {
                        Console.WriteLine($"\t|    |-{name}");
                    }
                }

                Console.WriteLine("   LoadBalancerPolicy------");
                var listLoadBalancerPoliciesRequest = new ListLoadBalancerPoliciesRequest()
                {
                    CompartmentId = com.Id
                };
                var lbPolicies = lbClient.ListLoadBalancerPolicies(listLoadBalancerPoliciesRequest).Items;
                foreach (var policy in lbPolicies)
                {
                    Console.WriteLine($"\t|- name: {policy.Name}");
                }

                Console.WriteLine("   LoadBalancerProtocol------");
                var listLoadBalancerProtocolsRequest = new ListLoadBalancerProtocolsRequest()
                {
                    CompartmentId = com.Id
                };
                var lbProtocols = lbClient.ListLoadBalancerProtocols(listLoadBalancerProtocolsRequest).Items;
                foreach (var protocol in lbProtocols)
                {
                    Console.WriteLine($"\t|- name: {protocol.Name}");
                }

                Console.WriteLine("   LoadBalancerShape------");
                var listLoadBalancerShapesRequest = new ListLoadBalancerShapesRequest()
                {
                    CompartmentId = com.Id
                };
                var lbShapes = lbClient.ListLoadBalancerShapes(listLoadBalancerShapesRequest).Items;
                foreach (var shape in lbShapes)
                {
                    Console.WriteLine($"\t|- name: {shape.Name}");
                }
            }
        }
コード例 #10
0
        public static void DNSConsoleDisplay(ClientConfig config)
        {
            var identityClient = new IdentityClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            var dnsClient = new DNSClient(config);

            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClient.ListCompartment(listCompartmentRequest).Items;

            Console.WriteLine("* DNS SteeringPolicy------------------------");
            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                Console.WriteLine($" Compartment<{com.Name}>--------");

                var listSteeringPoliciesRequest = new ListSteeringPoliciesRequest()
                {
                    CompartmentId = com.Id,
                    SortBy        = ListSteeringPoliciesRequest.SortByParam.DisplayName
                };
                var steeringPolicies = dnsClient.ListSteeringPolicies(listSteeringPoliciesRequest).Items;
                foreach (var sp in steeringPolicies)
                {
                    var getSteeringPolicyRequest = new GetSteeringPolicyRequest()
                    {
                        SteeringPolicyId = sp.Id
                    };
                    var steeringPolicy = dnsClient.GetSteeringPolicy(getSteeringPolicyRequest).SteeringPolicy;
                    Console.WriteLine($"\t|- displayName: {steeringPolicy.DisplayName}");
                    Console.WriteLine($"\t|  state: {steeringPolicy.LifecycleState}");
                    Console.WriteLine($"\t|  timeCreated: {steeringPolicy.TimeCreated}");
                    Console.WriteLine($"\t|  rule: {steeringPolicy.Rules.Count}");
                    foreach (var rule in steeringPolicy.Rules)
                    {
                        Console.WriteLine($"\t|  | type: {rule.RuleType}");
                    }
                    Console.WriteLine($"\t|  Answer: {steeringPolicy.Answers.Count}");
                    foreach (var answer in steeringPolicy.Answers)
                    {
                        Console.WriteLine($"\t|  | name: {answer.Name}");
                        Console.WriteLine($"\t|  | pool: {answer.Pool}");
                        Console.WriteLine($"\t|  | rtype: {answer.Rtype}");
                        Console.WriteLine($"\t|  | rdata: {answer.Rdata}");
                    }

                    var listSteeringPolicyAttachmentsRequest = new ListSteeringPolicyAttachmentsRequest()
                    {
                        SteeringPolicyId = sp.Id,
                        CompartmentId    = com.Id
                    };
                    var steeringPolicyAttachments = dnsClient.ListSteeringPolicyAttachments(listSteeringPolicyAttachmentsRequest).Items;
                    if (steeringPolicyAttachments.Count > 0)
                    {
                        Console.WriteLine($"\t|  Attach: {steeringPolicyAttachments.Count}");
                        foreach (var attach in steeringPolicyAttachments)
                        {
                            Console.WriteLine($"\t|  | state: {attach.LifecycleState}");
                            Console.WriteLine($"\t|  | rtype: {attach.Rtypes}");
                            Console.WriteLine($"\t|  | self: {attach.Self}");
                            Console.WriteLine($"\t|  | timeCreated: {attach.TimeCreated}");
                            Console.WriteLine($"\t|  | zoneId: {attach.ZoneId}");
                        }
                    }
                }
            }

            Console.WriteLine("* DNS Zone------------------------");
            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                Console.WriteLine($" Compartment<{com.Name}>--------");

                var listZonesRequest = new ListZonesRequest()
                {
                    CompartmentId = com.Id,
                    SortBy        = ListZonesRequest.SortByParam.Name
                };
                var zones = dnsClient.ListZones(listZonesRequest).Items;

                foreach (var zone in zones)
                {
                    var getZoneRequest = new GetZoneRequest()
                    {
                        CompartmentId = com.Id,
                        ZoneNameOrId  = zone.Id
                    };
                    var zoneDetails = dnsClient.GetZone(getZoneRequest).Zone;

                    Console.WriteLine($"\t|- name: {zone.Name}");
                    Console.WriteLine($"\t|  version: {zone.Version}");
                    Console.WriteLine($"\t|  state: {zone.LifecycleState}");
                    Console.WriteLine($"\t|  timeCreated: {zone.TimeCreated}");
                    Console.WriteLine($"\t|  type: {zone.ZoneType}");
                    Console.WriteLine($"\t|  self: {zone.Self}");
                    Console.WriteLine($"\t|  serial: {zone.Serial}");
                    Console.WriteLine($"\t|  nameservers:");
                    if (zoneDetails.Nameservers != null)
                    {
                        zoneDetails.Nameservers.ForEach(n => {
                            Console.WriteLine($"\t|  |- {n.Hostname}");
                        });
                    }
                    Console.WriteLine($"\t|  externalMasters:");
                    if (zoneDetails.ExternalMasters != null)
                    {
                        zoneDetails.ExternalMasters.ForEach(e => {
                            Console.Write($"\t|  |- {e.Addres}");
                        });
                    }

                    var getZoneRecordsRequest = new GetZoneRecordsRequest()
                    {
                        ZoneNameOrId  = zone.Id,
                        CompartmentId = com.Id
                    };
                    var zrecordRes = dnsClient.GetZoneRecords(getZoneRecordsRequest);
                    var zrecords   = zrecordRes.RecordCollection.Items;

                    Console.WriteLine($"\t|  zone records");
                    foreach (var zr in zrecords)
                    {
                        Console.WriteLine($"\t|  |- domain: {zr.Domain}");
                        Console.WriteLine($"\t|  |  rrsetVersion: {zr.RrsetVersion}");
                        Console.WriteLine($"\t|  |  rtype: {zr.Rtype}");
                        Console.WriteLine($"\t|  |  rdata: {zr.Rdata}");

                        var getDomainRecordsRequest = new GetDomainRecordsRequest()
                        {
                            ZoneNameOrId  = zone.Id,
                            Domain        = zr.Domain,
                            CompartmentId = com.Id
                        };

                        var drecords = dnsClient.GetDomainRecords(getDomainRecordsRequest).RecordCollection.Items;

                        Console.WriteLine($"\t|  |- domain records");
                        foreach (var dr in drecords)
                        {
                            Console.WriteLine($"\t|  |  |- domain: {dr.Domain}");
                        }

                        var getRRSetRequest = new GetRRSetRequest()
                        {
                            ZoneNameOrId  = zone.Id,
                            Domain        = zr.Domain,
                            Rtype         = zr.Rtype,
                            CompartmentId = com.Id
                        };

                        var rrsets = dnsClient.GetRRSet(getRRSetRequest).RRSet.Items;
                        Console.WriteLine($"\t|  |- rrset");
                        foreach (var rrset in rrsets)
                        {
                            Console.WriteLine($"\t|  |  |- rdata: {rrset.Rdata}");
                            Console.WriteLine($"\t|  |  |  ttl: {rrset.Ttl}");
                            Console.WriteLine($"\t|  |  |  rrsetVersion: {rrset.RrsetVersion}");
                        }
                    }
                }
            }
        }
コード例 #11
0
        public static void AuditDisplay(ClientConfig config)
        {
            ThreadSafeSigner threadSafeSigner = new ThreadSafeSigner(new OciSigner(config));
            // create client
            IdentityClient identityClinet = new IdentityClient(config, threadSafeSigner)
            {
                Region = Regions.US_ASHBURN_1
            };

            var executeStart = DateTime.Now;

            var listRegionSubscriptionsRequest = new ListRegionSubscriptionsRequest()
            {
                TenancyId = config.TenancyId
            };
            var regions = identityClinet.ListRegionSubscriptions(listRegionSubscriptionsRequest).Items.Where(r => r.Status.Equals("READY"));

            // get compartment
            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClinet.ListCompartment(listCompartmentRequest).Items;

            // get Audit Events
            Console.WriteLine("* Audit Events-------------------");

            var acquisitionMaxRange = 12;

            // 長時間化を見込んで時間を分割しながら取得する
            var endDate   = new DateTime(2020, 3, 11);
            var startDate = new DateTime(2020, 3, 9);
            var client    = new AuditClientAsync(config, threadSafeSigner);
            var option    = client.GetRestOption();

            option.TimeoutSeconds = 200;
            client.SetRestOption(option);

            foreach (var region in regions)
            {
                client.SetRegion(region.RegionName);

                while (startDate < endDate)
                {
                    var valiableDay = startDate.AddDays(1);

                    var  start    = startDate;
                    bool finished = false;
                    while (!finished)
                    {
                        var progressEndDate = start.AddHours(acquisitionMaxRange);
                        if (progressEndDate > valiableDay)
                        {
                            progressEndDate = valiableDay;
                            finished        = true;
                        }

                        if (start == progressEndDate)
                        {
                            continue;
                        }

                        foreach (var compartment in compartments)
                        {
                            if (!compartment.LifecycleState.Equals("ACTIVE", StringComparison.OrdinalIgnoreCase))
                            {
                                continue;
                            }
                            Console.WriteLine($"region:{region.RegionName}, compartment:{compartment.Name}");
                            AddTasks(DisplayAudit(client, identityClinet, compartment, start.ToString("yyyy-MM-ddTHH:mm:ssZ"), progressEndDate.ToString("yyyy-MM-ddTHH:mm:ssZ")));
                        }
                        start = progressEndDate;
                    }

                    ExecuteTasks();

                    startDate = valiableDay;
                }
            }
            ExecuteTasks();

            Console.WriteLine($"Count:{Count}");

            var executeEnd = DateTime.Now;

            var saDate = executeEnd - executeStart;

            Console.WriteLine($"{saDate.Hours}:{saDate.Minutes}:{saDate.Seconds}");

            Console.WriteLine("******************************************");
            Console.WriteLine("******** All Audit Task Completed ********");
            Console.WriteLine("******************************************");
        }
コード例 #12
0
        public static void ResourcesExample(ClientConfig config)
        {
            var client = new NotificationClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            var identityClient = new IdentityClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClient.ListCompartment(listCompartmentRequest).Items;

            Console.WriteLine("* Notification Topics------------------------");
            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                Console.WriteLine($" Compartment<{com.Name}>--------");

                var listTopicsRequest = new ListTopicsRequest()
                {
                    CompartmentId = com.Id,
                    Limit         = 10
                };

                var topics = client.ListTopics(listTopicsRequest);

                foreach (var topic in topics.Items)
                {
                    Console.WriteLine($"\t|- Name:{topic.Name}");
                    Console.WriteLine($"\t|- Description:{topic.Description}");
                    Console.WriteLine($"\t|- LifecycleState:{topic.LifecycleState}");
                    Console.WriteLine($"\t|- TimeCreated:{topic.TimeCreated}");
                }
            }

            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                Console.WriteLine($" Compartment<{com.Name}>--------");

                var listSubscriptionsRequest = new ListSubscriptionsRequest()
                {
                    CompartmentId = com.Id,
                    Limit         = 10
                };
                var subscriptions = client.ListSubscriptions(listSubscriptionsRequest);

                foreach (var subscription in subscriptions.Items)
                {
                    Console.WriteLine($"\t|- protocol:{subscription.Protocol}");
                    Console.WriteLine($"\t|- policy:{subscription.DeliverPolicy}");
                    Console.WriteLine($"\t|- LifecycleState:{subscription.LifecycleState}");
                    Console.WriteLine($"\t|- CreatedTime:{subscription.CreatedTime}");
                }
            }
        }
コード例 #13
0
        public static void DatabaseConsoleDisplay(ClientConfig config)
        {
            var identityClient = new IdentityClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            var databaseClient = new DatabaseClient(config);

            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClient.ListCompartment(listCompartmentRequest).Items;

            Console.WriteLine("* Database------------------------");
            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }
                var listDbHomesRequest = new ListDbHomesRequest()
                {
                    CompartmentId = com.Id,
                };
                var dbHomes = databaseClient.ListDbHomes(listDbHomesRequest).Items;

                foreach (var home in dbHomes)
                {
                    Console.WriteLine($" DatabaseHome: {home.DisplayName}");
                    var listDatabasesRequest = new ListDatabasesRequest()
                    {
                        CompartmentId = com.Id,
                        DbHomeId      = home.Id
                    };
                    var databases = databaseClient.ListDatabases(listDatabasesRequest).Items;

                    foreach (var database in databases)
                    {
                        Console.WriteLine($"\t|- name: {database.DbName}");
                        Console.WriteLine($"\t|  state: {database.LifecycleState}");
                        Console.WriteLine($"\t|  lifecycle: {database.LifecycleDetails}");
                        Console.WriteLine($"\t|  time: {database.TimeCreated}");
                    }
                }
            }

            Console.WriteLine("* DatabaseShapes------------------------");
            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                var listDbSystemShapesRequest = new ListDbSystemShapesRequest()
                {
                    CompartmentId = com.Id
                };
                var dbShapes = databaseClient.ListDbSystemShapes(listDbSystemShapesRequest).Items;

                foreach (var shape in dbShapes)
                {
                    Console.WriteLine($"\t|- name: {shape.Name}");
                    Console.WriteLine($"\t|  shape: {shape.Shape}");
                    Console.WriteLine($"\t|  shapeFamily: {shape.ShapeFamily}");
                    Console.WriteLine($"\t|  availableCoreCount: {shape.AvailableCoreCount}");
                    Console.WriteLine($"\t|  coreCountIncrement: {shape.CoreCountIncrement}");
                    Console.WriteLine($"\t|  maximumNodeCount: {shape.MaximumNodeCount}");
                    Console.WriteLine($"\t|  minimumCoreCount: {shape.MinimumCoreCount}");
                    Console.WriteLine($"\t|  minimumNodeCount: {shape.MinimumNodeCount}");
                }
            }

            Console.WriteLine("* DatabaseVersions------------------------");
            foreach (var com in compartments)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                var listDbVersionsRequest = new ListDbVersionsRequest()
                {
                    CompartmentId = com.Id
                };
                var dbVersions = databaseClient.ListDbVersions(listDbVersionsRequest).Items;

                foreach (var version in dbVersions)
                {
                    Console.WriteLine($"\t|- version: {version.Version}");
                    Console.WriteLine($"\t|  supportsPdb: {version.SupportsPdb}");
                    Console.WriteLine($"\t|  isLatestForMajorVersion: {version.IsLatestForMajorVersion}");
                }
            }
        }
コード例 #14
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("+----------------------------------------+");
            Console.WriteLine("|                                        |");
            Console.WriteLine("|       OCISDK SessionAsyncExample       |");
            Console.WriteLine("|                                        |");
            Console.WriteLine("+----------------------------------------+");

            string configPath = ".oci/config";

            System.OperatingSystem os = System.Environment.OSVersion;
            // windows
            if (os.Platform == PlatformID.Win32NT)
            {
                string rootPath = Directory.GetDirectoryRoot(Directory.GetCurrentDirectory());
                configPath = $"{rootPath}/{configPath}";
                if (!Directory.Exists($"{rootPath}/.oci"))
                {
                    Directory.CreateDirectory($"{rootPath}/.oci");
                }
            }
            else
            {
                configPath = $"/home/user/{configPath}";
            }

            string     profile;
            ConfigFile configReader;

            if (File.Exists(configPath))
            {
                Console.Write("Connection ProfileName(Empty Input is DEFAULT): ");
                profile = Console.ReadLine();
                if (string.IsNullOrEmpty(profile))
                {
                    profile = "DEFAULT";
                }

                // load connection file
                configReader = ConfigFileReader.Parse(configPath, profile);
            }
            else
            {
                profile = "DEFAULT";

                // create connection file
                Console.WriteLine("Create connection settings to Oracle Cloud Infrastructure");

                Console.Write("TenancyId (Required): ");
                string tenancyId = OCIDInput();

                Console.Write("UserId (Required): ");
                string userId = OCIDInput();

                Console.Write("Fingerprint (Required): ");
                string fingerprint = KeyInput();

                Console.Write("PrivateKeyPath (Required): ");
                string privateKeyPath = KeyInput();

                Console.Write("PrivateKeyPassphrase: ");
                string privateKeyPassphrase = InputPassword();

                string testFileContentsMyProfile = $"[{profile}]\n" +
                                                   $"tenancy={tenancyId}\n" +
                                                   $"user={userId}\n" +
                                                   $"fingerprint={fingerprint}\n" +
                                                   $"key_file={privateKeyPath}\n" +
                                                   $"pass_phrase={privateKeyPassphrase}\n";

                File.WriteAllText(configPath, testFileContentsMyProfile);

                configReader = ConfigFileReader.Parse(configPath, profile);
            }

            // ClientConfig settings
            var         configSt = new ClientConfigStream();
            IOciSession session;
            var         stt = File.ReadAllText(configReader.Get("key_file"));


            using (var st = File.OpenText(configReader.Get("key_file")))
            {
                configSt = new ClientConfigStream
                {
                    TenancyId            = configReader.Get("tenancy"),
                    UserId               = configReader.Get("user"),
                    Fingerprint          = configReader.Get("fingerprint"),
                    PrivateKey           = st,
                    PrivateKeyPassphrase = configReader.Get("pass_phrase"),
                    AccountId            = configReader.Get("accountId"),
                    DomainName           = configReader.Get("domain_name"),
                    IdentityDomain       = configReader.Get("identity_domain"),
                    UserName             = configReader.Get("user_name"),
                    Password             = configReader.Get("password"),
                    HomeRegion           = configReader.Get("home_region")
                };

                session = new OciSession(configSt);
            }

            // get Client
            var identityClientAsync       = session.GetIdentityClientAsync();
            var computeClientAsync        = session.GetComputeClientAsync();
            var virtualNetworkClientAsync = session.GetVirtualNetworkClientAsync();

            // get tenant
            var getTenancyRequest = new GetTenancyRequest()
            {
                TenancyId = configSt.TenancyId
            };
            var getTenacy = await identityClientAsync.GetTenancy(getTenancyRequest);

            Console.WriteLine($"tenantName: {getTenacy.Tenancy.Name}");

            // get compartments
            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = configSt.TenancyId,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE,
                CompartmentIdInSubtree = true
            };
            var compartments = await identityClientAsync.ListCompartment(listCompartmentRequest);

            // loop get compartments async
            var infoTasks = new List <Task>();

            foreach (var com in compartments.Items)
            {
                if (com.LifecycleState != "ACTIVE")
                {
                    continue;
                }

                infoTasks.Add(LoadCompartmentDetail(com, identityClientAsync));
                infoTasks.Add(LoadInstances(com, computeClientAsync));
                infoTasks.Add(LoadVcn(com, virtualNetworkClientAsync));
            }

            await Task.WhenAll(infoTasks);

            Console.WriteLine();
            Console.WriteLine("Exit with key press...");
            Console.ReadLine();
        }
コード例 #15
0
        public static void CompartmentConsoleDisplay(ClientConfig config)
        {
            IdentityClient identityClient = new IdentityClient(config)
            {
                Region = config.HomeRegion
            };

            Console.WriteLine("* GetTenacy------------------------");
            GetTenancyRequest getTenancyRequest = new GetTenancyRequest()
            {
                TenancyId = identityClient.Config.TenancyId
            };
            var getTenacy = identityClient.GetTenancy(getTenancyRequest);

            Console.WriteLine(" name:" + getTenacy.Tenancy.Name + ",");
            Console.WriteLine(" id:" + getTenacy.Tenancy.Id + ",");
            Console.WriteLine(" description:" + getTenacy.Tenancy.Description + ",");
            Console.WriteLine(" homeregion:" + config.GetRegionName(getTenacy.Tenancy.HomeRegionKey) + ",");
            // tagNamespaces get in tetancy(root compartment)
            Console.WriteLine(" tagNamespaces:");
            var listTagNamespacesRequest = new ListTagNamespacesRequest()
            {
                CompartmentId = getTenacy.Tenancy.Id,
                Limit         = 50
            };
            var listTagNs = identityClient.ListTagNamespaces(listTagNamespacesRequest);

            listTagNs.Items.ForEach(tagNs => {
                Console.WriteLine("\t|- name: " + tagNs.Name);
                Console.WriteLine("\t|  id: " + tagNs.Id);
                Console.WriteLine("\t|  description: " + tagNs.Description);
                //tag list
                var listTagsRequest = new ListTagsRequest()
                {
                    TagNamespaceId = tagNs.Id,
                    Limit          = 50
                };
                var listTags = identityClient.ListTags(listTagsRequest);
                listTags.Items.ForEach(tag => {
                    Console.WriteLine("\t|\t|- * " + tag.Name);
                    Console.WriteLine("\t|\t| id: " + tag.Id);
                    Console.WriteLine("\t|\t| costTracking: " + tag.IsCostTracking);
                });
            });

            // tagDefaults get in tetancy(root compartment)
            Console.WriteLine(" tagDefaults:");
            var listTagsDefaultRequest = new ListTagDefaultsRequest()
            {
                CompartmentId = getTenacy.Tenancy.Id,
                Limit         = 50
            };
            var listDefaultTags = identityClient.ListTagDefaults(listTagsDefaultRequest);

            listDefaultTags.Items.ForEach(tag => {
                Console.WriteLine("\t|- DefaultTags");
                Console.WriteLine("\t|  id: " + tag.Id);
                Console.WriteLine("\t|  tagDefinitionName: " + tag.TagDefinitionName);
                Console.WriteLine("\t|  tagNamespaceId: " + tag.TagNamespaceId);
                Console.WriteLine("\t|  tagDefinitionId: " + tag.TagDefinitionId);
                Console.WriteLine("\t|  lifecycleState: " + tag.LifecycleState);
            });

            var listCostTrackingTagsRequest = new ListCostTrackingTagsRequest()
            {
                CompartmentId = getTenacy.Tenancy.Id,
                Limit         = 100
            };
            var listCostTrackingTags = identityClient.ListCostTrackingTags(listCostTrackingTagsRequest);

            listCostTrackingTags.Items.ForEach(tag => {
                Console.WriteLine("\t|- CostTackingTags");
                Console.WriteLine("\t|  id: " + tag.Id);
                Console.WriteLine("\t|  isCostTracking: " + tag.IsCostTracking);
                Console.WriteLine("\t|  tagNamespaceId: " + tag.TagNamespaceId);
                Console.WriteLine("\t|  tagNamespaceName: " + tag.TagNamespaceName);
                Console.WriteLine("\t|  name: " + tag.Name);
            });

            Console.WriteLine();
            Console.WriteLine("* ListRegions------------------------");
            var listRegion = identityClient.ListRegions();

            listRegion.Items.ForEach(r => {
                Console.WriteLine("\tname: " + r.Name);
                Console.WriteLine("\tkey: " + r.Key);
            });

            Console.WriteLine("* ListRegionsSubscriptions------------------------");
            var listRegionSubscriptionsRequest = new ListRegionSubscriptionsRequest()
            {
                TenancyId = getTenacy.Tenancy.Id,
            };
            var listRegionSubscriptions = identityClient.ListRegionSubscriptions(listRegionSubscriptionsRequest);

            listRegionSubscriptions.Items.ForEach(r => {
                Console.WriteLine("\tname: " + r.RegionKey);
                Console.WriteLine("\tkey: " + r.RegionName);
                Console.WriteLine("\tstatus: " + r.Status);
                Console.WriteLine("\thome: " + r.IsHomeRegion);
            });

            Console.WriteLine();
            Console.WriteLine("* ListAvailabilityDomain------------------------");
            var listAvailabilityDomainRequest = new ListAvailabilityDomainsRequest()
            {
                CompartmentId = getTenacy.Tenancy.Id
            };
            var listAD = identityClient.ListAvailabilityDomains(listAvailabilityDomainRequest);

            listAD.Items.ForEach(ad => {
                Console.WriteLine("\tname: " + ad.Name);
                Console.WriteLine("\tid: " + ad.Id);
            });

            Console.WriteLine();
            Console.WriteLine("* ListCompartment------------------------");
            var listCompartmenRequest = new ListCompartmentRequest()
            {
                CompartmentId          = getTenacy.Tenancy.Id,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE,
                Limit = 10
            };
            var listCompartment = identityClient.ListCompartment(listCompartmenRequest);

            listCompartment.Items.ForEach(comp => {
                // compartment detail get
                var getCompartmentRequest = new GetCompartmentRequest()
                {
                    CompartmentId = comp.Id
                };
                var getCompartment = identityClient.GetCompartment(getCompartmentRequest);
                Console.WriteLine("\t|- name: " + getCompartment.Compartment.Name);
                Console.WriteLine("\t|\t id: " + getCompartment.Compartment.Id);
                Console.WriteLine("\t|\t lifecycleState: " + getCompartment.Compartment.LifecycleState);
                Console.WriteLine("\t|\t timeCreated: " + getCompartment.Compartment.TimeCreated);
                Console.WriteLine("\t|\t inactiveStatus: " + getCompartment.Compartment.InactiveStatus);
                var path = GetCompartmetPath(identityClient, getCompartment.Compartment.Id);
                Console.WriteLine("\t|\t path: " + path);
                getCompartmentRequest = new GetCompartmentRequest()
                {
                    CompartmentId = getCompartment.Compartment.CompartmentId
                };
                getCompartment = identityClient.GetCompartment(getCompartmentRequest);
                Console.WriteLine("\t|\t parent: " + getCompartment.Compartment.Name);

                // tagNamespaces get in compartment
                Console.WriteLine("\t|\t tgaNamespaces:");
                listTagNamespacesRequest = new ListTagNamespacesRequest()
                {
                    CompartmentId = comp.Id,
                    Limit         = 50
                };
                listTagNs = identityClient.ListTagNamespaces(listTagNamespacesRequest);
                listTagNs.Items.ForEach(tagNs => {
                    Console.WriteLine("\t|\t |- name: " + tagNs.Name);
                    Console.WriteLine("\t|\t |  id: " + tagNs.Id);
                    Console.WriteLine("\t|\t |  description: " + tagNs.Description);
                    Console.WriteLine("\t|\t |  timeCreated: " + tagNs.TimeCreated);
                });
            });
        }
コード例 #16
0
        private static void VirtualNetworkConsoleDisplay(ClientConfig config)
        {
            // create client
            VirtualNetworkClient client = new VirtualNetworkClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            Console.WriteLine("* List VCN------------------------");
            var listVcnRequest = new ListVcnRequest()
            {
                // target compartment is root compartment(tenancy)
                CompartmentId = config.TenancyId,
                Limit         = 50,
                SortOrder     = SortOrder.ASC
            };
            // get vcns
            var listVcn = client.ListVcn(listVcnRequest);

            listVcn.Items.ForEach(vcn =>
            {
                Console.WriteLine(" |-" + vcn.DisplayName);
                Console.WriteLine(" | " + vcn.Id);

                // get dhcps in vcn
                var listDhcpRequest = new ListDhcpOptionsRequest()
                {
                    // target is same compartment and VCN
                    CompartmentId = vcn.CompartmentId,
                    VcnId         = vcn.Id,
                    Limit         = 50,
                    SortOrder     = SortOrder.ASC
                };
                var listDhcp = client.ListDhcpOptions(listDhcpRequest);
                listDhcp.Items.ForEach(dhcp =>
                {
                    Console.WriteLine(" |\t|- * DHCP");
                    Console.WriteLine(" |\t|\t" + dhcp.DisplayName);
                    Console.WriteLine(" |\t|\t" + dhcp.Id);
                });

                // get RouteTable in vcn
                var listRouteTableRequest = new ListRouteTableRequest()
                {
                    // target is same compartment and VCN
                    CompartmentId = vcn.CompartmentId,
                    VcnId         = vcn.Id,
                    Limit         = 50,
                    SortOrder     = SortOrder.ASC
                };
                var listRouteTable = client.ListRouteTableOptions(listRouteTableRequest);
                listRouteTable.Items.ForEach(rt =>
                {
                    Console.WriteLine(" |\t|- * RouteTable");
                    Console.WriteLine(" |\t|\t" + rt.DisplayName);
                    Console.WriteLine(" |\t|\t" + rt.Id);

                    // RouteRules
                    rt.RouteRules.ForEach(rr =>
                    {
                        if (!string.IsNullOrEmpty(rr.DestinationType))
                        {
                            Console.WriteLine(" |\t|\t|- DestinationType:" + rr.DestinationType);
                        }
                        if (!string.IsNullOrEmpty(rr.CidrBlock))
                        {
                            Console.WriteLine(" |\t|\t|\tCidrBlock:" + rr.CidrBlock);
                        }
                        if (!string.IsNullOrEmpty(rr.Destination))
                        {
                            Console.WriteLine(" |\t|\t|\tDestination:" + rr.Destination);
                        }
                        if (!string.IsNullOrEmpty(rr.NetworkEntityId))
                        {
                            Console.WriteLine(" |\t|\t|\tNetworkEntityId:" + rr.NetworkEntityId);
                        }
                    });
                });

                // get RouteTable in vcn
                var listSecurityListRequest = new ListSecurityListsRequest()
                {
                    // target is same compartment and VCN
                    CompartmentId = vcn.CompartmentId,
                    VcnId         = vcn.Id,
                    Limit         = 50,
                    SortOrder     = SortOrder.ASC
                };
                var listSecurityList = client.ListSecurityLists(listSecurityListRequest);
                listSecurityList.Items.ForEach(sl =>
                {
                    Console.WriteLine(" |\t|- * SecurityList");
                    Console.WriteLine(" |\t|\t" + sl.DisplayName);
                    Console.WriteLine(" |\t|\t" + sl.Id);
                    Console.WriteLine(" |\t|\t" + sl.LifecycleState);
                });

                // get Subnet in vcn
                var listSubnetRequest = new ListSubnetsRequest()
                {
                    // target is same compartment and VCN
                    CompartmentId = vcn.CompartmentId,
                    VcnId         = vcn.Id,
                    Limit         = 50,
                    SortOrder     = SortOrder.ASC
                };
                var listSubnet = client.ListSubnets(listSubnetRequest);
                listSubnet.Items.ForEach(sl =>
                {
                    Console.WriteLine(" |\t|- * Subnet");
                    Console.WriteLine(" |\t|\t" + sl.DisplayName);
                    Console.WriteLine(" |\t|\t" + sl.Id);
                    Console.WriteLine(" |\t|\t" + sl.LifecycleState);
                });

                // get InternetGateway in vcn
                var listIGRequest = new ListInternetGatewaysRequest()
                {
                    // target is same compartment and VCN
                    CompartmentId = vcn.CompartmentId,
                    VcnId         = vcn.Id,
                    Limit         = 50,
                    SortOrder     = SortOrder.ASC
                };
                var listIG = client.ListInternetGateways(listIGRequest);
                listDhcp.Items.ForEach(ig =>
                {
                    Console.WriteLine(" |\t|- * InternetGateway");
                    Console.WriteLine(" |\t|\t" + ig.DisplayName);
                    Console.WriteLine(" |\t|\t" + ig.Id);
                });
            });

            Console.WriteLine("* List DRG------------------------");

            var identityClient = new IdentityClient(config)
            {
                Region = Regions.US_ASHBURN_1
            };

            var listCompartmentRequest = new ListCompartmentRequest()
            {
                CompartmentId          = config.TenancyId,
                CompartmentIdInSubtree = true,
                AccessLevel            = ListCompartmentRequest.AccessLevels.ACCESSIBLE
            };
            var compartments = identityClient.ListCompartment(listCompartmentRequest).Items;

            foreach (var com in compartments)
            {
                var listDrgsRequest = new ListDrgsRequest()
                {
                    CompartmentId = com.Id
                };
                var drgs = client.ListDrgs(listDrgsRequest).Items;
                foreach (var drg in drgs)
                {
                    Console.WriteLine($" |-name: {drg.DisplayName}");
                    Console.WriteLine($" | state: {drg.LifecycleState}");
                    Console.WriteLine($" | timeCreate: {drg.TimeCreated}");
                    Console.WriteLine($" | compartment: {com.Name}");
                }
            }
        }