🎉 First commit
parent
e5492e6299
commit
9d1372aea8
@ -0,0 +1,71 @@
|
||||
import argparse
|
||||
import requests
|
||||
from ping3 import ping
|
||||
|
||||
|
||||
def RegisterAgent(apiEndpoint, secret, name):
|
||||
try:
|
||||
response = requests.get(
|
||||
apiEndpoint + '/registerAgent?secret='+secret+'&name='+name)
|
||||
if response.status_code == 200:
|
||||
return response.json()['agentId']
|
||||
else:
|
||||
raise Exception('Error registering agent')
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return None
|
||||
|
||||
|
||||
def GetNodeList(apiEndpoint, secret):
|
||||
try:
|
||||
response = requests.get(apiEndpoint + '/getNodeList?secret='+secret)
|
||||
if response.status_code == 200:
|
||||
return response.json()['nodes']
|
||||
else:
|
||||
raise Exception('Error getting node list')
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return None
|
||||
|
||||
|
||||
def RegisterRecord(apiEndpoint, secret, agentId, nodeId, lantency):
|
||||
try:
|
||||
response = requests.get(apiEndpoint + '/registerRecord?secret=' +
|
||||
secret+'&agentId='+agentId+'&nodeId='+nodeId+'&lantency='+lantency)
|
||||
if not response.status_code == 200:
|
||||
raise Exception('Error registering record')
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
||||
|
||||
# Accept args from command line
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-a', '--apiEndpoint',
|
||||
help='API Endpoint URL. eg. https://pinging.vercel.app/api', required=True)
|
||||
parser.add_argument(
|
||||
'-s', '--secret', help='Agent Secret. eg. 9cWxVbX35UL2Dhj4', required=True)
|
||||
parser.add_argument('-n', '--name', help='Agent Friendly Name', required=True)
|
||||
args = parser.parse_args()
|
||||
|
||||
# Register agent
|
||||
agentId = RegisterAgent(args.apiEndpoint, args.secret, args.name)
|
||||
if agentId == None:
|
||||
print('Agent registration failed')
|
||||
exit()
|
||||
|
||||
# Get node list
|
||||
nodeList = GetNodeList(args.apiEndpoint, args.secret)
|
||||
if nodeList == None:
|
||||
print('Failed to get node list')
|
||||
exit()
|
||||
|
||||
# Ping nodes
|
||||
for node in nodeList:
|
||||
print('Pinging ' + node['hostname'])
|
||||
lantency = ping(node['hostname'], unit='ms')
|
||||
if lantency == None or lantency == False:
|
||||
lantency = -1
|
||||
lantency = int(lantency)
|
||||
print('Lantency: ' + str(lantency))
|
||||
RegisterRecord(args.apiEndpoint, args.secret,
|
||||
str(agentId), str(node['id']), str(lantency))
|
@ -0,0 +1,2 @@
|
||||
ping3==4.0.4
|
||||
requests==2.22.0
|
Loading…
Reference in New Issue