@@ -26,6 +26,20 @@ namespace Microsoft.Azure.Commands.Network
26
26
27
27
public class VirtualHubBaseCmdlet : NetworkBaseCmdlet
28
28
{
29
+ private HubVnetConnectionBaseCmdlet hubVnetConnectionBaseCmdlet ;
30
+
31
+ public HubVnetConnectionBaseCmdlet HubVnetConnectionCmdlet
32
+ {
33
+ get
34
+ {
35
+ if ( hubVnetConnectionBaseCmdlet == null )
36
+ {
37
+ hubVnetConnectionBaseCmdlet = new HubVnetConnectionBaseCmdlet ( ) ;
38
+ }
39
+ return hubVnetConnectionBaseCmdlet ;
40
+ }
41
+ }
42
+
29
43
public IVirtualHubsOperations VirtualHubClient
30
44
{
31
45
get
@@ -49,9 +63,10 @@ public PSVirtualHub GetVirtualHub(string resourceGroupName, string name)
49
63
{
50
64
//// The following code will throw if resource is not found
51
65
MNM . VirtualHub virtualHub = this . VirtualHubClient . Get ( resourceGroupName , name ) ;
52
-
53
66
PSVirtualHub psVirtualHub = ToPsVirtualHub ( virtualHub ) ;
54
67
psVirtualHub . ResourceGroupName = resourceGroupName ;
68
+ psVirtualHub . VirtualNetworkConnections = this . HubVnetConnectionCmdlet . ListHubVnetConnections ( resourceGroupName , name ) ;
69
+
55
70
return psVirtualHub ;
56
71
}
57
72
catch ( Exception ex )
@@ -73,6 +88,8 @@ public bool IsVirtualHubPresent(string resourceGroupName, string name)
73
88
74
89
public PSVirtualHub CreateOrUpdateVirtualHub ( string resourceGroupName , string virtualHubName , PSVirtualHub virtualHub , Hashtable tags , Dictionary < string , List < string > > customHeaders = null )
75
90
{
91
+ var psHubVnetConnections = virtualHub . VirtualNetworkConnections ;
92
+ virtualHub . VirtualNetworkConnections = null ;
76
93
var virtualHubModel = NetworkResourceManagerProfile . Mapper . Map < MNM . VirtualHub > ( virtualHub ) ;
77
94
virtualHubModel . Location = virtualHub . Location ;
78
95
virtualHubModel . Tags = TagsConversionHelper . CreateTagDictionary ( tags , validate : true ) ;
@@ -94,6 +111,32 @@ public PSVirtualHub CreateOrUpdateVirtualHub(string resourceGroupName, string vi
94
111
PSVirtualHub hubToReturn = this . ToPsVirtualHub ( virtualHubCreatedOrUpdated ) ;
95
112
hubToReturn . ResourceGroupName = resourceGroupName ;
96
113
114
+ if ( psHubVnetConnections == null )
115
+ {
116
+ return hubToReturn ;
117
+ }
118
+
119
+ // Crud operation on the vnet connections
120
+ hubToReturn . VirtualNetworkConnections = new List < PSHubVirtualNetworkConnection > ( ) ;
121
+
122
+ foreach ( var psConnection in psHubVnetConnections )
123
+ {
124
+ var hubVnetConnnection = NetworkResourceManagerProfile . Mapper . Map < MNM . HubVirtualNetworkConnection > ( psConnection ) ;
125
+ // get auth headers for cross-tenant hubvnet conn
126
+ List < string > resourceIds = new List < string > ( ) ;
127
+ resourceIds . Add ( psConnection . RemoteVirtualNetwork . Id ) ;
128
+
129
+ var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds ( resourceIds ) ;
130
+ Dictionary < string , List < string > > auxAuthHeader = null ;
131
+ if ( auxHeaderDictionary != null && auxHeaderDictionary . Count > 0 )
132
+ {
133
+ auxAuthHeader = new Dictionary < string , List < string > > ( auxHeaderDictionary ) ;
134
+ }
135
+
136
+ var psConnectionReturn = this . HubVnetConnectionCmdlet . CreateOrUpdateHubVirtualNetworkConnection ( resourceGroupName , virtualHubName , psConnection . Name , hubVnetConnnection , customHeaders ) ;
137
+ hubToReturn . VirtualNetworkConnections . Add ( psConnectionReturn ) ;
138
+ }
139
+
97
140
return hubToReturn ;
98
141
}
99
142
@@ -110,6 +153,8 @@ public List<PSVirtualHub> ListVirtualHubs(string resourceGroupName)
110
153
{
111
154
PSVirtualHub virtualHubToReturn = ToPsVirtualHub ( virtualHub ) ;
112
155
virtualHubToReturn . ResourceGroupName = NetworkBaseCmdlet . GetResourceGroup ( virtualHub . Id ) ;
156
+ virtualHubToReturn . VirtualNetworkConnections = this . HubVnetConnectionCmdlet . ListHubVnetConnections ( resourceGroupName , virtualHub . Name ) ;
157
+
113
158
hubsToReturn . Add ( virtualHubToReturn ) ;
114
159
}
115
160
}
0 commit comments