public void ShouldDeleteStaticVMNetwork()
        {
            var mockChannel = new MockRequestChannel();

            var existingVmNetwork = new VMNetwork()
            {
                Name             = vNetName,
                Description      = vNetDescription,
                LogicalNetworkId = Guid.Empty,
                StampId          = Guid.Empty,
            };

            mockChannel.AddReturnObject(new Cloud()
            {
                StampId = Guid.NewGuid()
            });
            mockChannel.AddReturnObject(existingVmNetwork, new WebHeaderCollection {
                "x-ms-request-id:" + Guid.NewGuid()
            });

            Guid?jobOut;
            var  VMNetworkOperations = new VMNetworkOperations(new WebClientFactory(new Subscription(), mockChannel));

            VMNetworkOperations.Delete(Guid.Empty, out jobOut);

            Assert.Equal(2, mockChannel.ClientRequests.Count);
            Assert.Equal(HttpMethod.Delete.ToString(), mockChannel.ClientRequests[1].Item1.Method);

            // Check the URI
            var requestURI = mockChannel.ClientRequests[1].Item1.Address.AbsolutePath;

            Assert.Equal("/Clouds", mockChannel.ClientRequests[0].Item1.Address.AbsolutePath.Substring(1));
            Assert.Equal(baseURI, mockChannel.ClientRequests[1].Item1.Address.AbsolutePath.Substring(1).Remove(requestURI.IndexOf('(') - 1));
        }
Esempio n. 2
0
        public override void ExecuteCmdlet()
        {
            ConfirmAction(
                Force.IsPresent,
                string.Format(Resources.RemoveVMNetworkConfirmationMessage, VNet.Name),
                string.Format(Resources.RemoveVMNetworkMessage), VNet.Name,
                () =>
            {
                Guid?vmNetworkJobId               = Guid.Empty;
                var vmNetworkOperations           = new VMNetworkOperations(this.WebClientFactory);
                var vmSubnetOperations            = new VMSubnetOperations(this.WebClientFactory);
                var staticIPAddressPoolOperations = new StaticIPAddressPoolOperations(this.WebClientFactory);

                var deletedVMNetwork = vmNetworkOperations.Read(VNet.ID);
                var deletedSubnet    = vmSubnetOperations.Read(VNet);

                foreach (var subnet in deletedSubnet)
                {
                    var deletedIpPool = staticIPAddressPoolOperations.Read(subnet);
                    foreach (var ipPool in deletedIpPool)
                    {
                        Guid?ipPoolJobId = Guid.Empty;
                        staticIPAddressPoolOperations.Delete(ipPool.ID, out ipPoolJobId);
                        WaitForJobCompletion(ipPoolJobId);
                    }
                }

                foreach (var subnet in deletedSubnet)
                {
                    Guid?subnetJobId = Guid.Empty;
                    vmSubnetOperations.Delete(subnet.ID, out subnetJobId);
                    WaitForJobCompletion(subnetJobId);
                }
                vmNetworkOperations.Delete(VNet.ID, out vmNetworkJobId);
                var jobInfo = WaitForJobCompletion(vmNetworkJobId);

                if (this.PassThru)
                {
                    WriteObject(jobInfo.jobStatus != JobStatusEnum.Failed);
                }
            });
        }
        public override void ExecuteCmdlet()
        {
            ConfirmAction(
            Force.IsPresent,
            string.Format(Resources.RemoveVMNetworkConfirmationMessage, VNet.Name),
            string.Format(Resources.RemoveVMNetworkMessage), VNet.Name,
            () =>
            {
                Guid? vmNetworkJobId = Guid.Empty;
                var vmNetworkOperations = new VMNetworkOperations(this.WebClientFactory);
                var vmSubnetOperations = new VMSubnetOperations(this.WebClientFactory);
                var staticIPAddressPoolOperations = new StaticIPAddressPoolOperations(this.WebClientFactory);

                var deletedVMNetwork = vmNetworkOperations.Read(VNet.ID);
                var deletedSubnet = vmSubnetOperations.Read(VNet);

                foreach (var subnet in deletedSubnet)
                {
                    var deletedIpPool = staticIPAddressPoolOperations.Read(subnet);
                    foreach (var ipPool in deletedIpPool)
                    {
                        Guid? ipPoolJobId = Guid.Empty;
                        staticIPAddressPoolOperations.Delete(ipPool.ID, out ipPoolJobId);
                        WaitForJobCompletion(ipPoolJobId);   
                    }
                }

                foreach (var subnet in deletedSubnet)
                {
                    Guid? subnetJobId = Guid.Empty;
                    vmSubnetOperations.Delete(subnet.ID, out subnetJobId);
                    WaitForJobCompletion(subnetJobId);
                }
                vmNetworkOperations.Delete(VNet.ID, out vmNetworkJobId);
                var jobInfo = WaitForJobCompletion(vmNetworkJobId);

                if (this.PassThru)
                {
                    WriteObject(jobInfo.jobStatus != JobStatusEnum.Failed);
                }
            });
        }
        public void ShouldDeleteStaticVMNetwork()
        {
            var mockChannel = new MockRequestChannel();

            var existingVmNetwork = new VMNetwork()
            {
                Name = vNetName,
                Description = vNetDescription,
                LogicalNetworkId = Guid.Empty,
                StampId = Guid.Empty,
            };
            mockChannel.AddReturnObject(new Cloud() { StampId = Guid.NewGuid() });
            mockChannel.AddReturnObject(existingVmNetwork, new WebHeaderCollection { "x-ms-request-id:" + Guid.NewGuid() });

            Guid? jobOut;
            var VMNetworkOperations = new VMNetworkOperations(new WebClientFactory(new Subscription(), mockChannel));
            VMNetworkOperations.Delete(Guid.Empty, out jobOut);

            Assert.Equal(2, mockChannel.ClientRequests.Count);
            Assert.Equal(HttpMethod.Delete.ToString(), mockChannel.ClientRequests[1].Item1.Method);

            // Check the URI
            var requestURI = mockChannel.ClientRequests[1].Item1.Address.AbsolutePath;
            Assert.Equal("/Clouds", mockChannel.ClientRequests[0].Item1.Address.AbsolutePath.Substring(1));
            Assert.Equal(baseURI, mockChannel.ClientRequests[1].Item1.Address.AbsolutePath.Substring(1).Remove(requestURI.IndexOf('(') - 1));
        }