Rundeck: No longer possible to use asterisk to see running executions across all projects

Created on 18 May 2020  路  3Comments  路  Source: rundeck/rundeck

Describe the bug
Until recent versions it was possible to get details of running executions for all projects using the '*' symbol.

curl -v -H X-Rundeck-Auth-Token:"${RD_TOKEN}" 'http://localhost:4440/api/35/project/*/executions/running'
* About to connect() to localhost port 4440 (#0)
*   Trying ::1...
* Connected to localhost (::1) port 4440 (#0)
> GET /api/35/project/*/executions/running HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:4440
> Accept: */*
> X-Rundeck-Auth-Token:REDACTED
> 
< HTTP/1.1 500 Server Error
< Set-Cookie: JSESSIONID=node01iz7f0hczn556l3denhp1vobb180037.node0; Path=/; HttpOnly
< Connection: close
< 
* Closing connection 0

This now returns a 500 error and outputs the following

Caused by: java.lang.IllegalArgumentException: Project does not exist: *
        at rundeck.services.ProjectManagerService.$tt__getFrameworkProject(ProjectManagerService.groovy:118)
        at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)
        at rundeck.services.FrameworkService.getFrameworkProject(FrameworkService.groovy:297)
        at rundeck.services.FrameworkService.getAuthContextForSubjectAndProject(FrameworkService.groovy:723)
        at rundeck.AuthTagLib$_closure5.doCall(AuthTagLib.groovy:234)
        at org.grails.taglib.TagOutput.captureTagOutput(TagOutput.java:78)
        at org.grails.taglib.TagLibraryMetaUtils$_registerMethodMissingForTags_closure3.doCall(TagLibraryMetaUtils.groovy:59)
        at gsp_rundeckapp_common_sidebar_gsp.run(gsp_rundeckapp_common_sidebar_gsp.groovy:151)
        at org.grails.gsp.GroovyPageWritable.doWriteTo(GroovyPageWritable.java:162)
        at org.grails.gsp.GroovyPageWritable.writeTo(GroovyPageWritable.java:82)
        at org.grails.web.gsp.GroovyPagesTemplateRenderer.makeTemplate(GroovyPagesTemplateRenderer.java:232)
        at org.grails.web.gsp.GroovyPagesTemplateRenderer.render(GroovyPagesTemplateRenderer.java:113)
        at org.grails.plugins.web.taglib.RenderTagLib$_closure7.doCall(RenderTagLib.groovy:367)
        at org.grails.gsp.GroovyPage.invokeTagLibClosure(GroovyPage.java:446)
        at org.grails.gsp.GroovyPage.invokeTag(GroovyPage.java:364)
        ... 98 common frames omitted

According to https://docs.rundeck.com/docs/api/rundeck-api.html#getting-executions-for-a-job I should be able to do this. It works fine if I specify a valid project name.

My Rundeck detail

  • Rundeck version: 3.2.6 or 3.2.7
  • install type: RPM
  • OS Name/version: RHEL 7.7
  • DB Type/version: postgres

To Reproduce
Steps to reproduce the behavior:

  1. Make an API call via API as shown above
  2. Note the 500 Error and associated error message as shown above

Expected behavior
I should be given back details on the overall number of running exections on a given node

Additional context

I also see this when I try to do the equivalent using the CLI (I note here that the regex should allow for the *)

RD_PROJECT='*' rd executions list            
Input error for [rd executions list]: Cannot match (*) to pattern: /^[-_a-zA-Z0-9+][-\._a-zA-Z0-9+]*$/ : RD_PROJECT
You can use: "rd executions list -h" to get help.

Any help appreciated
Thanks in advance
-Padraig

bug reproduced

Most helpful comment

Hi guys, I reproduced this using war install for Rundeck's version 3.2.6 and 3.2.7, in version 3.2.4 it runs OK, for further reviews, here the stack trace error and some other:

service.log error in 3.2.7

servicelog_error_327
images:

service.log error in 3.2.6

servicelog_error_326

Job succeeded using * in 3.2.4

job_succeeded_324_using*

Job failed using * in 3.2.6

job_failed_326_using*

Job failed using * in 3.2.7

job_failed_327_using*

Job succeeded using Project_Name in 3.2.7

job_succeeded_327_unig_projectname

All 3 comments

Reproduced, only occur on 3.2.6 with the same @padraiglennon API call.

Here the full error stack: error.txt

Thanks for your feedback @padraiglennon!

Hi guys, I reproduced this using war install for Rundeck's version 3.2.6 and 3.2.7, in version 3.2.4 it runs OK, for further reviews, here the stack trace error and some other:

service.log error in 3.2.7

servicelog_error_327
images:

service.log error in 3.2.6

servicelog_error_326

Job succeeded using * in 3.2.4

job_succeeded_324_using*

Job failed using * in 3.2.6

job_failed_326_using*

Job failed using * in 3.2.7

job_failed_327_using*

Job succeeded using Project_Name in 3.2.7

job_succeeded_327_unig_projectname

Hi guys, perhaps this job can help as a Workaround

WA.zip

Give it a try.

Regards...

Was this page helpful?
0 / 5 - 0 ratings