예제 #1
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            ExecuteClientAction(() =>
            {
                if (ShouldProcess(this.Name, VerbsCommon.New))
                {
                    CapacityReservation capacityReservation = new CapacityReservation();
                    capacityReservation.Location            = this.Location;

                    capacityReservation.Sku          = new Sku();
                    capacityReservation.Sku.Name     = this.Sku;
                    capacityReservation.Sku.Capacity = this.CapacityToReserve;

                    if (this.IsParameterBound(c => c.Tag))
                    {
                        capacityReservation.Tags = this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value);
                    }
                    if (this.IsParameterBound(c => c.Zone))
                    {
                        capacityReservation.Zones = this.Zone;
                    }

                    var result   = CapacityReservationClient.CreateOrUpdate(this.ResourceGroupName, this.ReservationGroupName, this.Name, capacityReservation);
                    var psObject = new PSCapacityReservation();
                    ComputeAutomationAutoMapperProfile.Mapper.Map <CapacityReservation, PSCapacityReservation>(result, psObject);
                    WriteObject(psObject);
                }
            });
        }
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            ExecuteClientAction(() =>
            {
                string resourceGroupName;
                string reservationGroupName;
                string name;

                switch (this.ParameterSetName)
                {
                case ResourceIDParameterSet:
                    resourceGroupName    = GetResourceGroupName(this.ResourceId);
                    reservationGroupName = GetResourceName(this.ResourceId, "Microsoft.Compute/capacityReservationGroups", "capacityReservations");
                    name = GetResourceName(this.ResourceId, "capacityReservations");
                    break;

                case InputObjectParameterSet:
                    resourceGroupName    = GetResourceGroupName(this.CapacityReservation.Id);
                    reservationGroupName = GetResourceName(this.CapacityReservation.Id, "Microsoft.Compute/capacityReservationGroups", "capacityReservations");
                    name = this.CapacityReservation.Name;
                    break;

                default:
                    resourceGroupName    = this.ResourceGroupName;
                    reservationGroupName = this.ReservationGroupName;
                    name = this.Name;
                    break;
                }

                CapacityReservationUpdate updateParams = new CapacityReservationUpdate();
                if (this.IsParameterBound(c => c.Tag))
                {
                    updateParams.Tags = this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value);
                }
                if (this.IsParameterBound(c => c.CapacityToReserve))
                {
                    updateParams.Sku          = new Sku();
                    updateParams.Sku.Capacity = this.CapacityToReserve;
                }

                var result   = CapacityReservationClient.Update(resourceGroupName, reservationGroupName, name, updateParams);
                var psObject = new PSCapacityReservation();
                ComputeAutomationAutoMapperProfile.Mapper.Map <CapacityReservation, PSCapacityReservation>(result, psObject);
                WriteObject(psObject);
            });
        }
 public override void ExecuteCmdlet()
 {
     base.ExecuteCmdlet();
     ExecuteClientAction(() =>
     {
         if (this.IsParameterBound(c => c.Name))
         {
             CapacityReservation result = new CapacityReservation();
             if (this.InstanceView.IsPresent)
             {
                 result = CapacityReservationClient.Get(this.ResourceGroupName, this.ReservationGroupName, this.Name, "InstanceView");
             }
             else
             {
                 result = CapacityReservationClient.Get(this.ResourceGroupName, this.ReservationGroupName, this.Name);
             }
             var psObject = new PSCapacityReservation();
             ComputeAutomationAutoMapperProfile.Mapper.Map <CapacityReservation, PSCapacityReservation>(result, psObject);
             WriteObject(psObject);
         }
         else
         {
             var result       = CapacityReservationClient.ListByCapacityReservationGroup(this.ResourceGroupName, this.ReservationGroupName);
             var resultList   = result.ToList();
             var nextPageLink = result.NextPageLink;
             while (!string.IsNullOrEmpty(nextPageLink))
             {
                 var pageResult = CapacityReservationClient.ListByCapacityReservationGroupNext(nextPageLink);
                 foreach (var pageItem in pageResult)
                 {
                     resultList.Add(pageItem);
                 }
                 nextPageLink = pageResult.NextPageLink;
             }
             var psObject = new List <PSCapacityReservationList>();
             foreach (var r in resultList)
             {
                 psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <CapacityReservation, PSCapacityReservationList>(r));
             }
             WriteObject(TopLevelWildcardFilter(this.ResourceGroupName, this.Name, psObject), true);
         }
     });
 }