commit message from python script

This commit is contained in:
2023-06-01 20:00:02 +02:00
parent 3799b24f7e
commit 3dd0dd7082
5 changed files with 33 additions and 106 deletions

View File

@@ -0,0 +1,67 @@
#! /usr/bin/env python3.10
import jenkins, os
import xml.etree.ElementTree as ET
#connect
server = jenkins.Jenkins('https://man-dan-03:9443', username='JonnyBravo', password='113c3449636622439627ab1d51454fc07c')
def show_all_files_directory(dir_path = str, search_endung = False, search_string = False):
li_all = []
for root_folder, dirs, files in os.walk(dir_path, topdown=False):
for name in files:
FullPATH = str(os.path.join(root_folder, name))
if not search_endung is False:
if FullPATH.endswith(search_endung):
li_all.append(FullPATH)
elif not search_string is False:
if not FullPATH.find(search_string) == -1:
li_all.append(FullPATH)
else:
li_all.append(FullPATH)
return li_all
def show_all_directory(dir_path = str, search_endung = False, search_string = False):
li_all = []
for root_folder, dirs, files in os.walk(dir_path, topdown=False):
for name in dirs:
FullPATH = str(os.path.join(root_folder, name))
#print(name)
if not name.find(search_string) == -1:
li_all.append(FullPATH)
return li_all
def modify_jenkins_configfile(config_file_list = list):
for config_file in config_file_list:
config_file_FullPath = config_file
print("open..." + config_file_FullPath)
with open(config_file_FullPath , "r") as read_config:
for line in read_config:
print(line.rstrip("\n"))
print("#" * len(config_file_FullPath))
def added_config_to_jenkins_xml(config_xml = str):
xml_root = ET.parse(config_xml).getroot()
xml_str = ET.tostring(xml_root, encoding='utf8', method='xml').decode()
for strategy in xml_root.findall('sources/data/jenkins.branch.BranchSource'):
value = strategy.get('id')
print(strategy.get('id'))
print(value)
def main():
#test = show_all_files_directory(dir_path=os.sep + "home" + os.sep + "jonnybravo" + os.sep + ".jenkins" + os.sep + "data" + os.sep + "jobs", search_string="config.xml")
find_folder = show_all_directory(dir_path=os.sep + "home" + os.sep + "jonnybravo" + os.sep + ".jenkins" + os.sep + "data" + os.sep + "jobs", search_string="mulit")
for config_file in find_folder:
file = config_file + os.sep + "config.xml"
print(file)
added_config_to_jenkins_xml(file)
#modify_jenkins_configfile(config_file_list=test)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,33 @@
#!/usr/bin/env python3.10
import jenkins, os
def modify_jenkins_job(server_url = 'https://man-dan-03:9443', jenkins_username = 'jonnybravo', jenkins_user_token = '113c3449636622439627ab1d51454fc07c', jobs = list, old_config_part = str, new_config_part = str ):
server = jenkins.Jenkins(server_url, username=jenkins_username, password=jenkins_user_token)
for job in jobs:
try:
job_config = server.get_job_config(job)
new = job_config.replace(old_config_part, new_config_part)
server.reconfig_job(job, new)
except:
error_output = "Job " + job + " existiet nicht"
raise Exception(error_output)
if __name__ == '__main__':
#os.putenv("PYTHONHTTPSVERIFY", 0)
os.environ["PYTHONHTTPSVERIFY"] = "0"
old_config = """ <strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
<properties class="empty-list"/>
</strategy>"""
new_config = """ <strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
<properties class="java.util.Arrays$ArrayList">
<a class="jenkins.branch.BranchProperty-array">
<jenkins.branch.NoTriggerBranchProperty>
<triggeredBranchesRegex>(?!support*).*</triggeredBranchesRegex>
<strategy>NONE</strategy>
</jenkins.branch.NoTriggerBranchProperty>
</a>
</properties>
</strategy>"""
modify_jenkins_job(old_config_part=old_config, new_config_part=new_config, jobs=['multi_branch_test', 'multi_branch_test_2'])