Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-52042

Jenkins doesn't throw an error when provided with an invalid cron expression from Job DSL plugin

    Details

    • Similar Issues:

      Description

      Hi!

      I'm using Job DSL plugin in order to generate and maintain Jenkins jobs.

      When provided with an invalid cron expression, I would expect the following:

      Expected behaviour:

      Jenkins should fail the build and throw an error when provided with an invalid cron expression.

      Actual behaviour: 

      Jenkins doesn't throw any errors / warnings and creates the job successfully but without the build trigger.

      Example of job with an invalid trigger:

      The output when generating this job via DSL plugin when running the command :

       ./gradlew rest -Dpattern="jobs/george.groovy" -DbaseUrl="http://localhost:8080/" -Dusername=username -Dpassword=password

      And as a result, the job is created as expected but without a build trigger:

       

      Since Job DSL just generates the config.xml (AFAIUI), I supposed that Jenkins should throw an error up the chain so that it would get caught by the DSL plugin and fail the build.

       

      After all, I'm just trying to get the build to fail or at least notify via logging or something else that the cron expression is invalid, not create the job without it as if nothing happened.

       

      Any help is much appreciated!

        Attachments

          Issue Links

            Activity

            Hide
            daspilker Daniel Spilker added a comment -

            Job DSL is just a generator for the configuration XML. It does not do any advanced validation, it's not designed to do that.

            Job DSL uses Jenkins API to create or update configurations, specifically ModifiableTopLevelItemGroup#createProjectFromXML and AbstractItem#updateByXml. IMHO these API calls should throw an exception to indicate that the configuration is invalid.

            Show
            daspilker Daniel Spilker added a comment - Job DSL is just a generator for the configuration XML. It does not do any advanced validation, it's not designed to do that. Job DSL uses Jenkins API to create or update configurations, specifically ModifiableTopLevelItemGroup#createProjectFromXML and AbstractItem#updateByXml . IMHO these API calls should throw an exception to indicate that the configuration is invalid.
            Hide
            gcimpoies George Cimpoies added a comment -

            Daniel Spilker would that responsibility of throwing those exceptions be suitable for Jenkins core? Just want to know if the bug report is accurate. Thanks again!

            Show
            gcimpoies George Cimpoies added a comment - Daniel Spilker would that responsibility of throwing those exceptions be suitable for Jenkins core? Just want to know if the bug report is accurate. Thanks again!
            Hide
            daspilker Daniel Spilker added a comment -

            George Cimpoies the bug report is OK, but next time don't do screenshot of scripts and build output. Just copy the text into the report.

            If the responsibility of throwing those exceptions is suitable for Jenkins core is up to the maintainers, but I think it makes sense in core. TimerTrigger is already throwing an exception, but it seems to get lost somewhere in the XML deserialization process. All related core APIs (e.g. REST API) would benefit from the fix.

            Show
            daspilker Daniel Spilker added a comment - George Cimpoies the bug report is OK, but next time don't do screenshot of scripts and build output. Just copy the text into the report. If the responsibility of throwing those exceptions is suitable for Jenkins core is up to the maintainers, but I think it makes sense in core. TimerTrigger is already throwing an exception, but it seems to get lost somewhere in the XML deserialization process. All related core APIs (e.g. REST API) would benefit from the fix.

              People

              • Assignee:
                Unassigned
                Reporter:
                gcimpoies George Cimpoies
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: