Adjust scheduled action time so that it is always based on the previous action

Closes #42385

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
This commit is contained in:
Stefan Guilhen
2025-09-12 12:01:00 -03:00
committed by Pedro Igor
parent 5a02bc1adb
commit 20f5a15278
8 changed files with 37 additions and 51 deletions

View File

@@ -54,7 +54,7 @@ public class JpaResourcePolicyStateProvider implements ResourcePolicyStateProvid
}
@Override
public void scheduleAction(ResourcePolicy policy, ResourceAction action, long scheduledTimeOffset, String resourceId) {
public void scheduleAction(ResourcePolicy policy, ResourceAction action, String resourceId) {
ResourcePolicyStateEntity.PrimaryKey pk = new ResourcePolicyStateEntity.PrimaryKey(resourceId, policy.getId());
ResourcePolicyStateEntity entity = em.find(ResourcePolicyStateEntity.class, pk);
if (entity == null) {
@@ -63,12 +63,12 @@ public class JpaResourcePolicyStateProvider implements ResourcePolicyStateProvid
entity.setPolicyId(policy.getId());
entity.setPolicyProviderId(policy.getProviderId());
entity.setScheduledActionId(action.getId());
entity.setScheduledActionTimestamp(Time.currentTimeMillis() + scheduledTimeOffset);
entity.setScheduledActionTimestamp(Time.currentTimeMillis() + action.getAfter());
em.persist(entity);
}
else {
entity.setScheduledActionId(action.getId());
entity.setScheduledActionTimestamp(Time.currentTimeMillis() + scheduledTimeOffset);
entity.setScheduledActionTimestamp(Time.currentTimeMillis() + action.getAfter());
}
}

View File

@@ -51,11 +51,7 @@ public interface ResourcePolicyStateProvider extends Provider {
*/
void removeAll();
default void scheduleAction(ResourcePolicy policy, ResourceAction action, String resourceId) {
this.scheduleAction(policy, action, action.getAfter(), resourceId);
}
void scheduleAction(ResourcePolicy policy, ResourceAction action, long scheduledTimeOffset, String resourceId);
void scheduleAction(ResourcePolicy policy, ResourceAction action, String resourceId);
ScheduledAction getScheduledAction(String policyId, String resourceId);