private void VerifyPrivateEndpointConnections(PrivateLinkServiceConnection expectedValue, CosmosDBPrivateEndpointConnectionResource actualValue) { // Services will give diffferent ids and names for the incoming private endpoint connections, so comparing them is meaningless //Assert.AreEqual(expectedValue.Id, actualValue.Id); //Assert.AreEqual(expectedValue.Name, actualValue.Data.Name); Assert.AreEqual(expectedValue.ConnectionState.Status, actualValue.Data.ConnectionState.Status); Assert.AreEqual(expectedValue.ConnectionState.Description, actualValue.Data.ConnectionState.Description); Assert.AreEqual(expectedValue.ConnectionState.ActionsRequired, actualValue.Data.ConnectionState.ActionsRequired); }
public PrivateEndpoint CreatePrivateEndpoint(string resourceGroupName, string privateEndpointNamePrefix, string privateLinkResourceId, string groupId, string subnetId, string location) { var privateEndpointName = $"{privateEndpointNamePrefix}PrivateEndpoint"; var serviceConnectionName = $"{privateEndpointNamePrefix}ServiceConnection"; var groupIds = new List <string>() { groupId }; var pe = new PrivateEndpoint(); pe.Subnet = new Subnet(id: subnetId); pe.Location = location; var plsConnection = new PrivateLinkServiceConnection(); plsConnection.Name = serviceConnectionName; plsConnection.PrivateLinkServiceId = privateLinkResourceId; plsConnection.GroupIds = groupIds; pe.PrivateLinkServiceConnections = new List <PrivateLinkServiceConnection>() { plsConnection }; return(WrappedNetworkClient.PrivateEndpoints.CreateOrUpdate(resourceGroupName, privateEndpointName, pe)); }
internal static PrivateEndpointData DeserializePrivateEndpointData(JsonElement element) { Optional <ExtendedLocation> extendedLocation = default; Optional <ETag> etag = default; Optional <ResourceIdentifier> id = default; Optional <string> name = default; Optional <ResourceType> type = default; Optional <AzureLocation> location = default; Optional <IDictionary <string, string> > tags = default; Optional <SubnetData> subnet = default; Optional <IReadOnlyList <NetworkInterfaceData> > networkInterfaces = default; Optional <NetworkProvisioningState> provisioningState = default; Optional <IList <PrivateLinkServiceConnection> > privateLinkServiceConnections = default; Optional <IList <PrivateLinkServiceConnection> > manualPrivateLinkServiceConnections = default; Optional <IList <CustomDnsConfigPropertiesFormat> > customDnsConfigs = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("extendedLocation")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } extendedLocation = ExtendedLocation.DeserializeExtendedLocation(property.Value); continue; } if (property.NameEquals("etag")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } etag = new ETag(property.Value.GetString()); continue; } if (property.NameEquals("id")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } type = new ResourceType(property.Value.GetString()); continue; } if (property.NameEquals("location")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } location = new AzureLocation(property.Value.GetString()); continue; } if (property.NameEquals("tags")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("subnet")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } subnet = SubnetData.DeserializeSubnetData(property0.Value); continue; } if (property0.NameEquals("networkInterfaces")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <NetworkInterfaceData> array = new List <NetworkInterfaceData>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(NetworkInterfaceData.DeserializeNetworkInterfaceData(item)); } networkInterfaces = array; continue; } if (property0.NameEquals("provisioningState")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } provisioningState = new NetworkProvisioningState(property0.Value.GetString()); continue; } if (property0.NameEquals("privateLinkServiceConnections")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <PrivateLinkServiceConnection> array = new List <PrivateLinkServiceConnection>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(PrivateLinkServiceConnection.DeserializePrivateLinkServiceConnection(item)); } privateLinkServiceConnections = array; continue; } if (property0.NameEquals("manualPrivateLinkServiceConnections")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <PrivateLinkServiceConnection> array = new List <PrivateLinkServiceConnection>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(PrivateLinkServiceConnection.DeserializePrivateLinkServiceConnection(item)); } manualPrivateLinkServiceConnections = array; continue; } if (property0.NameEquals("customDnsConfigs")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <CustomDnsConfigPropertiesFormat> array = new List <CustomDnsConfigPropertiesFormat>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(CustomDnsConfigPropertiesFormat.DeserializeCustomDnsConfigPropertiesFormat(item)); } customDnsConfigs = array; continue; } } continue; } } return(new PrivateEndpointData(id.Value, name.Value, Optional.ToNullable(type), Optional.ToNullable(location), Optional.ToDictionary(tags), extendedLocation.Value, Optional.ToNullable(etag), subnet.Value, Optional.ToList(networkInterfaces), Optional.ToNullable(provisioningState), Optional.ToList(privateLinkServiceConnections), Optional.ToList(manualPrivateLinkServiceConnections), Optional.ToList(customDnsConfigs))); }
public async Task PrivateEndpointOperationsTest() { using (MockContext context = MockContext.Start(this.GetType())) { string resourceGroupName = TestUtilities.GenerateName("sjrg"); string clusterName = TestUtilities.GenerateName("sj"); string privateEndpointName = TestUtilities.GenerateName("testpe"); var resourceManagementClient = this.GetResourceManagementClient(context); var streamAnalyticsManagementClient = this.GetStreamAnalyticsManagementClient(context); string expectedClusterResourceId = TestHelper.GetClusterResourceId( streamAnalyticsManagementClient.SubscriptionId, resourceGroupName, clusterName); string expectedPrivateEndpointResourceId = TestHelper.GetPrivateEndpointResourceId( streamAnalyticsManagementClient.SubscriptionId, resourceGroupName, clusterName, privateEndpointName); string expectedPrivateLinkServiceId = "/subscriptions/113d0adc-1017-40e9-84ff-763f52896cc2/resourceGroups/sjrg5830/providers/Microsoft.EventHub/namespaces/testeventhub4asacluster"; Cluster exceptedCluster = new Cluster() { Location = TestHelper.DefaultLocation, Sku = new ClusterSku() { Name = ClusterSkuName.Default, Capacity = 36 } }; // Create Resource Group resourceManagementClient.ResourceGroups.CreateOrUpdate(resourceGroupName, new ResourceGroup { Location = TestHelper.DefaultLocation }); PrivateLinkServiceConnection privateLinkServiceConnection = new PrivateLinkServiceConnection() { PrivateLinkServiceId = expectedPrivateLinkServiceId, GroupIds = new string[] { "namespace" } }; PrivateEndpoint exceptedPrivateEndpoint = new PrivateEndpoint() { Properties = new PrivateEndpointProperties() { ManualPrivateLinkServiceConnections = new List <PrivateLinkServiceConnection> { privateLinkServiceConnection } } }; // PUT cluster var putCluster = await streamAnalyticsManagementClient.Clusters.CreateOrUpdateWithHttpMessagesAsync(exceptedCluster, resourceGroupName, clusterName);; // PUT privateendpoint var putPrivateEndpoint = await streamAnalyticsManagementClient.PrivateEndpoints.CreateOrUpdateWithHttpMessagesAsync(exceptedPrivateEndpoint, resourceGroupName, clusterName, privateEndpointName);; // Null out because secrets are not returned in responses Assert.Equal(expectedClusterResourceId, putCluster.Body.Id); Assert.Equal(clusterName, putCluster.Body.Name); Assert.Equal(TestHelper.ClusterFullResourceType, putCluster.Body.Type); Assert.Equal("Succeeded", putCluster.Body.Properties.ProvisioningState); Assert.Equal(privateEndpointName, putPrivateEndpoint.Body.Name); Assert.Equal(expectedPrivateLinkServiceId, putPrivateEndpoint.Body.Properties.ManualPrivateLinkServiceConnections[0].PrivateLinkServiceId); Assert.Equal(TestHelper.PrivateEndpointFullResourceType, putPrivateEndpoint.Body.Type); Assert.Equal("PendingCreation", putPrivateEndpoint.Body.Properties.ManualPrivateLinkServiceConnections[0].PrivateLinkServiceConnectionState.Status); // Verify GET request returns expected private endpoint var getPrivateEndpoint = await streamAnalyticsManagementClient.PrivateEndpoints.GetWithHttpMessagesAsync(resourceGroupName, clusterName, privateEndpointName); Assert.Equal(putPrivateEndpoint.Body.Etag, getPrivateEndpoint.Body.Etag); // List private endpoints var listByCluster = streamAnalyticsManagementClient.PrivateEndpoints.ListByCluster(resourceGroupName, clusterName); Assert.Single(listByCluster); // Delete private endpoints streamAnalyticsManagementClient.PrivateEndpoints.Delete(resourceGroupName, clusterName, privateEndpointName); // Verify that list operation returns an empty list after deleting the job listByCluster = streamAnalyticsManagementClient.PrivateEndpoints.ListByCluster(resourceGroupName, clusterName); Assert.Empty(listByCluster); } }