增加手动同步客户端方法

main
RogerWork 4 days ago
parent 8ca2fa4394
commit 7c63c76d4a
  1. 1
      update/urls.py
  2. 1
      update/utils/client_util_custom.py
  3. 18
      update/views.py

@ -30,6 +30,7 @@ urlpatterns = [
path('', include(router.urls)),
path('update_user/', update_user),
path('get_git_version/', get_git_version),
path('get_client/', get_client),
path('get_operation_cmd/', get_operation_cmd),
path('update_cine/', update_cine),
# re_path(r'^cinema/search/ip/(?P<ip>[0-9.]*?)/version/(?P<version>[\S]*?)/$', views.CinemaSearchAPIView.as_view())

@ -59,6 +59,7 @@ class ClientUtilCustom:
self.smb_disconnect()
# 关闭数据库
db_conn.close()
return self.client_data
def handle_client_data_format(self, client_data_list):

@ -74,10 +74,12 @@ class UpdateAlterViewSet(CacheResponseMixin, viewsets.ModelViewSet):
queryset = UpdateAlter.objects.all()
serializer_class = UpdateAlterSerializer
class ClientReleaseViewSet(CacheResponseMixin, viewsets.ModelViewSet):
queryset = ClientRelease.objects.filter(is_cached=True).order_by('-id').all()
serializer_class = ClientReleaseSerializer
# class CinemaSearchAPIView(APIView, CacheResponseMixin):
# @method_decorator(cache_page(60 * 5))
# def get(self, request, *args, **kwargs):
@ -111,11 +113,15 @@ def get_git_version(request):
return JsonResponse(serializer.data, safe=False)
def get_client(request):
client_data = ClientUtilCustom().sync_client_db()
return JsonResponse(client_data, safe=False)
def update_cine(request):
req = request.GET.dict()
cinema_ip = req.get('ip')
client_ver = req.get('client_ver')
print('-'*100)
print('-' * 100)
print(f'开始更新 {cinema_ip}')
# 获取当前版本
@ -131,7 +137,7 @@ def update_cine(request):
cmd_dict[cmd['process']].append(cmd['id'])
else:
cmd_dict[cmd['process']] = [cmd['id']]
print("cmd_dict",cmd_dict)
print("cmd_dict", cmd_dict)
# 增加状态
update_status = {
@ -177,7 +183,7 @@ def update_cine(request):
redis_conn.set(redis_key, json.dumps(update_status), 5 * 60)
# 获取并写入cine.sql
print('-'*20, '步骤一:获取并写入cine.sql', '-'*20)
print('-' * 20, '步骤一:获取并写入cine.sql', '-' * 20)
try:
update_status['git']['result'] = 'running'
redis_conn.set(redis_key, json.dumps(update_status), 5 * 60)
@ -200,7 +206,7 @@ def update_cine(request):
return JsonResponse({'result': 'fail', 'ip': cinema_ip, 'msg': str(e)})
# 执行setup
print('-'*20, '步骤二:执行setup', '-'*20)
print('-' * 20, '步骤二:执行setup', '-' * 20)
try:
update_status['setup']['result'] = 'running'
redis_conn.set(redis_key, json.dumps(update_status), 5 * 60)
@ -229,7 +235,7 @@ def update_cine(request):
# 数据库对比
sql_list = list(set(cmd_list) & set(cmd_dict['sql']))
if len(sql_list) > 0:
print('-'*20, '步骤三:数据库对比', '-'*20)
print('-' * 20, '步骤三:数据库对比', '-' * 20)
try:
update_status['sql']['result'] = 'running'
redis_conn.set(redis_key, json.dumps(update_status), 5 * 60)
@ -263,7 +269,7 @@ def update_cine(request):
return JsonResponse({'result': 'fail', 'ip': cinema_ip, 'msg': str(e)})
# 修改设置
print('-'*20, '第四步:执行config(teardown前)', '-'*20)
print('-' * 20, '第四步:执行config(teardown前)', '-' * 20)
try:
update_status['config']['result'] = 'running'
redis_conn.set(redis_key, json.dumps(update_status), 5 * 60)

Loading…
Cancel
Save