adde extractor

This commit is contained in:
Karl-Wilfried Zimmer 2024-02-08 22:08:33 +01:00
parent 21742e5955
commit 8f8da682d2

97
Extractor.ps1 Normal file
View File

@ -0,0 +1,97 @@
enum State {
Started
Finished
Failed
}
function GetVMName {
param (
[string]$Rest
)
$tokens = $Rest -split "'"
return $tokens[1]
}
function ConvertDate {
param (
[string]$DateString
)
return [DateTime]$DateString
}
function DeterminState {
param (
[String]$Rest
)
if($Rest.IndexOf("Erfolgreiche") -cge 0){
return 'Finished'
} elseif ($Rest.IndexOf("gestartet") -cge 0) {
return 'Started'
} else {
return 'Failed'
}
}
function ProduceHashMap {
param (
$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
}
$HashTable[$vmName]=$array
} else{
$HashTable += @{$vmName=@(New-Object psobject -Property @{
state = $backUpState
ts = $timeStamp
})}
}
}
$HashTable
}
$lines = Get-Content -Path .\log.txt | ForEach-Object {$_.SubString($_.IndexOf(":")+1)}
$elems = $lines | Out-String -Stream | Select-String -Pattern "VMware-Maschine" | Out-String -Stream
ProduceHashMap($elems)
<#$HashTable =@{}
foreach ($elem in $Elems){
$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
}
$HashTable[$vmName]=$array
} else{
$HashTable += @{$vmName=@(New-Object psobject -Property @{
state = $backUpState
ts = $timeStamp
})}
}
}
$HashTable#>