public override void Execute()
        {
            base.Execute();


            var vRouteTable = new PSRouteTable
            {
                DisableBgpRoutePropagation = this.DisableBgpRoutePropagation,
                Location = this.Location,
                Routes   = this.Route,
            };

            var vRouteTableModel = NetworkResourceManagerProfile.Mapper.Map <MNM.RouteTable>(vRouteTable);

            vRouteTableModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true);
            var present = true;

            try
            {
                this.NetworkClient.NetworkManagementClient.RouteTables.Get(this.ResourceGroupName, this.Name);
            }
            catch (Microsoft.Rest.Azure.CloudException exception)
            {
                if (exception.Response.StatusCode == HttpStatusCode.NotFound)
                {
                    // Resource is not present
                    present = false;
                }
                else
                {
                    throw;
                }
            }

            ConfirmAction(
                Force.IsPresent,
                string.Format(Properties.Resources.OverwritingResource, Name),
                Properties.Resources.CreatingResourceMessage,
                Name,
                () =>
            {
                this.NetworkClient.NetworkManagementClient.RouteTables.CreateOrUpdate(this.ResourceGroupName, this.Name, vRouteTableModel);
                var getRouteTable = this.NetworkClient.NetworkManagementClient.RouteTables.Get(this.ResourceGroupName, this.Name);
                var psRouteTable  = NetworkResourceManagerProfile.Mapper.Map <PSRouteTable>(getRouteTable);
                psRouteTable.ResourceGroupName = this.ResourceGroupName;
                psRouteTable.Tag = TagsConversionHelper.CreateTagHashtable(getRouteTable.Tags);
                WriteObject(psRouteTable, true);
            },
                () => present);
        }
Example #2
0
        private PSRouteTable CreateRouteTable()
        {
            var psRouteTable = new PSRouteTable();

            psRouteTable.Name = this.Name;
            psRouteTable.ResourceGroupName = this.ResourceGroupName;
            psRouteTable.Location          = this.Location;
            psRouteTable.Routes            = this.Route;

            // Map to the sdk object
            var routeTableModel = Mapper.Map <MNM.RouteTable>(psRouteTable);

            routeTableModel.Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true);

            // Execute the Create RouteTable call
            this.RouteTableClient.CreateOrUpdate(this.ResourceGroupName, this.Name, routeTableModel);

            var getRouteTable = this.GetRouteTable(this.ResourceGroupName, this.Name);

            return(getRouteTable);
        }