From 3a7976779dbec5b218b4c43c132323cef5791d0d Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Tue, 1 Oct 2024 13:22:30 +0200 Subject: [PATCH 1/7] Windows Service Check With Action --- WServices/RedisCheck.ps1 | 6 ------ WServices/RedisSentinelCheck.ps1 | 11 +++++++++++ WServices/RedisServiceCheck.ps1 | 11 +++++++++++ 3 files changed, 22 insertions(+), 6 deletions(-) delete mode 100644 WServices/RedisCheck.ps1 create mode 100644 WServices/RedisSentinelCheck.ps1 create mode 100644 WServices/RedisServiceCheck.ps1 diff --git a/WServices/RedisCheck.ps1 b/WServices/RedisCheck.ps1 deleted file mode 100644 index f5f7f4b..0000000 --- a/WServices/RedisCheck.ps1 +++ /dev/null @@ -1,6 +0,0 @@ -#Eseguo Get-Service per ottenere informazioni riguardo il servizio desiderato -$Response = Get-Service "NomeServizio" -#Se il servizio ha status = stopped faccio qualcosa tipo inviare a zabbix informazioni -if ($Response.Status -eq "Stopped" ) { - #& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ovh -s "WIN2019IIS.OVH" -k RedisSentinel.Failure -o 1 -} \ No newline at end of file diff --git a/WServices/RedisSentinelCheck.ps1 b/WServices/RedisSentinelCheck.ps1 new file mode 100644 index 0000000..a65dc69 --- /dev/null +++ b/WServices/RedisSentinelCheck.ps1 @@ -0,0 +1,11 @@ +#Eseguo Get-Service per ottenere informazioni riguardo il servizio desiderato +$Response = Get-Service "Redis Sentinel" +#Se il servizio ha status = stopped faccio qualcosa tipo inviare a zabbix informazioni +if ($Response.Status -eq "Running" ) { + & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ovh -s "WIN2019IIS.OVH" -k RedisSentinel.Failure -o 0 + echo 0 +} +else { + & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ovh -s "WIN2019IIS.OVH" -k RedisSentinel.Failure -o 1 + echo 1 +} \ No newline at end of file diff --git a/WServices/RedisServiceCheck.ps1 b/WServices/RedisServiceCheck.ps1 new file mode 100644 index 0000000..c6d73e3 --- /dev/null +++ b/WServices/RedisServiceCheck.ps1 @@ -0,0 +1,11 @@ +#Eseguo Get-Service per ottenere informazioni riguardo il servizio desiderato +$Response = Get-Service "Redis" +#Se il servizio ha status = stopped faccio qualcosa tipo inviare a zabbix informazioni +if ($Response.Status -eq "Running" ) { + & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ovh -s "WIN2019IIS.OVH" -k Redis.Failure -o 0 + echo 0 +} +else { + & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ovh -s "WIN2019IIS.OVH" -k Redis.Failure -o 1 + echo 1 +} \ No newline at end of file From 0d3068339a7b20dbd28044adb7c0aaf67b60efdb Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Tue, 1 Oct 2024 16:29:58 +0200 Subject: [PATCH 2/7] Habemus Force Push Mirror! --- ApiGit/CheckGitlabProtectedBranches.ps1 | 12 ++- ApiGit/GitlabCreateDevelopBranch.ps1 | 2 +- ApiGit/GitlabCreateTags.ps1 | 2 +- ApiGit/Mirrors/CheckGitlabMirroring.ps1 | 2 +- .../Mirrors/GitlabForcePushMirrorUpdate.ps1 | 91 +++++++++++++++++++ 5 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 diff --git a/ApiGit/CheckGitlabProtectedBranches.ps1 b/ApiGit/CheckGitlabProtectedBranches.ps1 index 9c723ca..033d07c 100644 --- a/ApiGit/CheckGitlabProtectedBranches.ps1 +++ b/ApiGit/CheckGitlabProtectedBranches.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 300 +$projectNumber = 400 #conteggio progetti trovati $existingProjects = 0 #conteggio progetti trovati @@ -26,10 +26,10 @@ $deleteProtection = 1 $logFile = "GitlabProtectedBranches.log" #specifica quale installazione di gitlab va controllata -#$gitlabIstance = $destinationNembro -#$head = $nembroHead -$gitlabIstance = $destinationAzzano -$head = $azzanoHead +$gitlabIstance = $destinationNembro +$head = $nembroHead +#$gitlabIstance = $destinationAzzano +#$head = $azzanoHead #creazione folder di Log se non già esistente if (Test-Path $logFolder) { @@ -50,6 +50,8 @@ WriteLogOutput $logFile 0 "" WriteLogOutput $logFile 0 "Percorso log: $logFolder" WriteLogOutput $logFile 0 "" WriteLogOutput $logFile 0 "Inizio Esecuzione Script: $startTime" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Gitlab di Destinazione: $gitlabIstance" #ciclo principale do/while che cicla da 1 a N projectNumber do { diff --git a/ApiGit/GitlabCreateDevelopBranch.ps1 b/ApiGit/GitlabCreateDevelopBranch.ps1 index 19642a0..99aa00c 100644 --- a/ApiGit/GitlabCreateDevelopBranch.ps1 +++ b/ApiGit/GitlabCreateDevelopBranch.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #nome file di log $logFile = "GitlabDevelopCreation.log" diff --git a/ApiGit/GitlabCreateTags.ps1 b/ApiGit/GitlabCreateTags.ps1 index 00e99c6..b529b78 100644 --- a/ApiGit/GitlabCreateTags.ps1 +++ b/ApiGit/GitlabCreateTags.ps1 @@ -16,7 +16,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #nome file di log $logFile = "GitlabTagCreation.log" diff --git a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 index ef5eb08..5fe8dfd 100644 --- a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 +++ b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 1 #conteggio progetti trovati $existingProjects = 0 #conteggio mirroring in errore diff --git a/ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 b/ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 new file mode 100644 index 0000000..f26f98d --- /dev/null +++ b/ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 @@ -0,0 +1,91 @@ +###Gitlab: forzo push verso i mirror dei singoli progetti### + +#Questo script passa in rassegna tutti i progetti esistenti sul gitlab aziendale e per ognuno verifica lo stato dei mirror, poi forza il push di tutti. + +#importo file contenente configurazioni +. .\ApiGit\ApiGitResources\ApiScriptsConfig.ps1 +#importo file contenente funzioni +. .\ApiGit\ApiGitResources\ApiScriptsFunctions.ps1 + +#rilevo time per log inizio analisi +$startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") +# avvio stopwatch +$mainStopWatch = [system.diagnostics.stopwatch]::StartNew() +#contatore mirror trovati +$mirrorCount = 0 +#contatore ciclo do while +$projectCount = 1 +#numero massimo di progetti +$projectNumber = 2 +#conteggio progetti trovati +$existingProjects = 0 +#nome file di log +$logFile = "GitlabForcePushMirror.log" + +#creazione folder di Log se non già esistente +if (Test-Path $logFolder) { +} +else { + New-Item $logFolder -ItemType Directory +} + +#scrivo intestazione e inizio analisi +WriteLogOutput $logFile 0 "--------------------" +Switch ($logLevel) { + 0 { WriteLogOutput $logFile 0 "LOG SINTETICO GITLAB FORCE PUSH MIRROR" } + 1 { WriteLogOutput $logFile 0 "LOG ERRORI GITLAB FORCE PUSH MIRROR" } + 2 { WriteLogOutput $logFile 0 "LOG FULL GITLAB FORCE PUSH MIRROR" } + 3 { WriteLogOutput $logFile 0 "LOG AMPOLLOSO GITLAB FORCE PUSH MIRROR" } +} +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Percorso log: $logFolder" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Inizio Esecuzione Script: $startTime" + +#ciclo principale do/while che cicla da 1 a N projectNumber +do { + #chiamata api che restituisce informazioni sullo stato dei mirror + $callUrl = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/remote_mirrors" + WriteLogOutput $logFile 1 "" + WriteLogOutput $logFile 1 "--------------------" + WriteLogOutput $logFile 1 "**PROGETTO $projectCount**" + try { + #parsing della risposta api convertita da json + $Response = Invoke-WebRequest -URI $callUrl -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing + $parsedResponse = $Response.Content | ConvertFrom-Json + #per ogni mirror forzo il push + foreach ($item in $parsedResponse) { + #compongo URL per chiamata POST per forzare PUSH + $callUrlForcePush = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/remote_mirrors/" + $item.id + "/sync" + $PushResponse = Invoke-WebRequest -URI $callUrlForcePush -Method POST -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing + WriteLogOutput $logFile 0 $("Status: " + $PushResponse.StatusCode + " - " + $item.url) + $mirrorCount = $mirrorCount + 1 + } + $existingProjects = $existingProjects + 1 + } + #scrivo se trovo un errore durante il try/catch + catch { + $parsedError = $_ | ConvertFrom-Json + WriteLogOutput $logFile 3 $($parsedError.message) + } + $projectCount = $projectCount + 1 +} +#fine ciclo principale +while ($projectCount -le $projectNumber) + +# fermo stopwatch e calcolo durata script +$mainStopWatch.Stop() +$durataScript = $mainStopWatch.Elapsed.TotalSeconds + +#rilevo time per log fine analisi +$endTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") + +#scrivo a video le statistiche +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "PROGETTI ANALIZZATI: $existingProjects" +WriteLogOutput $logFile 0 "MIRRORING TOTALI: $mirrorCount" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Fine Esecuzione Script: $endTime" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Durata Esecuzione Script: $durataScript secondi" +WriteLogOutput $logFile 0 "" \ No newline at end of file From 0073b9f36d106ba322fc697e5270026623b9e37e Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Thu, 3 Oct 2024 09:51:59 +0200 Subject: [PATCH 3/7] Rename e Refactor e Fix --- ApiGit/Mirrors/CheckGitlabCommits.ps1 | 2 +- ApiGit/Mirrors/CheckGitlabMirroring.ps1 | 2 +- ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 | 4 ++-- ...shMirrorUpdate.ps1 => GitlabForcePushMirror.ps1} | 13 +++++++++---- ...ngToGitea.ps1 => GitlabRefreshMirrorToGitea.ps1} | 0 5 files changed, 13 insertions(+), 8 deletions(-) rename ApiGit/Mirrors/{GitlabForcePushMirrorUpdate.ps1 => GitlabForcePushMirror.ps1} (92%) rename ApiGit/Mirrors/{GitlabMirroringToGitea.ps1 => GitlabRefreshMirrorToGitea.ps1} (100%) diff --git a/ApiGit/Mirrors/CheckGitlabCommits.ps1 b/ApiGit/Mirrors/CheckGitlabCommits.ps1 index d36d55d..3cb34e8 100644 --- a/ApiGit/Mirrors/CheckGitlabCommits.ps1 +++ b/ApiGit/Mirrors/CheckGitlabCommits.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #conteggio progetti trovati $projectsFound = 0 #conteggio progetti con commit negli ultimi giorni diff --git a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 index 5fe8dfd..24ab53a 100644 --- a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 +++ b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 1 +$projectNumber = 300 #conteggio progetti trovati $existingProjects = 0 #conteggio mirroring in errore diff --git a/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 b/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 index 294e3a1..008b41f 100644 --- a/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 +++ b/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 @@ -13,9 +13,9 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 170 +$projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 250 +$projectNumber = 300 #nome file di log $logFile = "GiteaNewMirrors.log" diff --git a/ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 b/ApiGit/Mirrors/GitlabForcePushMirror.ps1 similarity index 92% rename from ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 rename to ApiGit/Mirrors/GitlabForcePushMirror.ps1 index f26f98d..d15eaba 100644 --- a/ApiGit/Mirrors/GitlabForcePushMirrorUpdate.ps1 +++ b/ApiGit/Mirrors/GitlabForcePushMirror.ps1 @@ -11,14 +11,14 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() -#contatore mirror trovati -$mirrorCount = 0 #contatore ciclo do while $projectCount = 1 #numero massimo di progetti -$projectNumber = 2 +$projectNumber = 300 #conteggio progetti trovati $existingProjects = 0 +#contatore mirror trovati +$mirrorCount = 0 #nome file di log $logFile = "GitlabForcePushMirror.log" @@ -58,7 +58,12 @@ do { #compongo URL per chiamata POST per forzare PUSH $callUrlForcePush = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/remote_mirrors/" + $item.id + "/sync" $PushResponse = Invoke-WebRequest -URI $callUrlForcePush -Method POST -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing - WriteLogOutput $logFile 0 $("Status: " + $PushResponse.StatusCode + " - " + $item.url) + if ($PushResponse.StatusCode -eq 204){ + WriteLogOutput $logFile 0 $("Mirror Push: Success - " + $item.url) + } + else { + WriteLogOutput $logFile 0 $("Mirror Push: Unknown - " + $item.url) + } $mirrorCount = $mirrorCount + 1 } $existingProjects = $existingProjects + 1 diff --git a/ApiGit/Mirrors/GitlabMirroringToGitea.ps1 b/ApiGit/Mirrors/GitlabRefreshMirrorToGitea.ps1 similarity index 100% rename from ApiGit/Mirrors/GitlabMirroringToGitea.ps1 rename to ApiGit/Mirrors/GitlabRefreshMirrorToGitea.ps1 From 56a1f349abbbe404df6fc4b9afea1c79896cde41 Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Thu, 3 Oct 2024 10:05:12 +0200 Subject: [PATCH 4/7] Organizzazione Folders --- ApiGit/Mirrors/GitlabForcePushMirror.ps1 | 2 +- ApiGit/{ => Misc}/CheckGitlabProtectedBranches.ps1 | 4 ++-- ApiGit/{ => Misc}/GitlabCreateDevelopBranch.ps1 | 0 ApiGit/{ => Misc}/GitlabCreateTags.ps1 | 0 ApiGit/{ => Misc}/GitlabEditReposNamespace.ps1 | 0 ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 | 2 +- ApiGit/ReposCreation/ReposCreationGitea.ps1 | 2 +- ApiGit/ReposCreation/ReposCreationGogs.ps1 | 2 +- 8 files changed, 6 insertions(+), 6 deletions(-) rename ApiGit/{ => Misc}/CheckGitlabProtectedBranches.ps1 (99%) rename ApiGit/{ => Misc}/GitlabCreateDevelopBranch.ps1 (100%) rename ApiGit/{ => Misc}/GitlabCreateTags.ps1 (100%) rename ApiGit/{ => Misc}/GitlabEditReposNamespace.ps1 (100%) diff --git a/ApiGit/Mirrors/GitlabForcePushMirror.ps1 b/ApiGit/Mirrors/GitlabForcePushMirror.ps1 index d15eaba..8eb1550 100644 --- a/ApiGit/Mirrors/GitlabForcePushMirror.ps1 +++ b/ApiGit/Mirrors/GitlabForcePushMirror.ps1 @@ -12,7 +12,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 200 #numero massimo di progetti $projectNumber = 300 #conteggio progetti trovati diff --git a/ApiGit/CheckGitlabProtectedBranches.ps1 b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 similarity index 99% rename from ApiGit/CheckGitlabProtectedBranches.ps1 rename to ApiGit/Misc/CheckGitlabProtectedBranches.ps1 index 033d07c..5cabdda 100644 --- a/ApiGit/CheckGitlabProtectedBranches.ps1 +++ b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 @@ -13,9 +13,9 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 200 #numero massimo di progetti da analizzare -$projectNumber = 400 +$projectNumber = 300 #conteggio progetti trovati $existingProjects = 0 #conteggio progetti trovati diff --git a/ApiGit/GitlabCreateDevelopBranch.ps1 b/ApiGit/Misc/GitlabCreateDevelopBranch.ps1 similarity index 100% rename from ApiGit/GitlabCreateDevelopBranch.ps1 rename to ApiGit/Misc/GitlabCreateDevelopBranch.ps1 diff --git a/ApiGit/GitlabCreateTags.ps1 b/ApiGit/Misc/GitlabCreateTags.ps1 similarity index 100% rename from ApiGit/GitlabCreateTags.ps1 rename to ApiGit/Misc/GitlabCreateTags.ps1 diff --git a/ApiGit/GitlabEditReposNamespace.ps1 b/ApiGit/Misc/GitlabEditReposNamespace.ps1 similarity index 100% rename from ApiGit/GitlabEditReposNamespace.ps1 rename to ApiGit/Misc/GitlabEditReposNamespace.ps1 diff --git a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 index be70091..5bb554b 100644 --- a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 +++ b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 @@ -13,7 +13,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 170 +$projectCount = 200 #numero massimo di progetti da analizzare (messo a 1 per "sicura inserita" siccome questo script è potenzialmente pericoloso) $projectNumber = 300 #nome file di log diff --git a/ApiGit/ReposCreation/ReposCreationGitea.ps1 b/ApiGit/ReposCreation/ReposCreationGitea.ps1 index 749c2ad..0b84911 100644 --- a/ApiGit/ReposCreation/ReposCreationGitea.ps1 +++ b/ApiGit/ReposCreation/ReposCreationGitea.ps1 @@ -12,7 +12,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 170 +$projectCount = 200 #numero massimo di progetti da analizzare $projectNumber = 300 #nome file di log diff --git a/ApiGit/ReposCreation/ReposCreationGogs.ps1 b/ApiGit/ReposCreation/ReposCreationGogs.ps1 index c78528f..a0bdc8e 100644 --- a/ApiGit/ReposCreation/ReposCreationGogs.ps1 +++ b/ApiGit/ReposCreation/ReposCreationGogs.ps1 @@ -12,7 +12,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 170 +$projectCount = 200 #numero massimo di progetti da analizzare $projectNumber = 300 #nome file di log From 0c705a2ff06374b5bc3a3985ab8e401cc7d43f16 Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Mon, 14 Oct 2024 12:46:48 +0200 Subject: [PATCH 5/7] Fix Creazione Repo Nembro Azzano --- ApiGit/Mirrors/CheckGitlabMirroring.ps1 | 2 +- ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 | 2 +- ApiGit/Mirrors/GitlabForcePushMirror.ps1 | 2 +- ApiGit/Misc/CheckGitlabProtectedBranches.ps1 | 10 ++--- .../ReposCreationAzzanoNembro.ps1 | 40 +++++++++---------- ApiGit/ReposCreation/ReposCreationGitea.ps1 | 2 +- ApiGit/ReposCreation/ReposCreationGogs.ps1 | 2 +- 7 files changed, 29 insertions(+), 31 deletions(-) diff --git a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 index 24ab53a..73bc2a5 100644 --- a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 +++ b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 @@ -13,7 +13,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 0 #numero massimo di progetti da analizzare $projectNumber = 300 #conteggio progetti trovati diff --git a/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 b/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 index 008b41f..76385dd 100644 --- a/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 +++ b/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 @@ -13,7 +13,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 0 #numero massimo di progetti da analizzare $projectNumber = 300 #nome file di log diff --git a/ApiGit/Mirrors/GitlabForcePushMirror.ps1 b/ApiGit/Mirrors/GitlabForcePushMirror.ps1 index 8eb1550..d15eaba 100644 --- a/ApiGit/Mirrors/GitlabForcePushMirror.ps1 +++ b/ApiGit/Mirrors/GitlabForcePushMirror.ps1 @@ -12,7 +12,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 200 +$projectCount = 1 #numero massimo di progetti $projectNumber = 300 #conteggio progetti trovati diff --git a/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 index 5cabdda..bd119e0 100644 --- a/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 +++ b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 @@ -13,7 +13,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 200 +$projectCount = 1 #numero massimo di progetti da analizzare $projectNumber = 300 #conteggio progetti trovati @@ -26,10 +26,10 @@ $deleteProtection = 1 $logFile = "GitlabProtectedBranches.log" #specifica quale installazione di gitlab va controllata -$gitlabIstance = $destinationNembro -$head = $nembroHead -#$gitlabIstance = $destinationAzzano -#$head = $azzanoHead +#$gitlabIstance = $destinationNembro +#$head = $nembroHead +$gitlabIstance = $destinationAzzano +$head = $azzanoHead #creazione folder di Log se non già esistente if (Test-Path $logFolder) { diff --git a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 index 5bb554b..c416416 100644 --- a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 +++ b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 @@ -13,12 +13,18 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 200 +$projectCount = 0 #numero massimo di progetti da analizzare (messo a 1 per "sicura inserita" siccome questo script è potenzialmente pericoloso) $projectNumber = 300 #nome file di log $logFile = "AzzanoNembroReposCreation.log" +#specifica su quale installazione di gitlab va eseguita la creazione +$gitlabIstance = $destinationNembro +$destinationHead = $nembroHead +#$gitlabIstance = $destinationAzzano +#$destinationHead = $azzanoHead + #creazione folder di Log se non già esistente if (Test-Path $logFolder) { } @@ -43,6 +49,10 @@ WriteLogOutput $logFile 0 "Inizio Esecuzione Script: $startTime" do { $callGitlabUrl = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount try { + #scrivo il numero del progetto nel terminale e su file + WriteLogOutput $logFile 1 "" + WriteLogOutput $logFile 1 "--------------------" + WriteLogOutput $logFile 1 "**PROGETTO $projectCount**" $gitlabResponse = Invoke-WebRequest -URI $callGitlabUrl -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing $parsedGitlabResponse = $gitlabResponse.Content | ConvertFrom-Json #dichiaro un body da convertire in JSON con il nome del repo da creare @@ -53,31 +63,19 @@ do { namespace_id = 19 #(namespace_id 19 è Egalware) } - # Converting my hash to json format - $bodyJSON = $body | ConvertTo-Json - #chiamata per nembro - $callNembroUrl = "https://gitlab-nembro.steamware.net/api/v4/projects/" - $nembroResponse = Invoke-WebRequest -URI $callNembroUrl -Method POST -Headers $nembroHead -ContentType "application/json" -Body $bodyJSON - $parsedNembroResponse = $nembroResponse.Content | ConvertFrom-Json - #chiamata per azzano - $callAzzanoUrl = "https://gitlab-azzano.steamware.net/api/v4/projects/" - $azzanoResponse = Invoke-WebRequest -URI $callAzzanoUrl -Method POST -Headers $azzanoHead -ContentType "application/json" -Body $bodyJSON - $parsedAzzanoResponse = $azzanoResponse.Content | ConvertFrom-Json - #scrivo il numero del progetto nel terminale e su file - WriteLogOutput $logFile 1 "" - WriteLogOutput $logFile 1 "--------------------" - WriteLogOutput $logFile 1 "**PROGETTO $projectCount**" + #scrivo il nome del progetto nel terminale e su file WriteLogOutput $logFile 1 "Gitlab Project Name: $($parsedGitlabResponse.path)" - WriteLogOutput $logFile 1 "Progetto creato su gitlab-nembro: $($parsedNembroResponse.path_with_namespace)" - WriteLogOutput $logFile 1 "Progetto creato su gitlab-azzano: $($parsedAzzanoResponse.path_with_namespace)" + $bodyJSON = $body | ConvertTo-Json + #chiamata creazione + $callUrl = "https://" + $gitlabIstance + "/api/v4/projects/" + $Response = Invoke-WebRequest -URI $callUrl -Method POST -Headers $destinationHead -ContentType "application/json" -Body $bodyJSON + $parsedResponse = $Response.Content | ConvertFrom-Json + WriteLogOutput $logFile 1 "Progetto creato su $callUrl : $($parsedResponse.path_with_namespace)" } #scrivo se trovo un errore durante il try/catch catch { $parsedError = $_ | ConvertFrom-Json - WriteLogOutput $logFile 3 "" - WriteLogOutput $logFile 3 "--------------------" - WriteLogOutput $logFile 3 "**ERRORE NEL PROGETTO $projectCount**" - WriteLogOutput $logFile 3 $($parsedError.message) + WriteLogOutput $logFile 3 "Errore: $($parsedError.message)" } $projectCount = $projectCount + 1 } diff --git a/ApiGit/ReposCreation/ReposCreationGitea.ps1 b/ApiGit/ReposCreation/ReposCreationGitea.ps1 index 0b84911..7b40652 100644 --- a/ApiGit/ReposCreation/ReposCreationGitea.ps1 +++ b/ApiGit/ReposCreation/ReposCreationGitea.ps1 @@ -12,7 +12,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 200 +$projectCount = 1 #numero massimo di progetti da analizzare $projectNumber = 300 #nome file di log diff --git a/ApiGit/ReposCreation/ReposCreationGogs.ps1 b/ApiGit/ReposCreation/ReposCreationGogs.ps1 index a0bdc8e..1d24570 100644 --- a/ApiGit/ReposCreation/ReposCreationGogs.ps1 +++ b/ApiGit/ReposCreation/ReposCreationGogs.ps1 @@ -12,7 +12,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 200 +$projectCount = 1 #numero massimo di progetti da analizzare $projectNumber = 300 #nome file di log From 75a450b8b393c177d9cdc68492215a71a4e0016c Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Mon, 21 Oct 2024 17:48:22 +0200 Subject: [PATCH 6/7] small fix contatori --- ApiGit/Mirrors/CheckGitlabMirroring.ps1 | 2 +- ApiGit/Misc/CheckGitlabProtectedBranches.ps1 | 8 ++++---- ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 index 73bc2a5..24ab53a 100644 --- a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 +++ b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 @@ -13,7 +13,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 0 +$projectCount = 1 #numero massimo di progetti da analizzare $projectNumber = 300 #conteggio progetti trovati diff --git a/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 index bd119e0..720cc9e 100644 --- a/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 +++ b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 @@ -26,10 +26,10 @@ $deleteProtection = 1 $logFile = "GitlabProtectedBranches.log" #specifica quale installazione di gitlab va controllata -#$gitlabIstance = $destinationNembro -#$head = $nembroHead -$gitlabIstance = $destinationAzzano -$head = $azzanoHead +$gitlabIstance = $destinationNembro +$head = $nembroHead +#$gitlabIstance = $destinationAzzano +#$head = $azzanoHead #creazione folder di Log se non già esistente if (Test-Path $logFolder) { diff --git a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 index c416416..9cdd2b7 100644 --- a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 +++ b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 @@ -13,13 +13,13 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 0 +$projectCount = 1 #numero massimo di progetti da analizzare (messo a 1 per "sicura inserita" siccome questo script è potenzialmente pericoloso) $projectNumber = 300 #nome file di log $logFile = "AzzanoNembroReposCreation.log" -#specifica su quale installazione di gitlab va eseguita la creazione +#specifica su quale installazione di gitlab va eseguita la creazione (legge file config) $gitlabIstance = $destinationNembro $destinationHead = $nembroHead #$gitlabIstance = $destinationAzzano @@ -58,10 +58,10 @@ do { #dichiaro un body da convertire in JSON con il nome del repo da creare $body = @{ - name = $($parsedGitlabResponse.path); #name = $($parsedGitlabResponse.name); - namespace_id = 19 + name = $($parsedGitlabResponse.path); #(namespace_id 19 è Egalware) + namespace_id = 19 } #scrivo il nome del progetto nel terminale e su file WriteLogOutput $logFile 1 "Gitlab Project Name: $($parsedGitlabResponse.path)" From 6cb9452018c789d82e0eca084871b05ff35c20ab Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Tue, 17 Dec 2024 15:15:21 +0100 Subject: [PATCH 7/7] nuovo script esempio robocopy --- ApiGit/Mirrors/CheckGitlabMirroring.ps1 | 2 +- Generic/TestRobocopy.ps1 | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 Generic/TestRobocopy.ps1 diff --git a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 index 24ab53a..366f03e 100644 --- a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 +++ b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 @@ -107,7 +107,7 @@ WriteLogOutput $logFile 0 "" & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.SuccessMirrorPercent -o $mirrorSuccessPercentage & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.ErrorsMirrorPercent -o $mirrorErrorsPercentage & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.CheckMirrorDuration -o $durataScript - +\ #scrivo a video le statistiche WriteLogOutput $logFile 0 "" WriteLogOutput $logFile 0 "PROGETTI ANALIZZATI: $existingProjects" diff --git a/Generic/TestRobocopy.ps1 b/Generic/TestRobocopy.ps1 new file mode 100644 index 0000000..cc64697 --- /dev/null +++ b/Generic/TestRobocopy.ps1 @@ -0,0 +1,21 @@ +###ESEMPIO COMANDO ROBOCOPY### + +#path cartella di origine +$sourceFolder = "C:\Users\YYY" + +#nomi dei file da copiare +$file1 = "nome1.txt" +$file2 = "nome2.txt" +$file3 = "nome3.txt" + +#path delle cartelle di destinazione +$destFolder1 = "C:\Users\XXX1" +$destFolder2 = "C:\Users\XXX2" +$destFolder3 = "C:\Users\XXX3" + +#copio primo file +robocopy $sourceFolder $destFolder1 $file1 +#copio secondo file +robocopy $sourceFolder $destFolder2 $file2 +#copio terzo file +robocopy $sourceFolder $destFolder3 $file3 \ No newline at end of file