Re: Executing a shell/python command in Jenkins Dynamic Choice Parameter Plugin
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
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
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
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.