public void CRUDSecurityGroups() { string name = "dotnetsdk" + DateTime.Now.Ticks; var createRequest = new CreateClusterSecurityGroupRequest() { ClusterSecurityGroupName = name, Description = "Description" }; CreateClusterSecurityGroupResponse createResponse = Client.CreateClusterSecurityGroup(createRequest); try { var descResponse = Client.DescribeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name }); Assert.AreEqual(1, descResponse.ClusterSecurityGroups.Count); Assert.AreEqual(name, descResponse.ClusterSecurityGroups[0].ClusterSecurityGroupName); var authRequest = new AuthorizeClusterSecurityGroupIngressRequest() { ClusterSecurityGroupName = name, CIDRIP = "0.0.0.0/0" }; Client.AuthorizeClusterSecurityGroupIngress(authRequest); descResponse = Client.DescribeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name }); Assert.AreEqual(1, descResponse.ClusterSecurityGroups[0].IPRanges.Count); Assert.AreEqual("0.0.0.0/0", descResponse.ClusterSecurityGroups[0].IPRanges[0].CIDRIP); var revokeRequest = new RevokeClusterSecurityGroupIngressRequest() { ClusterSecurityGroupName = name, CIDRIP = "0.0.0.0/0" }; Client.RevokeClusterSecurityGroupIngress(revokeRequest); descResponse = Client.DescribeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name }); Assert.AreEqual(0, descResponse.ClusterSecurityGroups[0].IPRanges.Count); } finally { Client.DeleteClusterSecurityGroup(new DeleteClusterSecurityGroupRequest() { ClusterSecurityGroupName = name }); var descResponse = Client.DescribeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest()); Assert.IsNull(descResponse.ClusterSecurityGroups.FirstOrDefault(x => x.ClusterSecurityGroupName == name)); } }
public void CRUDSecurityGroups() { string name = "dotnetsdk" + DateTime.Now.Ticks; var createRequest = new CreateClusterSecurityGroupRequest() { ClusterSecurityGroupName = name, Description = "Description" }; CreateClusterSecurityGroupResponse createResponse = null; try { createResponse = Client.CreateClusterSecurityGroupAsync(createRequest).Result; var descResponse = Client.DescribeClusterSecurityGroupsAsync(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name }).Result; Assert.AreEqual(1, descResponse.ClusterSecurityGroups.Count); Assert.AreEqual(name, descResponse.ClusterSecurityGroups[0].ClusterSecurityGroupName); var authRequest = new AuthorizeClusterSecurityGroupIngressRequest() { ClusterSecurityGroupName = name, CIDRIP = "0.0.0.0/0" }; Client.AuthorizeClusterSecurityGroupIngressAsync(authRequest).Wait(); descResponse = Client.DescribeClusterSecurityGroupsAsync(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name }).Result; Assert.AreEqual(1, descResponse.ClusterSecurityGroups[0].IPRanges.Count); Assert.AreEqual("0.0.0.0/0", descResponse.ClusterSecurityGroups[0].IPRanges[0].CIDRIP); var revokeRequest = new RevokeClusterSecurityGroupIngressRequest() { ClusterSecurityGroupName = name, CIDRIP = "0.0.0.0/0" }; Client.RevokeClusterSecurityGroupIngressAsync(revokeRequest).Wait(); descResponse = Client.DescribeClusterSecurityGroupsAsync(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name }).Result; Assert.AreEqual(0, descResponse.ClusterSecurityGroups[0].IPRanges.Count); } catch (AmazonRedshiftException e) { // This test does not work for VPC by default accounts so skip the test. if (!string.Equals(e.Message, "VPC-by-Default customers cannot use cluster security groups")) { throw; } } finally { if (createResponse != null) { Client.DeleteClusterSecurityGroupAsync(new DeleteClusterSecurityGroupRequest() { ClusterSecurityGroupName = name }).Wait(); var descResponse = Client.DescribeClusterSecurityGroupsAsync(new DescribeClusterSecurityGroupsRequest()).Result; Assert.IsNull(descResponse.ClusterSecurityGroups.FirstOrDefault(x => x.ClusterSecurityGroupName == name)); } } }