diff --git a/dashboard/logger.py b/dashboard/logger.py new file mode 100644 index 0000000..568062d --- /dev/null +++ b/dashboard/logger.py @@ -0,0 +1,33 @@ +import os, socket, logging + +host = os.environ.get('VERSION_MANAGEMENT_SERVICE_HOST', default='10.10.43.240') +service = os.environ.get('VERSION_MANAGEMENT_SERVICE_PORT', default=31090) + +class PrintHandler(logging.Handler): + def emit(self, record): + msg = self.format(record) + print(msg) + +def get_sock_name(): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.connect((host, service)) + return sock.getsockname()[0] + +def setup_logger(): + logger = logging.getLogger(__name__) + logger.setLevel(logging.INFO) + log_file='dashboard/version-management.log' + formatter = logging.Formatter(f'%(asctime)s %(levelname)s {get_sock_name()} : %(message)s') + + file_handler = logging.FileHandler(log_file) + file_handler.setFormatter(formatter) + + print_handler = PrintHandler() + print_handler.setFormatter(formatter) + + logger.addHandler(file_handler) + logger.addHandler(print_handler) + + return logger + +logger = setup_logger() \ No newline at end of file diff --git a/dashboard/settings.py b/dashboard/settings.py index f9284c4..6cca01d 100644 --- a/dashboard/settings.py +++ b/dashboard/settings.py @@ -5,6 +5,8 @@ repo = Repo('.') file_path = './version.json' repo.config_writer().set_value('user', 'name', 'dsk-minchulahn').release() repo.config_writer().set_value('user', 'email', 'minchulahn@ex-em.com').release() +api_url = 'https://api.github.com/repos/cloudmoa/sample-app/releases' +github_token = os.environ.get('GITHUB_TOKEN') def get_datasaker(): return json.load(open(file_path, 'r'))['datasaker'] @@ -19,8 +21,6 @@ def get_tags(): return repo.tags def get_github_releases(): - api_url = 'https://api.github.com/repos/cloudmoa/dsk-version-management/releases' - github_token = os.environ.get('GITHUB_TOKEN') headers = {'Authorization': f'Bearer {github_token}', 'Accept': 'application/vnd.github.v3+json'} releases = requests.get(api_url, headers=headers).json() return releases @@ -51,8 +51,6 @@ def git_push(commit_message, extended_description): repo.git.push(force=False) def publish_release(selected_tag, release_title, release_describe): - api_url = 'https://api.github.com/repos/cloudmoa/sample-app/releases' - github_token = os.environ.get('GITHUB_TOKEN') headers = {'Authorization': f'Bearer {github_token}', 'Accept': 'application/vnd.github.v3+json'} release_data = { 'tag_name': selected_tag, diff --git a/dashboard/sidebar.py b/dashboard/sidebar.py index b439de6..6ddd350 100644 --- a/dashboard/sidebar.py +++ b/dashboard/sidebar.py @@ -2,6 +2,7 @@ import json, time import streamlit as st from streamlit_js_eval import streamlit_js_eval from settings import * +from logger import logger def set_extended_description(edited_df): json_edited_df = json.loads(edited_df.to_json(orient='records')) @@ -36,14 +37,17 @@ def show_sidebar(df, edited_df): if commit_message: if diff_remote_head(): if df.equals(edited_df): + logger.warning('Git Push - No changes have been made') st.warning('No changes have been made', icon='⚠️') else: set_version_json(edited_df) git_push(commit_message, extended_description) + logger.info('Git Push - Success') st.success('Success', icon='✅') time.sleep(1) streamlit_js_eval(js_expressions='parent.window.location.reload()') else: + logger.error('Git Push - Updates were rejected because the tip of your current branch is behind') st.error('Updates were rejected because the tip of your current branch is behind', icon='🚨') st.divider() @@ -68,11 +72,13 @@ def show_sidebar(df, edited_df): response = publish_release(selected_tag, release_title, release_describe) if response.status_code == 201: + logger.info('Publish Release - Release created successfully') st.success('Release created successfully', icon='✅') git_pull() streamlit_js_eval(js_expressions='parent.window.location.reload()') else: - st.error(f'Failed to create release. Status code: {response.status_code}', icon='🚨') - st.error(f'Response: {response.text}', icon='🚨') + logger.error(f'Publish Release - Failed to create release. Status code: {response.status_code}') + logger.error(f'Response: {response.text}') + st.error(f'Failed to create release. Status code: {response.status_code}\n\n Response: {response.text}', icon='🚨') st.divider() diff --git a/dashboard/version-management.log b/dashboard/version-management.log new file mode 100644 index 0000000..e69de29