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

feat: support config oss #1479

Merged
merged 4 commits into from
Jul 26, 2024
Merged
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
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
Loading