Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import jenkins
- import json, sys
- import ConfigParser
- import winkerberos as kerberos
- from lxml import etree
- def modify_job_file(xml):
- parameters_path="properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/"
- tree = etree.parse(xml)
- root = tree.getroot()
- gitUrl = root.find(parameters_path+"hudson.model.StringParameterDefinition[name='giturl']/defaultValue")
- group_name = root.find(parameters_path+"hudson.model.StringParameterDefinition[name='group_name']/defaultValue")
- cic_repo_path = root.find("definition/scm/userRemoteConfigs/hudson.plugins.git.UserRemoteConfig/url")
- script_groovy_path = root.find("definition/scriptPath")
- gitUrl.text = git_path
- group_name.text = service_group
- cic_repo_path.text = cic_repo
- script_groovy_path.text = script_groovy
- tree.write(xml)
- def create_folder (service_name):
- folder_config = open ("jenkinsfiles\job_config\"+folder_config_name, 'r').read()
- if server.job_exists(service_name):
- server.delete_job(service_name)
- server.create_job(service_name, folder_config)
- else:
- server.create_job(service_name, folder_config)
- def create_jobs():
- modify_job_file("jenkinsfiles\job_config\"+job_config_name)
- job_config = open("jenkinsfiles\job_config\"+job_config_name, 'r').read()
- server.create_job(service_name+'/'+service_name+'-Build on demand', job_config)
- def usage():
- print ('usage : create_job service_name service_group git_path git_credentials')
- print ('service_name : le nom du service a creer')
- print ('service_group : le nom du groupe auquel le service est rattache')
- print ('git_path : le chemin d'acces au repository git')
- print ('git_credentials : les identifiants d'acces au repository git')
- if __name__=="__main__":
- nbArg=6
- config = ConfigParser.RawConfigParser()
- config.read('properties\job_creation.properties')
- jenkinsUrl=config.get('jenkins_connection','jenkins.url')
- jenkinsUsername=config.get('jenkins_connection','jenkins.user')
- jenkinsPassword=config.get('jenkins_connection','jenkins.password')
- folder_config_name=config.get('job_properties', 'folder.file')
- job_config_name = config.get('job_properties', 'job.file')
- cic_repo = config.get('cic_repository', 'cic.git.url')
- script_groovy = config.get('job_properties', 'script.groovy')
- #getParameters('job_creation.properties')
- server = jenkins.Jenkins(jenkinsUrl)
- if len(sys.argv) != nbArg:
- print ('nombre d'arguments invaliden')
- usage()
- else :
- service_name = sys.argv[1]
- service_group = sys.argv[2]
- git_path = sys.argv[3]
- git_credentials = [sys.argv[4], sys.argv[5]]
- create_folder(service_name)
- create_jobs()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement