From 2678609702f1818f15982432d4a0107e551ed53a Mon Sep 17 00:00:00 2001
From: mincheol-jeong <78635957+mincheol-jeong@users.noreply.github.com>
Date: Wed, 27 May 2026 13:12:48 +0900
Subject: [PATCH 1/2] =?UTF-8?q?=EB=B3=B4=EC=95=88=20=ED=8C=A8=EC=B9=98=20?=
=?UTF-8?q?=EC=8B=A4=ED=96=89=20=EC=A0=84,=20=EB=B0=A9=ED=99=94=EB=B2=BD?=
=?UTF-8?q?=EC=9D=B4=20=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94=20=EB=90=98?=
=?UTF-8?q?=EC=96=B4=20=EC=9E=88=EC=9D=84=20=EA=B2=BD=EC=9A=B0=20=ED=99=9C?=
=?UTF-8?q?=EC=84=B1=ED=99=94=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
shell/host/security_patch.sh | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/shell/host/security_patch.sh b/shell/host/security_patch.sh
index e027b3b..f1e2d5b 100755
--- a/shell/host/security_patch.sh
+++ b/shell/host/security_patch.sh
@@ -86,7 +86,7 @@ update_ssh_scan_port() {
#====================[ firewalld 서비스 보장 ]====================#
ensure_firewalld() {
- # firewall-cmd가 없으면 firewalld도 없다고 보고 스킵
+ # firewall-cmd가 없으면 firewalld도 없다고 보고 스킵합니다.
if ! command -v firewall-cmd >/dev/null 2>&1; then
return 0
fi
@@ -96,16 +96,24 @@ ensure_firewalld() {
return 0
fi
+ # inactive(dead), failed 상태이면 firewalld를 시작합니다.
if ! systemctl is-active --quiet firewalld 2>/dev/null; then
echo "[INFO] firewalld 서비스가 비활성화되어 있어 시작합니다."
+
if systemctl start firewalld 2>/dev/null; then
- echo "[INFO] firewalld 시작 완료"
+ if systemctl is-active --quiet firewalld 2>/dev/null; then
+ echo "[INFO] firewalld 시작 완료"
+ else
+ echo "[WARN] firewalld start 명령은 성공했지만 active 상태가 아닙니다. 계속 진행합니다."
+ return 0
+ fi
else
echo "[WARN] firewalld 시작 실패 또는 서비스 없음. 계속 진행합니다."
return 0
fi
fi
+ # 부팅 시 자동 시작 설정입니다.
if ! systemctl is-enabled --quiet firewalld 2>/dev/null; then
if systemctl enable firewalld >/dev/null 2>&1; then
echo "[INFO] firewalld enable 완료"
@@ -113,6 +121,19 @@ ensure_firewalld() {
echo "[WARN] firewalld enable 실패. 계속 진행합니다."
fi
fi
+
+ # 혹시 모를 상태 반영 문제를 방지하기 위해 마지막에 재시작합니다.
+ echo "[INFO] firewalld 서비스를 재시작합니다."
+
+ if systemctl restart firewalld 2>/dev/null; then
+ if systemctl is-active --quiet firewalld 2>/dev/null; then
+ echo "[INFO] firewalld 재시작 완료"
+ else
+ echo "[WARN] firewalld restart 명령은 성공했지만 active 상태가 아닙니다. 계속 진행합니다."
+ fi
+ else
+ echo "[WARN] firewalld 재시작 실패. 계속 진행합니다."
+ fi
}
ensure_firewalld
From 09d1a1c699ef1a195c510af3898b36f253e46b4c Mon Sep 17 00:00:00 2001
From: mincheol-jeong <78635957+mincheol-jeong@users.noreply.github.com>
Date: Fri, 29 May 2026 12:14:37 +0900
Subject: [PATCH 2/2] =?UTF-8?q?=EB=94=94=EC=8A=A4=ED=81=AC=20=ED=8C=A8?=
=?UTF-8?q?=EC=8A=A4=EC=8A=A4=EB=A3=A8=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?=
=?UTF-8?q?=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
python/vm/create_scvm_xml.py | 20 ++++++++++++++++++--
src/features/storage-vm-wizard.html | 4 ++++
src/features/storage-vm-wizard.js | 9 +++++++--
3 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/python/vm/create_scvm_xml.py b/python/vm/create_scvm_xml.py
index f0bcff9..b5e43dd 100644
--- a/python/vm/create_scvm_xml.py
+++ b/python/vm/create_scvm_xml.py
@@ -35,8 +35,8 @@ def createArgumentParser():
parser.add_argument('-c', '--cpu', metavar='[cpu cores]', type=int, help='input Value to cpu cores', required=True)
parser.add_argument('-m', '--memory', metavar='[memory gb]', type=int, help='input Value to memory GB', required=True)
- #--disk-type { raid_passthrough or lun_passthrough } | 1택, 선택, 필수
- parser.add_argument('-dt', '--disk-type', metavar='[raid_passthrough or lun_passthrough]', choices=['raid_passthrough', 'lun_passthrough'], type=str, help='storage center VM disk type choice', required=True)
+ #--disk-type { raid_passthrough or lun_passthrough or disk_passthrough } | 1택, 선택, 필수
+ parser.add_argument('-dt', '--disk-type', metavar='[raid_passthrough or lun_passthrough or disk_passthrough]', choices=['raid_passthrough', 'lun_passthrough', 'disk_passthrough'], type=str, help='storage center VM disk type choice', required=True)
#--raid-passthrough-list raid1 raid2 | 다중선택, 조건부 필수 (disk-type가 raid_passthrough 일 경우)
parser.add_argument('-rpl', '--raid-passthrough-list', metavar='[raid pci]', type=str, nargs='+', help='input Value to raid pic list')
@@ -44,6 +44,9 @@ def createArgumentParser():
#--lun-passthrough-list disk1 disk2 | 다중선택, 조건부 필수 (disk-type가 lun_passthrough 일 경우)
parser.add_argument('-lpl', '--lun-passthrough-list', metavar='[lum]', type=str, nargs='+', help='input Value to LUN list')
+ # --disk-passthrough-list disk1 disk2 | 다중선택, 조건부 필수 (disk-type가 disk_passthrough 일 경우)
+ parser.add_argument('-dpl', '--disk-passthrough-list', metavar='[disk]', type=str, nargs='+', help='input Value to disk list')
+
#--management-network-bridge br0 | 1택, 필수
parser.add_argument('-mnb', '--management-network-bridge', metavar='[bridge name]', type=str, help='input Value to bridge name of the management network', required=True)
@@ -163,6 +166,19 @@ def createScvmXml(args):
num += 1
line = line.replace('', lpl_txt)
+ elif 'disk_passthrough' == args.disk_type:
+ dpl_txt = ""
+ num = 0
+ for disk in args.disk_passthrough_list:
+ dpl_txt += "