mwgencode 1.4.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gencode/__init__.py +140 -0
- gencode/dd_models.py +256 -0
- gencode/ext.py +19 -0
- gencode/gen_code.py +343 -0
- gencode/gencode/__init__.py +0 -0
- gencode/gencode/export_class2swgclass.py +206 -0
- gencode/gencode/gen_bo_models_code.py +719 -0
- gencode/gencode/gen_state_code.py +171 -0
- gencode/gencode/gen_swagger_code.py +94 -0
- gencode/gencode/gen_tests_code.py +113 -0
- gencode/gencode/sample/__init__.py +2 -0
- gencode/gencode/sample/babel.cfg +3 -0
- gencode/gencode/sample/config-sample.ini +9 -0
- gencode/gencode/sample/config.ini +14 -0
- gencode/gencode/sample/create_new_table_run.pys +19 -0
- gencode/gencode/sample/dockerignore.dock +57 -0
- gencode/gencode/sample/file_utils.pys +396 -0
- gencode/gencode/sample/gencode.xmi +33 -0
- gencode/gencode/sample/gitignore.git +14 -0
- gencode/gencode/sample/migrate_run.bat +5 -0
- gencode/gencode/sample/migrate_run.pys +9 -0
- gencode/gencode/sample/requirements.txt +17 -0
- gencode/gencode/sample/run.sh +27 -0
- gencode/gencode/sample/seeds/__init__.py +0 -0
- gencode/gencode/sample/seeds/models_rm.pys +187 -0
- gencode/gencode/sample/seeds/seed_dev_data.pys +21 -0
- gencode/gencode/sample/seeds/seed_init.pys +17 -0
- gencode/gencode/sample/seeds/seed_rm.pys +39 -0
- gencode/gencode/sample/seeds/seed_run.pys +13 -0
- gencode/gencode/sample/seeds/seed_utils.pys +23 -0
- gencode/gencode/sample/test__init__.pys +6 -0
- gencode/gencode/sample/test_run.pys +4 -0
- gencode/gencode/sample/utils.pys +92 -0
- gencode/gencode/template/Dockerfile.tmp +55 -0
- gencode/gencode/template/README.md +91 -0
- gencode/gencode/template/__init__.py +0 -0
- gencode/gencode/template/__init__.pys +99 -0
- gencode/gencode/template/config.pys +134 -0
- gencode/gencode/template/default.conf +21 -0
- gencode/gencode/template/docker-compose-dev.yaml +52 -0
- gencode/gencode/template/docker-compose.yaml +55 -0
- gencode/gencode/template/drone.tmp +45 -0
- gencode/gencode/template/flask_models.pys +107 -0
- gencode/gencode/template/flask_models_base.pys +159 -0
- gencode/gencode/template/gen_code_flask.yaml +21 -0
- gencode/gencode/template/gen_code_run.pys +28 -0
- gencode/gencode/template/k8s-tmp.yml +141 -0
- gencode/gencode/template/run.pys +52 -0
- gencode/gencode/template/sample.mdj +1193 -0
- gencode/gencode/template/setup.tmp +48 -0
- gencode/gencode/template/supervisord.conf +21 -0
- gencode/gencode/template/swagger_file.yaml +195 -0
- gencode/gencode/template/swg_class.tmp +41 -0
- gencode/gencode/template/swg_ctrl_code.pys +130 -0
- gencode/gencode/template/swg_package_mng.tmp +4423 -0
- gencode/gencode/template/test_test_base.tmp +34 -0
- gencode/gencode/template/tests/__init__.py +0 -0
- gencode/gencode/template/tests/__init__.pys +5 -0
- gencode/gencode/template/tests/init_test_data.pys +80 -0
- gencode/gencode/template/tests/run.pys +4 -0
- gencode/gencode/template/tests/test_base.pys +87 -0
- gencode/gencode/template/tests/test_classmng.pys +58 -0
- gencode/gencode/template/uwsgi.ini +20 -0
- gencode/gencode/template/uwsgi_run.pys +44 -0
- gencode/importmdj/__init__.py +0 -0
- gencode/importmdj/import_dd_classes.py +369 -0
- gencode/importmdj/import_swagger2_class.py +371 -0
- gencode/importmdj/import_uml_models.py +466 -0
- gencode/importxmi/__init__.py +1 -0
- gencode/importxmi/import_classes.py +342 -0
- gencode/importxmi/import_sequences.py +291 -0
- gencode/importxmi/import_states.py +150 -0
- gencode/importxmi/import_swagger.py +151 -0
- gencode/swg2_class_models.py +179 -0
- gencode/uml_class_models.py +295 -0
- gencode/upgrade.py +113 -0
- gencode/utils.py +225 -0
- manage.py +194 -0
- mwgencode-1.4.1.dist-info/METADATA +325 -0
- mwgencode-1.4.1.dist-info/RECORD +84 -0
- mwgencode-1.4.1.dist-info/WHEEL +5 -0
- mwgencode-1.4.1.dist-info/entry_points.txt +2 -0
- mwgencode-1.4.1.dist-info/licenses/LICENSE.txt +19 -0
- mwgencode-1.4.1.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
from app import create_app_swagger, db
|
|
3
|
+
|
|
4
|
+
class BasicTestCase(unittest.TestCase):
|
|
5
|
+
def setUp(self):
|
|
6
|
+
self.app = create_app_swagger('testing').app
|
|
7
|
+
self.app_context = self.app.app_context()
|
|
8
|
+
self.app_context.push()
|
|
9
|
+
db.create_all()
|
|
10
|
+
self.client = self.app.test_client()
|
|
11
|
+
self.server ='http://localhost:9999/{{service_name}}/v1.0'
|
|
12
|
+
|
|
13
|
+
def url_for(self,endpoint):
|
|
14
|
+
return '%s/%s'%(self.server,endpoint)
|
|
15
|
+
|
|
16
|
+
def tearDown(self):
|
|
17
|
+
db.session.remove()
|
|
18
|
+
db.drop_all()
|
|
19
|
+
self.app_context.pop()
|
|
20
|
+
|
|
21
|
+
# 范例一:测试health
|
|
22
|
+
# def test_health(self):
|
|
23
|
+
# response = self.client.get(self.url_for('health'))
|
|
24
|
+
# self.assertEqual(response.status_code,200)
|
|
25
|
+
|
|
26
|
+
# def test_register(self):
|
|
27
|
+
# response = self.client.post(url_for('main.register'), data={
|
|
28
|
+
# 'email': '879651072@qq.com',
|
|
29
|
+
# 'name': 'Hyman',
|
|
30
|
+
# 'password1': '123',
|
|
31
|
+
# 'password2': '123'})
|
|
32
|
+
# self.assertTrue(response.status_code == 302)
|
|
33
|
+
|
|
34
|
+
|
|
File without changes
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
from app import db
|
|
2
|
+
import json
|
|
3
|
+
# todo 如果model中没有定义user ,则在此定义
|
|
4
|
+
# class Authuser(db.Model):
|
|
5
|
+
# __tablename__ = 'appuser'
|
|
6
|
+
# uid = db.Column("id",db.String(50), primary_key=True)
|
|
7
|
+
# uname = db.Column("name",db.String(50))
|
|
8
|
+
# manageuser = db.Column("ismanage",db.Boolean)
|
|
9
|
+
# manageuserid = db.Column("manageuserid",db.String(50))
|
|
10
|
+
# password = db.Column("passwordmd5",db.String(50))
|
|
11
|
+
# systemuser = db.Column("issystemuser",db.Boolean)
|
|
12
|
+
# companyid = db.Column(db.String(50))
|
|
13
|
+
# # 邮件,用于修改密码
|
|
14
|
+
# email = db.Column(db.String(200))
|
|
15
|
+
# # 微信的openid
|
|
16
|
+
# wx_openid = db.Column(db.String(50))
|
|
17
|
+
# def __repr__(self):
|
|
18
|
+
# return json.dumps(self.to_json())
|
|
19
|
+
# def to_json(self,fields:list=None):
|
|
20
|
+
# '''
|
|
21
|
+
# 按资料库中的fieldname输出json
|
|
22
|
+
# :param fields:资料库栏位名,不指定fields时,输出所有的资料,否则按指定fields输出
|
|
23
|
+
# :return:
|
|
24
|
+
# '''
|
|
25
|
+
# return {key: getattr(self, key) for key in (fields or self.__table__.columns.keys())
|
|
26
|
+
# if hasattr(self,key)
|
|
27
|
+
# }
|
|
28
|
+
def add_seed(session, cls, flt, datas):
|
|
29
|
+
'''
|
|
30
|
+
增加物件
|
|
31
|
+
:param session: sQLAlchemy session
|
|
32
|
+
:param cls: boclass,如:Employee
|
|
33
|
+
:param flt: 过滤条件,如:{'id':1000,'name':'cxh'}
|
|
34
|
+
:param datas: 物件body,如:
|
|
35
|
+
{'id':1000,'emp_name':'cxh',
|
|
36
|
+
'departid':999}
|
|
37
|
+
:return: 企业物件,employee
|
|
38
|
+
'''
|
|
39
|
+
data = session.query(cls).filter_by(**flt).first()
|
|
40
|
+
if not data:
|
|
41
|
+
data = cls(**datas)
|
|
42
|
+
session.add(data)
|
|
43
|
+
session.commit()
|
|
44
|
+
else:
|
|
45
|
+
session.query(cls).filter_by(**flt).update(datas)
|
|
46
|
+
session.commit()
|
|
47
|
+
return data
|
|
48
|
+
|
|
49
|
+
def init_companys():
|
|
50
|
+
from app.models import Company
|
|
51
|
+
comp1 = add_seed(db.session, Company, {'id': 'comp1'},
|
|
52
|
+
{'id': 'comp1', 'code': 'code1', 'name': 'name1', 'xtype': 1,'inuse':True})
|
|
53
|
+
comp2 = add_seed(db.session, Company, {'id': 'comp2','inuse':True},
|
|
54
|
+
{'id': 'comp2', 'code': 'code2', 'name': 'name2', 'xtype': 1,'companyid':'comp1','inuse':True})
|
|
55
|
+
comp3 = add_seed(db.session, Company, {'id': 'comp3'},
|
|
56
|
+
{'id': 'comp3', 'code': 'code3', 'name': 'name3', 'xtype': 1,'companyid':'comp1','inuse':True})
|
|
57
|
+
return comp1,comp2,comp3
|
|
58
|
+
|
|
59
|
+
def init_test_data():
|
|
60
|
+
'''
|
|
61
|
+
初始化测试资料
|
|
62
|
+
:return:返回各种类型的用户,方便后期测试
|
|
63
|
+
'''
|
|
64
|
+
init_companys()
|
|
65
|
+
# todo import AuthUser
|
|
66
|
+
from app.models import AuthUser
|
|
67
|
+
# 超级用户
|
|
68
|
+
dev = add_seed(db.session,AuthUser,{'uid':'2222'},
|
|
69
|
+
{'uid':'2222','uname':'dev','systemuser':True,'manageuser':False,'manageuserid':'','password':'2222'})
|
|
70
|
+
# 管理者用户
|
|
71
|
+
manage = add_seed(db.session,AuthUser,{'uid':'2000'},
|
|
72
|
+
{'uid':'2000','uname':'manage','systemuser':False,'manageuser':True,'manageuserid':'','password':'2000','companyid':'comp1'})
|
|
73
|
+
# 管理者下的普通用户
|
|
74
|
+
user_mng1 = add_seed(db.session,AuthUser,{'uid':'2001'},
|
|
75
|
+
{'uid':'2001','uname':'user_mng1','systemuser':False,'manageuser':False,'manageuserid':'2000','password':'2001','companyid':'comp1'})
|
|
76
|
+
# 普通用户
|
|
77
|
+
user = add_seed(db.session,AuthUser,{'uid':'2002'},
|
|
78
|
+
{'uid':'2002','uname':'user','systemuser':False,'manageuser':False,'manageuserid':'','password':'2002','companyid':'comp2'})
|
|
79
|
+
# current_app.logger.info('init_test_data success')
|
|
80
|
+
return dev, manage, user_mng1, user
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'''
|
|
2
|
+
测试范例:
|
|
3
|
+
1,form 提交
|
|
4
|
+
response = self.client.post(self.url_for('empuser_login'),
|
|
5
|
+
# header 定义
|
|
6
|
+
headers={'Content-Type': 'multipart/form-data', 'Accept': 'application/json'},
|
|
7
|
+
# data 必须是字典
|
|
8
|
+
data={'user': '13712363409', 'password': 'string','valid_code':'1234','companyid':'comp1'})
|
|
9
|
+
2,post body,内容是 json
|
|
10
|
+
response = self.client.post(self.url_for('empuser_update'),
|
|
11
|
+
# header 定义
|
|
12
|
+
headers=self.get_headers(self.manage_user,{'Content-Type': 'application/json'}),
|
|
13
|
+
# data 必须是str,json.dumps
|
|
14
|
+
data=json.dumps({'uid': 'string', 'uname': 'string', 'companyid': 'string', 'emp_name': 'string', 'password': 'string'}))
|
|
15
|
+
3,mock 使用 注意事项
|
|
16
|
+
from unittest import mock
|
|
17
|
+
。。。
|
|
18
|
+
# check_valid_code是 import的unit,不能设定函数的单元auth_utils,只需要指定引用单元empusermng
|
|
19
|
+
@mock.patch('app.api.v1_0.empusermng.check_valid_code')
|
|
20
|
+
def test_empuser_register_post(self,mock_check_valid_code):
|
|
21
|
+
# 驗證碼檢查找 mock
|
|
22
|
+
mock_check_valid_code.side_effect = [True,True,True,True]
|
|
23
|
+
response = self.client.post(self.url_for('empuser_register?valid_code=1234'),
|
|
24
|
+
headers=self.get_headers(self.manage_user,{'Content-Type': 'application/json'}),
|
|
25
|
+
data=json.dumps({ 'uname': '13712363409', 'companyid': 'comp1', 'emp_name': 'cxh', 'password': 'string'}))
|
|
26
|
+
# mock_check_valid_code.
|
|
27
|
+
。。。
|
|
28
|
+
mock_check_valid_code.assert_called_with('1234',0,None)
|
|
29
|
+
。。。
|
|
30
|
+
# 对应修饰器的顺序需颠倒
|
|
31
|
+
@mock.patch('app.api.v1_0.auth_companymng.get_companyids')
|
|
32
|
+
@mock.patch('app.api.v1_0.auth_companymng.get_service_companyid')
|
|
33
|
+
def test_auth_companys_servicename_get(self,mock_get_service_companyid,mock_get_companyids):
|
|
34
|
+
"""
|
|
35
|
+
测试获取认证的公司
|
|
36
|
+
"""
|
|
37
|
+
# 博览会服务
|
|
38
|
+
mock_companyid.side_effect = ['comp1']
|
|
39
|
+
# 返回多个时,list中必须要是一个list
|
|
40
|
+
mock_get_service_companyid.side_effect = [['comp1','comp2','comp3'],['comp1','comp2','comp3'],['comp1','comp3','comp4']]
|
|
41
|
+
|
|
42
|
+
'''
|
|
43
|
+
|
|
44
|
+
import unittest
|
|
45
|
+
from app import create_app_swagger, db
|
|
46
|
+
from unittest import mock
|
|
47
|
+
from .init_test_data import init_test_data
|
|
48
|
+
from flask.testing import FlaskClient
|
|
49
|
+
|
|
50
|
+
class BasicTestCase(unittest.TestCase):
|
|
51
|
+
|
|
52
|
+
def setUp(self):
|
|
53
|
+
self.app = create_app_swagger('testing').app
|
|
54
|
+
self.app_context = self.app.app_context()
|
|
55
|
+
self.app_context.push()
|
|
56
|
+
db.create_all()
|
|
57
|
+
self.client = self.app.test_client()
|
|
58
|
+
self.server ='http://localhost:9999/{{swagger.name}}/v1.0'
|
|
59
|
+
# 超级用户,管理员用户,管理员创建的用户,普通用户
|
|
60
|
+
self.super_user,self.manage_user,self.user_mng,self.user =init_test_data()
|
|
61
|
+
|
|
62
|
+
def get_headers(self,user,ext_header=None):
|
|
63
|
+
'''
|
|
64
|
+
:param user:
|
|
65
|
+
:return:
|
|
66
|
+
'''
|
|
67
|
+
from app import rds
|
|
68
|
+
import json
|
|
69
|
+
rds.set('session:jwt_test',json.dumps({"uid": "%s"%user.uid, "uname": "%s"%user.uname,
|
|
70
|
+
"systemuser": user.systemuser, "manageuser": user.manageuser, "manageuserid": user.manageuserid}))
|
|
71
|
+
result ={'X-Consumer-Username': user.uname,
|
|
72
|
+
'X-Consumer-Custom-Id': user.uid,
|
|
73
|
+
'accept-language':'en-US;q=0.8,en;q=0.7'}
|
|
74
|
+
if ext_header is not None:
|
|
75
|
+
result.update(ext_header)
|
|
76
|
+
return result
|
|
77
|
+
|
|
78
|
+
def url_for(self,endpoint):
|
|
79
|
+
return '%s/%s'%(self.server,endpoint)
|
|
80
|
+
|
|
81
|
+
def tearDown(self):
|
|
82
|
+
db.session.remove()
|
|
83
|
+
db.drop_all()
|
|
84
|
+
self.app_context.pop()
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from tests.test_base import BasicTestCase
|
|
2
|
+
import json
|
|
3
|
+
# from unittest import mock
|
|
4
|
+
|
|
5
|
+
class Test{{tag.name}}(BasicTestCase):
|
|
6
|
+
{% for path in tag.paths %}
|
|
7
|
+
{% for act in path.actions %}
|
|
8
|
+
def test_{{path.name.replace('{', '').replace('}', '').replace('-', '_') + '_' + act.action}}(self):
|
|
9
|
+
"""
|
|
10
|
+
# todo add testcacse description
|
|
11
|
+
"""
|
|
12
|
+
{% if act.action == 'get' and act.default_resp.is_array %}
|
|
13
|
+
# todo fix url
|
|
14
|
+
response = self.client.get(self.url_for('{{path.name.replace('_{', '/{')}}{{get_params(act.params)}}'),
|
|
15
|
+
headers=self.get_headers(self.super_user))
|
|
16
|
+
self.assertEqual(response.status_code,200)
|
|
17
|
+
# todo add other assert code
|
|
18
|
+
exp_data = {{get_resp_js(act)}}
|
|
19
|
+
resp_data = response.json # json.loads(response.data.decode())
|
|
20
|
+
{% endif %}
|
|
21
|
+
{% if act.action == 'get' and not act.default_resp.is_array %}
|
|
22
|
+
# todo fix url
|
|
23
|
+
response = self.client.get(self.url_for('{{path.name.replace('_{', '/{')}}{{get_params(act.params)}}'),
|
|
24
|
+
headers=self.get_headers(self.manage_user))
|
|
25
|
+
self.assertEqual(response.status_code,200)
|
|
26
|
+
# todo add other assert code
|
|
27
|
+
exp_data = {{get_resp_js(act)}}
|
|
28
|
+
resp_data = response.json
|
|
29
|
+
{% endif %}
|
|
30
|
+
{% if act.action == 'post' %}
|
|
31
|
+
# todo fix url
|
|
32
|
+
response = self.client.post(self.url_for('{{path.name.replace('_{', '/{')}}{{get_params(act.params)}}'),
|
|
33
|
+
headers=self.get_headers(self.manage_user,{'Content-Type': 'application/json'}),
|
|
34
|
+
data=json.dumps({{get_resp_js(act)}}))
|
|
35
|
+
self.assertEqual(response.status_code, 201)
|
|
36
|
+
# todo add other assert code
|
|
37
|
+
exp_data = {{get_resp_js(act)}}
|
|
38
|
+
resp_data = response.json #json.loads(response.data.decode())
|
|
39
|
+
{% endif %}
|
|
40
|
+
{% if act.action == 'put' %}
|
|
41
|
+
# todo fix url
|
|
42
|
+
response = self.client.post(self.url_for('{{path.name.replace('_{', '/{')}}{{get_params(act.params)}}'),
|
|
43
|
+
headers=self.get_headers(self.manage_user,{'Content-Type': 'application/json'}),
|
|
44
|
+
data=json.dumps({{get_resp_js(act)}}))
|
|
45
|
+
self.assertEqual(response.status_code, 201)
|
|
46
|
+
# todo add other assert code
|
|
47
|
+
exp_data = {{get_resp_js(act)}}
|
|
48
|
+
resp_data = response.json # json.loads(response.data.decode())
|
|
49
|
+
{% endif %}
|
|
50
|
+
{% if act.action == 'delete' %}
|
|
51
|
+
# todo fix url
|
|
52
|
+
response = self.client.delete(self.url_for('{{path.name.replace('_{', '/{')}}{{get_params(act.params)}}'),
|
|
53
|
+
headers=self.get_headers(self.manage_user,{'Content-Type': 'application/json'}),
|
|
54
|
+
)
|
|
55
|
+
self.assertEqual(response.status_code, 204)
|
|
56
|
+
{% endif %}
|
|
57
|
+
{% endfor %}
|
|
58
|
+
{% endfor %}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[uwsgi]
|
|
2
|
+
socket = /tmp/uwsgi.sock
|
|
3
|
+
chdir = /var/{{swagger.name}}
|
|
4
|
+
module = uwsgi_run
|
|
5
|
+
callable = app
|
|
6
|
+
#生产环境下不能开启
|
|
7
|
+
;py-autoreload = true
|
|
8
|
+
master = true
|
|
9
|
+
chmod-socket = 666
|
|
10
|
+
plugin = python,http
|
|
11
|
+
processes = 2
|
|
12
|
+
threads = 2
|
|
13
|
+
max-requests = 500
|
|
14
|
+
;worker超过60秒没有反应,会被重启
|
|
15
|
+
harakiri=60
|
|
16
|
+
{% if 'kafka' in plugins %}
|
|
17
|
+
; 在有cassandra,kafka等应用的专案中要开启lazy-apps和touch-chain-reload
|
|
18
|
+
lazy-apps=true
|
|
19
|
+
touch-chain-reload=true
|
|
20
|
+
{% endif %}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from app import create_app_swagger
|
|
2
|
+
|
|
3
|
+
def register_service(config_name,app):
|
|
4
|
+
from app.config import config
|
|
5
|
+
# 注册本服务到kong
|
|
6
|
+
config = config[config_name]
|
|
7
|
+
auto_register2consul = config.CONSUL_AUTO_REGISTER
|
|
8
|
+
auto_register2kong = config.KONG_AUTO_REGISTER
|
|
9
|
+
web_port = config.PORT
|
|
10
|
+
# from mwsdk import AgentConf
|
|
11
|
+
service_host = f"{config.get_host_addr()}:{ web_port}"
|
|
12
|
+
app.logger.info('auto_register2kong:%s'%auto_register2kong)
|
|
13
|
+
if auto_register2kong:
|
|
14
|
+
from mwsdk import Kong
|
|
15
|
+
kong = Kong()
|
|
16
|
+
kong.add_upstream_target('{{swagger.name}}-server', service_host, 100, '/{{swagger.name}}/v1.0/health')
|
|
17
|
+
kong.reg_service('{{swagger.name}}/v1.0', '{{swagger.name}}-server', auth='jwt')
|
|
18
|
+
#todo add other_api
|
|
19
|
+
app.logger.info('注册kong成功')
|
|
20
|
+
#kong.reg_service('xxxx/v1.0/login_jwt', '{{swagger.name}}-server', auth='')
|
|
21
|
+
#kong.reg_service('xxxx/v1.0/token', '{{swagger.name}}-server', auth='key')
|
|
22
|
+
#kong.reg_service('xxxx/v1.0/logout_jwt', '{{swagger.name}}-server',auth='jwt')
|
|
23
|
+
#kong.reg_service('static', '{{swagger.name}}-server', auth='', kong_uris='/auth/static')
|
|
24
|
+
# 註冊到kong的服務到consul
|
|
25
|
+
app.logger.info('auto_register2consul:%s'%auto_register2consul)
|
|
26
|
+
if auto_register2consul:
|
|
27
|
+
check = {"id": "{{swagger.name}} api",
|
|
28
|
+
"name": "{{swagger.name}} on port %s"%web_port,
|
|
29
|
+
"http": "http://%s/{{swagger.name}}/v1.0/health"%service_host,
|
|
30
|
+
"interval": "20s",
|
|
31
|
+
"timeout": "10s",
|
|
32
|
+
"DeregisterCriticalServiceAfter": "5m"
|
|
33
|
+
}
|
|
34
|
+
from mwsdk import Kong, reg_service
|
|
35
|
+
kong = Kong()
|
|
36
|
+
reg_service('{{swagger.name}}',address=kong.ip, port=kong.port, tags=['kong','jwt'],
|
|
37
|
+
check=check)
|
|
38
|
+
app.logger.info('注册consul成功')
|
|
39
|
+
|
|
40
|
+
app = create_app_swagger('production')
|
|
41
|
+
register_service('production',app.app)
|
|
42
|
+
application = app.app
|
|
43
|
+
|
|
44
|
+
|
|
File without changes
|