Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
de5ffc4
add test
weidongxu-microsoft Nov 11, 2025
723ba8f
warning on use of mapPage
weidongxu-microsoft Nov 11, 2025
a2d62d5
bug fix for https://github.com/Azure/azure-sdk-for-java/issues/43723
weidongxu-microsoft Nov 11, 2025
5dd1d08
comment
weidongxu-microsoft Nov 11, 2025
4544373
fix
weidongxu-microsoft Nov 11, 2025
ac98e46
record
weidongxu-microsoft Nov 11, 2025
77ff540
revert
weidongxu-microsoft Nov 11, 2025
b4b9341
Update sdk/network/azure-resourcemanager-network/src/main/java/com/az…
weidongxu-microsoft Nov 11, 2025
787b3b1
Update sdk/resources/azure-resourcemanager-resources/src/test/java/co…
weidongxu-microsoft Nov 11, 2025
6e54c13
Update sdk/network/azure-resourcemanager-network/src/test/java/com/az…
weidongxu-microsoft Nov 11, 2025
6ff8f58
format
weidongxu-microsoft Nov 11, 2025
072c3d8
Merge branch 'main' into mgmt_network-fix-list
weidongxu-microsoft Nov 11, 2025
9883526
Merge branch 'main' into mgmt_network-fix-list
weidongxu-microsoft Nov 11, 2025
09ab36b
use unreleased network in resourcemanager, as some of its tests calls…
weidongxu-microsoft Nov 11, 2025
8bee268
VirtualNetworkGateway requires Standard public ip address
weidongxu-microsoft Nov 11, 2025
3d3a99a
improve SKU of public IP address, relates to virtual network gateway
weidongxu-microsoft Nov 11, 2025
337784a
fix wrong error message in test
weidongxu-microsoft Nov 12, 2025
1c02e95
record
weidongxu-microsoft Nov 12, 2025
0321cfb
record for public ip address test
weidongxu-microsoft Nov 12, 2025
fc7548f
fix version_client
weidongxu-microsoft Nov 12, 2025
3f975f3
suppress revapi
weidongxu-microsoft Nov 12, 2025
9b125f0
record again
weidongxu-microsoft Nov 12, 2025
e82f548
bump minor version
weidongxu-microsoft Nov 12, 2025
c2f97a0
changelog
weidongxu-microsoft Nov 12, 2025
6e95a21
test
weidongxu-microsoft Nov 12, 2025
1393037
record pip
weidongxu-microsoft Nov 12, 2025
79523da
re-record VirtualNetworkGatewayTests
weidongxu-microsoft Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion eng/versioning/version_client.txt
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ com.azure.resourcemanager:azure-resourcemanager-eventhubs;2.53.4;2.54.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-keyvault;2.54.0;2.55.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-monitor;2.53.4;2.54.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-msi;2.53.4;2.54.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-network;2.55.0;2.56.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-network;2.55.0;2.55.1
com.azure.resourcemanager:azure-resourcemanager-perf;1.0.0-beta.1;1.0.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-privatedns;2.53.4;2.54.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-resources;2.53.4;2.54.0-beta.1
Expand Down
8 changes: 2 additions & 6 deletions sdk/network/azure-resourcemanager-network/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
# Release History

## 2.56.0-beta.1 (Unreleased)

### Features Added

### Breaking Changes
## 2.55.1 (2025-11-11)

### Bugs Fixed

### Other Changes
- Fixed the bug that `list()` in `LocalNetworkGateways`, `VirtualNetworkGateways`, `VirtualNetworkGatewayConnections` only return resources from 1 resource group.

## 2.55.0 (2025-11-06)

Expand Down
2 changes: 1 addition & 1 deletion sdk/network/azure-resourcemanager-network/assets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "java",
"TagPrefix": "java/network/azure-resourcemanager-network",
"Tag": "java/network/azure-resourcemanager-network_7d7f40f37b"
"Tag": "java/network/azure-resourcemanager-network_b024e10f71"
}
2 changes: 1 addition & 1 deletion sdk/network/azure-resourcemanager-network/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-network</artifactId>
<version>2.56.0-beta.1</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager-network;current} -->
<version>2.55.1</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager-network;current} -->
<packaging>jar</packaging>

<name>Microsoft Azure SDK for Network Management</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public PagedIterable<LocalNetworkGateway> list() {

@Override
public PagedFlux<LocalNetworkGateway> listAsync() {
return PagedConverter
return PagedConverterForMergedPagedFlux
.mapPage(PagedConverter.mergePagedFlux(this.manager().resourceManager().resourceGroups().listAsync(),
rg -> inner().listByResourceGroupAsync(rg.name())), this::wrapModel);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.resourcemanager.network.implementation;

import com.azure.core.http.rest.PagedFlux;
import com.azure.core.http.rest.PagedResponse;
import com.azure.core.http.rest.PagedResponseBase;
import com.azure.core.util.paging.PageRetriever;
import reactor.core.publisher.Flux;

import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;

/**
* Utility class for conversion of PagedResponse.
*/
final class PagedConverterForMergedPagedFlux {

private PagedConverterForMergedPagedFlux() {
}

/**
* Applies map transform to elements of PagedFlux.
* <p>
* Use this mapPage (not the one in PagedConverter) when the PagedFlux is produced by PagedConverter.mergePagedFlux.
*
* @param pagedFlux the input of PagedFlux.
* @param mapper the map transform of element T to element S.
* @param <T> input type of PagedFlux.
* @param <S> return type of PagedFlux.
* @return the PagedFlux with elements in PagedResponse transformed.
*/
static <T, S> PagedFlux<S> mapPage(PagedFlux<T> pagedFlux, Function<T, S> mapper) {
Supplier<PageRetriever<String, PagedResponse<S>>> provider = () -> (continuationToken, pageSize) -> {
// take all the pages, do not use .take(1)
Flux<PagedResponse<T>> flux
= (continuationToken == null) ? pagedFlux.byPage() : pagedFlux.byPage(continuationToken);
return flux.map(mapPagedResponse(mapper));
};
return PagedFlux.create(provider);
}

private static <T, S> Function<PagedResponse<T>, PagedResponse<S>> mapPagedResponse(Function<T, S> mapper) {
return pagedResponse -> new PagedResponseBase<Void, S>(pagedResponse.getRequest(),
pagedResponse.getStatusCode(), pagedResponse.getHeaders(),
pagedResponse.getValue().stream().map(mapper).collect(Collectors.toList()),
pagedResponse.getContinuationToken(), null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public VirtualNetworkGateway parent() {

@Override
public PagedFlux<VirtualNetworkGatewayConnection> listAsync() {
return PagedConverter
return PagedConverterForMergedPagedFlux
.mapPage(PagedConverter.mergePagedFlux(this.manager().resourceManager().resourceGroups().listAsync(),
rg -> inner().listByResourceGroupAsync(rg.name())), this::wrapModel);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public PagedIterable<VirtualNetworkGateway> list() {
// TODO: Test this
@Override
public PagedFlux<VirtualNetworkGateway> listAsync() {
return PagedConverter
return PagedConverterForMergedPagedFlux
.mapPage(PagedConverter.mergePagedFlux(this.manager().resourceManager().resourceGroups().listAsync(),
rg -> inner().listByResourceGroupAsync(rg.name())), this::wrapModel);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.http.policy.HttpPipelinePolicy;
import com.azure.core.http.policy.RetryPolicy;
import com.azure.core.management.exception.ManagementException;
import com.azure.resourcemanager.keyvault.KeyVaultManager;
import com.azure.resourcemanager.msi.MsiManager;
import com.azure.core.management.profile.AzureProfile;
Expand Down Expand Up @@ -51,6 +52,10 @@ protected void initializeClients(HttpPipeline httpPipeline, AzureProfile profile

@Override
protected void cleanUpResources() {
resourceManager.resourceGroups().beginDeleteByName(rgName);
try {
resourceManager.resourceGroups().beginDeleteByName(rgName);
} catch (ManagementException e) {
// ignore
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.resourcemanager.network;

import com.azure.core.management.Region;
import com.azure.core.management.exception.ManagementException;
import com.azure.resourcemanager.network.models.VirtualNetworkGateway;
import com.azure.resourcemanager.network.models.VirtualNetworkGatewaySkuName;
import com.azure.resourcemanager.resources.fluentcore.arm.models.HasName;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class VirtualNetworkGatewayTests extends NetworkTests {

private static final Region REGION = Region.US_WEST3;

@Test
public void testListBySubscription() {
String group1 = generateRandomResourceName("rg1", 15);
String group2 = generateRandomResourceName("rg2", 15);
String gatewayName1 = generateRandomResourceName("vngw1", 15);
String gatewayName2 = generateRandomResourceName("vngw2", 15);

rgName = group1;

try {
VirtualNetworkGateway gateway1 = createVirtualNetworkGateway(group1, gatewayName1);
VirtualNetworkGateway gateway2 = createVirtualNetworkGateway(group2, gatewayName2);

List<VirtualNetworkGateway> gatewayList
= networkManager.virtualNetworkGateways().list().stream().collect(Collectors.toList());
Assertions.assertTrue(gatewayList.size() >= 2);
Set<String> gatewayNames = gatewayList.stream().map(HasName::name).collect(Collectors.toSet());
Assertions.assertTrue(gatewayNames.containsAll(Arrays.asList(gatewayName1, gatewayName2)));
} finally {
// group1 would be deleted in cleanUpResources
try {
resourceManager.resourceGroups().beginDeleteByName(group2);
} catch (ManagementException e) {
// ignore
}
}
}

private VirtualNetworkGateway createVirtualNetworkGateway(String groupName, String name) {
return networkManager.virtualNetworkGateways()
.define(name)
.withRegion(REGION)
.withNewResourceGroup(groupName)
.withNewNetwork("10.0.0.0/25", "10.0.0.0/27")
.withRouteBasedVpn()
.withSku(VirtualNetworkGatewaySkuName.BASIC)
.create();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ public static <T, S> PagedIterable<S> mapPage(PagedIterable<T> pageIterable, Fun

/**
* Applies map transform to elements of PagedFlux.
* <p>
* Do not use it over PagedFlux generated from mergePagedFlux, as the continuationToken in that case cannot be used
* to continue the outer PagedFlux.
*
* @param pagedFlux the input of PagedFlux.
* @param mapper the map transform of element T to element S.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,18 @@ public void testMergePagedFlux() {
Assertions.assertEquals(3 * 10, new PagedIterable<>(mergedPagedFlux).stream().count());
}

@Disabled("PagedConverter.mapPage should not be used with PagedConverter.mergePagedFlux (see PagedConverter documentation).")
@Test
public void testMergePagedFluxThenMapPage() {
PagedFlux<String> pagedFlux = mockPagedFlux("base", 0, 3, 2);
PagedFlux<String> mergedPagedFlux
= PagedConverter.mergePagedFlux(pagedFlux, item -> mockPagedFlux(item + "sub", 0, 10, 4));

PagedIterable<String> iterable
= new PagedIterable<>(PagedConverter.mapPage(mergedPagedFlux, Function.identity()));
Assertions.assertEquals(3 * 10, iterable.stream().count());
}

@Test
public void testMergePagedFluxContainsEmptyPage() {
PagedFlux<String> pagedFlux = mockPagedFlux("base", 0, 3, 2);
Expand Down Expand Up @@ -252,7 +264,7 @@ private static PagedFlux<String> mockPagedFlux(String prefix, int startInclusive

return pages.get(continuationToken);
};
return new PagedFlux<>(() -> Mono.just(nextPage.apply(prefix)),
continuationToken -> Mono.just(nextPage.apply(continuationToken)));
return new PagedFlux<>(() -> Mono.justOrEmpty(nextPage.apply(prefix)),
continuationToken -> Mono.justOrEmpty(nextPage.apply(continuationToken)));
}
}
Loading