Advertisement
Guest User

Untitled

a guest
Aug 5th, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. import jenkins
  2. import json, sys
  3. import ConfigParser
  4. import winkerberos as kerberos
  5. from lxml import etree
  6.  
  7.  
  8. def modify_job_file(xml):
  9. parameters_path="properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/"
  10. tree = etree.parse(xml)
  11. root = tree.getroot()
  12. gitUrl = root.find(parameters_path+"hudson.model.StringParameterDefinition[name='giturl']/defaultValue")
  13. group_name = root.find(parameters_path+"hudson.model.StringParameterDefinition[name='group_name']/defaultValue")
  14. cic_repo_path = root.find("definition/scm/userRemoteConfigs/hudson.plugins.git.UserRemoteConfig/url")
  15. script_groovy_path = root.find("definition/scriptPath")
  16. gitUrl.text = git_path
  17. group_name.text = service_group
  18. cic_repo_path.text = cic_repo
  19. script_groovy_path.text = script_groovy
  20. tree.write(xml)
  21. def create_folder (service_name):
  22. folder_config = open ("jenkinsfiles\job_config\"+folder_config_name, 'r').read()
  23. if server.job_exists(service_name):
  24. server.delete_job(service_name)
  25. server.create_job(service_name, folder_config)
  26. else:
  27. server.create_job(service_name, folder_config)
  28.  
  29. def create_jobs():
  30. modify_job_file("jenkinsfiles\job_config\"+job_config_name)
  31. job_config = open("jenkinsfiles\job_config\"+job_config_name, 'r').read()
  32. server.create_job(service_name+'/'+service_name+'-Build on demand', job_config)
  33.  
  34. def usage():
  35. print ('usage : create_job service_name service_group git_path git_credentials')
  36. print ('service_name : le nom du service a creer')
  37. print ('service_group : le nom du groupe auquel le service est rattache')
  38. print ('git_path : le chemin d'acces au repository git')
  39. print ('git_credentials : les identifiants d'acces au repository git')
  40.  
  41. if __name__=="__main__":
  42. nbArg=6
  43. config = ConfigParser.RawConfigParser()
  44. config.read('properties\job_creation.properties')
  45.  
  46. jenkinsUrl=config.get('jenkins_connection','jenkins.url')
  47. jenkinsUsername=config.get('jenkins_connection','jenkins.user')
  48. jenkinsPassword=config.get('jenkins_connection','jenkins.password')
  49. folder_config_name=config.get('job_properties', 'folder.file')
  50. job_config_name = config.get('job_properties', 'job.file')
  51. cic_repo = config.get('cic_repository', 'cic.git.url')
  52. script_groovy = config.get('job_properties', 'script.groovy')
  53. #getParameters('job_creation.properties')
  54. server = jenkins.Jenkins(jenkinsUrl)
  55. if len(sys.argv) != nbArg:
  56. print ('nombre d'arguments invaliden')
  57. usage()
  58. else :
  59. service_name = sys.argv[1]
  60. service_group = sys.argv[2]
  61. git_path = sys.argv[3]
  62. git_credentials = [sys.argv[4], sys.argv[5]]
  63. create_folder(service_name)
  64. create_jobs()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement