TestCases/SVT/ServiceBus/ServiceBusResource.ps1
Set-StrictMode -Version Latest class ServiceBusResource:TestResource{ hidden [PSObject] $QueueName = 'azsdktestqueue'; hidden [PSObject] $QueueAuthRule = 'queueSend'; hidden [PSObject] $QueueAuthRulePermission = 'Send'; ServiceBusResource([TestCase] $testcase, [TestSettings] $testsettings):Base($testcase, $testsettings){ } #Setting the properties as required by this resource type. [void]SetDerivedResourceProps(){ $this.ResourceName = "azsdktestservicebus" #Else set the default resource name $this.ResourceType = "Microsoft.ServiceBus/namespaces" } #Checks and deploys the service bus if it does not exist. [void] InitializeResource( ){ if(!$this.IfResourceExists()){ $this.DeployServiceBus() } } #Deploy the service bus [void]DeployServiceBus() { try { $nameSpace = New-AzureRmServiceBusNamespace -Location "Southeast Asia" -ResourceGroupName $this.ResourceGroupName ` -NamespaceName $this.ResourceName -SkuName Basic $this.ProvisioningState = $nameSpace.ProvisioningState if($nameSpace.ProvisioningState -eq "Succeeded") { [CommonHelper]::Log("NameSpace "+$this.ResourceName + " is successfully deployed", [MessageType]::Information) New-AzureRmServiceBusQueue -ResourceGroup $this.ResourceGroupName -NamespaceName $this.ResourceName -QueueName $this.QueueName -EnablePartitioning $false } } catch{ [CommonHelper]::Log("Error while deploying the Service Bus: " + $this.ResourceName, [MessageType]::Error) } } #Set Service bus access policies [void]AddQueueAccessPolicies() { try { New-AzureRmServiceBusQueueAuthorizationRule -ResourceGroup $this.ResourceGroupName -NamespaceName $this.ResourceName ` -QueueName $this.QueueName -AuthorizationRuleName $this.QueueAuthRule -Rights $this.QueueAuthRulePermission [CommonHelper]::Log("Successfully set the authorization rules for queue: "+$this.QueueName, [MessageType]::Information) } catch { [CommonHelper]::Log("Error while setting authorization rules for queue: " + $this.QueueName, [MessageType]::Error) } } #Remove service bus access policies [void]RemoveQueueAccessPolicies() { try { $queuePolicies = Get-AzureRmServiceBusQueueAuthorizationRule -ResourceGroup $this.ResourceGroupName ` -NamespaceName $this.ResourceName -QueueName $this.QueueName if(($queuePolicies|Measure-Object).count -gt 0) { $queuePolicies | ForEach-Object{ Remove-AzureRmServiceBusQueueAuthorizationRule -ResourceGroup $this.ResourceGroupName ` -NamespaceName $this.ResourceName -QueueName $this.QueueName -AuthorizationRuleName $_.Name } } [CommonHelper]::Log("Successfully removed access policy from queue: "+$this.QueueName, [MessageType]::Information) } catch { [CommonHelper]::Log("Error while removing access policy from queue: " + $this.QueueName, [MessageType]::Error) } } } |