Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

重新打包镜像,将环境的配置全部转为容器内来操作完成 #8

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 5 additions & 29 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,35 +1,11 @@
FROM centos:7
# 设置编码
ENV LANG en_US.UTF-8
# 同步时间
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
FROM registry.cn-hangzhou.aliyuncs.com/sourcegarden/python:centos7-3.6

# 1. 安装基本依赖
RUN yum update -y && yum install epel-release -y && yum update -y && yum install wget unzip epel-release nginx xz gcc automake zlib-devel openssl-devel supervisor groupinstall development libxslt-devel libxml2-devel libcurl-devel git -y
#WORKDIR /var/www/

# 2. 准备python
RUN wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
RUN xz -d Python-3.6.6.tar.xz && tar xvf Python-3.6.6.tar && cd Python-3.6.6 && ./configure && make && make install

# 3. 安装websdk
RUN pip3 install --upgrade pip
RUN pip3 install -U git+https://github.com/ss1917/ops_sdk.git

# 4. 复制代码
RUN mkdir -p /var/www/
ADD . /var/www/codo-tools/
RUN pip3 install -r /var/www/codo-tools/requirements.txt

# 5. 安装pip依赖
RUN pip3 install -r /var/www/codo-tools/doc/requirements.txt

# 6. 日志
VOLUME /var/log/

# 7. 准备文件
COPY doc/nginx_ops.conf /etc/nginx/conf.d/default.conf
COPY doc/supervisor_ops.conf /etc/supervisord.conf
COPY docker/nginx_default.conf /etc/nginx/nginx.conf
COPY docker/nginx_ops.conf /etc/nginx/conf.d/codo-tools.conf
COPY docker/supervisor_ops.conf /etc/supervisord.conf

EXPOSE 80
CMD ["/usr/bin/supervisord"]
44 changes: 22 additions & 22 deletions biz/crontab_app.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/3/21 19:52
# @Author : Fred Yangxiaofei
# @File : crontab_app.py
# @Role : Application 放一些定时任务 ,可能会导致阻塞
import tornado
from websdk.application import Application as myApplication
from biz.tail_data import tail_data
class Application(myApplication):
def __init__(self, **settings):
urls = []
tailed_callback = tornado.ioloop.PeriodicCallback(tail_data, 3600000) # 1小时循环一次
tailed_callback.start()
super(Application, self).__init__(urls, **settings)
if __name__ == '__main__':
pass
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/3/21 19:52
# @Author : Fred Yangxiaofei
# @File : crontab_app.py
# @Role : Application 放一些定时任务 ,可能会导致阻塞


import tornado
from websdk.application import Application as myApplication
from biz.tail_data import tail_data

class Application(myApplication):
def __init__(self, **settings):
urls = []
tailed_callback = tornado.ioloop.PeriodicCallback(tail_data, 3600000) # 1小时循环一次
tailed_callback.start()
super(Application, self).__init__(urls, **settings)


if __name__ == '__main__':
pass
54 changes: 27 additions & 27 deletions biz/get_userinfo.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/3/21 15:10
# @Author : Fred Yangxiaofei
# @File : get_userinfo.py
# @Role : 获取CODO平台用户详细信息
from libs.redis_connect import redis_conn
from websdk.consts import const
def get_user_info():
"""
从现有redis里面获取用户信息,如:Email,SMS等
:return:
"""
# 集合
data_set = redis_conn.smembers(const.USERS_INFO)
# 集合转list
userdata = list(data_set)
# PS:这里codo后端会把数据主动写redis里面,假数据类型:user_data:['{"nickname:杨红飞", "email": "[email protected]", "tel": "10000000001"}','{"nickname:杨红飞02", "email": "[email protected]", "tel": "10000000002"}']
return userdata
if __name__ == '__main__':
get_user_info()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/3/21 15:10
# @Author : Fred Yangxiaofei
# @File : get_userinfo.py
# @Role : 获取CODO平台用户详细信息


from libs.redis_connect import redis_conn
from websdk.consts import const


def get_user_info():
"""
从现有redis里面获取用户信息,如:Email,SMS等
:return:
"""
# 集合
data_set = redis_conn.smembers(const.USERS_INFO)
# 集合转list
userdata = list(data_set)
# PS:这里codo后端会把数据主动写redis里面,假数据类型:user_data:['{"nickname:杨红飞", "email": "[email protected]", "tel": "10000000001"}','{"nickname:杨红飞02", "email": "[email protected]", "tel": "10000000002"}']
return userdata


if __name__ == '__main__':
get_user_info()
248 changes: 124 additions & 124 deletions biz/handlers/event_mg_handler.py
Original file line number Diff line number Diff line change
@@ -1,124 +1,124 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/3/20 19:19
# @Author : Fred Yangxiaofei
# @File : event_mg_handler.py
# @Role : 事件记录路由
import json
import re
import datetime
from libs.database import model_to_dict
from models.event_record import EventRecord
from websdk.db_context import DBContext
from websdk.base_handler import LivenessProbe
from libs.base_handler import BaseHandler
class EventRecordHandler(BaseHandler):
def get(self, *args, **kwargs):
key = self.get_argument('key', default=None, strip=True)
value = self.get_argument('value', default=None, strip=True)
page_size = self.get_argument('page', default=1, strip=True)
limit = self.get_argument('limit', default=15, strip=True)
limit_start = (int(page_size) - 1) * int(limit)
event_record_list = []
with DBContext('w') as session:
if key and value:
count = session.query(EventRecord).filter_by(**{key: value}).count()
event_record_data = session.query(EventRecord).filter_by(**{key: value}).order_by(
EventRecord.id).offset(limit_start).limit(int(limit))
else:
count = session.query(EventRecord).count()
event_record_data = session.query(EventRecord).order_by(EventRecord.id).offset(
limit_start).limit(int(limit))
for data in event_record_data:
data_dict = model_to_dict(data)
data_dict['event_start_time'] = str(data_dict['event_start_time'])
data_dict['event_end_time'] = str(data_dict['event_end_time'])
data_dict['create_at'] = str(data_dict['create_at'])
data_dict['update_at'] = str(data_dict['update_at'])
event_record_list.append(data_dict)
return self.write(dict(code=0, msg='获取成功', count=count, data=event_record_list))
def post(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
event_name = data.get('event_name')
event_status = data.get('event_status')
event_level = data.get('event_level')
event_processing = data.get('event_processing')
event_start_time = data.get('event_start_time')
event_end_time = data.get('event_end_time')
event_start_time = datetime.datetime.strptime(event_start_time, "%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(
hours=8)
event_end_time = datetime.datetime.strptime(event_end_time, "%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(
hours=8)
if not event_name or not event_status or not event_level or not event_processing or not event_start_time or not event_end_time:
return self.write(dict(code=-2, msg='关键参数不能为空'))
with DBContext('w', None, True) as session:
name = session.query(EventRecord).filter(EventRecord.event_name == event_name).first()
if name:
return self.write(dict(code=-2, msg='{}已经存在'.format(event_name)))
session.add(
EventRecord(event_name=event_name, event_status=event_status, event_level=event_level,
event_processing=event_processing, event_start_time=event_start_time,
event_end_time=event_end_time))
self.write(dict(code=0, msg='添加成功'))
def delete(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
event_id = data.get('id')
if not event_id:
return self.write(dict(code=-2, msg='关键参数不能为空'))
with DBContext('w', None, True) as session:
session.query(EventRecord).filter(EventRecord.id == event_id).delete(synchronize_session=False)
self.write(dict(code=0, msg='删除成功'))
def put(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
event_name = data.get('event_name', None)
event_status = data.get('event_status', None)
event_level = data.get('event_level', None)
event_processing = data.get('event_processing', None)
event_start_time = data.get('event_start_time', None)
event_end_time = data.get('event_end_time', None)
if not event_name or not event_status or not event_level or not event_processing or not event_start_time or not event_end_time:
return self.write(dict(code=-2, msg='关键参数不能为空'))
update_info = {
"event_status": event_status,
"event_level": event_level,
"event_processing": event_processing,
"event_start_time": event_start_time,
"event_end_time": event_end_time,
}
if re.search('000Z', event_start_time):
event_start_time = datetime.datetime.strptime(event_start_time,
"%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(hours=8)
update_info['event_start_time'] = event_start_time
if re.search('000Z', event_end_time):
event_end_time = datetime.datetime.strptime(event_end_time, "%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(
hours=8)
update_info['event_end_time'] = event_end_time
with DBContext('w', None, True) as session:
session.query(EventRecord).filter(EventRecord.event_name == event_name).update(update_info)
self.write(dict(code=0, msg='更新成功'))
event_urls = [
(r"/v1/tools/event/", EventRecordHandler),
(r"/are_you_ok/", LivenessProbe),
]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/3/20 19:19
# @Author : Fred Yangxiaofei
# @File : event_mg_handler.py
# @Role : 事件记录路由



import json
import re
import datetime
from libs.database import model_to_dict
from models.event_record import EventRecord
from websdk.db_context import DBContext
from websdk.base_handler import LivenessProbe
from libs.base_handler import BaseHandler

class EventRecordHandler(BaseHandler):
def get(self, *args, **kwargs):
key = self.get_argument('key', default=None, strip=True)
value = self.get_argument('value', default=None, strip=True)
page_size = self.get_argument('page', default=1, strip=True)
limit = self.get_argument('limit', default=15, strip=True)
limit_start = (int(page_size) - 1) * int(limit)
event_record_list = []
with DBContext('w') as session:
if key and value:
count = session.query(EventRecord).filter_by(**{key: value}).count()
event_record_data = session.query(EventRecord).filter_by(**{key: value}).order_by(
EventRecord.id).offset(limit_start).limit(int(limit))
else:
count = session.query(EventRecord).count()
event_record_data = session.query(EventRecord).order_by(EventRecord.id).offset(
limit_start).limit(int(limit))

for data in event_record_data:
data_dict = model_to_dict(data)
data_dict['event_start_time'] = str(data_dict['event_start_time'])
data_dict['event_end_time'] = str(data_dict['event_end_time'])
data_dict['create_at'] = str(data_dict['create_at'])
data_dict['update_at'] = str(data_dict['update_at'])
event_record_list.append(data_dict)
return self.write(dict(code=0, msg='获取成功', count=count, data=event_record_list))

def post(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
event_name = data.get('event_name')
event_status = data.get('event_status')
event_level = data.get('event_level')
event_processing = data.get('event_processing')
event_start_time = data.get('event_start_time')
event_end_time = data.get('event_end_time')

event_start_time = datetime.datetime.strptime(event_start_time, "%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(
hours=8)
event_end_time = datetime.datetime.strptime(event_end_time, "%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(
hours=8)

if not event_name or not event_status or not event_level or not event_processing or not event_start_time or not event_end_time:
return self.write(dict(code=-2, msg='关键参数不能为空'))

with DBContext('w', None, True) as session:
name = session.query(EventRecord).filter(EventRecord.event_name == event_name).first()
if name:
return self.write(dict(code=-2, msg='{}已经存在'.format(event_name)))

session.add(
EventRecord(event_name=event_name, event_status=event_status, event_level=event_level,
event_processing=event_processing, event_start_time=event_start_time,
event_end_time=event_end_time))

self.write(dict(code=0, msg='添加成功'))

def delete(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
event_id = data.get('id')
if not event_id:
return self.write(dict(code=-2, msg='关键参数不能为空'))

with DBContext('w', None, True) as session:
session.query(EventRecord).filter(EventRecord.id == event_id).delete(synchronize_session=False)

self.write(dict(code=0, msg='删除成功'))

def put(self, *args, **kwargs):
data = json.loads(self.request.body.decode("utf-8"))
event_name = data.get('event_name', None)
event_status = data.get('event_status', None)
event_level = data.get('event_level', None)
event_processing = data.get('event_processing', None)
event_start_time = data.get('event_start_time', None)
event_end_time = data.get('event_end_time', None)

if not event_name or not event_status or not event_level or not event_processing or not event_start_time or not event_end_time:
return self.write(dict(code=-2, msg='关键参数不能为空'))

update_info = {
"event_status": event_status,
"event_level": event_level,
"event_processing": event_processing,
"event_start_time": event_start_time,
"event_end_time": event_end_time,
}

if re.search('000Z', event_start_time):
event_start_time = datetime.datetime.strptime(event_start_time,
"%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(hours=8)
update_info['event_start_time'] = event_start_time

if re.search('000Z', event_end_time):
event_end_time = datetime.datetime.strptime(event_end_time, "%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(
hours=8)
update_info['event_end_time'] = event_end_time

with DBContext('w', None, True) as session:
session.query(EventRecord).filter(EventRecord.event_name == event_name).update(update_info)
self.write(dict(code=0, msg='更新成功'))


event_urls = [
(r"/v1/tools/event/", EventRecordHandler),
(r"/are_you_ok/", LivenessProbe),
]
Loading