From 21838c4cd799d016be9c72a19f1af7db938166c2 Mon Sep 17 00:00:00 2001 From: BFEIST-CIOSOLUTIONS <48036868+BFEIST-CIOSOLUTIONS@users.noreply.github.com> Date: Wed, 12 Jun 2019 12:17:04 -0700 Subject: [PATCH] Add files via upload --- AWS_Cloudberry_setup/App.config | 11 + AWS_Cloudberry_setup/Logo.png | Bin 0 -> 50116 bytes .../Properties/AssemblyInfo.cs | 36 +++ .../Properties/Resources.Designer.cs | 73 +++++ .../Properties/Resources.resx | 124 ++++++++ .../Properties/Settings.Designer.cs | 26 ++ .../Properties/Settings.settings | 7 + AWS_Cloudberry_setup/README.md | 4 + AWS_Cloudberry_setup/TekBackup.Designer.cs | 202 +++++++++++++ AWS_Cloudberry_setup/TekBackup.cs | 263 +++++++++++++++++ AWS_Cloudberry_setup/TekBackup.resx | 272 ++++++++++++++++++ AWS_Cloudberry_setup/TekBackupSetup.csproj | 138 +++++++++ 12 files changed, 1156 insertions(+) create mode 100644 AWS_Cloudberry_setup/App.config create mode 100644 AWS_Cloudberry_setup/Logo.png create mode 100644 AWS_Cloudberry_setup/Properties/AssemblyInfo.cs create mode 100644 AWS_Cloudberry_setup/Properties/Resources.Designer.cs create mode 100644 AWS_Cloudberry_setup/Properties/Resources.resx create mode 100644 AWS_Cloudberry_setup/Properties/Settings.Designer.cs create mode 100644 AWS_Cloudberry_setup/Properties/Settings.settings create mode 100644 AWS_Cloudberry_setup/README.md create mode 100644 AWS_Cloudberry_setup/TekBackup.Designer.cs create mode 100644 AWS_Cloudberry_setup/TekBackup.cs create mode 100644 AWS_Cloudberry_setup/TekBackup.resx create mode 100644 AWS_Cloudberry_setup/TekBackupSetup.csproj diff --git a/AWS_Cloudberry_setup/App.config b/AWS_Cloudberry_setup/App.config new file mode 100644 index 0000000..f28b704 --- /dev/null +++ b/AWS_Cloudberry_setup/App.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/AWS_Cloudberry_setup/Logo.png b/AWS_Cloudberry_setup/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..17ae421c3ef2bde70d5d954d308e1fc890058625 GIT binary patch literal 50116 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 g|G&K<2)i$@xQaRWx1rJ +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace TekBackupSetup.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TekBackupSetup.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Logo { + get { + object obj = ResourceManager.GetObject("Logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/AWS_Cloudberry_setup/Properties/Resources.resx b/AWS_Cloudberry_setup/Properties/Resources.resx new file mode 100644 index 0000000..b8be15c --- /dev/null +++ b/AWS_Cloudberry_setup/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/AWS_Cloudberry_setup/Properties/Settings.Designer.cs b/AWS_Cloudberry_setup/Properties/Settings.Designer.cs new file mode 100644 index 0000000..14ed82c --- /dev/null +++ b/AWS_Cloudberry_setup/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace TekBackupSetup.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.0.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/AWS_Cloudberry_setup/Properties/Settings.settings b/AWS_Cloudberry_setup/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/AWS_Cloudberry_setup/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/AWS_Cloudberry_setup/README.md b/AWS_Cloudberry_setup/README.md new file mode 100644 index 0000000..8f30a28 --- /dev/null +++ b/AWS_Cloudberry_setup/README.md @@ -0,0 +1,4 @@ +# AWS_Cloudberry_setup +Provisioning AWS Cloudberry backup. Keys are injected into ITGlue + +AWS visual studio extention and credentials configured in it are required for compiling diff --git a/AWS_Cloudberry_setup/TekBackup.Designer.cs b/AWS_Cloudberry_setup/TekBackup.Designer.cs new file mode 100644 index 0000000..2cb6b7e --- /dev/null +++ b/AWS_Cloudberry_setup/TekBackup.Designer.cs @@ -0,0 +1,202 @@ +namespace TekBackupSetup +{ + partial class frmTekbackup + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmTekbackup)); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.txtID = new System.Windows.Forms.TextBox(); + this.txtCompany = new System.Windows.Forms.TextBox(); + this.txtOutput = new System.Windows.Forms.TextBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(35, 106); + this.button1.Margin = new System.Windows.Forms.Padding(2); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(120, 28); + this.button1.TabIndex = 0; + this.button1.Text = "1. Create Bucket"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(35, 158); + this.button2.Margin = new System.Windows.Forms.Padding(2); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(120, 28); + this.button2.TabIndex = 1; + this.button2.Text = "2. Create IAM User"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button3 + // + this.button3.Location = new System.Drawing.Point(35, 205); + this.button3.Margin = new System.Windows.Forms.Padding(2); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(120, 28); + this.button3.TabIndex = 2; + this.button3.Text = "3. Policy"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button4 + // + this.button4.Location = new System.Drawing.Point(35, 250); + this.button4.Margin = new System.Windows.Forms.Padding(2); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(120, 28); + this.button4.TabIndex = 3; + this.button4.Text = "4. Cloudberry Policy"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Location = new System.Drawing.Point(35, 297); + this.button5.Margin = new System.Windows.Forms.Padding(2); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(120, 28); + this.button5.TabIndex = 4; + this.button5.Text = "5. ITGlue"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(9, 34); + this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(47, 13); + this.label1.TabIndex = 5; + this.label1.Text = "Client ID"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(18, 64); + this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 13); + this.label2.TabIndex = 6; + this.label2.Text = "ITG ID"; + this.label2.Click += new System.EventHandler(this.label2_Click); + // + // txtID + // + this.txtID.Location = new System.Drawing.Point(68, 34); + this.txtID.Margin = new System.Windows.Forms.Padding(2); + this.txtID.Name = "txtID"; + this.txtID.Size = new System.Drawing.Size(100, 20); + this.txtID.TabIndex = 7; + // + // txtCompany + // + this.txtCompany.Location = new System.Drawing.Point(68, 62); + this.txtCompany.Margin = new System.Windows.Forms.Padding(2); + this.txtCompany.Name = "txtCompany"; + this.txtCompany.Size = new System.Drawing.Size(100, 20); + this.txtCompany.TabIndex = 8; + // + // txtOutput + // + this.txtOutput.BackColor = System.Drawing.SystemColors.MenuText; + this.txtOutput.ForeColor = System.Drawing.Color.Lime; + this.txtOutput.Location = new System.Drawing.Point(211, 106); + this.txtOutput.Margin = new System.Windows.Forms.Padding(2); + this.txtOutput.Multiline = true; + this.txtOutput.Name = "txtOutput"; + this.txtOutput.Size = new System.Drawing.Size(385, 221); + this.txtOutput.TabIndex = 9; + this.txtOutput.Text = "Configure a new client for Tekbackup Services. Please Complete steps in order."; + // + // pictureBox1 + // + this.pictureBox1.Image = global::TekBackupSetup.Properties.Resources.Logo; + this.pictureBox1.InitialImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.InitialImage"))); + this.pictureBox1.Location = new System.Drawing.Point(211, 11); + this.pictureBox1.Margin = new System.Windows.Forms.Padding(2); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(212, 80); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 10; + this.pictureBox1.TabStop = false; + // + // frmTekbackup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(608, 347); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.txtOutput); + this.Controls.Add(this.txtCompany); + this.Controls.Add(this.txtID); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Margin = new System.Windows.Forms.Padding(2); + this.Name = "frmTekbackup"; + this.Text = "TekBackup Setup"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtID; + private System.Windows.Forms.TextBox txtCompany; + private System.Windows.Forms.TextBox txtOutput; + private System.Windows.Forms.PictureBox pictureBox1; + } +} + diff --git a/AWS_Cloudberry_setup/TekBackup.cs b/AWS_Cloudberry_setup/TekBackup.cs new file mode 100644 index 0000000..717fb71 --- /dev/null +++ b/AWS_Cloudberry_setup/TekBackup.cs @@ -0,0 +1,263 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using Amazon.S3; +using Amazon.S3.Model; +using Amazon.IdentityManagement; +using Amazon.IdentityManagement.Model; +using Amazon.Auth.AccessControlPolicy; +using System.Net; + +namespace TekBackupSetup +{ + partial class frmTekbackup : Form + { + public string bucketName = ""; + public string ITGName = ""; + public string key1 = ""; + public string key2 = ""; + public string arn = ""; + public string policyarn = ""; + + public frmTekbackup() + { + InitializeComponent(); + + } + +//Button1 - Create Bucket + private void button1_Click(object sender, EventArgs e) + { + bucketName = txtID.Text; + var client = new AmazonS3Client(Amazon.RegionEndpoint.USEast2); + + txtOutput.Text += "\r\n"; + txtOutput.Text += "Creating Bucket: " + bucketName + "\r\n"; + try + { + PutBucketRequest putRequest1 = new PutBucketRequest + { + BucketName = bucketName + }; + PutBucketResponse response1 = client.PutBucket(putRequest1); + txtOutput.Text += response1.ToString() + "\r\n"; + txtOutput.Text += "Bucket Created: arn:aws:s3:::" + bucketName + "\r\n"; + arn = "arn:aws: s3:::" + bucketName; + + } + catch (AmazonS3Exception amazonS3Exception) + { + if (amazonS3Exception.ErrorCode != null && + (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") + || + amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) + { + txtOutput.Text += "Check the provided AWS Credentials." + "\r\n"; + txtOutput.Text += "For service sign up go to http://aws.amazon.com/s3" + "\r\n"; + } + else + { + txtOutput.Text += "Error Creating Bucket!!!!" + amazonS3Exception.Message + "\r\n"; + txtOutput.Text += amazonS3Exception.ErrorCode + "\r\n"; + } + } + txtOutput.ScrollToCaret(); + } + +// Button 2 - Create IAM User + private void button2_Click(object sender, EventArgs e) + { + txtOutput.Text += "Creating IAM User: " + bucketName + "\r\n"; + var iamClient2 = new AmazonIdentityManagementServiceClient(); + try + { + var readOnlyUser = iamClient2.CreateUser(new CreateUserRequest + { + UserName = bucketName, + }).User; + txtOutput.Text += "IAM USER Created: " + bucketName + "\r\n"; + } + catch (EntityAlreadyExistsException ex) + { + txtOutput.Text += ex.Message + "\r\n"; + var request = new GetUserRequest() + { + UserName = bucketName + }; + } + try + { + + txtOutput.Text += "Creating Access Key" + "\r\n"; + var iamClient1 = new AmazonIdentityManagementServiceClient(); + var accessKey = iamClient1.CreateAccessKey(new CreateAccessKeyRequest + { + + UserName = bucketName + }).AccessKey; + txtOutput.Text += "Access Keys Generated:" + "\r\n"; + txtOutput.Text += accessKey.AccessKeyId + "\r\n"; + key1 = accessKey.AccessKeyId; + txtOutput.Text += accessKey.SecretAccessKey + "\r\n"; + key2 = accessKey.SecretAccessKey; + } + catch (LimitExceededException ex) + { + txtOutput.Text += ex.Message; + } + txtOutput.ScrollToCaret(); + } + +//Button3 - Policy + private void button3_Click(object sender, EventArgs e) + { + txtOutput.Text += "Creating Policy" + "\r\n"; + var client = new AmazonIdentityManagementServiceClient(); + string policyDoc = GenerateUserPolicyDocument(bucketName); + var request = new CreatePolicyRequest + { + PolicyName = bucketName + "Policy", + PolicyDocument = policyDoc + }; + try + { + var createPolicyResponse = client.CreatePolicy(request); + txtOutput.Text += "Policy named " + createPolicyResponse.Policy.PolicyName + " Created." + "\r\n"; + policyarn = createPolicyResponse.Policy.Arn; + } + catch (EntityAlreadyExistsException) + { + txtOutput.Text += "Policy " + bucketName + " already exits." + "\r\n"; + } + + txtOutput.Text += "Attaching policy to User" + "\r\n"; + var attachrequest = new AttachUserPolicyRequest + { + UserName = bucketName, + PolicyArn = policyarn + }; + try + { + var createPolicyResponse = client.AttachUserPolicy(attachrequest); + txtOutput.Text += "Policy applied" + "\r\n"; + } + catch (Exception) + { + txtOutput.Text += "Attach Failed" + "\r\n"; + } + txtOutput.ScrollToCaret(); + } + public static string GenerateUserPolicyDocument(string bucketName) + { + + string resourcearn = "arn:aws:s3:::" + bucketName + "/*"; + string resourcearn2 = "arn:aws:s3:::" + bucketName; + var actionGet = new ActionIdentifier("s3:*"); + var actions = new List(); + actions.Add(actionGet); + var resource = new Resource(resourcearn); + var resource2 = new Resource(resourcearn2); + var resources = new List(); + resources.Add(resource); + resources.Add(resource2); + var statement = new Amazon.Auth.AccessControlPolicy.Statement(Amazon.Auth.AccessControlPolicy.Statement.StatementEffect.Allow) + { + Actions = actions, + Id = bucketName + "Statmentid", + Resources = resources + + }; + var statements = new List(); + statements.Add(statement); + var policy = new Policy + { + Id = bucketName + "Policy", + Version = "2012-10-17", + Statements = statements + }; + return policy.ToJson(); + } + +//Button 5- ITG + private void button5_Click(object sender, EventArgs e) + { + bucketName = txtID.Text; + ITGName = txtCompany.Text; + string json = "{ \"data\":{\"type\":\"passwords\",\"attributes\":{\"name\":\"TekBackup_Access_Keys\",\"password\":\""+key2+ "\",\"password-category-id\":32755,\"notes\":\"Password is Secret Key.\r\nAccess Key: " + key1+"\r\nARN: "+arn+ "\r\nPolicy ARN: " + policyarn+" \"}}}"; + txtOutput.Text += json; + string url = "/organizations/"+ITGName+"/relationships/passwords"; + string results = ""; + using (var client = new WebClient()) + { + client.Proxy = null; + client.Headers[HttpRequestHeader.Host] = "api.itglue.com"; + client.Encoding = Encoding.UTF8; + client.Headers[HttpRequestHeader.ContentType] = "application/vnd.api+json"; + client.Credentials = null; + client.Headers.Add("x-api-key","ITG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); + client.BaseAddress = "https://api.itglue.com"; + results = client.UploadString(url, "POST", json); + } + txtOutput.Text += results; + } + +//Button 4 - CloudBerry + private void button4_Click(object sender, EventArgs e) + { + var oldpolicy = ""; + txtOutput.Text += "Editing CB Role Policy" + "\r\n"; + + var client = new AmazonIdentityManagementServiceClient(); + + var getcurrentrequest = new GetRolePolicyRequest + { + PolicyName = "CloudBerryMBSPolicy", + RoleName = "CloudBerryMBSRole-6bba62a8-a0da-497c-b296-2fe588c64db4" + + }; + try + { + var getPolicyResponse = client.GetRolePolicy(getcurrentrequest); + oldpolicy = System.Net.WebUtility.UrlDecode(getPolicyResponse.PolicyDocument); + + + + + } + catch (NoSuchEntityException) + { + txtOutput.Text += "Policy does not exist." + "\r\n"; + } + var newpolicy = oldpolicy.Remove(oldpolicy.Length - 3,3); + + newpolicy += ",{\"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": [ \"arn:aws:s3:::"+ txtID.Text + "\"], \"Condition\": {} }, {\"Effect\": \"Allow\", \"Action\": \"s3:*\", \"Resource\": [ \"arn:aws:s3:::" + txtID.Text + "/*\"], \"Condition\": {} } ] }"; + + + var putrolepolicyrequest = new PutRolePolicyRequest + { + RoleName = "CloudBerryMBSRole-6bba62a8-a0da-497c-b296-2fe588c64db4", + PolicyName = "CloudBerryMBSPolicy", + PolicyDocument = newpolicy + }; + + try + { + var putPolicyResponse = client.PutRolePolicy(putrolepolicyrequest); + txtOutput.Text += "CloudBerry Role Policy Update - Success \r\n"; + + } + catch (NoSuchEntityException) + { + txtOutput.Text += "Policy does not exist." + "\r\n"; + } + } + + + + private void label2_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/AWS_Cloudberry_setup/TekBackup.resx b/AWS_Cloudberry_setup/TekBackup.resx new file mode 100644 index 0000000..c7b7a3e --- /dev/null +++ b/AWS_Cloudberry_setup/TekBackup.resx @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAooAAAB2CAMAAAB4ZUL1AAAABGdBTUEAALGPC/xhBQAAAwBQTFRF0NHS + 4ODhtbW14uLj1NTWRERF3t7fkZGRuLi4WFhZbW1uhISF3Nzd5JVZzrqsiYmJzM3OyMnLcXFx1tfY2Nna + eXl51qyMzs/Q6YxE7YU2lpaWXV1eaWlpysvN0tLSgYGBysG6qqqqy8zOPT092NjYTU1NdXV207OaLCwt + 29vcZWVmwsPE355s26V8vLy8pKSlNTU1jY2OoqKiz9DS4Zpk1tbWfH1+09TVv7+/r6+vGhobUlJTm5ub + wMDAyMjI39/gzs7O0NDQ4eHijIyM3d3e2trbvr/AIiIjSUlKHBwdODg6zMzMJCQlERESxMTE8YAqnJyc + srKz1a+S3aBxQUFCn5+grKysFRUWMDAxxMXGKSkqmZmZYmJjysrK4eLjpqam4+PkwsLCwMHC0Laif3+A + yMTBYGBg2KmFj4+QcnJyvb2+urq7sbGysLCxubm5enp7sbK0lpaXhoeHp6eotra38n4l8n0iRkZGVlZW + Y2Nku7u7ampsra2tqKiqcHBy5pFQnp6eeHh4i4uMVVVWq6usnZ6fKyssxsfJOzs8IyMjX19g83wgx8fH + VFRV5OTkx8jK8fHxNzc48PDw7+/v7u7u7e3tycrM6urqDg4P6enp5eXl1dXV6+vr8fHy7Ozs5+foDw8Q + 2drb3d7f0dLTx8jJ6Ojozc7Q1dbX5ubm6+vs7O3t19jZ5+fn5OXl29zd7+/wxcbI5ufn7u7vzc7P1NTU + 5eXm6Ojp5OTlEhITycrL5ubnJico0tLUFxcY6urr0tPU6enq5+joW1tb5ebm7Ozt8PDx0tPVHx8g3+Dh + T09P6OnpS0tM09PVc3N0Li4vPj4/7e3ujo6P4+Tk6uvrGxsc09PTxsbGxcbHx8XEx8bGU1NU6erqvb6/ + YWFiMzM0oKChoaGimpqcw8TGV1dYxsbIxsfIQ0NEe3t8jY6P6+zsqKipt7e383whmZqbs7S2r7Cyo6Oj + UFBRoqOll5iYk5OUb29vx8fJu7y+Z2dnzb2xv7/BnJ2eq6yusbKzDQ0O8vLyAutM3AAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAB7sSURBVHhe7Z17YBTVucA3EHlGSUhsLCRqAygBFZAK + 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 + + + \ No newline at end of file diff --git a/AWS_Cloudberry_setup/TekBackupSetup.csproj b/AWS_Cloudberry_setup/TekBackupSetup.csproj new file mode 100644 index 0000000..ec5bff2 --- /dev/null +++ b/AWS_Cloudberry_setup/TekBackupSetup.csproj @@ -0,0 +1,138 @@ + + + + + Debug + AnyCPU + {B65B778B-6062-432C-B8A7-4C78999E0C11} + WinExe + TekBackupSetup + TekBackupSetup + v4.5.2 + 512 + true + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + ..\..\..\..\..\..\..\Program Files (x86)\AWS SDK for .NET\bin\Net45\AWSSDK.Core.dll + + + ..\..\..\..\..\..\..\Program Files (x86)\AWS SDK for .NET\bin\Net45\AWSSDK.IdentityManagement.dll + + + ..\..\..\..\..\..\..\Program Files (x86)\AWS SDK for .NET\bin\Net45\AWSSDK.S3.dll + + + ..\..\..\..\..\..\..\Cloud.Backup.API.dll + + + + + + + + + + + + + + + + + + Form + + + TekBackup.cs + + + + + TekBackup.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + Designer + + + + + + + + + + + False + Microsoft .NET Framework 4.5.2 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + \ No newline at end of file