Example #1
0
        /// <summary>
        /// constructer
        /// </summary>
        /// <param name="config"></param>
        public OciSession(ClientConfig config)
        {
            var streamConfig = new ClientConfigStream
            {
                AccountId            = config.AccountId,
                DomainName           = config.DomainName,
                Fingerprint          = config.Fingerprint,
                HomeRegion           = config.HomeRegion,
                IdentityDomain       = config.IdentityDomain,
                Password             = config.Password,
                PrivateKeyPassphrase = config.PrivateKeyPassphrase,
                TenancyId            = config.TenancyId,
                UserId   = config.UserId,
                UserName = config.UserName
            };

            using (var key = File.OpenText(config.PrivateKey))
            {
                streamConfig.PrivateKey = key;
            }

            OciSigner = new OciSigner(
                streamConfig.TenancyId,
                streamConfig.UserId,
                streamConfig.Fingerprint,
                streamConfig.PrivateKey,
                streamConfig.PrivateKeyPassphrase
                );

            ClientConfigStream = streamConfig;
        }
Example #2
0
        /// <summary>
        /// constructer
        /// </summary>
        /// <param name="config"></param>
        public ServiceClient(ClientConfig config)
        {
            var streamConfig = new ClientConfigStream
            {
                AccountId            = config.AccountId,
                DomainName           = config.DomainName,
                Fingerprint          = config.Fingerprint,
                HomeRegion           = config.HomeRegion,
                IdentityDomain       = config.IdentityDomain,
                Password             = config.Password,
                PrivateKeyPassphrase = config.PrivateKeyPassphrase,
                TenancyId            = config.TenancyId,
                UserId    = config.UserId,
                UserName  = config.UserName,
                ProxyHost = config.ProxyHost,
                ProxyPort = config.ProxyPort
            };

            using (var key = File.OpenText(config.PrivateKey))
            {
                streamConfig.PrivateKey = key;

                Initialize(streamConfig);
            }
        }
Example #3
0
        /// <summary>
        /// Initialize Client
        /// </summary>
        /// <param name="config"></param>
        public void Initialize(ClientConfigStream config)
        {
            var signer = new OciSigner(
                config.TenancyId,
                config.UserId,
                config.Fingerprint,
                config.PrivateKey,
                config.PrivateKeyPassphrase);

            Initialize(config, signer);
        }
Example #4
0
        /// <summary>
        /// constructer
        /// </summary>
        /// <param name="config"></param>
        public OciSession(ClientConfigStream config)
        {
            OciSigner = new OciSigner(
                config.TenancyId,
                config.UserId,
                config.Fingerprint,
                config.PrivateKey,
                config.PrivateKeyPassphrase
                );

            ClientConfigStream = config;
        }
Example #5
0
        /// <summary>
        /// initialization
        /// </summary>
        /// <param name="config"></param>
        /// <param name="ociSigner"></param>
        public void Initialize(ClientConfigStream config, IOciSigner ociSigner)
        {
            Config = config;

            Signer = ociSigner;

            JsonSerializer = new JsonDefaultSerializer();

            WebRequestPolicy = new DefaultWebRequestPolicy();

            // default region setting
            if (string.IsNullOrEmpty(config.HomeRegion))
            {
                // set ashburn if no default region found
                Region = Regions.US_ASHBURN_1;
            }
            else
            {
                // home region
                Region = config.HomeRegion;
            }

            // proxy setting
            if (!string.IsNullOrEmpty(config.ProxyHost) && config.ProxyPort.HasValue)
            {
                WebProxy = new WebProxy(config.ProxyHost, config.ProxyPort.Value);
            }

            this.RestClient = new RestClient()
            {
                Signer           = this.Signer,
                JsonSerializer   = JsonSerializer,
                WebRequestPolicy = WebRequestPolicy,
                WebProxy         = WebProxy,
                Option           = new RestOption()
            };

            this.RestClientAsync = new RestClientAsync()
            {
                Signer           = this.Signer,
                JsonSerializer   = JsonSerializer,
                WebRequestPolicy = WebRequestPolicy,
                WebProxy         = WebProxy,
                Option           = new RestOption()
            };
        }
Example #6
0
        /// <summary>
        /// initialization
        /// </summary>
        /// <param name="config"></param>
        /// <param name="ociSigner"></param>
        public void Initialize(ClientConfigStream config, IOciSigner ociSigner)
        {
            Config = config;

            Signer = ociSigner;

            JsonSerializer = new JsonDefaultSerializer();

            WebRequestPolicy = new DefaultWebRequestPolicy();

            // default region setting
            if (string.IsNullOrEmpty(config.HomeRegion))
            {
                // set ashburn if no default region found
                Region = Regions.US_ASHBURN_1;
            }
            else
            {
                // home region
                Region = config.HomeRegion;
            }

            RestOption = new RestOption();

            RestClient = new RestClient()
            {
                Signer           = this.Signer,
                JsonSerializer   = JsonSerializer,
                WebRequestPolicy = WebRequestPolicy,
                Option           = RestOption
            };

            RestClientAsync = new RestClientAsync()
            {
                Signer           = this.Signer,
                JsonSerializer   = JsonSerializer,
                WebRequestPolicy = WebRequestPolicy,
                Option           = RestOption
            };
        }
        /// <summary>
        /// Constructer
        /// </summary>
        public GeneralElemenClient(ClientConfigStream config) : base(config)
        {
            IdentityClient = new IdentityClient(config);

            ObjectStorageClient = new ObjectStorageClient(config);
        }
Example #8
0
 /// <summary>
 /// Constructer
 /// </summary>
 public ComputeClientAsync(ClientConfigStream config) : base(config)
 {
     ServiceName = "core";
 }
Example #9
0
 /// <summary>
 /// Constructer
 /// </summary>
 public ComputeManagementClientAsync(ClientConfigStream config) : base(config)
 {
     ServiceName = CoreServices.CoreServiceName;
 }
Example #10
0
 /// <summary>
 /// Constructer
 /// </summary>
 public MonitoringClientAsync(ClientConfigStream config) : base(config)
 {
     ServiceName = monitaringServiceName;
 }
Example #11
0
 /// <summary>
 /// Constructer
 /// </summary>
 public ContainerServiceClient(ClientConfigStream config) : base(config)
 {
     ServiceName = ContainerServiceName;
 }
Example #12
0
 /// <summary>
 /// Constructer
 /// </summary>
 public CommercialClient(ClientConfigStream config) : base(config)
 {
     ServiceName = CommercialServiceName;
 }
 /// <summary>
 /// Constructer
 /// </summary>
 public AuditClientAsync(ClientConfigStream config) : base(config)
 {
     ServiceName = AuditServiceName;
 }
 /// <summary>
 /// Constructer
 /// </summary>
 public ComputeClient(ClientConfigStream config) : base(config)
 {
     ServiceName = Compute;
 }
        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();
        }
 /// <summary>
 /// Constructer
 /// </summary>
 public WorkRequestClientAsync(ClientConfigStream config) : base(config)
 {
     ServiceName = "core";
 }
 /// <summary>
 /// Constructer
 /// </summary>
 public WorkRequestClientAsync(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = "core";
 }
 /// <summary>
 /// Constructer
 /// </summary>
 public AuditClientAsync(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = AuditServiceName;
 }
Example #19
0
 /// <summary>
 /// Constructer
 /// </summary>
 public CommercialClient(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = CommercialServiceName;
 }
 /// <summary>
 /// Constructer
 /// </summary>
 public BudgetsClient(ClientConfigStream config) : base(config)
 {
     ServiceName = BudgetsServiceName;
 }
Example #21
0
 /// <summary>
 /// Constructer
 /// </summary>
 public ContainerServiceClient(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = ContainerServiceName;
 }
 /// <summary>
 /// Constructer
 /// </summary>
 public BudgetsClient(ClientConfigStream config, IOciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = BudgetsServiceName;
 }
Example #23
0
 /// <summary>
 /// Constructer
 /// </summary>
 public MonitoringClientAsync(ClientConfigStream config, IOciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = monitaringServiceName;
 }
Example #24
0
 /// <summary>
 /// Constructer
 /// </summary>
 public WaasClient(ClientConfigStream config) : base(config)
 {
     ServiceName = WaasServiceName;
 }
Example #25
0
 /// <summary>
 /// Constructer
 /// </summary>
 public ComputeManagementClientAsync(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = CoreServices.CoreServiceName;
 }
Example #26
0
 /// <summary>
 /// Constructer
 /// </summary>
 public WaasClient(ClientConfigStream config, IOciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = WaasServiceName;
 }
Example #27
0
 /// <summary>
 /// Constructer
 /// </summary>
 public ComputeClientAsync(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = "core";
 }
Example #28
0
 /// <summary>
 /// Constructer
 /// </summary>
 public UsageClient(ClientConfigStream config) : base(config)
 {
     ServiceName = UsageServiceName;
 }
        /// <summary>
        /// Constructer
        /// </summary>
        public GeneralElemenClient(ClientConfigStream config, OciSigner ociSigner) : base(config, ociSigner)
        {
            IdentityClient = new IdentityClient(config, ociSigner);

            ObjectStorageClient = new ObjectStorageClient(config, ociSigner);
        }
Example #30
0
 /// <summary>
 /// Constructer
 /// </summary>
 public UsageClient(ClientConfigStream config, IOciSigner ociSigner) : base(config, ociSigner)
 {
     ServiceName = UsageServiceName;
 }