/// <summary>
        /// クライアント作成
        /// </summary>
        public void CreateClient()
        {
            ClientConfig = new ClientConfig
            {
                TenancyId            = OciSetting.TenancyId,
                UserId               = OciSetting.UserId,
                Fingerprint          = OciSetting.Fingerprint,
                PrivateKey           = OciSetting.KeyFilePath,
                PrivateKeyPassphrase = OciSetting.PassPhrase
            };
            ThreadSafeSigner threadSafeSigner = new ThreadSafeSigner(new OciSigner(ClientConfig));

            IdentityClient      = new IdentityClient(ClientConfig);
            ObjectStorageClient = new ObjectStorageClient(ClientConfig, threadSafeSigner);
        }
        public static void ClassInitialize(TestContext testContext)
        {
            ClientConfig clientConfig = new ClientConfig
            {
                TenancyId            = TenantOCID,
                UserId               = UserOCID,
                Fingerprint          = Fingerprint,
                PrivateKey           = KeyFilePath,
                Password             = PassPhrase,
                PrivateKeyPassphrase = PassPhrase
            };
            var signer = new ThreadSafeSigner(new OciSigner(clientConfig));

            ObjectStorageClient objectStorageClient = new ObjectStorageClient(clientConfig, signer)
            {
                Region = Region
            };

            ObjectStorageClient = objectStorageClient;

            NameSpaceName = ObjectStorageClient.GetNamespace(new GetNamespaceRequest());
        }
Beispiel #3
0
        public static void ClassInitialize(TestContext testContext)
        {
            foreach (var dir in TestFileInfos.Keys)
            {
                foreach (var fileName in TestFileInfos[dir])
                {
                    if (string.IsNullOrEmpty(dir))
                    {
                        TestFileRemotePaths.Add(fileName);
                    }
                    else
                    {
                        TestFileRemotePaths.Add($"{dir}/{fileName}");
                    }
                }
            }

            ClientConfig clientConfig = new ClientConfig
            {
                TenancyId            = TenantOCID,
                UserId               = UserOCID,
                Fingerprint          = Fingerprint,
                PrivateKey           = KeyFilePath,
                Password             = PassPhrase,
                PrivateKeyPassphrase = PassPhrase
            };

            var signer = new ThreadSafeSigner(new OciSigner(clientConfig));

            ObjectStorageClient objectStorageClient = new ObjectStorageClient(clientConfig, signer)
            {
                Region = Region
            };

            ObjectStorageClient = objectStorageClient;

            NameSpaceName = ObjectStorageClient.GetNamespace(new GetNamespaceRequest());
        }
        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}");
                        }
                    }
                }
            }
        }
        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("******************************************");
        }