user18902618
user18902618

Reputation:

Can we Read Config file(managed files .properties file) in jenkins active choice parameters?

I want to Read My properties File in active choice parameters grovy script , my properties file is stored in manged files .

Properties file look like these [1]: https://i.sstatic.net/flvP5.png

I want to call these properties file in Active Choice Reference Parameter Groovy script and retrive all the values as per my previous selection.I had been using differnt not able to retrive values is their any way that we could retrive values?

Upvotes: 1

Views: 1252

Answers (1)

Sonal
Sonal

Reputation: 679

The properties file would like this 'cat /var/jenkins_home/workspace/ss.properties'

100.1.1.1=outside_in,wireless_in
200.x.x.x=mgmt_in,inside_in

Create a Parameter called "Active Choices Parameter", call it "hostnames" and write the following groovy script there. In the following groovy script, we are simply reading the keys from the property file, converting it into a list and populating the same in a choice parameter. The choice type for this in my case is single select or you can set it according to your needs.

Properties properties = new Properties() 
File propertiesFile = new File('/var/jenkins_home/workspace/ss.properties') 
def stream = propertiesFile.newDataInputStream() 
properties.load(stream) 
Enumeration e = properties.propertyNames(); 
List<String> list = Collections.list(e); 
return list

Create another Parameter called "Active Choices Reactive Parameter" and call it "config_list" and paste the following groovy script there

Properties properties = new Properties()
File propertiesFile = new File('/var/jenkins_home/workspace/ss.properties')
def stream = propertiesFile.newDataInputStream()
properties.load(stream)
Enumeration e = properties.propertyNames();
def var = Arrays.asList(properties.getProperty(hostnames).split(','))
return var

The Referenced Parameter for the above would be "hostnames". That would mean, based on the selection of hostnames choice parameter, the data will be populated in this parameter. The choice type for this in my case is single select or you can set it according to your needs.

Save the configuration and click on build with parameters in your Jenkins Job, it should look like the following

Build With Parameters

Upvotes: 1

Related Questions