Re: Executing a shell/python command in Jenkins Dynamic Choice Parameter Plugin

2014-07-22 Thread Michael Nothhard
Adapted from here 
http://stackoverflow.com/questions/159148/groovy-executing-shell-commands.

//Create buffer to capture command's Standard Out
def sout = new StringBuffer(), serr = new StringBuffer()

//Define here the shell command you would like to execute
def proc = 'ls /'.execute()

//Capture command output into buffer
proc.consumeProcessOutput(sout, serr)

//Time to wait for command to complete
proc.waitForOrKill(1000)

//Converts command output to a list of choices, split by whitespace
return sout.tokenize()



On Monday, July 21, 2014 7:12:43 PM UTC+2, Robert Parker wrote:

 Do you have any examples of groovy script within a Dynamic Parameter 
 executing an external shell script?  I can't seem to figure out the correct 
 syntax and then pass it back to jenkins in a way that will be parsed as a 
 set of parameter choices in the UI.

 Thanks

 On Friday, July 18, 2014 9:23:07 PM UTC-5, Ioannis Moutsatsos wrote:

 Given that dynamic UI controls such as  Dynamic Parameter and Uno-Choice 
 https://github.com/biouno/uno-choice-plugin only support groovy, I 
 think it may be worthwhile investigating how groovy can be used to access 
 MongoDB. 

 To start with I would consider using the gmongo 
 https://github.com/poiati/gmongo wrapper to MongoDB.


 On Friday, July 18, 2014 9:41:28 AM UTC-4, Robert Parker wrote:

 I'd like to create a Jenkins job where I do a backup and deploy of 
 certain databases to a remote MongoDB instance. I'd like this build to be 
 parameterized so that at build time the user chooses from a list of valid 
 MongoDB hostnames and then once the user selects the valid DB hostname, a 
 second list parameter choice box will be dynamically populated with all 
 valid database names on that hostnames. Then once The user has selected the 
 DB name, that will be stored in a parameter DB that can be passed to a 
 Build Step Execute Shell script to do the actual work.

 My problem is that I need for a way to execute a script in the Jenkins 
 Dynamic Parameter (Cascading) Plug-in that will run a shell (or ideally, 
 python) script that will return a list of valid DB names on the selected 
 host. I'm not able to get groovy script portion of the plugin to execute 
 shell commands on the local OS (like theExecute Shell build step does).

 Ideally I'd like to run something like this where MONGOHOST is the 
 first parameter chosen by the user:

 #!/usr/bin/env pythonfrom pymongo import MongoClient
 client = MongoClient('mongodb://${MONGOHOST}:27017/')
 choicelist = client.database_names()
 client.close()

 I'd then like choicelist to be presented in such a way as they become 
 populated as the available choices for a DB parameter.

 How can I achieve this, especially since the Dynamic Choice parameter 
 only accepts groovy script and not native python?



-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Executing a shell/python command in Jenkins Dynamic Choice Parameter Plugin

2014-07-21 Thread Robert Parker
Do you have any examples of groovy script within a Dynamic Parameter 
executing an external shell script?  I can't seem to figure out the correct 
syntax and then pass it back to jenkins in a way that will be parsed as a 
set of parameter choices in the UI.

Thanks

On Friday, July 18, 2014 9:23:07 PM UTC-5, Ioannis Moutsatsos wrote:

 Given that dynamic UI controls such as  Dynamic Parameter and Uno-Choice 
 https://github.com/biouno/uno-choice-plugin only support groovy, I 
 think it may be worthwhile investigating how groovy can be used to access 
 MongoDB. 

 To start with I would consider using the gmongo 
 https://github.com/poiati/gmongo wrapper to MongoDB.


 On Friday, July 18, 2014 9:41:28 AM UTC-4, Robert Parker wrote:

 I'd like to create a Jenkins job where I do a backup and deploy of 
 certain databases to a remote MongoDB instance. I'd like this build to be 
 parameterized so that at build time the user chooses from a list of valid 
 MongoDB hostnames and then once the user selects the valid DB hostname, a 
 second list parameter choice box will be dynamically populated with all 
 valid database names on that hostnames. Then once The user has selected the 
 DB name, that will be stored in a parameter DB that can be passed to a 
 Build Step Execute Shell script to do the actual work.

 My problem is that I need for a way to execute a script in the Jenkins 
 Dynamic Parameter (Cascading) Plug-in that will run a shell (or ideally, 
 python) script that will return a list of valid DB names on the selected 
 host. I'm not able to get groovy script portion of the plugin to execute 
 shell commands on the local OS (like theExecute Shell build step does).

 Ideally I'd like to run something like this where MONGOHOST is the 
 first parameter chosen by the user:

 #!/usr/bin/env pythonfrom pymongo import MongoClient
 client = MongoClient('mongodb://${MONGOHOST}:27017/')
 choicelist = client.database_names()
 client.close()

 I'd then like choicelist to be presented in such a way as they become 
 populated as the available choices for a DB parameter.

 How can I achieve this, especially since the Dynamic Choice parameter 
 only accepts groovy script and not native python?



-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Executing a shell/python command in Jenkins Dynamic Choice Parameter Plugin

2014-07-20 Thread Ivan Kalinin
Well, you can always try to fire a shell from the groovy script -- there 
seems to be a way to access current executor.

On Friday, July 18, 2014 5:41:28 PM UTC+4, Robert Parker wrote:

 I'd like to create a Jenkins job where I do a backup and deploy of certain 
 databases to a remote MongoDB instance. I'd like this build to be 
 parameterized so that at build time the user chooses from a list of valid 
 MongoDB hostnames and then once the user selects the valid DB hostname, a 
 second list parameter choice box will be dynamically populated with all 
 valid database names on that hostnames. Then once The user has selected the 
 DB name, that will be stored in a parameter DB that can be passed to a 
 Build Step Execute Shell script to do the actual work.

 My problem is that I need for a way to execute a script in the Jenkins 
 Dynamic Parameter (Cascading) Plug-in that will run a shell (or ideally, 
 python) script that will return a list of valid DB names on the selected 
 host. I'm not able to get groovy script portion of the plugin to execute 
 shell commands on the local OS (like theExecute Shell build step does).

 Ideally I'd like to run something like this where MONGOHOST is the first 
 parameter chosen by the user:

 #!/usr/bin/env pythonfrom pymongo import MongoClient
 client = MongoClient('mongodb://${MONGOHOST}:27017/')
 choicelist = client.database_names()
 client.close()

 I'd then like choicelist to be presented in such a way as they become 
 populated as the available choices for a DB parameter.

 How can I achieve this, especially since the Dynamic Choice parameter only 
 accepts groovy script and not native python?


-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Executing a shell/python command in Jenkins Dynamic Choice Parameter Plugin

2014-07-18 Thread Ioannis Moutsatsos
Given that dynamic UI controls such as  Dynamic Parameter and Uno-Choice 
https://github.com/biouno/uno-choice-plugin only support groovy, I think 
it may be worthwhile investigating how groovy can be used to access 
MongoDB. 

To start with I would consider using the gmongo 
https://github.com/poiati/gmongo wrapper to MongoDB.


On Friday, July 18, 2014 9:41:28 AM UTC-4, Robert Parker wrote:

 I'd like to create a Jenkins job where I do a backup and deploy of certain 
 databases to a remote MongoDB instance. I'd like this build to be 
 parameterized so that at build time the user chooses from a list of valid 
 MongoDB hostnames and then once the user selects the valid DB hostname, a 
 second list parameter choice box will be dynamically populated with all 
 valid database names on that hostnames. Then once The user has selected the 
 DB name, that will be stored in a parameter DB that can be passed to a 
 Build Step Execute Shell script to do the actual work.

 My problem is that I need for a way to execute a script in the Jenkins 
 Dynamic Parameter (Cascading) Plug-in that will run a shell (or ideally, 
 python) script that will return a list of valid DB names on the selected 
 host. I'm not able to get groovy script portion of the plugin to execute 
 shell commands on the local OS (like theExecute Shell build step does).

 Ideally I'd like to run something like this where MONGOHOST is the first 
 parameter chosen by the user:

 #!/usr/bin/env pythonfrom pymongo import MongoClient
 client = MongoClient('mongodb://${MONGOHOST}:27017/')
 choicelist = client.database_names()
 client.close()

 I'd then like choicelist to be presented in such a way as they become 
 populated as the available choices for a DB parameter.

 How can I achieve this, especially since the Dynamic Choice parameter only 
 accepts groovy script and not native python?


-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.