-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.py
82 lines (61 loc) · 1.97 KB
/
server.py
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
75
76
77
78
79
80
81
82
from flask import Flask
from flask import request
from flask import jsonify
import boto3
from yowsup.common.tools import StorageTools, WATools
from yowsup.registration.existsrequest import WAExistsRequest
from yowsup.env import S40YowsupEnv, AndroidYowsupEnv
import random, hashlib, os
from urllib import quote
from collections import defaultdict
CURRENT_ENV = AndroidYowsupEnv()
app = Flask(__name__)
@app.route("/", methods=['GET'])
def index():
return jsonify(status=200)
@app.route("/token", methods=['GET'])
def token():
number = request.args.get('number')
cc = request.args.get('cc')
if number is not None:
if cc is not None:
in_ = number[len(cc):]
token = CURRENT_ENV.getToken(in_)
idx = WATools.generateIdentity()
return jsonify(status=200, number=number, cc=cc, token=token, identity=quote(idx))
else:
return jsonify(status=402, error="Country code is required")
else:
return jsonify(status=402, error="Number is required")
@app.route("/instances", methods=['GET'])
def instances():
ec2 = boto3.resource('ec2')
purpose_filter = { 'Name': 'tag:Purpose', 'Values': ['container'] }
running_instances = ec2.instances.filter(Filters=[ purpose_filter ])
details = defaultdict()
servers = {
'count': 0,
'instances': []
}
for instance in running_instances:
details = {
'instance_id': instance.id,
'state': instance.state['Name'],
'public_ip': instance.public_ip_address
}
servers['instances'].append(details)
servers['count'] += 1
return jsonify(status=200, servers=servers)
# Get an environment variable
def get_env(key, raiseError=True, default_value=None):
value = os.environ.get(key)
if value is None:
if raiseError:
raise Exception("Error. Environment Variables not loaded, kindly load them " % key)
else:
return default_value
else:
return value.encode('utf-8')
if __name__ == "__main__":
debug = get_env('debug', False, False)
app.run(debug=debug)