public override void Execute() { base.Execute(); var present = true; try { this.NetworkClient.NetworkManagementClient.VirtualHubBgpConnection.Get(this.ResourceGroupName, this.VirtualRouterName, this.PeerName); } catch (Exception ex) { if (ex is Microsoft.Azure.Management.Network.Models.ErrorException || ex is Rest.Azure.CloudException) { // Resource is not present present = false; } else { throw; } } if (present) { throw new PSArgumentException(string.Format(Properties.Resources.ResourceAlreadyPresentInResourceGroup, this.PeerName, this.ResourceGroupName, this.VirtualRouterName)); } ConfirmAction( Properties.Resources.CreatingResourceMessage, PeerName, () => { WriteVerbose(String.Format(Properties.Resources.CreatingLongRunningOperationMessage, this.ResourceGroupName, this.PeerName)); PSVirtualRouterPeer peer = new PSVirtualRouterPeer { PeerAsn = this.PeerAsn, PeerIp = this.PeerIp, Name = this.PeerName }; string ipConfigName = "ipconfig1"; var bgpConnectionModel = NetworkResourceManagerProfile.Mapper.Map <MNM.BgpConnection>(peer); this.NetworkClient.NetworkManagementClient.VirtualHubBgpConnection.CreateOrUpdate(this.ResourceGroupName, this.VirtualRouterName, this.PeerName, bgpConnectionModel); var virtualHub = this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(this.ResourceGroupName, this.VirtualRouterName); var virtualHubModel = NetworkResourceManagerProfile.Mapper.Map <PSVirtualHub>(virtualHub); virtualHubModel.ResourceGroupName = this.ResourceGroupName; virtualHubModel.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags); AddBgpConnectionsToPSVirtualHub(virtualHub, virtualHubModel, ResourceGroupName, this.VirtualRouterName); AddIpConfigurtaionToPSVirtualHub(virtualHubModel, this.ResourceGroupName, this.VirtualRouterName, ipConfigName); var VirtualRouterModel = new PSVirtualRouter(virtualHubModel); VirtualRouterModel.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags); WriteObject(VirtualRouterModel, true); }); }
public override void Execute() { base.Execute(); var present = true; try { this.NetworkClient.NetworkManagementClient.VirtualRouterPeerings.Get(this.ResourceGroupName, this.VirtualRouterName, this.PeerName); } catch (Exception ex) { if (ex is Microsoft.Azure.Management.Network.Models.ErrorException || ex is Rest.Azure.CloudException) { // Resource is not present present = false; } else { throw; } } if (present) { throw new PSArgumentException(string.Format(Properties.Resources.ResourceAlreadyPresentInResourceGroup, this.PeerName, this.ResourceGroupName, this.VirtualRouterName)); } ConfirmAction( Properties.Resources.CreatingResourceMessage, PeerName, () => { WriteVerbose(String.Format(Properties.Resources.CreatingLongRunningOperationMessage, this.ResourceGroupName, this.PeerName)); PSVirtualRouterPeer virtualRouterPeer = new PSVirtualRouterPeer { PeerAsn = this.PeerAsn, PeerIp = this.PeerIp, Name = this.PeerName }; var vVirtualRouterPeerModel = NetworkResourceManagerProfile.Mapper.Map <MNM.VirtualRouterPeering>(virtualRouterPeer); this.NetworkClient.NetworkManagementClient.VirtualRouterPeerings.CreateOrUpdate(this.ResourceGroupName, this.VirtualRouterName, this.PeerName, vVirtualRouterPeerModel); var getVirtualRouter = this.NetworkClient.NetworkManagementClient.VirtualRouters.Get(this.ResourceGroupName, this.VirtualRouterName); var vVirtualRouterModel = NetworkResourceManagerProfile.Mapper.Map <CNM.PSVirtualRouter>(getVirtualRouter); vVirtualRouterModel.ResourceGroupName = this.ResourceGroupName; vVirtualRouterModel.Tag = TagsConversionHelper.CreateTagHashtable(getVirtualRouter.Tags); AddPeeringsToPSVirtualRouter(getVirtualRouter, vVirtualRouterModel, ResourceGroupName, this.VirtualRouterName); WriteObject(vVirtualRouterModel, true); }); }
public override void Execute() { if (ParameterSetName.Equals(VirtualRouterPeerParameterSetNames.ByVirtualRouterPeerInputObject, StringComparison.OrdinalIgnoreCase)) { PeerName = InputObject.Name; PeerAsn = InputObject.PeerAsn; PeerIp = InputObject.PeerIp; } else if (ParameterSetName.Equals(VirtualRouterPeerParameterSetNames.ByVirtualRouterPeerResourceId, StringComparison.OrdinalIgnoreCase)) { var parsedResourceId = new ResourceIdentifier(ResourceId); PeerName = parsedResourceId.ResourceName; } base.Execute(); var present = true; BgpConnection existingBgpConnection = null; try { existingBgpConnection = this.NetworkClient.NetworkManagementClient.VirtualHubBgpConnection.Get(this.ResourceGroupName, this.VirtualRouterName, this.PeerName); } catch (Microsoft.Rest.Azure.CloudException exception) { if (exception.Response.StatusCode == HttpStatusCode.NotFound) { // Resource is not present present = false; } else { throw; } } if (!present) { throw new PSArgumentException(string.Format(Properties.Resources.ResourceNotFound, this.PeerName, this.ResourceGroupName, this.VirtualRouterName)); } if (ParameterSetName.Equals(VirtualRouterPeerParameterSetNames.ByVirtualRouterPeerResourceId, StringComparison.OrdinalIgnoreCase)) { var parsedResourceId = new ResourceIdentifier(ResourceId); PeerAsn = (uint)existingBgpConnection.PeerAsn; PeerIp = existingBgpConnection.PeerIp; } ConfirmAction( Properties.Resources.SettingResourceMessage, PeerName, () => { WriteVerbose(String.Format(Properties.Resources.UpdatingLongRunningOperationMessage, this.ResourceGroupName, this.PeerName)); PSVirtualRouterPeer peer = new PSVirtualRouterPeer { Name = this.PeerName, PeerAsn = this.PeerAsn, PeerIp = this.PeerIp }; string ipConfigName = "ipconfig1"; var bgpConnectionModel = NetworkResourceManagerProfile.Mapper.Map <MNM.BgpConnection>(peer); this.NetworkClient.NetworkManagementClient.VirtualHubBgpConnection.CreateOrUpdate(this.ResourceGroupName, this.VirtualRouterName, this.PeerName, bgpConnectionModel); var virtualHub = this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(this.ResourceGroupName, this.VirtualRouterName); var virtualHubModel = NetworkResourceManagerProfile.Mapper.Map <CNM.PSVirtualHub>(virtualHub); virtualHubModel.ResourceGroupName = this.ResourceGroupName; virtualHubModel.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags); AddBgpConnectionsToPSVirtualHub(virtualHub, virtualHubModel, ResourceGroupName, this.VirtualRouterName); AddIpConfigurtaionToPSVirtualHub(virtualHubModel, this.ResourceGroupName, this.VirtualRouterName, ipConfigName); var vVirtualRouterModel = new PSVirtualRouter(virtualHubModel); vVirtualRouterModel.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags); WriteObject(vVirtualRouterModel, true); }); }