背景
遷移 crowd 完成後(之前採用 ldap 方式,新遷移 crowd 不採用),需要批量建立公司所有員工的使用者以及分配組,手工建立以及之前 postman 的方式還是比較低效。
python 在 n 多年前入門,寫了幾個爬蟲指令碼後,再也沒用過,借這個機會順便再熟悉下 python 指令碼。
歸根結底的原因就是:本人很懶~
crowd api
如下示例是基於 crowd 3.2.0 版本的 api,不同版本間的 api 稍有差異。
# 新增使用者
# 使用者新增到組
注意:此處-u的引數為 crowd 中應用(application)的使用者名稱和密碼,crowd 的管理員是不能新增使用者。
python 實現指令碼
實現新增 crowd 使用者,使用者新增到指定組,讀取 csv 檔案批量新增使用者和設定的多個組。
crowdusers.csv 使用者資料 csv 檔案
name,displayname,email
daodaotest1,daodaotest1,[email protected]
daodaotest2,daodaotest2,[email protected]
daodaotest3,daodaotest3,[email protected]
......
addcrowdusers.py 批量新增 crowd 使用者和使用者組指令碼
#!/usr/bin/python
# -*- coding: utf-8 -*-
## filename addcrowdusers.py
# revision 0.0.1
# date 2020/5/14
# author jiangliheng
# email [email protected]
# website
# description 批量新增 crowd 使用者和使用者組
# 請求 headers
headers =
# crowd 訪問基礎路徑
# 新增使用者的預設使用者組和密碼
auth_username='application-name'
auth_password='password'
# 使用者預設密碼
password='daodaotest'
def adduser(name,displayname,email):
"""新增單使用者
:param name: 登入使用者,建議拼音全稱,如:jiangliheng
:param displayname: 顯示名稱,建議中文全稱,如:蔣李恆
:param email: 郵箱位址
:rewww.cppcns.comturn: status_code 狀態碼,text 響應報文資訊
"""# 請求 json 資料
data = ' \
}'# 發起請求
# 解決中文亂碼問題 data.encode("utf-8").decode("latin1")
) # 狀態碼
status_code=response.status_code
# 響應報文資訊
text=response.text
# 狀態判斷
if str(status_code).startswith("2"):
print("%s 使用者新增成功,狀態碼:%s ,響應報文資訊:%s" % (name,status_code,text))
else:
print("%s 使用者新增失敗,狀態碼:%s ,響應報文資訊:%s" % (name,status_code,text))
# 返回 狀態碼,響應報文資訊
return status_code,text
def addgroup(username,groupname):
"""使用者新增到組
:param username: 登入使用者,建議拼音全稱,如:jiangliheng
:param groups: 使用者組,用逗號隔開,如:bitbucket-users,bamboo-users
:return: status_code 狀態碼,text 響應報文資訊
"""# 請求 json 資料
data = ''
# 發起請求
) # 狀態碼
status_code=response.status_code
# 響應報文資訊
text=response.text
# 狀態判斷
if str(status_code).startswith("2"):
print("%s 使用者新增組 %s 成功,狀態碼:%s ,響應報文資訊:%s" % (username,groupname,status_code,text))
else:
print("%s 使用者新增組 %s 失敗,狀態碼:%s ,響應報文資訊:%s" % (username,groupname,status_code,text))
# 返回 狀態碼,響應報文資訊
return status_code,text
def adduserbycsv(csvfile):
"""通過 csv 檔案批量新增使用者,並加到組
:param filename: crowd 使用者 csv 檔案
"""# 批量讀取 csv 的使用者
with open(csvfile, 'r', encoding='utf-8') as f:
fieldnames = ("name", "displayname", "email")
reader = csv.dictreader(f, fieldnames)
for row in islice(reader, 1, none):
print("批量新增使用者 %s" % (row["name"]))
# 新增使用者
adduser(row["name"],row["displayname"],row["email"])
# 新增多個組
addgroup(row["name"],"all-users")
addgroup(row["name"],"bitbucket-users")
addgroup(row["name"],"confluence-users")
addgroup(row["name"],"jira-software-users")
addgroup(row["name"],"sonar-users")
f.close()
def main():
# 通過 csv 檔案批量新增使用者,並加到組
adduserbycsv("crowdusers.csv")
# 新增單使用者
# adduser("daodaotest","叨叨軟體測試","[email protected]")
# 新增使用者到組
# addgroup("daodaotest","all-users")
if __name__ == "__main__":
main()
本文標題: python3批量建立crowd使用者並分配組
本文位址:
python3批量改名
自打有了網課的經驗,老師們各有個的收作業方式.有的用智學網.但有的老師就比較厲害,他們讓學生拍照傳檔案 甚至要改檔名,打包成zip 皿 既然是拍照上傳,拍照肯定是手機的事 我不會安卓,那我們看看在電腦上我們可以做什麼 改名字 用python實現應該不難 打包zip 應該也不難 發布 qq上發給特定的...
Python3 批量修改檔名
1 下圖原檔案包含 itjc8.com 想去掉 2 python 參考 如下 created on 2019年1月29日 author yvon fajin import os os.path time defrename file,keyword file 檔案路徑 keyword 需要修改的檔案...
python3批量隨機移動檔案分割訓練集驗證集指令碼
深度學習經常需要分割訓練集和驗證集,所以寫了個可以按比例移動檔案的指令碼 這個指令碼針對的是乙個大訓練集,其中子資料夾名字是分類裡面是的情況.filedir是訓練集資料夾 targetdir是目標資料夾 rate是移動比例 import random,shutil,os 首先我的目標是生成乙個字典,...