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'])

View File

@@ -1,43 +0,0 @@
<?xml version='1.1' encoding='UTF-8'?>
<project>
<description></description>
<keepDependencies>false</keepDependencies>
<properties/>
<scm class="hudson.plugins.git.GitSCM" plugin="git@5.0.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>https://gitea.schlaubistechtalk.de/JonnyBravo/test_play.git</url>
<credentialsId>e4acf1ed-a858-429d-b5a6-c149431563db</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>*/master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<submoduleCfg class="empty-list"/>
<extensions/>
</scm>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers>
<hudson.triggers.SCMTrigger>
<spec>H/2 * * * *</spec>
<ignorePostCommitHooks>false</ignorePostCommitHooks>
</hudson.triggers.SCMTrigger>
</triggers>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>./test_play.yml</command>
<configuredLocalRules/>
</hudson.tasks.Shell>
</builders>
<publishers/>
<buildWrappers/>
</project>

View File

@@ -1,43 +0,0 @@
<?xml version='1.1' encoding='UTF-8'?>
<project>
<description></description>
<keepDependencies>false</keepDependencies>
<properties/>
<scm class="hudson.plugins.git.GitSCM" plugin="git@5.0.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>https://gitea.schlaubistechtalk.de/JonnyBravo/test_play.git</url>
<credentialsId>e4acf1ed-a858-429d-b5a6-c149431563db</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>*/master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<submoduleCfg class="empty-list"/>
<extensions/>
</scm>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers>
<hudson.triggers.SCMTrigger>
<spec>H/2 * * * *</spec>
<ignorePostCommitHooks>false</ignorePostCommitHooks>
</hudson.triggers.SCMTrigger>
</triggers>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>./test_play.yml</command>
<configuredLocalRules/>
</hudson.tasks.Shell>
</builders>
<publishers/>
<buildWrappers/>
</project>