def _run_move_cluster_volume_offline(vol_name): cmd = [ 'powershell', '-c', 'Stop-ClusterResource', '-Name', lib.pad_text(str(vol_name)), '-Cluster', lib.pad_text(config['FSRoleName']) ] error_prefix = "Stop-ClusterResource failed with error:" run(cmd, error_prefix)
def _get_cluster_vols(): cmd = [ 'powershell', '-c', 'Get-ClusterResource', '-Cluster', lib.pad_text(config['FSRoleName']), '|', 'where OwnerGroup -eq', lib.pad_text(config['FSRoleName']), '|', 'Select-Object', '-ExpandProperty Name' ] error_prefix = "Get-ClusterResource failed with error:" return run(cmd, error_prefix)
def _run_remove_vol_from_cluster(vol_name): # for some wierd way -Confirm:$False isn't working here but -Force does cmd = [ 'powershell', '-c', 'Remove-ClusterResource', '-Name', lib.pad_text(str(vol_name)), '-Cluster', lib.pad_text(config['FSRoleName']), '-Force' ] error_prefix = "Remove-ClusterResource failed with error:" run(cmd, error_prefix)
def _run_share_create(share_name, share_path): cmd = [ 'powershell', '-c', 'New-SmbShare', '-Name', lib.pad_text(share_name), '-Path', lib.pad_text(share_path), '-ScopeName', config['FSRoleName'], '-ContinuouslyAvailable:$true', '-CachingMode', 'None', '-FullAccess', 'Everyone' ] error_prefix = "New-SmbShare failed with error:" run(cmd, error_prefix)
def _run_move_volume_from_smb_cluster(vol_name): cmd = [ 'powershell', '-c', 'Move-ClusterResource', '-Name', lib.pad_text(str(vol_name)), '-Group "Cluster Group"' ] error_prefix = "Move-ClusterResource failed with error:" run(cmd, error_prefix)
def _run_share_limit_delete(share_path): # This can be always set over and over from any state cmd = [ 'powershell', '-c', 'Remove-FSRMQuota', '-Path', lib.pad_text(share_path), '-Confirm:$False' ] error_prefix = "Remove-FSRMQuota failed with error:" run(cmd, error_prefix)
def _run_share_limit_set_default(share_path): # This can be always set over and over from any state cmd = [ 'powershell', '-c', 'Set-FSRMQuota', '-Path', lib.pad_text(share_path), '-Size 1KB', '-Disabled:$True' ] error_prefix = "New-FSRMQuota failed with error:" run(cmd, error_prefix)
def _run_share_delete(share_name): cmd = [ 'powershell', '-c', 'Remove-SmbShare', '-Name', lib.pad_text(share_name), '-ScopeName', config['FSRoleName'], '-Confirm:$False' ] error_prefix = "Remove-SmbShare failed with error:" run(cmd, error_prefix)
def _run_remove_partition_access_path(disk_number, access_path): cmd = [ 'powershell', '-c', 'Remove-PartitionAccessPath', '-DiskNumber', str(disk_number), '-PartitionNumber 2', '-AccessPath', lib.pad_text(access_path) ] error_prefix = "Remove-PartitionAccessPath failed with error:" run(cmd, error_prefix)
def _perform_cluster_failover(): ''' Used only for tests''' cmd = [ 'powershell', '-c', 'Move-ClusterGroup', '-Name', lib.pad_text(config['FSRoleName']) ] error_prefix = "Move-ClusterGroup failed with error:" run(cmd, error_prefix)
def _run_share_limit_set(share_path, size): # Size differnces between capacity and windows ( in Win KB is KiB) size = str((size / byte) / 1024) + "KB" cmd = [ 'powershell', '-c', 'Set-FSRMQuota', '-Path', lib.pad_text(share_path), '-Size', size, '-Disabled:$False' ] error_prefix = "Set-FSRMQuota failed with error:" run(cmd, error_prefix)