Skip to content

Commit

Permalink
Merge pull request #670 from immense/hotfix/fix-run-script
Browse files Browse the repository at this point in the history
Fix running scripts.
  • Loading branch information
bitbound committed Jun 24, 2023
2 parents 402d5b0 + 65f61ee commit d982d5e
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Server/Components/Scripts/RunScript.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ private async Task ExecuteScript()

var filteredDevices = DataService.FilterDeviceIDsByUserPermission(deviceIds.ToArray(), User);

var onlineDevices = ServiceSessionCache.GetConnectionIdsByDeviceIds(filteredDevices);
var onlineDevices = ServiceSessionCache.FilterDevicesByOnlineStatus(filteredDevices, true);

var scriptRun = new ScriptRun()
{
Expand Down
14 changes: 14 additions & 0 deletions Server/Services/AgentHubSessionCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ namespace Remotely.Server.Services
public interface IAgentHubSessionCache
{
void AddOrUpdateByConnectionId(string connectionId, Device device);
IEnumerable<string> FilterDevicesByOnlineStatus(IEnumerable<string> deviceIds, bool isOnline);

ICollection<Device> GetAllDevices();
IEnumerable<string> GetConnectionIdsByDeviceIds(IEnumerable<string> deviceIds);
bool TryGetByDeviceId(string deviceId, out Device device);
Expand All @@ -28,6 +30,18 @@ public void AddOrUpdateByConnectionId(string connectionId, Device device)
_deviceIdToConnectionIdLookup.AddOrUpdate(device.ID, connectionId, (k, v) => connectionId);
}

public IEnumerable<string> FilterDevicesByOnlineStatus(IEnumerable<string> deviceIds, bool isOnline)
{
foreach (var deviceId in deviceIds)
{
var result = TryGetConnectionId(deviceId, out _);
if (result == isOnline)
{
yield return deviceId;
}
}
}

public ICollection<Device> GetAllDevices() => _connectionIdToDeviceLookup.Values;

public IEnumerable<string> GetConnectionIdsByDeviceIds(IEnumerable<string> deviceIds)
Expand Down
2 changes: 1 addition & 1 deletion Server/Services/ScriptScheduleDispatcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public async Task DispatchPendingScriptRuns()
.Distinct()
.ToArray();

var onlineDevices = _serviceSessionCache.GetConnectionIdsByDeviceIds(deviceIds);
var onlineDevices = _serviceSessionCache.FilterDevicesByOnlineStatus(deviceIds, true);

if (schedule.RunOnNextConnect)
{
Expand Down

0 comments on commit d982d5e

Please sign in to comment.