Compare commits

..

53 Commits

Author SHA1 Message Date
Ose-Exem
26f793de59 Update version.json
dsk-chart-api
product: release-0.2.9
2023-08-17 07:47:43 +00:00
dsk-minchulahn
c105249df6 Update README.md 2023-08-17 07:44:08 +00:00
Dev2Back-오승은
6dfec1cccd Update version.json
release 
dsk-chart-api
2023-08-17 16:40:09 +09:00
dsk-minchulahn
cad101ac40 Update README.md 2023-08-17 07:37:55 +00:00
Dev2Back-오승은
2a787369c1 Update version.json
dsk-chart-api
2023-08-17 16:33:30 +09:00
Ose-Exem
24928daf28 Update version.json
dsk-chart-api
candidate: release-0.2.8
2023-08-17 07:32:57 +00:00
Ose-Exem
5d7d3746ef Update version.json
dsk-chart-api
candidate: release-0.2.9
2023-08-17 07:21:16 +00:00
dsk-minchulahn
392f2ab4a0 Update the latest candidate version of dsk-chart-api to release-0.2.9 2023-08-17 07:13:52 +00:00
Ose-Exem
144485ddb7 Dashboard - tag 최신순으로 정렬 2023-08-17 16:01:06 +09:00
Ose-Exem
ee6352148e Merge branch 'main' of github.com:CloudMOA/dsk-version-management into main 2023-08-17 15:24:25 +09:00
Ose-Exem
b9d07eba82 Dashboard - git config 설정 2023-08-17 15:24:17 +09:00
dsk-minchulahn
cb6c3578f6 Dashboard - logger 수정 2023-08-17 14:47:08 +09:00
dsk-minchulahn
e57590d5f9 Update the latest candidate version of dsk-alert-api to release-0.1.18 2023-08-17 03:23:51 +00:00
dsk-minchulahn
b0a5fc93c4 Update README.md 2023-08-17 01:33:18 +00:00
dsk-minchulahn
58cf477006 Update to DataSaker version dsk-23.03.14 2023-08-17 01:28:49 +00:00
Ose-Exem
91313e312b Update version.json
dsk-agent-api
product: release-0.1.15

dsk-database-api
product: release-0.1.26
2023-08-17 01:23:57 +00:00
dsk-minchulahn
bf76bea1f0 Merge branch 'main' of github.com:CloudMOA/dsk-version-management into main 2023-08-17 09:57:03 +09:00
dsk-minchulahn
7e8bcabfab Dashboard - tab명 변경 2023-08-17 09:56:55 +09:00
dsk-minchulahn
2658a24aaf Update README.md 2023-08-17 00:31:12 +00:00
Dev2Back-오승은
d6c28c7211 Update version.json
release
database-api, agent-api, app-sender
2023-08-17 09:25:41 +09:00
dsk-minchulahn
b50d46400e Merge branch 'main' of github.com:CloudMOA/dsk-version-management into main 2023-08-16 19:10:56 +09:00
dsk-minchulahn
e260f3b2a9 Dashboard - snow 옵션 제거 2023-08-16 19:10:48 +09:00
dsk-minchulahn
004273c8c7 Update README.md 2023-08-16 09:49:01 +00:00
Dev2Back-오승은
9157709a4a Update version.json
candidate app-sender
2023-08-16 18:44:43 +09:00
dsk-minchulahn
f1e6d17f9e Update README.md 2023-08-16 09:43:32 +00:00
dsk-minchulahn
49a11eb68d Update the latest candidate version of dsk-app-sender to release-0.2.1 2023-08-16 09:41:21 +00:00
Dev2Back-오승은
f4796ace99 Update version.json
candidate dsk-agent-api
2023-08-16 18:39:13 +09:00
dsk-minchulahn
b82dc439d0 Update the latest candidate version of dsk-agent-api to release-0.1.15 2023-08-16 09:37:20 +00:00
dsk-minchulahn
0b02d25e3c Merge branch 'main' of github.com:CloudMOA/dsk-version-management into main 2023-08-16 18:33:51 +09:00
dsk-minchulahn
d2a829c141 Update README.md 2023-08-16 09:33:13 +00:00
dsk-minchulahn
85bacb2d6b Dashboard - git config 설정 2023-08-16 18:32:45 +09:00
dsk-minchulahn
d173a9ee2b Merge branch 'main' of github.com:CloudMOA/dsk-version-management into main 2023-08-16 18:30:24 +09:00
Dev2Back-오승은
0b51ff896d Update version.json 2023-08-16 18:29:26 +09:00
dsk-minchulahn
0bcb19e466 Update the latest candidate version of dsk-database-api to release-0.1.26 2023-08-16 09:24:49 +00:00
dsk-minchulahn
53bcc8581a Merge branch 'main' of github.com:CloudMOA/dsk-version-management into main 2023-08-16 18:03:08 +09:00
dsk-minchulahn
eaab76c411 Update README.md 2023-08-16 08:22:10 +00:00
Dev2Back-오승은
9d113bb375 Update version.json
database-api candidate
2023-08-16 17:18:04 +09:00
dsk-minchulahn
8fb6dc7a7c Update the latest candidate version of dsk-database-api to release-0.1.25 2023-08-16 08:12:13 +00:00
dsk-minchulahn
bd03a6c8fe Merge branch 'main' of github.com:CloudMOA/dsk-version-management into main 2023-08-16 17:10:56 +09:00
dsk-minchulahn
e0f146b937 Dashboard - api url 변경 2023-08-16 17:10:44 +09:00
dsk-minchulahn
0ab399946d Update the latest candidate version of dsk-database-api to release-0.1.24 2023-08-16 07:44:29 +00:00
Dev2Back-오승은
ae30f7c317 Update version.json 2023-08-16 16:33:02 +09:00
dsk-minchulahn
b74ec8f463 Update the latest candidate version of dsk-database-api to release0.1.24 2023-08-16 07:29:44 +00:00
dsk-minchulahn
47c2eb2f17 Merge branch 'main' of github.com:CloudMOA/dsk-version-management into main 2023-08-16 15:55:23 +09:00
dsk-minchulahn
23d373a903 Add git config 2023-08-16 15:55:17 +09:00
dsk-minchulahn
90022851c1 Update README.md 2023-08-16 06:47:02 +00:00
Dev2Back-오승은
7e1636868c Update version.json 2023-08-16 15:42:59 +09:00
dsk-minchulahn
8608743c7f Update README.md 2023-08-16 06:33:41 +00:00
Dev2Back-오승은
f6768361f0 Update version.json 2023-08-16 15:29:10 +09:00
dsk-minchulahn
275cf81d7a Update the latest candidate version of dsk-database-api to release-0.1.23 2023-08-16 06:23:18 +00:00
dsk-minchulahn
79f66bcf3b Add dashboard logging 2023-08-16 14:00:44 +09:00
dsk-minchulahn
72287e3a71 Update README.md 2023-08-14 05:51:10 +00:00
dsk-minchulahn
10e2275519 Update to DataSaker version dsk-23.03.13 2023-08-14 05:47:00 +00:00
7 changed files with 119 additions and 51 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
__pycache__
dashboard/version-management.log

View File

@@ -1,22 +1,22 @@
# DataSaker
### dsk-23.03.12
### dsk-23.03.14
# Service Version
| Type | Name | Candidate Version | Release Version | Product Version |
|:--------:|:------------------------------|:-------------------:|:-----------------:|:-----------------:|
| front | dsk-ui | release-0.2.22 | release-0.2.22 | release-0.2.22 |
| api | dsk-agent-api | release-0.1.14 | release-0.1.14 | release-0.1.14 |
| api | dsk-agent-api | release-0.1.15 | release-0.1.15 | release-0.1.15 |
| api | dsk-agentmanager-api | release-0.1.6 | release-0.1.6 | release-0.1.6 |
| api | dsk-alert-api | release-0.1.17 | release-0.1.17 | release-0.1.17 |
| api | dsk-apm-api | release-0.1.15 | release-0.1.15 | release-0.1.15 |
| api | dsk-chart-api | release-0.2.8 | release-0.2.8 | release-0.2.8 |
| api | dsk-chart-api | release-0.2.9 | release-0.2.9 | release-0.2.8 |
| api | dsk-dashboard-api | release-0.1.16 | release-0.1.16 | release-0.1.16 |
| api | dsk-database-api | release-0.1.22 | release-0.1.22 | release-0.1.22 |
| api | dsk-database-api | release-0.1.26 | release-0.1.26 | release-0.1.26 |
| api | dsk-infrastructure-api | release-0.1.15 | release-0.1.15 | release-0.1.15 |
| api | dsk-log-api | release-0.1.12 | release-0.1.12 | release-0.1.12 |
| api | dsk-notification-api | release-0.2.6 | release-0.2.6 | release-0.2.6 |
| api | dsk-usergate-api | release-0.1.13 | release-0.1.13 | release-0.1.13 |
| api | dsk-app-sender | release-0.2.0 | release-0.2.0 | release-0.2.0 |
| api | dsk-app-sender | release-0.2.1 | release-0.2.1 | release-0.2.0 |
| api | dsk-backoffice | | | |
| api | dsk-metering-batch | | release-0.0.3 | |
| api | dsk-metering-blocking-batch | | | |

28
dashboard/logger.py Normal file
View File

@@ -0,0 +1,28 @@
import os, 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 setup_logger():
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
log_file='dashboard/version-management.log'
formatter = logging.Formatter(f'%(asctime)s %(levelname)s : %(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()

View File

@@ -15,7 +15,7 @@ if __name__=='__main__':
layout='wide'
)
tab1, tab2 = st.tabs(["Deploy DataSaker", "Release Info"])
tab1, tab2 = st.tabs(["DataSaker", "Releases"])
with tab1:
st.header('DataSaker')
@@ -24,7 +24,6 @@ if __name__=='__main__':
col1, col2 = st.columns([7, 3])
with col1:
st.subheader('Service')
if st.button('Data Reload'):
git_pull()
streamlit_js_eval(js_expressions='parent.window.location.reload()')
@@ -41,7 +40,8 @@ if __name__=='__main__':
'candidate_version': st.column_config.TextColumn('Candidate Version', validate=regex),
'release_version': st.column_config.TextColumn('Release Version', validate=regex),
'product_version': st.column_config.TextColumn('Product Version', validate=regex)
}
},
height=800
)
with col2:
st.text('Edited Rows')

View File

@@ -1,10 +1,10 @@
import json, requests, os
import os, json, requests, subprocess
from git import Repo
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/dsk-version-management/releases'
github_token = os.environ.get('GITHUB_TOKEN')
def get_datasaker():
return json.load(open(file_path, 'r'))['datasaker']
@@ -16,15 +16,29 @@ def get_commit_id():
return repo.head.commit
def get_tags():
return repo.tags
latest_tags = sorted(repo.tags, key=lambda t: t.commit.committed_date, reverse=True)
return latest_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
def get_user_name_list():
users = ['', 'dsk-minchulahn', 'Ose-Exem', 'deukjin', 'pparkssi3']
return users
def get_user_email(username):
if username == 'dsk-minchulahn': return 'minchulahn@ex-em.com'
elif username == 'Ose-Exem': return 'ose@ex-em.com'
elif username == 'deukjin': return 'djkim@ex-em.com'
elif username == 'pparkssi3': return 'pparkssi@ex-em.com'
else: return ''
def set_git_config(username, email):
subprocess.run(["git", "config", "--global", "user.name", username], check=True)
subprocess.run(["git", "config", "--global", "user.email", email], check=True)
def diff():
if len(repo.index.diff(repo.head.commit)) > 0:
return True
@@ -51,8 +65,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,

View File

@@ -2,6 +2,12 @@ import json, time
import streamlit as st
from streamlit_js_eval import streamlit_js_eval
from settings import *
from logger import logger
if 'push_button_disabled' not in st.session_state:
st.session_state.push_button_disabled = True
if 'release_button_disabled' not in st.session_state:
st.session_state.release_button_disabled = True
def set_extended_description(edited_df):
json_edited_df = json.loads(edited_df.to_json(orient='records'))
@@ -29,21 +35,34 @@ def show_sidebar(df, edited_df):
with st.sidebar:
st.subheader('Git Push')
with st.expander('Git Push'):
selected_user_name = st.selectbox('User Name', get_user_name_list(), key='git_user_name')
if selected_user_name:
set_git_config(selected_user_name, get_user_email(selected_user_name))
commit_message = st.text_input('Commit Message', value='Update version.json')
extended_description = st.text_area('Extended description', value=set_extended_description(edited_df), height=200)
if st.button(key='push', label='Commit changes'):
if commit_message:
if selected_user_name and commit_message:
st.session_state.push_button_disabled = False
else:
st.session_state.push_button_disabled = True
if st.button(key='push', label='Commit changes', disabled=st.session_state.push_button_disabled):
if selected_user_name and commit_message:
if diff_remote_head():
if df.equals(edited_df):
logger.warning(f'Git Push - No changes have been made | {selected_user_name}')
st.warning('No changes have been made', icon='⚠️')
else:
set_version_json(edited_df)
git_push(commit_message, extended_description)
logger.info(f'Git Push - Success | {selected_user_name}')
st.success('Success', icon='')
time.sleep(1)
streamlit_js_eval(js_expressions='parent.window.location.reload()')
else:
logger.error(f'Git Push - Updates were rejected because the tip of your current branch is behind | {selected_user_name}')
st.error('Updates were rejected because the tip of your current branch is behind', icon='🚨')
st.divider()
@@ -51,7 +70,7 @@ def show_sidebar(df, edited_df):
st.subheader('Draft a new release')
with st.expander('Draft a new release'):
tags = [tag.name for tag in get_tags()]
tags.insert(0, "")
tags.insert(0, '')
new_tag = st.text_input('Create a new tag')
if new_tag:
@@ -64,15 +83,23 @@ def show_sidebar(df, edited_df):
release_title = st.text_input('Release title', value=selected_tag)
release_describe = st.text_area('Describe this release', value='## Production에 변경된 Version')
if st.button(key='release', label='Publish release'):
response = publish_release(selected_tag, release_title, release_describe)
if selected_tag and release_title and release_describe:
st.session_state.release_button_disabled = False
else:
st.session_state.release_button_disabled = True
if response.status_code == 201:
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='🚨')
if st.button(key='release', label='Publish release', disabled=st.session_state.release_button_disabled):
if selected_tag and release_title and release_describe:
response = publish_release(selected_tag, release_title, release_describe)
if response.status_code == 201:
logger.info(f'Publish Release - Release created successfully')
st.success('Release created successfully', icon='')
git_pull()
streamlit_js_eval(js_expressions='parent.window.location.reload()')
else:
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()

View File

@@ -1,5 +1,5 @@
{
"datasaker": "dsk-23.03.12",
"datasaker": "dsk-23.03.14",
"service": [
{
"type": "front",
@@ -12,10 +12,10 @@
{
"type": "api",
"name": "dsk-agent-api",
"latest_candidate_version": "release-0.1.14",
"candidate_version": "release-0.1.14",
"release_version": "release-0.1.14",
"product_version": "release-0.1.14"
"latest_candidate_version": "release-0.1.15",
"candidate_version": "release-0.1.15",
"release_version": "release-0.1.15",
"product_version": "release-0.1.15"
},
{
"type": "api",
@@ -28,7 +28,7 @@
{
"type": "api",
"name": "dsk-alert-api",
"latest_candidate_version": "release-0.1.17",
"latest_candidate_version": "release-0.1.18",
"candidate_version": "release-0.1.17",
"release_version": "release-0.1.17",
"product_version": "release-0.1.17"
@@ -44,10 +44,10 @@
{
"type": "api",
"name": "dsk-chart-api",
"latest_candidate_version": "release-0.2.8",
"candidate_version": "release-0.2.8",
"release_version": "release-0.2.8",
"product_version": "release-0.2.8"
"latest_candidate_version": "release-0.2.9",
"candidate_version": "release-0.2.9",
"release_version": "release-0.2.9",
"product_version": "release-0.2.9"
},
{
"type": "api",
@@ -60,10 +60,10 @@
{
"type": "api",
"name": "dsk-database-api",
"latest_candidate_version": "release-0.1.22",
"candidate_version": "release-0.1.22",
"release_version": "release-0.1.22",
"product_version": "release-0.1.22"
"latest_candidate_version": "release-0.1.26",
"candidate_version": "release-0.1.26",
"release_version": "release-0.1.26",
"product_version": "release-0.1.26"
},
{
"type": "api",
@@ -100,9 +100,9 @@
{
"type": "api",
"name": "dsk-app-sender",
"latest_candidate_version": "release-0.2.0",
"candidate_version": "release-0.2.0",
"release_version": "release-0.2.0",
"latest_candidate_version": "release-0.2.1",
"candidate_version": "release-0.2.1",
"release_version": "release-0.2.1",
"product_version": "release-0.2.0"
},
{