uyuni-project/uyuni

api scheduling does not work with maintainance windows

fockarty opened this issue · 0 comments

Problem description

If a system has a maintainance windows (lets say 3th tuesday 2300 CET) is not possible to use system/schedulePackageUpdate via the api.

expected: the job gets scheduled for the first window after earliestOccurence

actual : the api gives an internal server error

which is very strange because the json has earliestOccurrence which suggests that the job should be scheduled after that date

Steps to reproduce

  1. API=https://servername/rhn/manager/api

  2. curl -H "Content-Type: application/json" -d '{"login": "admin", "password": "secret"}' -i $API/auth/login -k

  3. curl -k -v -H "Content-Type: application/json" --cookie "pxt-session-cookie=; Max-Age=3600; Expires=date/time GMT; Path=/; Secure; HttpOnly;HttpOnly;Secure"
    $API/system/schedulePackageUpdate -d '{"sids": 1000010001, "earliestOccurrence": "Jun 18, 2024, 09:00:00 PM"}' -k -v

  4. response is 500 Internal Server Error instead of real error (bug numbert ), real error see logs field

...

Uyuni version

Information for package Uyuni-Server-release:
---------------------------------------------
Repository     : @System
Name           : Uyuni-Server-release
Version        : 2024.05-230900.217.1.uyuni3
Arch           : x86_64
Vendor         : obs://build.opensuse.org/systemsmanagement:Uyuni
Installed Size : 1.4 KiB
Installed      : Yes (automatically)
Status         : up-to-date
Source package : Uyuni-Server-release-2024.05-230900.217.1.uyuni3.src
Summary        : Uyuni Server
Description    :
    Uyuni lets you efficiently manage physical, virtual,
    and cloud-based Linux systems. It provides automated and cost-effective
    configuration and software management, asset management, and system
    provisioning.

Uyuni proxy version (if used)

No response

Useful logs

2024-06-14 07:44:56,707 [ajp-nio-0:0:0:0:0:0:0:1-8009-exec-5] ERROR spark.http.matching.GeneralError -
java.lang.RuntimeException: com.suse.manager.maintenance.NotInMaintenanceModeException: Systems assigned to these schedules (updates 3de dinsdag) do not have a maintenance window at Tue Jun 18 21:00:00 UTC 2024
        at com.suse.manager.api.RouteFactory.lambda$createRoute$1(RouteFactory.java:212) ~[rhn.jar:?]
        at com.suse.manager.webui.utils.SparkApplicationHelper.lambda$asJson$10(SparkApplicationHelper.java:415) ~[rhn.jar:?]
        at spark.RouteImpl$1.handle(RouteImpl.java:72) ~[spark-corespark-core.jar:?]
        at spark.http.matching.Routes.execute(Routes.java:61) ~[spark-corespark-core.jar:?]
        at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:134) ~[spark-corespark-core.jar:?]
        at spark.servlet.SparkFilter.doFilter(SparkFilter.java:174) ~[spark-corespark-core.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154) ~[catalina.jar:9.0.87]
        at com.redhat.rhn.frontend.servlets.AuthFilter.doFilter(AuthFilter.java:112) ~[rhn.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154) ~[catalina.jar:9.0.87]
        at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:142) ~[sitemesh.jar:?]
        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:58) ~[sitemesh.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154) ~[catalina.jar:9.0.87]
        at com.redhat.rhn.frontend.servlets.LocalizedEnvironmentFilter.doFilter(LocalizedEnvironmentFilter.java:71) ~[rhn.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154) ~[catalina.jar:9.0.87]
        at com.redhat.rhn.frontend.servlets.EnvironmentFilter.doFilter(EnvironmentFilter.java:99) ~[rhn.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154) ~[catalina.jar:9.0.87]
        at com.redhat.rhn.frontend.servlets.SessionFilter.doFilter(SessionFilter.java:59) ~[rhn.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154) ~[catalina.jar:9.0.87]
        at com.redhat.rhn.frontend.servlets.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:98) ~[rhn.jar:?]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[catalina.jar:9.0.87]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[catalina.jar:9.0.87]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[catalina.jar:9.0.87]
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670) ~[catalina.jar:9.0.87]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[catalina.jar:9.0.87]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) ~[catalina.jar:9.0.87]
        at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:424) ~[tomcat-coyote.jar:9.0.87]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-coyote.jar:9.0.87]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928) ~[tomcat-coyote.jar:9.0.87]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1786) ~[tomcat-coyote.jar:9.0.87]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-coyote.jar:9.0.87]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-util.jar:9.0.87]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-util.jar:9.0.87]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-util.jar:9.0.87]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: com.suse.manager.maintenance.NotInMaintenanceModeException: Systems assigned to these schedules (updates 3de dinsdag) do not have a maintenance window at Tue Jun 18 21:00:00 UTC 2024
        at com.suse.manager.maintenance.MaintenanceManager.canActionBeScheduled(MaintenanceManager.java:666) ~[rhn.jar:?]
        at com.redhat.rhn.manager.action.ActionManager.scheduleForExecution(ActionManager.java:1565) ~[rhn.jar:?]
        at com.redhat.rhn.manager.action.ActionManager.scheduleAction(ActionManager.java:1550) ~[rhn.jar:?]
        at com.redhat.rhn.manager.action.ActionManager.schedulePackageAction(ActionManager.java:1959) ~[rhn.jar:?]
        at com.redhat.rhn.frontend.xmlrpc.system.SystemHandler.schedulePackagesUpdateAction(SystemHandler.java:4177) ~[rhn.jar:?]
        at com.redhat.rhn.frontend.xmlrpc.system.SystemHandler.schedulePackageUpdate(SystemHandler.java:4362) ~[rhn.jar:?]
        at jdk.internal.reflect.GeneratedMethodAccessor3098.invoke(Unknown Source) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
        at com.suse.manager.api.MethodCall.invoke(MethodCall.java:50) ~[rhn.jar:?]
        at com.suse.manager.api.RouteFactory.lambda$createRoute$1(RouteFactory.java:187) ~[rhn.jar:?]
        ... 43 more

Additional information

No response