public async Task Get() { string dnsZoneName = $"{SessionRecording.GenerateAssetName("sample")}.com"; _dnsZone = await CreateADnsZone(dnsZoneName, _resourceGroup); var collection = _dnsZone.GetRecordSetCaas(); string name = "caa"; await collection.CreateOrUpdateAsync(WaitUntil.Completed, name, new CaaRecordSetData() { }); var recordSetCaaResource = await collection.GetAsync(name); Assert.IsNotNull(recordSetCaaResource); Assert.AreEqual(name, recordSetCaaResource.Value.Data.Name); Assert.AreEqual("Succeeded", recordSetCaaResource.Value.Data.ProvisioningState); Assert.AreEqual("dnszones/CAA", recordSetCaaResource.Value.Data.ResourceType.Type); }
// TODO add logging error and output //private readonly StringBuilder _outputData = new StringBuilder(); //private readonly StringBuilder _errorData = new StringBuilder(); protected override void Execute(SessionRecording recording, LaunchProgramActionSettings settings) { _settings = settings; _process = CreateProcess(settings, recording); if (settings.KeepRunning == false) { _process.EnableRaisingEvents = true; _process.Exited += process_Exited; } if (_process.Start()) { if (settings.WaitForStart) { if (_settings.WaitTimeout.HasValue) { _process.WaitForInputIdle((int)_settings.WaitTimeout.Value.TotalMilliseconds); //_process.WaitForInputIdle(); //Thread.Sleep((int)_settings.WaitTimeout.Value.TotalMilliseconds); } else { _process.WaitForInputIdle(); } } if (settings.KeepRunning) { _service.Add(_process.Id, settings.Tag); _process.Dispose(); _process = null; OnCompleted(SessionStepResult.Successful); } } else { // TODO show or log that the process did not start OnCompleted(SessionStepResult.Failed); } }
protected override void Execute(SessionRecording recording, ShowDesktopActionSettings settings) { if (settings.MinimizeAll) { TryMinimizeAllWindows(); } if (settings.ShowTaskbar.HasValue) { var taskbar = new WindowsTaskbarHelper(); _taskbar = taskbar; if (settings.ShowTaskbar.Value) { Task.Run(() => taskbar.Show()).Forget(); } else { Task.Run(() => taskbar.Hide()).Forget(); } } }
private static void AddConfigurations(SessionRecording recording, SessionRecordingPathsBuilder paths) { var selectedStreamingDevices = recording.DeviceConfigurations.Keys.Where(d => DeviceType.StreamingDevices.Contains(d)).ToList(); foreach (var streamingDevice in selectedStreamingDevices) { string key = "TargetPath"; string value = paths.BuildDeviceFilePath(streamingDevice, "data", "bin"); recording.DeviceConfigurations.AddOrUpdate ( key: streamingDevice, addValueFactory: d => new Dictionary <string, object>() { { key, value } }, updateValueFactory: (_, configurations) => { configurations.AddOrUpdate(key, value, (__, ___) => value); return(configurations); } ); } }
protected override void Execute(SessionRecording recording, FixationFilterActionSettings settings) { var result = recording.Results.OfType <LocalSessionRecordingResult>().FirstOrDefault(); var path = result?.Paths.FirstOrDefault(p => Path.GetFileNameWithoutExtension(p).Equals("ET_data", StringComparison.InvariantCultureIgnoreCase)); if (path != null) { string extension = Path.GetExtension(path).TrimStart('.'); var serializationFactory = GetSerializationFactory(extension); var data = ReadInputData(path, serializationFactory); var fixations = data.Select(gd => gd.ToToolkit()) .FillInGaps(TimeSpan.FromMilliseconds(75)) .SelectEye(EyeSelectionStrategy.Average) .ReduceNoise(new ExponentialSmoothingFilter(0.3)) .CalculateVelocities(TimeSpan.FromMilliseconds(20), 60) .ClassifyMovements(30) .MergeAdjacentFixations(TimeSpan.FromMilliseconds(75), 0.5) .DiscardShortFixations(TimeSpan.FromMilliseconds(60)); string filename = "ET_fixations_post.json"; string filepath = Path.Combine(Path.GetDirectoryName(path), filename); _subscription = WriteOutput(fixations, filepath, serializationFactory) .Subscribe ( onNext: _ => { }, onError: ex => OnCompleted(new SessionStepExceptionResult(ex)), onCompleted: () => { result.Paths.Add(filepath); OnCompleted(new FixationFilterResult(filename)); } ); } else { OnCompleted(SessionStepResult.Skipped); } }
public async Task GlobalSetUp() { var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(true, SessionRecording.GenerateAssetName("WebPubSubRG-"), new ResourceGroupData(AzureLocation.WestUS2)); ResourceGroup rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; _vnetName = SessionRecording.GenerateAssetName("Vnet-"); _privateEndPointName = SessionRecording.GenerateAssetName("PrivateEndPoint-"); //create vnet var vnetData = new VirtualNetworkData() { Location = "westus2", AddressSpace = new AddressSpace() { AddressPrefixes = { "10.10.0.0/16", } }, Subnets = { new SubnetData() { Name = "subnet01", AddressPrefix = "10.10.1.0/24", }, new SubnetData() { Name = "subnet02", AddressPrefix = "10.10.2.0/24", PrivateEndpointNetworkPolicies = "Disabled", } }, }; var vnetLro = await rg.GetVirtualNetworks().CreateOrUpdateAsync(true, _vnetName, vnetData); _vnet = vnetLro.Value; await StopSessionRecordingAsync(); }
public async Task GlobalSetUp() { Subscription subscription = await GlobalClient.GetDefaultSubscriptionAsync(); var rgLro = await subscription.GetResourceGroups().CreateOrUpdateAsync(SessionRecording.GenerateAssetName("FirewallRG-"), new ResourceGroupData(Location.WestUS2)); ResourceGroup rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; VirtualNetworkData vnetData = new VirtualNetworkData() { Location = Location.WestUS2, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.20.0.0/16", } }, Subnets = { new SubnetData() { Name = "Default", AddressPrefix = "10.20.1.0/26", }, new SubnetData() { Name = "AzureFirewallSubnet", AddressPrefix = "10.20.2.0/26", }, }, }; var vnetLro = await rg.GetVirtualNetworks().CreateOrUpdateAsync(SessionRecording.GenerateAssetName("vnet-"), vnetData); _network = vnetLro.Value; _networkIdentifier = _network.Id; PublicIPAddressData ipData = new PublicIPAddressData() { Location = Location.WestUS2, PublicIPAllocationMethod = IPAllocationMethod.Static, Sku = new PublicIPAddressSku() { Name = PublicIPAddressSkuName.Standard }, }; var ipLro = await rg.GetPublicIPAddresses().CreateOrUpdateAsync(SessionRecording.GenerateAssetName("publicIp-"), ipData); _publicIPAddress = ipLro.Value; _publicIPAddressIdentifier = _publicIPAddress.Id; _firewallName = SessionRecording.GenerateAssetName("firewall-"); await StopSessionRecordingAsync(); }
public async Task GlobalSetUp() { //var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().GetAsync("Sql-RG-1000"); var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, SessionRecording.GenerateAssetName("Sql-RG-"), new ResourceGroupData(AzureLocation.WestUS2)); ResourceGroupResource rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; await StopSessionRecordingAsync(); }
public async Task GlobalSetUp() { Subscription subscription = await GlobalClient.GetDefaultSubscriptionAsync(); var rgLro = await subscription.GetResourceGroups().CreateOrUpdateAsync(true, SessionRecording.GenerateAssetName("FirewallPolicyRG-"), new ResourceGroupData(AzureLocation.WestUS2)); ResourceGroup rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; VirtualNetworkData vnetData = new VirtualNetworkData() { Location = AzureLocation.WestUS2, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.26.0.0/16", } }, Subnets = { new SubnetData() { Name = "Default", AddressPrefix = "10.26.1.0/26", }, new SubnetData() { Name = "AzureFirewallSubnet", AddressPrefix = "10.26.2.0/26", }, }, }; var vnetLro = await rg.GetVirtualNetworks().CreateOrUpdateAsync(true, SessionRecording.GenerateAssetName("vnet-"), vnetData); _network = vnetLro.Value; _networkIdentifier = _network.Id; PublicIPAddressData ipData = new PublicIPAddressData() { Location = AzureLocation.WestUS2, PublicIPAllocationMethod = IPAllocationMethod.Static, Sku = new PublicIPAddressSku() { Name = PublicIPAddressSkuName.Standard }, }; var ipLro = await rg.GetPublicIPAddresses().CreateOrUpdateAsync(true, SessionRecording.GenerateAssetName("publicIp-"), ipData); _publicIPAddress = ipLro.Value; _publicIPAddressIdentifier = _publicIPAddress.Id; AzureFirewallData firewallData = new AzureFirewallData(); firewallData.Location = AzureLocation.WestUS2; firewallData.IPConfigurations.Add(new AzureFirewallIPConfiguration() { Name = "fwpip", PublicIPAddress = new WritableSubResource() { Id = _publicIPAddressIdentifier }, Subnet = new WritableSubResource() { Id = _networkIdentifier.AppendChildResource("subnets", "AzureFirewallSubnet") }, }); var firewallLro = await rg.GetAzureFirewalls().CreateOrUpdateAsync(true, SessionRecording.GenerateAssetName("firewall-"), firewallData); _firewall = firewallLro.Value; _firewallIdentifier = _firewall.Id; await StopSessionRecordingAsync(); }
public async Task GlobalSetUp() { var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(SessionRecording.GenerateAssetName("Sql-RG-"), new ResourceGroupData(Location.WestUS2)); ResourceGroup resourceGroup = rgLro.Value; _resourceGroupIdentifier = resourceGroup.Id; //Prerequisites: 1. create NetworkSecurityGroup string networkSecurityGroupName = SessionRecording.GenerateAssetName("networkSecurityGroup-"); NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = Location.WestUS2, }; var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroupData); //2. create Route table string routeTableName = SessionRecording.GenerateAssetName("routeTable-"); RouteTableData routeTableData = new RouteTableData() { Location = Location.WestUS2, }; var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(routeTableName, routeTableData); //3. create Virtual network string vnetName = SessionRecording.GenerateAssetName("vnet-"); var vnetData = new VirtualNetworkData() { Location = "westus2", AddressSpace = new AddressSpace() { AddressPrefixes = { "10.10.0.0/16", } }, Subnets = { new SubnetData() { Name = "subnet01", AddressPrefix = "10.10.1.0/24", }, new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id.ToString() }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id.ToString() }, } }, }; var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(vnetName, vnetData); SubnetId = $"{vnet.Value.Data.Id.ToString()}/subnets/ManagedInstance"; await StopSessionRecordingAsync(); }
public async Task GlobalSetUp() { var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, SessionRecording.GenerateAssetName("WebPubSubRG-"), new ResourceGroupData(AzureLocation.WestUS2)); ResourceGroupResource rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; _webPubSubName = SessionRecording.GenerateAssetName("WebPubSub-"); _linkName = SessionRecording.GenerateAssetName("link-"); _vnetName = SessionRecording.GenerateAssetName("vnet-"); await StopSessionRecordingAsync(); }
public ISessionRecorder Create(SessionRecording recording) { return(new InMemorySessionRecorder(recording, _observers, _resolver.Get <InMemoryRecordingDataSource>())); }
public async Task OneTimeSetup() { var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, SessionRecording.GenerateAssetName(ResourceGroupPrefix), new ResourceGroupData(new AzureLocation("westus2"))); ResourceGroupResource rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; await StopSessionRecordingAsync(); }
public async Task GlobalSetUp() { var rgLro = await GlobalClient.DefaultSubscription.GetResourceGroups().CreateOrUpdateAsync(SessionRecording.GenerateAssetName("IpGroupRG-"), new ResourceGroupData(Location.WestUS2)); ResourceGroup rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; _ipGroupName = SessionRecording.GenerateAssetName("IpGroupRG-"); StopSessionRecording(); }
public void Execute(SessionRecording recording, SessionStepActionSettings settings) { Execute(recording, (TSettings)settings); }
public override void Execute(SessionRecordingViewModel recording) { _recording = recording.Recording; }
public SessionRecordingViewModel(SessionRecording newSess) { viewSess = newSess; sessionRecordingViewModel = this; }
public InMemoryRecordingDataAccessBuffer Open(SessionRecording recording, string sessionId) { CurrentId = sessionId; return(Current = _buffers.GetOrAdd(sessionId, _ => new InMemoryRecordingDataAccessBuffer(recording.SelectedDevices))); }
private async Task <InstancePoolResource> CreateInstancePool(string instancePoolName) { //Prerequisites: 1. create NetworkSecurityGroup string networkSecurityGroupName = SessionRecording.GenerateAssetName("networkSecurityGroup-"); NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData() { Location = AzureLocation.WestUS2, }; var networkSecurityGroup = await _resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroupData); //2. create Route table string routeTableName = SessionRecording.GenerateAssetName("routeTable-"); RouteTableData routeTableData = new RouteTableData() { Location = AzureLocation.WestUS2, }; var routeTable = await _resourceGroup.GetRouteTables().CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTableData); //3. create Virtual network string vnetName = SessionRecording.GenerateAssetName("vnet-"); var vnetData = new VirtualNetworkData() { Location = "westus2", Subnets = { new SubnetData() { Name = "subnet01", AddressPrefix = "10.10.1.0/24", }, new SubnetData() { Name = "ManagedInstance", AddressPrefix = "10.10.2.0/24", Delegations = { new Delegation() { ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", ResourceType = "Microsoft.Sql" } }, RouteTable = new RouteTableData() { Id = routeTable.Value.Data.Id }, NetworkSecurityGroup = new NetworkSecurityGroupData() { Id = networkSecurityGroup.Value.Data.Id }, } }, }; vnetData.AddressPrefixes.Add("10.10.0.0/16"); var vnet = await _resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, vnetName, vnetData); string subnetId = $"{vnet.Value.Data.Id.ToString()}/subnets/ManagedInstance"; InstancePoolData data = new InstancePoolData(AzureLocation.WestUS2) { Sku = new SqlSku("GP_Gen5", "GeneralPurpose", null, "Gen5", null), LicenseType = InstancePoolLicenseType.LicenseIncluded, Location = AzureLocation.WestUS2, SubnetId = subnetId, VCores = 8, }; var instancePoolLro = await _resourceGroup.GetInstancePools().CreateOrUpdateAsync(WaitUntil.Completed, instancePoolName, data); return(instancePoolLro.Value); }
public async Task <SharedPrivateLink> CreateSharedPrivateLink(string LinkName) { //1. create vnet var vnetData = new VirtualNetworkData() { Location = "westus2", AddressSpace = new AddressSpace() { AddressPrefixes = { "10.10.0.0/16", } }, Subnets = { new SubnetData() { Name = "subnet01", AddressPrefix = "10.10.1.0/24", }, new SubnetData() { Name = "subnet02", AddressPrefix = "10.10.2.0/24", PrivateEndpointNetworkPolicies = "Disabled", } }, }; var vnetContainer = _resourceGroup.GetVirtualNetworks(); var vnet = await vnetContainer.CreateOrUpdateAsync(true, _vnetName, vnetData); //2.1 Create AppServicePlan //string appServicePlanName = "appServicePlan5952"; //string location = "westus2"; //string appServicePlanId = $"{_resourceGroupIdentifier}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"; //var armClient = GetArmClient(); //await armClient.DefaultSubscription.GetGenericResources().CreateOrUpdateAsync(appServicePlanId, new GenericResourceData(location) //{ // Properties = new Dictionary<string, object> // { // { "resources", new Dictionary<string, object> // { // { "type", "Microsoft.Web/serverfarms" }, // { "apiVersion", "2021-01-15" }, // { "name", appServicePlanName }, // { "location", location }, // { "kind", "app" }, // { "sku", new Dictionary<string,object> // { // { "name", "P1v2" }, // { "tier", "PremiumV2" }, // { "size", "P1v2" }, // { "family", "P1v2" }, // { "capacity", 1 }, // } // }, // { "properties", new Dictionary<string,object> // { // { "perSiteScaling", false }, // { "elasticScaleEnabled", false }, // { "maximumElasticWorkerCount", 1 }, // { "isSpot", false }, // { "reserved", false }, // { "isXenon", false }, // { "hyperV", false }, // { "targetWorkerCount", 0 }, // { "targetWorkerSizeId", 0 }, // } // }, // } // } // } //}); //TODO: 2.2 Create Appservice(Microsoft.Web/sites) string WebAppName = SessionRecording.GenerateAssetName("site-"); //3 create SharedPrivateLink //TODO: Creating a SharedPrivateLink inevitably requires manual approval on the portal. var container = _webPubSub.GetSharedPrivateLinks(); SharedPrivateLinkData data = new SharedPrivateLinkData() { PrivateLinkResourceId = $"{_resourceGroupIdentifier}/providers/Microsoft.Web/sites/{WebAppName}/sharedPrivateLinkResources/{LinkName}", GroupId = "webPubSub", RequestMessage = "please approve", }; var link = await container.CreateOrUpdateAsync(true, LinkName, data); return(link.Value); }
public async Task OneTimeSetup() { var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, SessionRecording.GenerateAssetName(ResourceGroupPrefix), new ResourceGroupData(new AzureLocation("westus"))); ResourceGroupResource rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; _emailServiceName = SessionRecording.GenerateAssetName("email-test"); await CreateDefaultEmailServices(_emailServiceName, rg); _location = ResourceLocation; _dataLocation = ResourceDataLocation; await StopSessionRecordingAsync(); }
protected abstract void Execute(SessionRecording recording, TSettings settings);
public InMemorySessionDeviceRecorder(SessionRecording recording, InMemoryRecordingDataAccessBuffer buffer, BufferSessionRecorderConfiguration configuration) { _devices = recording.SelectedDevices.ToList(); _buffer = buffer; _configuration = configuration; }
public async Task GlobalSetUp() { Subscription subscription = await GlobalClient.GetDefaultSubscriptionAsync(); var rgLro = await subscription.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, SessionRecording.GenerateAssetName("bastionrg-"), new ResourceGroupData(AzureLocation.WestUS2)); ResourceGroup rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; VirtualNetworkData vnetData = new VirtualNetworkData(); vnetData.Location = AzureLocation.WestUS2; vnetData.AddressSpace = new AddressSpace(); vnetData.AddressSpace.AddressPrefixes.Add("10.0.0.0/16"); var vnetLro = await rg.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, SessionRecording.GenerateAssetName("vnet-"), vnetData); VirtualNetwork vnet = vnetLro.Value; SubnetData subnetData = new SubnetData(); subnetData.AddressPrefix = "10.0.0.0/24"; var subnetLro = await vnet.GetSubnets().CreateOrUpdateAsync(WaitUntil.Completed, "AzureBastionSubnet", subnetData); _subnetIdentifier = subnetLro.Value.Id; PublicIPAddressData ipData = new PublicIPAddressData(); ipData.Location = AzureLocation.WestUS2; ipData.PublicIPAllocationMethod = IPAllocationMethod.Static; ipData.Sku = new PublicIPAddressSku(); ipData.Sku.Name = PublicIPAddressSkuName.Standard; var ipLro = await rg.GetPublicIPAddresses().CreateOrUpdateAsync(WaitUntil.Completed, SessionRecording.GenerateAssetName("ip-"), ipData); _publicIPAddressIdentifier = ipLro.Value.Id; _bastionName = SessionRecording.GenerateAssetName("bastion-"); await StopSessionRecordingAsync(); }
internal LocalSessionRecordingResult(SessionRecording recording, string rootFolder) { Recording = recording; RootFolder = rootFolder; Paths = new List <string>(); }
public async Task GlobalSetUp() { var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(true, SessionRecording.GenerateAssetName("WebPubSubRG-"), new ResourceGroupData(AzureLocation.WestUS2)); ResourceGroup rg = rgLro.Value; _resourceGroupIdentifier = rg.Id; await StopSessionRecordingAsync(); }
public async Task GlobalSetup() { _resourceGroup = await GlobalClient.GetResourceGroupResource(_resourceGroupIdentifier).GetAsync(); _databaseAccount = await CreateDatabaseAccount(SessionRecording.GenerateAssetName("dbaccount-"), DatabaseAccountKind.GlobalDocumentDB, new DatabaseAccountCapability("EnableCassandra")); _cassandraKeyspaceId = (await CassandraKeyspaceTests.CreateCassandraKeyspace(SessionRecording.GenerateAssetName("cassandra-keyspace-"), null, _databaseAccount.GetCassandraKeyspaces())).Id; await StopSessionRecordingAsync(); }