Skip to content

Commit

Permalink
Resolved review comments at r1
Browse files Browse the repository at this point in the history
  • Loading branch information
johlju committed Jun 14, 2017
1 parent 07802e6 commit 9207d13
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 85 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,29 @@ function Get-TargetResource
$Ensure = 'Present'
)

Write-Verbose -Message "Retrieving Owner information for cluster $Clustername..."
Write-Verbose -Message "Retrieving Owner information for cluster $ClusterName..."

$ownernodes = @(
$ownerNodes = @(

Write-Verbose -Message "Retrieving Owner information for Cluster Group $ClusterGroup"
(((Get-ClusterGroup -cluster $Clustername)| Where-Object {$_.name -like "$ClusterGroup"} | Get-ClusterOwnerNode).ownernodes).name
(((Get-ClusterGroup -Cluster $ClusterName) | Where-Object -FilterScript {$_.Name -like "$ClusterGroup"} | Get-ClusterOwnerNode).OwnerNodes).Name

if ($ClusterResources)
{
foreach ($resource in $ClusterResources)
{
Write-Verbose -Message "Retrieving Owner information for Cluster Resource $resource"
(((Get-ClusterResource -cluster $Clustername)| Where-Object {$_.name -like "$resource"} | Get-ClusterOwnerNode).ownernodes).name
(((Get-ClusterResource -Cluster $ClusterName) | Where-Object -FilterScript {$_.Name -like "$resource"} | Get-ClusterOwnerNode).OwnerNodes).Name
}
}
)
$ownernodes = $ownernodes | Select-Object -Unique

$ownerNodes = $ownerNodes | Select-Object -Unique

$returnValue = @{
ClusterGroup = $ClusterGroup
Clustername = $Clustername
Nodes = $ownernodes
Clustername = $ClusterName
Nodes = $ownerNodes
ClusterResources = $ClusterResources
Ensure = $Ensure
}
Expand Down Expand Up @@ -90,62 +91,62 @@ function Set-TargetResource
$Ensure = 'Present'
)

Write-Verbose -Message "Retrieving all owners from cluster $Clustername"
$allnodes = (Get-ClusterNode -cluster $ClusterName).name
Write-Verbose -Message "Retrieving all owners from cluster $ClusterName"
$allNodes = (Get-ClusterNode -Cluster $ClusterName).Name

if ($Ensure -eq 'Present')
{
Write-Verbose -Message "Setting Cluster owners for Group $ClusterGroup to $nodes"
$null = (Get-ClusterGroup -cluster $ClusterName)| Where-Object {$_.name -like $ClusterGroup} | Set-ClusterOwnerNode $Nodes
$null = (Get-ClusterResource)| Where-Object {$_.OwnerGroup -like $ClusterGroup} | Set-ClusterOwnerNode $allnodes
Write-Verbose -Message "Setting Cluster owners for Group $ClusterGroup to $Nodes"
$null = (Get-ClusterGroup -Cluster $ClusterName) | Where-Object -FilterScript {$_.Name -like $ClusterGroup} | Set-ClusterOwnerNode -Owners $Nodes
$null = (Get-ClusterResource) | Where-Object {$_.OwnerGroup -like $ClusterGroup} | Set-ClusterOwnerNode -Owners $allNodes

Write-Verbose -Message "Moving Cluster Group $ClusterGroup to node $($nodes[0])"
$null = (Get-ClusterGroup -cluster $ClusterName)| Where-Object {$_.name -like $ClusterGroup} | Move-ClusterGroup -Node $Nodes[0]
Write-Verbose -Message "Moving Cluster Group $ClusterGroup to node $($Nodes[0])"
$null = (Get-ClusterGroup -Cluster $ClusterName) | Where-Object -FilterScript {$_.name -like $ClusterGroup} | Move-ClusterGroup -Node $Nodes[0]

foreach ($resource in $ClusterResources)
{
Write-Verbose -Message "Setting Cluster owners for Resource $resource to $nodes"
$null = (Get-ClusterResource -cluster $Clustername)| Where-Object {$_.name -like "$resource"} | Set-ClusterOwnerNode -owners $Nodes
Write-Verbose -Message "Setting Cluster owners for Resource $resource to $Nodes"
$null = (Get-ClusterResource -Cluster $ClusterName)| Where-Object -FilterScript {$_.Name -like "$resource"} | Set-ClusterOwnerNode -Owners $Nodes
}
}

if ($Ensure -eq 'Absent')
{

Write-Verbose -Message "Retrieving current clusterowners for group $ClusterGroup"
$currentowners = (((Get-ClusterGroup -cluster $Clustername)| Where-Object {$_.name -like "$ClusterGroup"} | Get-ClusterOwnerNode).ownernodes).name | Sort-Object -Unique
$newowners = @(
foreach ($currentowner in $currentowners)
Write-Verbose -Message "Retrieving current cluster owners for group $ClusterGroup"
$currentOwners = (((Get-ClusterGroup -Cluster $ClusterName)| Where-Object -FilterScript {$_.Name -like "$ClusterGroup"} | Get-ClusterOwnerNode).OwnerNodes).Name | Sort-Object -Unique
$newOwners = @(
foreach ($currentOwner in $currentOwners)
{
if ($Nodes -notcontains $currentOwner)
{
if ($Nodes -notcontains $currentowner)
{
$currentowner
}
$currentOwner
}
)
Write-Verbose -Message "Removing owners from group $($ClusterGroup): $Nodes"
$null = (Get-ClusterGroup -cluster $ClusterName)| Where-Object {$_.name -like $ClusterGroup} | Set-ClusterOwnerNode $newowners
}
)
Write-Verbose -Message "Removing owners from group $($ClusterGroup): $Nodes"
$null = (Get-ClusterGroup -Cluster $ClusterName)| Where-Object -FilterScript {$_.Name -like $ClusterGroup} | Set-ClusterOwnerNode $newOwners

Write-Verbose -Message "Setting Cluster owners for Group $ClusterGroup to $newowners"
$null = (Get-ClusterResource)| Where-Object {$_.OwnerGroup -like $ClusterGroup} | Set-ClusterOwnerNode $allnodes
Write-Verbose -Message "Setting Cluster owners for Group $ClusterGroup to $newOwners"
$null = (Get-ClusterResource)| Where-Object -FilterScript {$_.OwnerGroup -like $ClusterGroup} | Set-ClusterOwnerNode $allNodes

Write-Verbose -Message "Moving Cluster Group $ClusterGroup to node $($newowners[0])"
$null = (Get-ClusterGroup -cluster $ClusterName)| Where-Object {$_.name -like $ClusterGroup} | Move-ClusterGroup -Node $newowners[0]
Write-Verbose -Message "Moving Cluster Group $ClusterGroup to node $($newOwners[0])"
$null = (Get-ClusterGroup -Cluster $ClusterName)| Where-Object -FilterScript {$_.Name -like $ClusterGroup} | Move-ClusterGroup -Node $newOwners[0]

foreach ($resource in $ClusterResources)
{
Write-Verbose -Message "Retrieving current clusterowners for resource $resource"
$currentowners = ((Get-ClusterResource -cluster $Clustername | Where-Object {$_.name -like "$resource"} | Get-ClusterOwnerNode).ownernodes).name | Sort-Object -Unique
$newowners = @(
foreach ($currentowner in $currentowners)
$currentOwners = ((Get-ClusterResource -Cluster $ClusterName | Where-Object -FilterScript {$_.Name -like "$resource"} | Get-ClusterOwnerNode).OwnerNodes).Name | Sort-Object -Unique
$newOwners = @(
foreach ($currentOwner in $currentOwners)
{
if ($Nodes -notcontains $currentowner)
if ($Nodes -notcontains $currentOwner)
{
$currentowner
$currentOwner
}
}
)
Write-Verbose -Message "Setting Cluster owners for Resource $resource to $newowners"
$null = Get-ClusterResource -cluster $Clustername | Where-Object {$_.name -like "$resource"} | Set-ClusterOwnerNode -owners $newowners
Write-Verbose -Message "Setting Cluster owners for Resource $resource to $newOwners"
$null = Get-ClusterResource -Cluster $ClusterName | Where-Object -FilterScript {$_.Name -like "$resource"} | Set-ClusterOwnerNode -Owners $newOwners
}
}
}
Expand Down Expand Up @@ -181,24 +182,25 @@ function Test-TargetResource
$Ensure = 'Present'
)

Write-Verbose -Message "Testing Owner information for cluster $Clustername..."
Write-Verbose -Message "Testing Owner information for cluster $ClusterName..."

$getinfo = (Get-TargetResource @PSBoundParameters).Nodes
$getTargetResourceResult = (Get-TargetResource @PSBoundParameters).Nodes
$result = $true

if ($Ensure -eq 'Present')
{
foreach ($object in $getinfo)
{
foreach ($object in $getTargetResourceResult)
{
if ($Nodes -notcontains $object)
{
Write-Verbose -Message "$object was NOT found as possible owner"
$result = $false
}
}
foreach ($object in $nodes)

foreach ($object in $Nodes)
{
if ($getinfo -notcontains $object)
if ($getTargetResourceResult -notcontains $object)
{
Write-Verbose -Message "$object was NOT found as possible owner"
$result = $false
Expand All @@ -207,18 +209,19 @@ function Test-TargetResource
}

if ($Ensure -eq 'Absent')
{
foreach ($object in $getinfo)
{
foreach ($object in $getTargetResourceResult)
{
if ($Nodes -contains $object)
{
Write-Verbose -Message "$object WAS found as possible owner"
$result = $false
}
}
foreach ($object in $nodes)

foreach ($object in $Nodes)
{
if ($getinfo -contains $object)
if ($getTargetResourceResult -contains $object)
{
Write-Verbose -Message "$object WAS found as possible owner"
$result = $false
Expand Down
36 changes: 0 additions & 36 deletions Tests/MSFT_xClusterDisk.Tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,6 @@ Describe 'xClusterDisk' {
}

Mock -CommandName 'Get-ClusterParameter' -ParameterFilter { $Name -eq 'DiskIdGuid' } -MockWith {
#write-host $args.count -ForegroundColor Cyan
#write-host $args -ForegroundColor Cyan
switch ($InputObject.Name)
{
'First Data' {
Expand All @@ -104,98 +102,64 @@ Describe 'xClusterDisk' {
Context 'Validate Get-TargetResource method' {

It 'Returns a [System.Collection.Hashtable] type' {

$Result = Get-TargetResource @TestParameter

$Result -is [System.Collections.Hashtable] | Should Be $true
}

It 'Returns current configuration' {

$Result = Get-TargetResource @TestParameter

$Result.Number | Should Be $TestParameter.Number
$Result.Ensure | Should Be $TestParameter.Ensure
$Result.Label | Should Be $TestParameter.Label

$Result -is [System.Collections.Hashtable] | Should Be $true
}

It 'Returns absent for a disk that is absent but should be present' {

$Result = Get-TargetResource @TestParameter2

$Result.Number | Should Be $TestParameter2.Number
$Result.Ensure | Should Not Be $TestParameter2.Ensure
$Result.Label | Should Not Be $TestParameter2.Label

$Result -is [System.Collections.Hashtable] | Should Be $true
}

It 'Returns absent for a disk that is absent as it should be' {

$Result = Get-TargetResource @TestParameter3

$Result.Number | Should Be $TestParameter3.Number
$Result.Ensure | Should Be $TestParameter3.Ensure
$Result.Label | Should Be ''

$Result -is [System.Collections.Hashtable] | Should Be $true
}

It 'Returns present for a disk that is present but has the wrong label' {

$Result = Get-TargetResource @TestParameter4

$Result.Number | Should Be $TestParameter4.Number
$Result.Ensure | Should Be $TestParameter4.Ensure
$Result.Label | Should Not Be $TestParameter4.Label

$Result -is [System.Collections.Hashtable] | Should Be $true
}
}

Context 'Validate Set-TargetResource method' {

It 'Returns nothing' {

$Result = Set-TargetResource @TestParameter

$Result -eq $null | Should Be $true
}
}

Context 'Validate Test-TargetResource method' {

It 'Check present disk that is present returns $true' {

$Result = Test-TargetResource -Ensure $TestParameter.Ensure -Label $TestParameter.Label -Number $TestParameter.Number

$Result -is [System.Boolean] | Should Be $true
$Result | Should Be $true
}

It 'Check absent disk that should be present returns $false' {

$Result = Test-TargetResource -Ensure $TestParameter2.Ensure -Label $TestParameter2.Label -Number $TestParameter2.Number

$Result -is [System.Boolean] | Should Be $true
$Result | Should Be $false
}

It 'Check absent disk that is absent returns $true' {

$Result = Test-TargetResource -Ensure $TestParameter3.Ensure -Label $TestParameter3.Label -Number $TestParameter3.Number

$Result -is [System.Boolean] | Should Be $true
$Result | Should Be $true
}

It 'Check that present disk but with a wrong label returns $false' {

$Result = Test-TargetResource -Ensure $TestParameter4.Ensure -Label $TestParameter4.Label -Number $TestParameter4.Number

$Result -is [System.Boolean] | Should Be $true
$Result | Should Be $false
}
}
Expand Down

0 comments on commit 9207d13

Please sign in to comment.