Skip to content

Commit 01b2359

Browse files
authored
Merge pull request #13 from yueyongyue/dev
增加:创建产品线的时候进行gitlab api 及salt api的测试
2 parents 3729434 + caf8cac commit 01b2359

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

router.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from resources.minions import MinionsKeys, MinionsStatus, MinionsGrains, MinionsGrainsList
44
from resources.job import Job, JobList, JobManager
55
from resources.event import Event, EventList
6-
from system.product import ProductList, Product
6+
from system.product import ProductList, Product, ProductCheck
77
from system.role import RoleList, Role
88
from system.user import UserList, User, Register, ResetPassword, ResetPasswordByOwner, ChangeUserInfo
99
from system.login import Login
@@ -41,6 +41,7 @@
4141
# product
4242
api.add_resource(ProductList, "/saltshaker/api/v1.0/product")
4343
api.add_resource(Product, "/saltshaker/api/v1.0/product/<string:product_id>")
44+
api.add_resource(ProductCheck, "/saltshaker/api/v1.0/product/check/<string:name>")
4445

4546
# role
4647
api.add_resource(RoleList, "/saltshaker/api/v1.0/role")

system/product.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
from system.user import update_user_privilege, update_user_product
1111
from common.const import role_dict
1212
from fileserver.rsync_fs import rsync_config
13+
from common.saltstack_api import SaltAPI
14+
import gitlab
1315

1416
logger = loggers()
1517

@@ -179,4 +181,46 @@ def post(self):
179181
return {"status": False, "message": result}, 500
180182

181183

184+
class ProductCheck(Resource):
185+
@access_required(role_dict["common_user"])
186+
def post(self, name):
187+
args = parser.parse_args()
188+
if name == "salt_api":
189+
if args["salt_master_url"] is "":
190+
return {"status": False, "message": "Salt API address is empty"}, 200
191+
salt_api = SaltAPI(
192+
url=args["salt_master_url"],
193+
user=args["salt_master_user"],
194+
passwd=args["salt_master_password"]
195+
)
196+
if isinstance(salt_api, dict):
197+
return {"status": False, "message": salt_api}, 200
198+
else:
199+
result = salt_api.shell_remote_execution(args["salt_master_id"], "echo true")
200+
if result:
201+
try:
202+
if result['status'] is False:
203+
return {"status": False, "message": result['message']}, 200
204+
except KeyError:
205+
return {"data": "", "status": True, "message": ""}, 200
206+
else:
207+
return {"data": "", "status": False,
208+
"message": "Execute echo command on Master ID is not returned"}, 200
209+
else:
210+
if args["gitlab_url"] is "":
211+
return {"status": False, "message": "GitLab API address is empty"}, 200
212+
if args["api_version"] is "":
213+
return {"status": False, "message": "GitLab API version is empty"}, 200
214+
if args["state_project"] is "":
215+
return {"status": False, "message": "GitLab State is empty"}, 200
216+
try:
217+
gl = gitlab.Gitlab(url=args["gitlab_url"],
218+
private_token=args["private_token"],
219+
timeout=120,
220+
api_version=args["api_version"],
221+
)
182222

223+
gl.projects.get(args["state_project"])
224+
return {"data": "", "status": True, "message": ""}, 200
225+
except Exception as e:
226+
return {"data": "", "status": False, "message": str(e)}, 200

0 commit comments

Comments
 (0)