-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdstack-agent.py
More file actions
74 lines (50 loc) · 1.37 KB
/
dstack-agent.py
File metadata and controls
74 lines (50 loc) · 1.37 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# stdlib
import os
import re
import syslog
import json
import time
from json import JSONEncoder
# 3rd party
from ConfigParser import SafeConfigParser
import requests
from jsonmerge import merge
#own libraries
import system
# Getting data from the configuration file
parser = SafeConfigParser()
parser.read('dstack-agent.conf')
jsondata={"root":"/opt","folder":"dockerstack.github.io"}
ip = parser.get('apiserver', 'ip')
port = parser.get('apiserver', 'port')
polling = parser.get('main','polling')
polling_time = parser.get('main','polling_time')
#jsondata={"root":"/opt","folder":"dockerstack.github.io"}
class DockerAgent():
def api_version(self):
r = requests.get('http://%s:%s/api/info'%(ip,port))
print r.status_code
print r.text
def post_ServerData(self,jsondata):
try:
url = 'http://%s:%s/api/datafetch/server/details'%(ip,port)
r = requests.post(url, data=json.dumps(jsondata))
print r.text
except Exception,e:
print e
def main():
while True:
app = DockerAgent()
sys = system.SystemInfo()
sysinfo= sys.getsystem_info()
sysmem= sys.getsystem_memory()
sysdata = [sysmem,sysinfo]
print sysinfo["ip"]
jsondata = {"userdata":{"server":sysinfo,"memory":sysmem}}
data = json.dumps(jsondata, sort_keys=True)
print data
app.api_version()
app.post_ServerData(jsondata)
time.sleep(int(polling_time))
if __name__ == "__main__":
main()