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
-
curl -H "Content-Type: application/json" -d '{"login": "admin", "password": "secret"}' -i $API/auth/login -k
-
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 -
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