Skip to content

Commit 1afea25

Browse files
committed
Extension sync rescheduling support
implements FR KelvinTegelaar/CIPP#4799 ticket # 30994418531
1 parent a049b92 commit 1afea25

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionSync.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ Function Invoke-ExecExtensionSync {
8686
}
8787
}
8888
'Hudu' {
89-
Register-CIPPExtensionScheduledTasks -Reschedule
89+
Register-CIPPExtensionScheduledTasks -Reschedule -Extensions 'Hudu'
9090
$Results = [pscustomobject]@{'Results' = 'Extension sync tasks have been rescheduled and will start within 15 minutes' }
9191
}
9292

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionsConfig.ps1

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Function Invoke-ExecExtensionsConfig {
1+
function Invoke-ExecExtensionsConfig {
22
<#
33
.FUNCTIONALITY
44
Entrypoint
@@ -27,6 +27,14 @@ Function Invoke-ExecExtensionsConfig {
2727
}
2828
}
2929

30+
if ($Body.Hudu.NextSync) {
31+
#parse unixtime for addedtext
32+
$Timestamp = [datetime]::UnixEpoch.AddSeconds([int]$Body.Hudu.NextSync).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
33+
Register-CIPPExtensionScheduledTasks -Reschedule -NextSync $Body.Hudu.NextSync -Extensions 'Hudu'
34+
$AddedText = " Next sync will be at $Timestamp."
35+
$Body.Hudu.NextSync = ''
36+
}
37+
3038
$Table = Get-CIPPTable -TableName Extensionsconfig
3139
foreach ($APIKey in $Body.PSObject.Properties.Name) {
3240
Write-Information "Working on $apikey"

Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
function Register-CIPPExtensionScheduledTasks {
22
param(
3-
[switch]$Reschedule
3+
[switch]$Reschedule,
4+
[int64]$NextSync = (([datetime]::UtcNow.AddMinutes(30)) - (Get-Date '1/1/1970')).TotalSeconds,
5+
[string[]]$Extensions = @('Hudu', 'NinjaOne', 'CustomData')
46
)
57

68
# get extension configuration and mappings table
@@ -14,7 +16,6 @@ function Register-CIPPExtensionScheduledTasks {
1416
$PushTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'Push-CippExtensionData' }
1517
$Tenants = Get-Tenants -IncludeErrors
1618

17-
$Extensions = @('Hudu', 'NinjaOne', 'CustomData')
1819
$MappedTenants = [System.Collections.Generic.List[string]]::new()
1920
foreach ($Extension in $Extensions) {
2021
$ExtensionConfig = $Config.$Extension
@@ -69,7 +70,7 @@ function Register-CIPPExtensionScheduledTasks {
6970
$MappedTenants.Add($Tenant.defaultDomainName)
7071
foreach ($SyncType in $SyncTypes) {
7172
$ExistingTask = $ScheduledTasks | Where-Object { $_.Tenant -eq $Tenant.defaultDomainName -and $_.SyncType -eq $SyncType }
72-
if (!$ExistingTask -or $Reschedule.IsPresent) {
73+
if (!$ExistingTask) {
7374
$unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds
7475
$Task = [pscustomobject]@{
7576
Name = "Extension Sync - $SyncType"
@@ -96,7 +97,7 @@ function Register-CIPPExtensionScheduledTasks {
9697
$ExistingPushTask = $PushTasks | Where-Object { $_.Tenant -eq $Tenant.defaultDomainName -and $_.SyncType -eq $Extension }
9798
if ((!$ExistingPushTask -or $Reschedule.IsPresent) -and $Extension -ne 'NinjaOne') {
9899
# push cached data to extension
99-
$in30mins = [int64](([datetime]::UtcNow.AddMinutes(30)) - (Get-Date '1/1/1970')).TotalSeconds
100+
100101
$Task = [pscustomobject]@{
101102
Name = "$Extension Extension Sync"
102103
Command = @{
@@ -108,7 +109,7 @@ function Register-CIPPExtensionScheduledTasks {
108109
Extension = $Extension
109110
}
110111
Recurrence = '1d'
111-
ScheduledTime = $in30mins
112+
ScheduledTime = $NextSync
112113
TenantFilter = $Tenant.defaultDomainName
113114
}
114115
if ($ExistingPushTask) {

0 commit comments

Comments
 (0)