示例#1
0
        public PSPacketCaptureResult GetPacketCapture(string resourceGroupName, string name, string packetCaptureName)
        {
            PacketCaptureResult   packetCapture   = this.PacketCaptures.Get(resourceGroupName, name, packetCaptureName);
            PSPacketCaptureResult psPacketCapture = NetworkResourceManagerProfile.Mapper.Map <PSPacketCaptureResult>(packetCapture);

            return(psPacketCapture);
        }
        private PSPacketCaptureResult CreatePacketCapture()
        {
            MNM.PacketCapture packetCaptureProperties = new MNM.PacketCapture();

            if (this.BytesToCapturePerPacket != null)
            {
                packetCaptureProperties.BytesToCapturePerPacket = this.BytesToCapturePerPacket;
            }

            if (this.TotalBytesPerSession != null)
            {
                packetCaptureProperties.TotalBytesPerSession = this.TotalBytesPerSession;
            }

            if (this.TimeLimitInSeconds != null)
            {
                packetCaptureProperties.TimeLimitInSeconds = this.TimeLimitInSeconds;
            }

            packetCaptureProperties.Target = this.TargetVirtualMachineId;

            packetCaptureProperties.StorageLocation             = new MNM.PacketCaptureStorageLocation();
            packetCaptureProperties.StorageLocation.FilePath    = this.LocalFilePath;
            packetCaptureProperties.StorageLocation.StorageId   = this.StorageAccountId;
            packetCaptureProperties.StorageLocation.StoragePath = this.StoragePath;

            if (this.Filter != null)
            {
                packetCaptureProperties.Filters = new List <MNM.PacketCaptureFilter>();
                foreach (PSPacketCaptureFilter filter in this.Filter)
                {
                    MNM.PacketCaptureFilter filterMNM = Mapper.Map <MNM.PacketCaptureFilter>(filter);
                    packetCaptureProperties.Filters.Add(filterMNM);
                }
            }

            PSPacketCaptureResult getPacketCapture = new PSPacketCaptureResult();

            // Execute the Create NetworkWatcher call
            if (ParameterSetName.Contains("SetByResource"))
            {
                this.PacketCaptures.Create(this.NetworkWatcher.ResourceGroupName, this.NetworkWatcher.Name, this.PacketCaptureName, packetCaptureProperties);
                getPacketCapture = this.GetPacketCapture(this.NetworkWatcher.ResourceGroupName, this.NetworkWatcher.Name, this.PacketCaptureName);
            }
            else
            {
                this.PacketCaptures.Create(this.ResourceGroupName, this.NetworkWatcherName, this.PacketCaptureName, packetCaptureProperties);
                getPacketCapture = this.GetPacketCapture(this.ResourceGroupName, this.NetworkWatcherName, this.PacketCaptureName);
            }

            return(getPacketCapture);
        }
        public override void Execute()
        {
            base.Execute();

            string resourceGroupName;
            string name;

            if (ParameterSetName.Contains("SetByResource"))
            {
                resourceGroupName = this.NetworkWatcher.ResourceGroupName;
                name = this.NetworkWatcher.Name;
            }
            else
            {
                resourceGroupName = this.ResourceGroupName;
                name = this.NetworkWatcherName;
            }

            if (!string.IsNullOrEmpty(this.PacketCaptureName))
            {
                PSPacketCaptureResult psPacketCapture = new PSPacketCaptureResult();
                psPacketCapture = this.GetPacketCapture(resourceGroupName, name, this.PacketCaptureName);

                var packetCaptureStatus = this.PacketCaptures.GetStatus(resourceGroupName, name, this.PacketCaptureName);

                PSGetPacketCaptureResult pcResult = new PSGetPacketCaptureResult();

                pcResult.BytesToCapturePerPacket = psPacketCapture.BytesToCapturePerPacket;
                pcResult.TotalBytesPerSession    = psPacketCapture.TotalBytesPerSession;
                pcResult.CaptureStartTime        = packetCaptureStatus.CaptureStartTime;
                pcResult.Etag    = psPacketCapture.Etag;
                pcResult.Filters = psPacketCapture.Filters;
                pcResult.Id      = psPacketCapture.Id;
                pcResult.Name    = psPacketCapture.Name;

                pcResult.PacketCaptureError = new List <string>();

                if (packetCaptureStatus.PacketCaptureError != null)
                {
                    foreach (var error in packetCaptureStatus.PacketCaptureError)
                    {
                        pcResult.PacketCaptureError.Add(error);
                    }
                }
                pcResult.PacketCaptureStatus = packetCaptureStatus.PacketCaptureStatus;
                pcResult.ProvisioningState   = psPacketCapture.ProvisioningState;
                pcResult.StopReason          = packetCaptureStatus.StopReason;
                pcResult.StorageLocation     = psPacketCapture.StorageLocation;
                pcResult.Target             = psPacketCapture.Target;
                pcResult.TimeLimitInSeconds = psPacketCapture.TimeLimitInSeconds;

                WriteObject(pcResult);
            }
            else
            {
                List <PSPacketCaptureResult> psPacketCaptureList = new List <PSPacketCaptureResult>();

                var packetCaptureList = this.PacketCaptures.List(resourceGroupName, name);
                var pcResultList      = new List <PSGetPacketCaptureResult>();

                foreach (var pc in packetCaptureList)
                {
                    PSPacketCaptureResult psPacketCapture = Mapper.Map <PSPacketCaptureResult>(pc);
                    psPacketCaptureList.Add(psPacketCapture);

                    var packetCaptureStatus   = this.PacketCaptures.GetStatus(resourceGroupName, name, psPacketCapture.Name);
                    var psPacketCaptureStatus = Mapper.Map <PSPacketCaptureStatus>(packetCaptureStatus);

                    PSGetPacketCaptureResult pcResult = new PSGetPacketCaptureResult();

                    pcResult.BytesToCapturePerPacket = psPacketCapture.BytesToCapturePerPacket;
                    pcResult.TotalBytesPerSession    = psPacketCapture.TotalBytesPerSession;
                    pcResult.CaptureStartTime        = psPacketCaptureStatus.CaptureStartTime;
                    pcResult.Etag               = psPacketCapture.Etag;
                    pcResult.Filters            = psPacketCapture.Filters;
                    pcResult.Id                 = psPacketCapture.Id;
                    pcResult.Name               = psPacketCapture.Name;
                    pcResult.PacketCaptureError = new List <string>();

                    if (packetCaptureStatus.PacketCaptureError != null)
                    {
                        foreach (var error in packetCaptureStatus.PacketCaptureError)
                        {
                            pcResult.PacketCaptureError.Add(error);
                        }
                    }
                    pcResult.PacketCaptureStatus = psPacketCaptureStatus.PacketCaptureStatus;
                    pcResult.ProvisioningState   = psPacketCapture.ProvisioningState;
                    pcResult.StopReason          = psPacketCaptureStatus.StopReason;
                    pcResult.StorageLocation     = psPacketCapture.StorageLocation;
                    pcResult.Target             = psPacketCapture.Target;
                    pcResult.TimeLimitInSeconds = psPacketCapture.TimeLimitInSeconds;

                    pcResultList.Add(pcResult);
                }

                WriteObject(pcResultList, true);
            }
        }
        public override void Execute()
        {
            base.Execute();

            string resourceGroupName;
            string name;

            if (string.Equals(this.ParameterSetName, "SetByLocation", StringComparison.OrdinalIgnoreCase))
            {
                var networkWatcher = this.GetNetworkWatcherByLocation(this.Location);

                if (networkWatcher == null)
                {
                    throw new ArgumentException("There is no network watcher in location {0}", this.Location);
                }

                resourceGroupName = NetworkBaseCmdlet.GetResourceGroup(networkWatcher.Id);
                name = networkWatcher.Name;
            }
            else if (string.Equals(this.ParameterSetName, "SetByResource", StringComparison.OrdinalIgnoreCase))
            {
                resourceGroupName = this.NetworkWatcher.ResourceGroupName;
                name = this.NetworkWatcher.Name;
            }
            else
            {
                resourceGroupName = this.ResourceGroupName;
                name = this.NetworkWatcherName;
            }

            if (ShouldGetByName(resourceGroupName, PacketCaptureName))
            {
                PSPacketCaptureResult psPacketCapture = new PSPacketCaptureResult();
                psPacketCapture = this.GetPacketCapture(resourceGroupName, name, this.PacketCaptureName);

                PSGetPacketCaptureResult pcResult = new PSGetPacketCaptureResult();

                try
                {
                    var packetCaptureStatus = this.PacketCaptures.GetStatus(resourceGroupName, name, this.PacketCaptureName);
                    pcResult.CaptureStartTime = packetCaptureStatus.CaptureStartTime;

                    pcResult.PacketCaptureError = new List <string>();

                    if (packetCaptureStatus.PacketCaptureError != null)
                    {
                        foreach (var error in packetCaptureStatus.PacketCaptureError)
                        {
                            pcResult.PacketCaptureError.Add(error);
                        }
                    }
                    pcResult.PacketCaptureStatus = packetCaptureStatus.PacketCaptureStatus;
                    pcResult.StopReason          = packetCaptureStatus.StopReason;
                }
                catch
                {
                    pcResult.CaptureStartTime    = null;
                    pcResult.PacketCaptureError  = null;
                    pcResult.PacketCaptureStatus = null;
                    pcResult.StopReason          = null;
                }
                finally
                {
                    pcResult.BytesToCapturePerPacket = psPacketCapture.BytesToCapturePerPacket;
                    pcResult.TotalBytesPerSession    = psPacketCapture.TotalBytesPerSession;
                    pcResult.Etag               = psPacketCapture.Etag;
                    pcResult.Filters            = psPacketCapture.Filters;
                    pcResult.Id                 = psPacketCapture.Id;
                    pcResult.Name               = psPacketCapture.Name;
                    pcResult.ProvisioningState  = psPacketCapture.ProvisioningState;
                    pcResult.StorageLocation    = psPacketCapture.StorageLocation;
                    pcResult.Target             = psPacketCapture.Target;
                    pcResult.TimeLimitInSeconds = psPacketCapture.TimeLimitInSeconds;
                }

                WriteObject(pcResult);
            }
            else
            {
                List <PSPacketCaptureResult> psPacketCaptureList = new List <PSPacketCaptureResult>();

                var packetCaptureList = this.PacketCaptures.List(resourceGroupName, name);
                var pcResultList      = new List <PSGetPacketCaptureResult>();

                foreach (var pc in packetCaptureList)
                {
                    PSPacketCaptureResult psPacketCapture = NetworkResourceManagerProfile.Mapper.Map <PSPacketCaptureResult>(pc);
                    psPacketCaptureList.Add(psPacketCapture);

                    PSGetPacketCaptureResult pcResult = new PSGetPacketCaptureResult();

                    try
                    {
                        var packetCaptureStatus   = this.PacketCaptures.GetStatus(resourceGroupName, name, psPacketCapture.Name);
                        var psPacketCaptureStatus = NetworkResourceManagerProfile.Mapper.Map <PSPacketCaptureStatus>(packetCaptureStatus);

                        pcResult.CaptureStartTime   = psPacketCaptureStatus.CaptureStartTime;
                        pcResult.PacketCaptureError = new List <string>();

                        if (packetCaptureStatus.PacketCaptureError != null)
                        {
                            foreach (var error in packetCaptureStatus.PacketCaptureError)
                            {
                                pcResult.PacketCaptureError.Add(error);
                            }
                        }
                        pcResult.PacketCaptureStatus = psPacketCaptureStatus.PacketCaptureStatus;
                        pcResult.StopReason          = psPacketCaptureStatus.StopReason;
                    }
                    catch
                    {
                        pcResult.CaptureStartTime    = null;
                        pcResult.PacketCaptureError  = null;
                        pcResult.PacketCaptureStatus = null;
                        pcResult.StopReason          = null;
                    }
                    finally
                    {
                        pcResult.BytesToCapturePerPacket = psPacketCapture.BytesToCapturePerPacket;
                        pcResult.TotalBytesPerSession    = psPacketCapture.TotalBytesPerSession;
                        pcResult.Etag               = psPacketCapture.Etag;
                        pcResult.Filters            = psPacketCapture.Filters;
                        pcResult.Id                 = psPacketCapture.Id;
                        pcResult.Name               = psPacketCapture.Name;
                        pcResult.StorageLocation    = psPacketCapture.StorageLocation;
                        pcResult.Target             = psPacketCapture.Target;
                        pcResult.TimeLimitInSeconds = psPacketCapture.TimeLimitInSeconds;
                        pcResult.ProvisioningState  = psPacketCapture.ProvisioningState;
                    }

                    pcResultList.Add(pcResult);
                }

                WriteObject(SubResourceWildcardFilter(PacketCaptureName, pcResultList), true);
            }
        }