Skip to content

Commit

Permalink
feat: support config oss (#1479)
Browse files Browse the repository at this point in the history
* feat: support config oss

Signed-off-by: 逆流而上 <[email protected]>

* feat: support config oss

Signed-off-by: 逆流而上 <[email protected]>

* feat: support config oss

Signed-off-by: 逆流而上 <[email protected]>

* feat: support config oss

Signed-off-by: 逆流而上 <[email protected]>

---------

Signed-off-by: 逆流而上 <[email protected]>
  • Loading branch information
DokiDoki1103 authored Jul 26, 2024
1 parent 4daa0c0 commit 46deee8
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 78 deletions.
8 changes: 7 additions & 1 deletion console/services/file_upload_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
"""
Created on 18/3/13.
"""
import json
import logging
import os

import oss2
from django.conf import settings

from console.models.main import ConsoleSysConfig
from goodrain_web.custom_config import custom_config as custom_settings
from www.utils.crypt import make_uuid

Expand Down Expand Up @@ -53,7 +55,11 @@ def get_bucket(self):
return bucket

def is_upload_to_oss(self):
return settings.MODULES.get('SSO_LOGIN')
oss_config = ConsoleSysConfig.objects.filter(key='OSS_CONFIG').first()
if oss_config:
data = json.loads(oss_config.value)
return len(data) == 4
return False

def upload_file_to_local(self, upload_file, suffix):
try:
Expand Down
3 changes: 2 additions & 1 deletion console/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
from console.views.jwt_token_view import JWTTokenView
from console.views.k8s_attribute import ComponentK8sAttributeView, ComponentK8sAttributeListView
from console.views.k8s_resource import AppK8sResourceListView, AppK8ResourceView
from console.views.logos import ConfigRUDView, InitPerms, PhpConfigView
from console.views.logos import ConfigRUDView, InitPerms, PhpConfigView, ConfigOSSView
from console.views.message import UserMessageView
from console.views.oauth import (EnterpriseOauthService, OauthConfig, OAuthGitCodeDetection, OAuthGitUserRepositories,
OAuthGitUserRepository, OAuthGitUserRepositoryBranches, OAuthServerAuthorize,
Expand Down Expand Up @@ -164,6 +164,7 @@
url(r'^errlog$', ErrLogView.as_view()),
# 获取云帮Logo、标题、github、gitlab配置信息
url(r'^config/info$', ConfigRUDView.as_view()),
url(r'^config/oss$', ConfigOSSView.as_view()),
url(r'^init/perms$', InitPerms.as_view()),
# 获取权限列表
url(r'^perms$', PermsInfoLView.as_view()),
Expand Down
189 changes: 113 additions & 76 deletions console/views/logos.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,62 @@
# -*- coding: utf8 -*-
import json
import logging
import os
from datetime import datetime

from django.db import transaction
from rest_framework.response import Response

from console.exception.main import ServiceHandleException
from console.models.main import ConsoleSysConfig
from console.repositories.perm_repo import perms_repo
from console.repositories.team_repo import team_repo
from console.services.config_service import platform_config_service
from console.services.perm_services import role_kind_services
from console.services.perm_services import user_kind_role_service
from console.views.base import AlowAnyApiView
from console.views.base import BaseApiView
from console.views.jwt_token_view import JWTTokenView
from www.models.main import Tenants
from www.utils.return_message import error_message
from www.utils.return_message import general_message

logger = logging.getLogger("default")


class ConfigOSSView(JWTTokenView):

def get(self, request, *args, **kwargs):
oss_config = ConsoleSysConfig.objects.filter(key='OSS_CONFIG').first()
if oss_config:
data = json.loads(oss_config.value)
return Response(data=data, status=200)
return Response(data={}, status=200)

def put(self, request, *args, **kwargs):
oss_config = ConsoleSysConfig.objects.filter(key='OSS_CONFIG').first()

# 如果已存在,则更新;如果不存在,则创建
if oss_config:
oss_config.value = json.dumps(request.data)
oss_config.desc = 'OSS 配置'
oss_config.create_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
oss_config.save()
data = {'message': '配置更新成功'}
else:
new_config = ConsoleSysConfig.objects.create(
key='OSS_CONFIG',
type='json',
value=json.dumps(request.data),
desc='OSS 配置',
create_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
enterprise_id=""
)
data = {'message': '配置创建成功', 'config_id': new_config.ID}

return Response(data=data, status=200)


class ConfigRUDView(AlowAnyApiView):
"""
获取配置信息
Expand Down Expand Up @@ -148,82 +185,82 @@ def get(self, request, *args, **kwargs):
"url": "http://docs.php.net/mbstring",
"version": "1.3.2"
},
{
"name": "MySQL(PHP 5.5 版本已经停止支持,请使用 MySQLi 或 PDO)",
"value": "mysql",
"url": "http://docs.php.net/book.mysql",
"version": "mysqlnd 5.0.11-dev"
}, {
"name": "PCNTL",
"value": "pcntl",
"url": "http://docs.php.net/pcntl",
"version": None
}, {
"name": "Shmop",
"value": "shmop",
"url": "http://docs.php.net/shmop",
"version": None
}, {
"name": "SOAP",
"value": "soap",
"url": "http://docs.php.net/soap",
"version": None
}, {
"name": "SQLite3",
"value": "sqlite3",
"url": "http://docs.php.net/sqlite3",
"version": "0.7-dev"
}, {
"name": "SQLite(PDO)",
"value": "pdo_sqlite",
"url": "http://docs.php.net/pdo_sqlite",
"version": "3.8.2"
}, {
"name": "XMLRPC",
"value": "xmlrpc",
"url": "http://docs.php.net/xmlrpc",
"version": "0.51"
}, {
"name": "XSL",
"value": "xsl",
"url": "http://docs.php.net/xsl",
"version": "1.1.28"
}, {
"name": "APCu",
"value": "apcu",
"url": "http://pecl.php.net/package/apcu",
"version": "4.0.6"
}, {
"name": "Blackfire",
"value": "blackfire",
"url": "http://blackfire.io/",
"version": "0.20.6"
}, {
"name": "memcached",
"value": "memcached",
"url": "http://docs.php.net/memcached",
"version": "2.2.0"
}, {
"name": "MongoDB",
"value": "mongodb",
"url": "http://docs.php.net/mongo",
"version": "1.6.6"
}, {
"name": "NewRelic",
"value": "newrelic",
"url": "http://newrelic.com/php",
"version": "4.19.0.90"
}, {
"name": "OAuth",
"value": "oauth",
"url": "http://docs.php.net/oauth",
"version": "1.2.3"
}, {
"name": "PHPRedis",
"value": "redis",
"url": "http://pecl.php.net/package/redis",
"version": "2.2.7"
}]
{
"name": "MySQL(PHP 5.5 版本已经停止支持,请使用 MySQLi 或 PDO)",
"value": "mysql",
"url": "http://docs.php.net/book.mysql",
"version": "mysqlnd 5.0.11-dev"
}, {
"name": "PCNTL",
"value": "pcntl",
"url": "http://docs.php.net/pcntl",
"version": None
}, {
"name": "Shmop",
"value": "shmop",
"url": "http://docs.php.net/shmop",
"version": None
}, {
"name": "SOAP",
"value": "soap",
"url": "http://docs.php.net/soap",
"version": None
}, {
"name": "SQLite3",
"value": "sqlite3",
"url": "http://docs.php.net/sqlite3",
"version": "0.7-dev"
}, {
"name": "SQLite(PDO)",
"value": "pdo_sqlite",
"url": "http://docs.php.net/pdo_sqlite",
"version": "3.8.2"
}, {
"name": "XMLRPC",
"value": "xmlrpc",
"url": "http://docs.php.net/xmlrpc",
"version": "0.51"
}, {
"name": "XSL",
"value": "xsl",
"url": "http://docs.php.net/xsl",
"version": "1.1.28"
}, {
"name": "APCu",
"value": "apcu",
"url": "http://pecl.php.net/package/apcu",
"version": "4.0.6"
}, {
"name": "Blackfire",
"value": "blackfire",
"url": "http://blackfire.io/",
"version": "0.20.6"
}, {
"name": "memcached",
"value": "memcached",
"url": "http://docs.php.net/memcached",
"version": "2.2.0"
}, {
"name": "MongoDB",
"value": "mongodb",
"url": "http://docs.php.net/mongo",
"version": "1.6.6"
}, {
"name": "NewRelic",
"value": "newrelic",
"url": "http://newrelic.com/php",
"version": "4.19.0.90"
}, {
"name": "OAuth",
"value": "oauth",
"url": "http://docs.php.net/oauth",
"version": "1.2.3"
}, {
"name": "PHPRedis",
"value": "redis",
"url": "http://pecl.php.net/package/redis",
"version": "2.2.7"
}]
bean = {"versions": versions, "default_version": default_version, "extends": extends}
return Response(general_message(200, "success", "查询成功", bean))

Expand Down

0 comments on commit 46deee8

Please sign in to comment.