38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
|
|
import json, urllib.request, sys
|
||
|
|
base = 'https://api.synaglobal.vip'
|
||
|
|
req = urllib.request.Request(
|
||
|
|
base + '/api/auth/login',
|
||
|
|
data=json.dumps({'username': 'admin', 'password': 'Nexus@2026'}).encode(),
|
||
|
|
method='POST',
|
||
|
|
headers={'Content-Type': 'application/json'},
|
||
|
|
)
|
||
|
|
tok = json.loads(urllib.request.urlopen(req).read())['access_token']
|
||
|
|
h = {'Authorization': 'Bearer ' + tok, 'Content-Type': 'application/json'}
|
||
|
|
|
||
|
|
# get all servers
|
||
|
|
srv_data = json.loads(urllib.request.urlopen(
|
||
|
|
urllib.request.Request(base + '/api/servers/?per_page=50', headers=h)
|
||
|
|
).read())
|
||
|
|
servers = srv_data.get('items', [])
|
||
|
|
print(f'Total servers: {len(servers)}')
|
||
|
|
for s in servers:
|
||
|
|
print(f" id={s['id']} name={s.get('name','')} user={s.get('username','')} target={s.get('target_path','')} domain={s.get('domain','')}")
|
||
|
|
|
||
|
|
print()
|
||
|
|
# browse server 8 several paths
|
||
|
|
for path in ['/', '/www', '/www/wwwroot', '/tmp']:
|
||
|
|
b = json.dumps({'server_id': 8, 'path': path}).encode()
|
||
|
|
try:
|
||
|
|
d = json.loads(urllib.request.urlopen(
|
||
|
|
urllib.request.Request(base + '/api/sync/browse', data=b, method='POST', headers=h),
|
||
|
|
timeout=20
|
||
|
|
).read())
|
||
|
|
n = len(d.get('items', []))
|
||
|
|
err = (d.get('error') or '')[:120]
|
||
|
|
print(f"server8 {path}: items={n} error={repr(err)}")
|
||
|
|
if n > 0:
|
||
|
|
for it in d['items'][:6]:
|
||
|
|
print(f" {it['type']:9} {it['name']}")
|
||
|
|
except Exception as e:
|
||
|
|
print(f"server8 {path}: EXCEPTION {e}")
|