Skip to content

Commit 17133f4

Browse files
authored
Merge pull request #80 from ImMin5/feature-console-api-v2-swagger
Add override openapi step when start fastapi application
2 parents 36d6258 + fbf5e2b commit 17133f4

File tree

7 files changed

+37
-38
lines changed

7 files changed

+37
-38
lines changed

src/spaceone/core/command.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,6 @@ def test(config_file=None, dir=None, failfast=False, scenario: str = None, param
107107
RichTestRunner(verbosity=verbose, failfast=failfast).run(full_suite)
108108

109109

110-
def _set_file_config(conf_file):
111-
if conf_file:
112-
config.set_file_conf(conf_file)
113-
114-
115110
def _set_python_path(package, module_path):
116111
current_path = os.getcwd()
117112

@@ -147,7 +142,8 @@ def _set_server_config(package, module_path=None, port=None, config_file=None):
147142
config.set_service_config()
148143

149144
# 4. Merge file conf
150-
_set_file_config(config_file)
145+
if config_file:
146+
config.set_file_conf(config_file)
151147

152148

153149
def init_project_file(path, text):

src/spaceone/core/config/__init__.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@ def get_service():
3737
return _GLOBAL['SERVICE']
3838

3939

40-
def get_extension_apis():
41-
return _GLOBAL.get('EXTENSION_APIS', {})
42-
43-
4440
def get_handler(name):
4541
return _GLOBAL.get('HANDLERS', {}).get(name, {})
4642

src/spaceone/core/config/default_conf.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
# Service Description
2-
TITLE = ''
3-
DESCRIPTION = ''
4-
CONTACT = {
5-
}
6-
71
# Service Configuration
82
PACKAGE = None
93
SERVICE = None
@@ -18,31 +12,36 @@
1812
# Unit Test Configuration
1913
MOCK_MODE = False
2014

15+
# gRPC Configuration
2116
# gRPC Extension APIs
22-
EXTENSION_APIS = {
17+
GRPC_EXTENSION_APIS = {
2318
'spaceone.core.extension.grpc_health': ['GRPCHealth'],
2419
'spaceone.core.extension.server_info': ['ServerInfo']
2520
}
2621

27-
# Uvicorn Options for Rest Server
28-
UVICORN_OPTIONS = {
29-
'factory': True
30-
}
22+
# REST Configuration
23+
# REST Application Options
24+
REST_TITLE = ''
25+
REST_DESCRIPTION = ''
26+
REST_CONTACT = {}
3127

32-
# Rest Middlewares
28+
# REST Middlewares
3329
REST_MIDDLEWARES = []
3430

31+
# REST Extension Routers
3532
REST_EXTENSION_ROUTERS = [
3633
{
3734
'router_path': 'spaceone.core.fastapi.extension.health:router',
3835
'router_options': {}
39-
},
40-
{
41-
'router_path': 'spaceone.core.fastapi.extension.reflection:router',
42-
'router_options': {}
4336
}
4437
]
4538

39+
# REST Uvicorn Options
40+
UVICORN_OPTIONS = {
41+
'factory': True
42+
}
43+
44+
4645
# Handler Configuration
4746
HANDLERS = {
4847
'authentication': [],

src/spaceone/core/connector/space_connector.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,15 @@ def dispatch(self, method: str, params: dict = None, **kwargs):
3939
return self._call_api(method, params, **kwargs)
4040

4141
def _call_api(self, method: str, params: dict = None, **kwargs):
42+
token = kwargs.get('token')
43+
4244
self._check_mock_mode(method)
4345

4446
resource, verb = self._parse_method(method)
4547
self._check_method(resource, verb)
4648

4749
params = params or {}
48-
kwargs['metadata'] = self._get_connection_metadata()
50+
kwargs['metadata'] = self._get_connection_metadata(token)
4951

5052
response_or_iterator = getattr(getattr(self._client, resource), verb)(params, **kwargs)
5153

@@ -89,11 +91,13 @@ def _generate_response(self, response_iterator):
8991
for response in response_iterator:
9092
yield self._change_message(response)
9193

92-
def _get_connection_metadata(self):
94+
def _get_connection_metadata(self, token=None):
9395
metadata = []
94-
if self._token:
95-
metadata.append(('token', self._token))
9696

97+
if token:
98+
metadata.append(('token', token))
99+
elif self._token:
100+
metadata.append(('token', self._token))
97101
elif token := self.transaction.meta.get('token'):
98102
metadata.append(('token', token))
99103

src/spaceone/core/fastapi/server.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import logging
2-
import uvicorn
32

4-
from fastapi import FastAPI, Request
3+
import uvicorn
4+
from fastapi import FastAPI
55
from fastapi.middleware.cors import CORSMiddleware
66

7-
from spaceone.core import config
7+
from spaceone.core import config, utils
88
from spaceone.core.logger import set_logger
99
from spaceone.core.opentelemetry import set_tracer, set_metric
1010
from spaceone.core.extension.server_info import ServerInfoManager
@@ -123,10 +123,10 @@ def _init_fast_api():
123123
server_info = ServerInfoManager()
124124

125125
return FastAPI(
126-
title=global_conf.get('TITLE', 'Document'),
126+
title=global_conf.get('REST_TITLE', 'Document'),
127127
version=server_info.get_version(),
128-
contact=global_conf.get('CONTACT', {}),
129-
description=global_conf.get('DESCRIPTION', ''),
128+
contact=global_conf.get('REST_CONTACT', {}),
129+
description=global_conf.get('REST_DESCRIPTION', ''),
130130
)
131131

132132

src/spaceone/core/pygrpc/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def _init_services(server):
5151
server, service_names = _add_services(server, service_names, proto_conf)
5252

5353
# Set Extension Services
54-
proto_conf = config.get_extension_apis()
54+
proto_conf = config.get_global('GRPC_EXTENSION_APIS', {})
5555
server, service_names = _add_services(server, service_names, proto_conf)
5656

5757
return server, service_names

src/spaceone/core/utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
1+
import os
12
import re
23
import time
34
import random
45
import string
56
import secrets
7+
import sys
68
import datetime
7-
from urllib.parse import urlparse
89
import yaml
910
import json
1011
import hashlib
1112
import urllib
13+
import pkg_resources
14+
15+
from urllib.parse import urlparse
1216
from dateutil.parser import isoparse
1317
from typing import Tuple
1418
from pathlib import Path

0 commit comments

Comments
 (0)