-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathservice-check-client.py
More file actions
57 lines (49 loc) · 1.99 KB
/
service-check-client.py
File metadata and controls
57 lines (49 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
服务管理 API 客户端
功能描述:
本脚本作为服务管理 API 的客户端,通过 HTTP 请求与远程服务管理 API 进行交互。
主要功能包括查询服务运行状态,当发现服务停止时自动触发重启操作,
实现服务的自动化监控和恢复机制。
技术实现:
- 使用 requests 库进行 HTTP API 调用
- 采用 RESTful API 设计模式进行接口交互
- 使用 Bearer Token 认证机制确保 API 安全
- 基于 JSON 数据格式进行 API 数据交换
- 实现条件判断的自动化服务恢复逻辑
API 接口规范:
状态查询接口:
- URL: https://server/api/service/status
- 方法: GET
- 认证: Bearer Token
- 响应: {"status": "running|stopped"}
重启接口:
- URL: https://server/api/service/restart
- 方法: POST
- 认证: Bearer Token
- 响应: {"message": "success"} 或 {"error": "description"}
"""
import requests
# 定义服务状态查询接口
status_url = 'https://server/api/service/status'
restart_url = 'https://server/api/service/restart'
# 发送请求获取服务状态
response = requests.get(status_url, headers={'Authorization': 'Bearer YOUR_API_KEY'})
# 判断服务是否停止
if response.status_code == 200:
# 在返回值的json格式中获取status字段(需要api接口预先返回status字段)
service_status = response.json().get('status')
if service_status != 'running':
print('Service has stopped running, trying to restart it...')
# 发送重启请求
restart_response = requests.post(restart_url, headers={'Authorization': 'Bearer YOUR_API_KEY'})
# 重启成功,返回值200
if restart_response.status_code == 200:
print('Service restarted successfully')
# 重启失败
else:
print('Service restarted failed.')
# 状态吗不是200,未能获取到服务状态
else:
print('Cannot obtain service status.')