Esempio n. 1
0
        public override void Execute()
        {
            base.Execute();

            if (string.Equals(this.ParameterSetName, VirtualRouterParameterSetNames.ByVirtualRouterResourceId, StringComparison.OrdinalIgnoreCase))
            {
                var resourceInfo = new ResourceIdentifier(ResourceId);
                this.ResourceGroupName = resourceInfo.ResourceGroupName;
                this.RouterName        = resourceInfo.ResourceName;
            }

            string ipConfigName = "ipconfig1";

            var virtualHub = this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(ResourceGroupName, RouterName);

            virtualHub.AllowBranchToBranchTraffic = this.AllowBranchToBranchTraffic.IsPresent;
            this.NetworkClient.NetworkManagementClient.VirtualHubs.CreateOrUpdate(this.ResourceGroupName, this.RouterName, virtualHub);

            var psVirtualHub = NetworkResourceManagerProfile.Mapper.Map <CNM.PSVirtualHub>(virtualHub);

            psVirtualHub.ResourceGroupName = this.ResourceGroupName;
            psVirtualHub.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags);
            AddBgpConnectionsToPSVirtualHub(virtualHub, psVirtualHub, ResourceGroupName, RouterName);
            AddIpConfigurtaionToPSVirtualHub(psVirtualHub, this.ResourceGroupName, RouterName, ipConfigName);

            var psVirtualRouter = new PSVirtualRouter(psVirtualHub);

            psVirtualRouter.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags);
            WriteObject(psVirtualRouter, true);
        }
Esempio n. 2
0
        public override void Execute()
        {
            base.Execute();

            if (string.Equals(this.ParameterSetName, VirtualRouterParameterSetNames.ByVirtualRouterResourceId, StringComparison.OrdinalIgnoreCase))
            {
                var resourceInfo = new ResourceIdentifier(ResourceId);
                ResourceGroupName = resourceInfo.ResourceGroupName;
                RouterName        = resourceInfo.ResourceName;
            }

            string ipConfigName = "ipconfig1";

            if (ShouldGetByName(ResourceGroupName, RouterName))
            {
                var virtualHub      = this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(ResourceGroupName, RouterName);
                var virtualHubModel = NetworkResourceManagerProfile.Mapper.Map <CNM.PSVirtualHub>(virtualHub);
                virtualHubModel.ResourceGroupName = this.ResourceGroupName;
                virtualHubModel.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags);
                AddBgpConnectionsToPSVirtualHub(virtualHub, virtualHubModel, ResourceGroupName, RouterName);
                AddIpConfigurtaionToPSVirtualHub(virtualHubModel, this.ResourceGroupName, RouterName, ipConfigName);

                var virtualRouterModel = new PSVirtualRouter(virtualHubModel);
                virtualRouterModel.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags);
                WriteObject(virtualRouterModel, true);
            }
            else
            {
                IPage <VirtualHub> virtualHubPage;
                if (ShouldListByResourceGroup(ResourceGroupName, RouterName))
                {
                    virtualHubPage = this.NetworkClient.NetworkManagementClient.VirtualHubs.ListByResourceGroup(this.ResourceGroupName);
                }
                else
                {
                    virtualHubPage = this.NetworkClient.NetworkManagementClient.VirtualHubs.List();
                }

                var virtualHubList = ListNextLink <VirtualHub> .GetAllResourcesByPollingNextLink(virtualHubPage,
                                                                                                 this.NetworkClient.NetworkManagementClient.VirtualHubs.ListNext);

                List <PSVirtualRouter> virtualRouterList = new List <PSVirtualRouter>();
                foreach (var virtualHub in virtualHubList)
                {
                    RouterName = virtualHub.Name;
                    var virtualHubModel = NetworkResourceManagerProfile.Mapper.Map <CNM.PSVirtualHub>(virtualHub);
                    virtualHubModel.ResourceGroupName = NetworkBaseCmdlet.GetResourceGroup(virtualHub.Id);
                    virtualHubModel.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags);
                    AddBgpConnectionsToPSVirtualHub(virtualHub, virtualHubModel, ResourceGroupName, RouterName);
                    AddIpConfigurtaionToPSVirtualHub(virtualHubModel, this.ResourceGroupName, RouterName, ipConfigName);

                    var virtualRouterModel = new PSVirtualRouter(virtualHubModel);
                    virtualRouterModel.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags);
                    virtualRouterList.Add(virtualRouterModel);
                }
                WriteObject(virtualRouterList, true);
            }
        }
        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()
        {
            if (ParameterSetName.Equals(VirtualRouterPeerParameterSetNames.ByVirtualRouterPeerInputObject, StringComparison.OrdinalIgnoreCase))
            {
                var parsedResourceId = new ResourceIdentifier(InputObject.Id);
                PeerName          = parsedResourceId.ResourceName;
                ResourceGroupName = parsedResourceId.ResourceGroupName;
                VirtualRouterName = parsedResourceId.ParentResource;
            }
            else if (ParameterSetName.Equals(VirtualRouterPeerParameterSetNames.ByVirtualRouterPeerResourceId, StringComparison.OrdinalIgnoreCase))
            {
                var parsedResourceId = new ResourceIdentifier(ResourceId);
                PeerName          = parsedResourceId.ResourceName;
                ResourceGroupName = parsedResourceId.ResourceGroupName;
                VirtualRouterName = parsedResourceId.ParentResource;
            }

            base.Execute();

            ConfirmAction(
                Force.IsPresent,
                string.Format(Properties.Resources.RemovingResource, PeerName),
                Properties.Resources.RemoveResourceMessage,
                PeerName,
                () =>
            {
                string ipConfigName = "ipconfig1";

                this.NetworkClient.NetworkManagementClient.VirtualHubBgpConnection.Delete(ResourceGroupName, VirtualRouterName, PeerName);
                var virtualHub      = this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(ResourceGroupName, 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);
            });
        }
Esempio n. 5
0
        public override void Execute()
        {
            base.Execute();


            var present = true;

            try
            {
                this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(this.ResourceGroupName, this.Name);
            }
            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.Name, this.ResourceGroupName));
            }


            ConfirmAction(
                Properties.Resources.CreatingResourceMessage,
                Name,
                () =>
            {
                WriteVerbose(String.Format(Properties.Resources.CreatingLongRunningOperationMessage, this.ResourceGroupName, this.Name));
                PSVirtualHub virtualHub = new PSVirtualHub
                {
                    ResourceGroupName = this.ResourceGroupName,
                    Name     = this.Name,
                    Location = this.Location
                };

                virtualHub.RouteTables      = new List <PSVirtualHubRouteTable>();
                string ipConfigName         = "ipconfig1";
                HubIpConfiguration ipconfig = new HubIpConfiguration
                {
                    Subnet = new Subnet()
                    {
                        Id = this.HostedSubnet
                    }
                };

                var virtualHubModel  = NetworkResourceManagerProfile.Mapper.Map <MNM.VirtualHub>(virtualHub);
                virtualHubModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true);
                virtualHubModel.Sku  = "Standard";

                this.NetworkClient.NetworkManagementClient.VirtualHubs.CreateOrUpdate(this.ResourceGroupName, this.Name, virtualHubModel);
                this.NetworkClient.NetworkManagementClient.VirtualHubIpConfiguration.CreateOrUpdate(this.ResourceGroupName, this.Name, ipConfigName, ipconfig);
                virtualHubModel = this.NetworkClient.NetworkManagementClient.VirtualHubs.Get(this.ResourceGroupName, this.Name);

                virtualHub = NetworkResourceManagerProfile.Mapper.Map <PSVirtualHub>(virtualHubModel);
                virtualHub.ResourceGroupName = this.ResourceGroupName;
                AddIpConfigurtaionToPSVirtualHub(virtualHub, this.ResourceGroupName, this.Name, ipConfigName);

                var virtualRouter = new PSVirtualRouter(virtualHub);
                virtualRouter.Tag = TagsConversionHelper.CreateTagHashtable(virtualHubModel.Tags);
                WriteObject(virtualRouter, true);
            });
        }
Esempio n. 6
0
        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);
            });
        }
        public override void Execute()
        {
            base.Execute();

            var present = true;

            try
            {
                this.NetworkClient.NetworkManagementClient.VirtualRouters.Get(this.ResourceGroupName, this.Name);
            }
            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.Name, this.ResourceGroupName));
            }

            string hostedGatewayId = null;

            //// Resolve the virtual wan
            if (ParameterSetName.Equals(VirtualRouterParameterSetNames.ByHostedGateway, StringComparison.OrdinalIgnoreCase))
            {
                hostedGatewayId = this.HostedGateway.Id;
            }
            else if (ParameterSetName.Equals(VirtualRouterParameterSetNames.ByHostedGatewayId, StringComparison.OrdinalIgnoreCase))
            {
                hostedGatewayId = this.HostedGatewayId;
            }

            if (string.IsNullOrWhiteSpace(hostedGatewayId))
            {
                throw new PSArgumentException(Properties.Resources.VirtualGatewayRequiredForVirtualRouter);
            }


            ConfirmAction(
                Properties.Resources.CreatingResourceMessage,
                Name,
                () =>
            {
                WriteVerbose(String.Format(Properties.Resources.CreatingLongRunningOperationMessage, this.ResourceGroupName, this.Name));
                PSVirtualRouter virtualRouter = new PSVirtualRouter
                {
                    ResourceGroupName = this.ResourceGroupName,
                    Name          = this.Name,
                    HostedGateway = new PSResourceId()
                    {
                        Id = hostedGatewayId
                    },
                    Location         = this.Location,
                    VirtualRouterAsn = GatewayAsn
                };

                var vVirtualRouterModel  = NetworkResourceManagerProfile.Mapper.Map <MNM.VirtualRouter>(virtualRouter);
                vVirtualRouterModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true);

                this.NetworkClient.NetworkManagementClient.VirtualRouters.CreateOrUpdate(this.ResourceGroupName, this.Name, vVirtualRouterModel);
                var getVirtualRouter = this.NetworkClient.NetworkManagementClient.VirtualRouters.Get(this.ResourceGroupName, this.Name);
                var psVirtualRouter  = NetworkResourceManagerProfile.Mapper.Map <PSVirtualRouter>(getVirtualRouter);
                psVirtualRouter.ResourceGroupName = this.ResourceGroupName;
                psVirtualRouter.Tag = TagsConversionHelper.CreateTagHashtable(getVirtualRouter.Tags);
                WriteObject(psVirtualRouter, true);
            });
        }