<< Back to previous view

[QB-3017] vars.getAll returns empty collection
Created: 20/Jul/17  Updated: 22/Jul/17

Status: Closed
Project: QuickBuild
Component/s: None
Affects Version/s: 7.0.17
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Vadim Volkov Assigned To: Robin Shen
Resolution: Won't Fix Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown
Environment: java version "1.8.0_131", Ubuntu 16.04.2 LTS


 Description   
Following script outputs "All vars: []" to log instead of list of variable names and values
Configuration have several variables and they are accesible through vars.get(<name>).getValue()

groovy:
import com.pmease.quickbuild.variable.VariableWrapper
for (VariableWrapper var : vars.getAll()) {
    logger.info(var.getName())
    logger.info(var.getValue())
}
logger.info("All vars: " + vars.getAll())

 Comments   
Comment by Robin Shen [ 20/Jul/17 11:49 PM ]
vars.getAll() only returns variables actually used in a build. If you want to access variables defined in a configuration, call configuration.findVariables() which will return a list of Variable instance
Comment by Vadim Volkov [ 21/Jul/17 01:23 AM ]
Using configuration.findVariables returns list of defined variables. I am still not clear what you mean in variables used?

I have a step with groovy script that uses variables from configuration, but vars.getAll returns empty collection. I have a repository that uses configuration variable in repository description, but vars.getAll returns empty collection. vars.getAll documentation looks confused because used is not mention. There are several examples everywhere also without mentioning it.

Anyway configuration.findVariables suits my needs. Thank you for reply.
Comment by Robin Shen [ 22/Jul/17 01:09 AM ]
For instance if your build accesses a variable, like below:
echo ${vars.getValue("someVar")}

Then "someVar" will be considered "used", and will appear in vars.getAll().
Generated at Thu May 02 10:02:08 UTC 2024 using JIRA 189.