Python3批量建立Crowd使用者並分配組

2022-10-03 21:54:19 字數 4609 閱讀 6149

背景

遷移 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 首先我的目標是生成乙個字典,...