implemented try catch blocks on adding to hashmap to allow graceful handling of exceptions

This commit is contained in:
Karl-Wilfried Zimmer 2024-02-08 22:54:01 +01:00
parent 82df61e07a
commit a71cf2f949

View File

@ -37,32 +37,53 @@ function ProduceHashMap {
$Elements
)
$HashTable =@{}
foreach ($elem in $Elements){
$indexOfFirst = $elem.IndexOf(" ")
if($indexOfFirst -le 0){
continue
}
$date = $elem.SubString(0,$elem.IndexOf(" ",($indexOfFirst + 1)))
$timeStamp = ConvertDate($date)
$rest = $elem.Substring($elem.IndexOf(" ",($indexOfFirst + 1))+1)
$vmName = GetVMName($rest)
$backUpState = DeterminState($rest)
if($HashTable.ContainsKey($vmName)){
$array = $HashTable[$vmName]
$array += New-Object psobject -Property @{
state = $backUpState
ts = $timeStamp
foreach ($elem in $Elements){
$indexOfFirst = $elem.IndexOf(" ")
if($indexOfFirst -le 0){
continue
}
$date = $elem.SubString(0,$elem.IndexOf(" ",($indexOfFirst + 1)))
$rest = $elem.Substring($elem.IndexOf(" ",($indexOfFirst + 1))+1)
$vmName = GetVMName($rest)
$backUpState = DeterminState($rest)
$timeStamp
if($HashTable.ContainsKey($vmName)){
$array = $HashTable[$vmName]
try {
$timeStamp = ConvertDate($date)
$array += New-Object psobject -Property @{
state = $backUpState
ts = $timeStamp
}
}
catch {
foreach ($i in (($array.Count-1)..0)){
Write-Host $array[$i]
if ($array[$i]["state"] -eq 'Started') {
Write-Host "found started"
$timeStamp = $array[$i]['ts']
}
}
$array += New-Object psobject -Property @{
state = $backUpState
ts = $timeStamp
}
}
$HashTable[$vmName]=$array
} else {
try {
$timeStamp = ConvertDate($date)
$HashTable += @{$vmName=@(New-Object psobject -Property @{
state = $backUpState
ts = $timeStamp
})}
}
catch {
<#Do nothing as key is empty and failed state#>
}
}
$HashTable[$vmName]=$array
} else{
$HashTable += @{$vmName=@(New-Object psobject -Property @{
state = $backUpState
ts = $timeStamp
})}
}
}
$HashTable
return $HashTable
}
function getElems {