Index: /branches/amp_4_0/Makefile
===================================================================
--- /branches/amp_4_0/Makefile	(revision 2646)
+++ /branches/amp_4_0/Makefile	(working copy)
@@ -45,7 +45,7 @@
 	rpmbuild -ta imc.tar.gz --define "%_topdir `pwd`/build/infosec/"
 
 amp:
-	tar zcvf amp.tar.gz amp.spec conf lib Makefile Makefile.master README src tools update scripts init 
+	tar zcvf amp.tar.gz amp.spec conf lib Makefile Makefile.master README src tools update scripts init platform
 	rpmbuild -ta amp.tar.gz --define "%_topdir `pwd`/build/array/"
 	mkdir -p $(TOP)/system
 	cp $(TOP)/build/array/RPMS/x86_64/amp-[0-9]* $(TOP)/system/
@@ -56,15 +56,14 @@
 	mv $(TOP)/exts $(TOP)/all_in_one/
 	mv $(TOP)/system $(TOP)/all_in_one/
 	curl -O http://$(ResourceIp)/all_dep.tar.gz && tar zxvf all_dep.tar.gz && mv $(TOP)/all_dep $(TOP)/all_in_one/ && rm -rf all_dep.tar.gz
-	cp $(TOP)/scripts/install.sh $(TOP)/all_in_one/ && cp $(TOP)/scripts/uninstall_extensions.sh $(TOP)/all_in_one/
-	cp $(TOP)/conf/dashboard.ndjson $(TOP)/all_in_one/ && cp $(TOP)/scripts/import_kibana_dashboard.sh $(TOP)/all_in_one/
+	cp $(TOP)/build_scripts/install.sh $(TOP)/all_in_one/ && cp $(TOP)/scripts/uninstall_extensions.sh $(TOP)/all_in_one/
 	tar -zcvf all_in_one.tgz all_in_one
 
 imc:
 	chmod +x ./tools/updatecopyright.sh
 	./tools/updatecopyright.sh infosec
 	/bin/sh ./tools/replace_comp_info.sh ./tools/company/infosec
-	tar zcvf imc.tar.gz imc.spec conf lib Makefile Makefile.master README src tools update scripts init 
+	tar zcvf imc.tar.gz imc.spec conf lib Makefile Makefile.master README src tools update scripts init platform
 	rpmbuild -ta imc.tar.gz --define "%_topdir `pwd`/build/infosec/"
 	mkdir -p $(TOP)/system
 	cp $(TOP)/build/infosec/RPMS/x86_64/imc-[0-9]* $(TOP)/system/
@@ -75,7 +74,7 @@
 	mv $(TOP)/exts $(TOP)/all_in_one/
 	mv $(TOP)/system $(TOP)/all_in_one/
 	curl -O http://$(ResourceIp)/all_dep.tar.gz && tar zxvf all_dep.tar.gz && mv $(TOP)/all_dep $(TOP)/all_in_one/ && rm -rf all_dep.tar.gz
-	cp $(TOP)/scripts/install.sh $(TOP)/all_in_one/ && cp $(TOP)/scripts/uninstall_extensions.sh $(TOP)/all_in_one/
+	cp $(TOP)/build_scripts/install.sh $(TOP)/all_in_one/ && cp $(TOP)/scripts/uninstall_extensions.sh $(TOP)/all_in_one/
 	tar -zcvf all_in_one.tgz all_in_one
 
 extension:
Index: /branches/amp_4_0/amp.spec
===================================================================
--- /branches/amp_4_0/amp.spec	(revision 2646)
+++ /branches/amp_4_0/amp.spec	(working copy)
@@ -12,23 +12,23 @@
 BuildArch:      x86_64
 AutoReq:        no
 
-Requires:       glibc
-Requires:       openssl
-Requires:       keepalived
-Requires:       httpd
-Requires:       mod_ssl
-Requires:       tar
-Requires:       systemd
-Requires:       traceroute
-Requires:       iputils
-Requires:       logrotate
-Requires:       pcre
-Requires:       chrony
-Requires:       tftp
-Requires:       net-tools
-Requires:       python3-psycopg2
-Requires:       json-c
-Requires:       java
+#Requires:       glibc
+#Requires:       openssl
+#Requires:       keepalived
+#Requires:       httpd
+#Requires:       mod_ssl
+#Requires:       tar
+#Requires:       systemd
+#Requires:       traceroute
+#Requires:       iputils
+#Requires:       logrotate
+#Requires:       pcre
+#Requires:       chrony
+#Requires:       tftp
+#Requires:       net-tools
+#Requires:       python3-psycopg2
+#Requires:       json-c
+#Requires:       java
 
 BuildRequires: pcre-devel
 
@@ -51,19 +51,7 @@
 mkdir -p /ca/config/system
 mkdir -p /ca/config/customize
 
-if [ -f "/usr/local/bin/composer/composer_node" ]; then
-        /usr/local/bin/composer/composer_node stop
-fi
-mkdir -p /var/tmp/composer
-tar -zxvf /ca/etc/composer-2.5.0.2.tgz -C /var/tmp/composer
-mkdir -p /usr/local/bin/composer
-cp -r /var/tmp/composer/build/usr/local/bin/composer/* /usr/local/bin/composer/
-mkdir -p /usr/local/etc/composer
-cp -r /var/tmp/composer/build/usr/local/etc/composer/* /usr/local/etc/composer/
-rm -rf /var/tmp/composer/build
-
 mkdir -p /usr/share/fonts/alibaba
-cp -r /usr/local/etc/composer/ttf/* /usr/share/fonts/alibaba/
 mkfontscale
 mkfontdir
 fc-cache
@@ -77,7 +65,7 @@
 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
 
 if [ "$1" = "1" ]; then
-    create_res=`psql -h 127.0.0.1 -p 5432 -U postgres --command "CREATE DATABASE cm;"`
+    create_res=`PGPASSWORD=Array@123$ psql -h 127.0.0.1 -p 5432 -U amp_admin --command "CREATE DATABASE cm;"`
     echo "$create_res"
 fi
 
@@ -85,18 +73,6 @@
     > /ca/etc/array
 fi
 
-%preun
-if [ "$1" = "0" ]; then
-    echo "Remove cm db"
-    remove_pid="SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'cm' AND pid <> pg_backend_pid();"
-    delsql="DROP DATABASE IF EXISTS cm;"
-    res=`psql -h 127.0.0.1 -p 5432 -U postgres --command "$remove_pid"`
-    result=`psql -h 127.0.0.1 -p 5432 -U postgres --command "$delsql"`
-    echo $result
-    rm -rf /ca/webui/htdocs/new/src/client/app/locales/main/en.js
-    rm -rf /ca/webui/htdocs/new/src/client/app/locales/main/zh-cn.js
-fi
-
 %postun
 if [ "$1" = "0" ]; then
     # remove all file & dir that generated while amp running.
@@ -107,9 +83,6 @@
     if [ -d "/ca/extensions/" ]; then
         rm -rf /ca/extensions
     fi
-    rm -rf /usr/local/etc/composer
-    rm -rf /usr/local/bin/composer
-    rm -rf /var/opt/composer
 fi
 
 %build
@@ -121,6 +94,7 @@
 install -dDm 0755 %{buildroot}/usr/lib64/
 install -dDm 0755 %{buildroot}/usr/sbin/
 install -dDm 0755 %{buildroot}/ca/bin/
+install -dDm 0755 %{buildroot}/ca/platform/
 install -dDm 0755 %{buildroot}/ca/conf/
 install -dDm 0755 %{buildroot}/ca/conf/template/
 install -dDm 0755 %{buildroot}/ca/conf/system/
@@ -136,9 +110,6 @@
 install -dDm 0755 %{buildroot}/etc/NetworkManager/conf.d/
 
 install -Dm 0755 src/bin/telnet %{buildroot}/usr/bin/
-install -Dm 0755 src/bin/wget %{buildroot}/usr/bin/
-install -Dm 0755 src/bin/libpcap/libpcap.so.1 %{buildroot}/usr/lib64/
-install -Dm 0755 src/bin/libpcap/libpcap.so.1.5.3 %{buildroot}/usr/lib64/
 install -Dm 0755 src/bin/tcpdump/tcpdump %{buildroot}/usr/sbin/
 install -Dm 0755 src/bin/tcpdump/tcpslice %{buildroot}/usr/sbin/
 install -Dm 0755 src/bin/rsync %{buildroot}/usr/bin/
@@ -170,7 +141,8 @@
 install -Dm 0755 tools/words %{buildroot}/ca/etc/
 install -Dm 0644 tools/gnupg_homedir.tgz %{buildroot}/ca/etc/
 install -Dm 0644 tools/recovery_pub_cert.pem %{buildroot}/ca/etc/recovery_pub_cert.pem
-install -Dm 0644 tools/rpm_gpg_key_amp %{buildroot}/ca/etc/rpm_gpg_key_amp
+install -Dm 0644 tools/signature/RPM-GPG-KEY-ARRAY %{buildroot}/ca/etc/RPM-GPG-KEY-ARRAY
+cp -r platform/dependencies/ %{buildroot}/ca/platform/
 install -Dm 0644 tools/array.repo %{buildroot}/ca/etc/array.repo
 install -Dm 0644 conf/avx.logrotate %{buildroot}/etc/logrotate.d/avx
 install -Dm 0644 conf/avx.sysctl %{buildroot}/etc/sysctl.d/99-array.conf
@@ -202,17 +174,11 @@
 install -Dm 0755 scripts/check_webui_root_user.py %{buildroot}/ca/bin/check_webui_root_user.py
 install -Dm 0755 scripts/check_crontab_add.py %{buildroot}/ca/bin/check_crontab_add.py
 install -Dm 0755 scripts/clean_oper_log.py %{buildroot}/ca/bin/clean_oper_log.py
-cp conf/dashboard.ndjson %{buildroot}/ca/bin/
-cp scripts/import_kibana_dashboard.sh %{buildroot}/ca/bin/
-cp lib/composer/composer-2.5.0.2.tgz %{buildroot}/ca/etc/
 mkdir -p %{buildroot}/ca/webui/htdocs/new/src/hive/media/docs
 
 %files
 %defattr(-,root,root,-)
 %attr (755,root,root)/usr/bin/telnet
-%attr (755,root,root)/usr/bin/wget
-/usr/lib64/libpcap.so.1
-/usr/lib64/libpcap.so.1.5.3
 %attr (755,root,root)/usr/sbin/tcpdump
 %attr (755,root,root)/usr/sbin/tcpslice
 %attr (755,root,root)/usr/bin/rsync
@@ -245,7 +211,8 @@
 %attr (644,root,root)/ca/etc/gnupg_homedir.tgz
 %attr (755,root,root)/ca/etc/words
 %attr (644,root,root)/ca/etc/recovery_pub_cert.pem
-%attr (644,root,root)/ca/etc/rpm_gpg_key_amp
+%attr (644,root,root)/ca/etc/RPM-GPG-KEY-ARRAY
+%attr (755,root,root)/ca/platform/*
 %attr (644,root,root)/ca/etc/array.repo
 %attr (644,root,root)/ca/conf/stripfile
 %attr (644,root,root)/ca/conf/system/rc.local
@@ -268,7 +235,6 @@
 %attr (644,root,root)/ca/etc/sshd_config
 %attr (755,root,root)/ca/bin/pulltftp
 %attr (755,root,root)/usr/lib64/python3.13/site-packages/_pyexauth.cpython-313-x86_64-linux-gnu.so
-#%attr (755,root,root)/usr/lib64/python3.13/site-packages/_cffi_backend.so
 %attr (644,root,root)/etc/NetworkManager/conf.d/array.conf
 %attr (755,root,root)/ca/bin/check_build.py
 %attr (755,root,root)/ca/bin/check_adc_ssl.py
@@ -277,9 +243,6 @@
 %attr (755,root,root)/ca/bin/check_webui_root_user.py
 %attr (755,root,root)/ca/bin/check_crontab_add.py
 %attr (755,root,root)/ca/bin/clean_oper_log.py
-%attr (755,root,root)/ca/etc/composer-2.5.0.2.tgz
-%attr (755,root,root)/ca/bin/dashboard.ndjson
-%attr (755,root,root)/ca/bin/import_kibana_dashboard.sh
 
 %define __debug_install_post   \
    %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
Index: /branches/amp_4_0/build_scripts/app_init.sh
===================================================================
--- /branches/amp_4_0/build_scripts/app_init.sh	(nonexistent)
+++ /branches/amp_4_0/build_scripts/app_init.sh	(working copy)
@@ -0,0 +1,135 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+# The if block will be executed only once, i.e., first boot
+if [ -f "/ca/etc/arrayfirstboot" ]
+then
+
+    # Remove the arrayfirstboot indicator
+    rm -f /ca/etc/arrayfirstboot
+
+    # Create 'tcpdump' user account if not exists
+    is_tcpdump_exists=`grep "tcpdump" /etc/passwd`
+    if [ "x$is_tcpdump_exists" = "x" ]; then
+        /usr/sbin/groupadd -g 72 tcpdump 2> /dev/null
+        /usr/sbin/useradd -u 72 -g 72 -s /sbin/nologin -M -r -d / tcpdump 2> /dev/null
+    else
+        echo "The tcpdump account has existed"
+    fi
+
+    # Create 'recovery' user account
+    userdel recovery 2> /dev/null
+    /usr/sbin/useradd -s /ca/bin/recovery -M -d / recovery 2> /dev/null
+    passwd -d recovery 2> /dev/null
+
+    # Create 'anes' user account if not exists
+    is_anes_exists=`grep "anesltkx" /etc/passwd`
+    if [ "x$is_anes_exists" = "x" ]; then
+        /usr/sbin/useradd -s /bin/bash -m -r -d /home/anesltkx anesltkx 2> /dev/null
+        echo "anes" | passwd anesltkx --stdin
+    else
+        echo "The anes account has existed"
+    fi
+
+    # create /export/mfg and /caupgrade/export/mfg
+    [ ! -d /export/mfg ] && mkdir -p /export/mfg
+    [ ! -d /caupgrade/export/mfg ] && mkdir -p /caupgrade/export/mfg
+    [ ! -d /var/array/public/config/ ] && mkdir -p /var/array/public/config/
+
+    # change bash prompt
+    has_updated=`grep "AMP" /etc/bashrc`
+    if [ "x$has_updated" = "x" ]; then
+        sed -i '10i PS1="AMP#"' /etc/bashrc
+    else
+        echo "The bash prompt has been updated"
+    fi
+
+    # Reset hostname to AN
+    echo "AN" > /etc/hostname
+    /usr/bin/hostname "AN"
+
+    mkdir -p /home/array
+    mkdir -p /catmp/
+
+    systemctl enable NetworkManager
+    systemctl start NetworkManager
+
+    systemctl stop firewalld
+    systemctl disable firewalld
+
+    # Copy build config script
+    cp /ca/webui/conf/build_config.py /ca/bin/build_config.py
+
+    sed -i -e 's|SELINUX=enforcing|SELINUX=disabled|' /etc/selinux/config
+
+    # Update kernel configurations
+    grep '^anesltkx hard nofile 65536' /etc/security/limits.conf
+    ret=$?
+    if [ $ret != 0 ]
+    then
+        echo "anesltkx hard nofile 65536" >> /etc/security/limits.conf
+    fi
+
+    grep '^anesltkx soft nofile 65536' /etc/security/limits.conf
+    ret=$?
+    if [ $ret != 0 ]
+    then
+        echo "anesltkx soft nofile 65536" >> /etc/security/limits.conf
+    fi
+
+    grep '^vm.max_map_count=262144' /etc/sysctl.conf
+    ret=$?
+    if [ $ret != 0 ]
+    then
+        echo "vm.max_map_count=262144" >> /etc/sysctl.conf
+    fi
+fi
+
+# Create 'array' user account if not exists
+USERS=`awk '/^user /' /ca/conf/ca.conf`
+if [ -z "$USERS" ]; then
+    echo 'user name "array" "XXXXXXXXX5q$QkeSlO6sFeEDBz7GltJ97.8II7ZTNYrgX4rNp6wy7OGvSAJsBDVU8oysPGzqEtjcvSIEw2PV7uSkIe.Mzn8pb." "config"' >> /ca/conf/ca.conf
+fi
+
+# Remove existing network configurations
+sudo cp /etc/sysconfig/network-scripts/ifcfg-enp* /tmp/network_backup/
+sudo cp /etc/sysconfig/network-scripts/ifcfg-ens* /tmp/network_backup/
+rm -f /etc/sysconfig/network-scripts/ifcfg-enp*
+rm -f /etc/sysconfig/network-scripts/ifcfg-ens*
+
+
+# Recover rsyslog service if recently exited abnormally
+if tail -2 /var/log/messages | grep syslog | grep -q "exiting on signal"; then
+    rm -f /var/lib/rsyslog/imjournal.state
+    systemctl restart rsyslog
+fi
+
+# Create 'extensions' directory if not exists
+if [[ ! -d /ca/extensions ]];then
+    mkdir /ca/extensions
+fi
+
+# ToDo: Enable the Array repository URL when available
+# Create 'array.repo' repository file if not exists
+#if [[ ! -f "/etc/yum.repos.d/array.repo" ]]; then
+#    cp /ca/etc/array.repo /etc/yum.repos.d/array.repo
+#fi
+
+# Import valid RPM GPG KEY for the AMP
+if [ ! -f "/etc/pki/rpm-gpg/RPM-GPG-KEY-ARRAY" ]; then
+    cp /ca/etc/RPM-GPG-KEY-ARRAY /etc/pki/rpm-gpg/RPM-GPG-KEY-ARRAY
+fi
+rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ARRAY
+
+#check whether webui root user exists, if not exist, add one
+#if account admin/admin not exist, add it and make it as root user
+#if account admin/admin exists, make it as root user
+/usr/bin/python /ca/bin/check_webui_root_user.py
+
+# Create 'test' user account if not exists
+id test >& /dev/null
+if [ $? -ne 0 ]
+then
+   useradd test
+fi
Index: /branches/amp_4_0/build_scripts/install.sh
===================================================================
--- /branches/amp_4_0/build_scripts/install.sh	(nonexistent)
+++ /branches/amp_4_0/build_scripts/install.sh	(working copy)
@@ -0,0 +1,104 @@
+#!/usr/bin/env bash
+
+# --- Configuration ---
+# Set strict mode for better error handling
+set -euo pipefail
+
+# Get the directory of the script itself
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Define subdirectories for RPM packages
+SYSTEM_RPMS_DIR="$SCRIPT_DIR/system"
+EXTS_RPMS_DIR="$SCRIPT_DIR/exts"
+
+# Define the source and destination for Python libraries
+PYTHON_LIB_SOURCE="/ca/platform/dependencies/python/offline_pip_packages"
+PYTHON_LIB_LIST="/ca/platform/dependencies/python/requirements.txt"
+#PYTHON_LIB_DEST="/usr/local/lib/python3.13/site-packages"
+
+# --- Functions ---
+
+# Function to display messages
+log_info() {
+    echo "INFO: $1"
+}
+
+# Function to display success messages
+log_success() {
+    echo "SUCCESS: $1"
+}
+
+# Function to display error messages and exit
+log_error() {
+    echo "ERROR: $1" >&2
+    exit 1
+}
+
+# Function to check if a command exists
+command_exists() {
+    command -v "$1" >/dev/null 2>&1
+}
+
+# Function to install RPMs
+install_rpms() {
+    local rpm_dir="$1"
+    log_info "Attempting to install/upgrade RPM packages from: $rpm_dir"
+
+    if [ ! -d "$rpm_dir" ]; then
+        log_info "Directory '$rpm_dir' does not exist or is empty. Skipping RPM installation for this section."
+        return 0 # Not a critical error if the directory doesn't exist for RPMs
+    fi
+
+    # Check if there are any RPM files in the directory
+    shopt -s nullglob # Allows *.rpm to expand to nothing if no matches
+    local rpms=("$rpm_dir"/*.rpm)
+    shopt -u nullglob # Turn nullglob off
+
+    if [ ${#rpms[@]} -eq 0 ]; then
+        log_info "No .rpm files found in '$rpm_dir'. Skipping RPM installation for this section."
+        return 0
+    fi
+
+    (cd "$rpm_dir" && rpm -Uvh *.rpm) || log_error "Failed to install/upgrade RPM packages from '$rpm_dir'."
+    log_success "Successfully installed/upgraded RPM packages from '$rpm_dir'."
+}
+
+# --- Main Installation Logic ---
+
+log_info "Starting AMP application installation..."
+
+# Check for root privileges
+if [ "$EUID" -ne 0 ]; then
+    log_error "This script must be run as root. Please use 'sudo bash $(basename "$0")'."
+fi
+
+# Check if rpm command exists
+if ! command_exists rpm; then
+    log_error "The 'rpm' command was not found. Please ensure RPM is installed on this system."
+fi
+
+# 1. Install System RPMs
+log_info "Installing core AMP application components..."
+install_rpms "$SYSTEM_RPMS_DIR"
+
+# 2. Copy Python Libraries
+log_info "Proceeding with installing Python packages..."
+
+if [ ! -d "$PYTHON_LIB_SOURCE" ]; then
+    log_error "Source directory for Python libraries does not exist: '$PYTHON_LIB_SOURCE'. Aborting."
+fi
+
+log_info "Installing python pip packages from '$PYTHON_LIB_SOURCE'..."
+pip3 install --no-index --find-links="$PYTHON_LIB_SOURCE" -r "$PYTHON_LIB_LIST"
+log_success "Successfully installed Python libraries."
+
+# 3. Install Extensions RPMs
+log_info "Installing AMP application extensions..."
+install_rpms "$EXTS_RPMS_DIR"
+
+
+# --- Completion ---
+log_success "AMP application installation has been completed!"
+log_info "Please remember to **reboot the device** for changes to take full effect."
+
+exit 0 # Indicate successful execution
Index: /branches/amp_4_0/extensions/auditing/start.sh
===================================================================
--- /branches/amp_4_0/extensions/auditing/start.sh	(revision 2646)
+++ /branches/amp_4_0/extensions/auditing/start.sh	(working copy)
@@ -8,17 +8,17 @@
 mkdir /ca/webui/htdocs/new/src/client/app/locales/auditing
 cp -r /ca/extensions/auditing/webui/locales/* /ca/webui/htdocs/new/src/client/app/locales/auditing/
 
-cp -r /ca/extensions/auditing/syslogd/kibana.yml /etc/kibana/kibana.yml
+#cp -r /ca/extensions/auditing/syslogd/kibana.yml /etc/kibana/kibana.yml
 #3. start related backend process (if exists)
 
 python /ca/extensions/auditing/syslogd/audit_engine_init.py
 
-service acm_syslogd start
+#service acm_syslogd start
 
-systemctl enable elasticsearch
-systemctl enable kibana
+#systemctl enable elasticsearch
+#systemctl enable kibana
+#
+#systemctl start elasticsearch
+#systemctl start kibana
 
-systemctl start elasticsearch
-systemctl start kibana
-
-psql -h 127.0.0.1 -p 5432 -U postgres -d cm --command "insert into ext_log values('auditing', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
+PGPASSWORD=Array@123$ psql -h 127.0.0.1 -p 5432 -U amp_admin -d cm --command "insert into ext_log(name, action, time, result) values('auditing', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
Index: /branches/amp_4_0/extensions/auditing/syslogd/audit_engine_init.py
===================================================================
--- /branches/amp_4_0/extensions/auditing/syslogd/audit_engine_init.py	(revision 2646)
+++ /branches/amp_4_0/extensions/auditing/syslogd/audit_engine_init.py	(working copy)
@@ -11,7 +11,7 @@
     line = line.lstrip()
     memItem = line.lower().split()
     if memItem[0] == 'memtotal:':
-        tmp = int(long(memItem[1]) / (1e6 * 2))
+        tmp = int(int(memItem[1]) / (1e6 * 2))
         if tmp < memNum:
             memNum = tmp
         break
@@ -34,7 +34,7 @@
         elif ('-Dlog4j2.formatMsgNoLookups=true' in line):
             log4j2Configured = True
 
-if not log4j2Configured :
+if not log4j2Configured:
     lines.append('\n-Dlog4j2.formatMsgNoLookups=true')
 
 f = open("/etc/elasticsearch/jvm.options", "w")
Index: /branches/amp_4_0/extensions/avx_mgmt/avx_mgmt_db.py
===================================================================
--- /branches/amp_4_0/extensions/avx_mgmt/avx_mgmt_db.py	(revision 2646)
+++ /branches/amp_4_0/extensions/avx_mgmt/avx_mgmt_db.py	(working copy)
@@ -1,19 +1,17 @@
-import psycopg2
-import os
-import json
 import argparse
-import pycurl, threading
-from StringIO import StringIO
 
+import psycopg2
+
+
 class DB(object):
 
     def __init__(self, conn):
-        self.conn = conn 
+        self.conn = conn
 
     @classmethod
     def get_connected_db(cls, path=None):
         conn = None
-        conn = psycopg2.connect(database="cm", user="postgres", password="", host="127.0.0.1", port="5432")
+        conn = psycopg2.connect(database="cm", user="amp_admin", password="Array@123$", host="127.0.0.1", port="5432")
         if conn:
             return DB(conn)
         else:
@@ -28,12 +26,11 @@
         cu.execute(sql)
         self.conn.commit()
         cu.close()
-    
+
     def execute_sql_ingnore_exception(self, sql):
         try:
             self.execute_sql(sql)
-        except Exception, e:
-            print str(e)
+        except Exception as e:
             self.conn.rollback()
 
     def close(self):
@@ -91,6 +88,7 @@
                             )'''
         self.execute_sql(create_table_sql)
 
+
 if __name__ == '__main__':
     parser = argparse.ArgumentParser()
     parser.add_argument('-d', nargs="*", metavar="DROP", help="drop the postgresql table `host`")
@@ -102,4 +100,3 @@
         db.drop_table('host')
     if args.c != None:
         db.create_table_license()
-
Index: /branches/amp_4_0/extensions/avx_mgmt/start.sh
===================================================================
--- /branches/amp_4_0/extensions/avx_mgmt/start.sh	(revision 2646)
+++ /branches/amp_4_0/extensions/avx_mgmt/start.sh	(working copy)
@@ -8,4 +8,4 @@
 cp -r /ca/extensions/avx_mgmt/webui/locales/* /ca/webui/htdocs/new/src/client/app/locales/virtualization/
 #3. start related backend process (if exists)
 
-psql -h 127.0.0.1 -p 5432 -U postgres -d cm --command "insert into ext_log values('avx_mgmt', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
+PGPASSWORD=Array@123$ psql -h 127.0.0.1 -p 5432 -U amp_admin -d cm --command "insert into ext_log(name, action, time, result) values('avx_mgmt', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
Index: /branches/amp_4_0/extensions/license_server/start.sh
===================================================================
--- /branches/amp_4_0/extensions/license_server/start.sh	(revision 2646)
+++ /branches/amp_4_0/extensions/license_server/start.sh	(working copy)
@@ -27,7 +27,7 @@
         kill -9 $pid
 fi
 
-psql -h 127.0.0.1 -p 5432 -U postgres -d cm --command "insert into ext_log values('license_server', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
+PGPASSWORD=Array@123$ psql -h 127.0.0.1 -p 5432 -U amp_admin -d cm --command "insert into ext_log(name, action, time, result) values('license_server', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
 
 export DJANGO_SETTINGS_MODULE=djproject.settings
 nohup python -W ignore /ca/webui/htdocs/new/src/manage.py runfcgi method=threaded daemonize=false maxchildren=500 host=127.0.0.1 port=3033 webui_on &
Index: /branches/amp_4_0/extensions/monitoring/monitor_db.py
===================================================================
--- /branches/amp_4_0/extensions/monitoring/monitor_db.py	(revision 2646)
+++ /branches/amp_4_0/extensions/monitoring/monitor_db.py	(working copy)
@@ -1,20 +1,19 @@
-import psycopg2
-import sqlite3
-import os
-import json
 import argparse
-import pycurl, threading
-from StringIO import StringIO
+import sqlite3
 
+import psycopg2
+from io import StringIO
+
+
 class DB(object):
 
     def __init__(self, conn):
-        self.conn = conn 
+        self.conn = conn
 
     @classmethod
     def get_connected_db(cls, path=None):
         conn = None
-        conn = psycopg2.connect(database="cm", user="postgres", password="", host="127.0.0.1", port="5432")
+        conn = psycopg2.connect(database="cm", user="amp_admin", password="Array@123$", host="127.0.0.1", port="5432")
         if conn:
             return DB(conn)
         else:
@@ -29,12 +28,11 @@
         cu.execute(sql)
         self.conn.commit()
         cu.close()
-    
+
     def execute_sql_ingnore_exception(self, sql):
         try:
             self.execute_sql(sql)
-        except Exception, e:
-            print str(e)
+        except Exception as e:
             self.conn.rollback()
 
     def close(self):
@@ -85,6 +83,7 @@
                             )'''
         self.execute_sql(create_table_sql)
 
+
 if __name__ == '__main__':
     parser = argparse.ArgumentParser()
     parser.add_argument('-d', nargs="*", metavar="DROP", help="drop the postgresql table monitor_adc_vs_url")
Index: /branches/amp_4_0/extensions/monitoring/start.sh
===================================================================
--- /branches/amp_4_0/extensions/monitoring/start.sh	(revision 2646)
+++ /branches/amp_4_0/extensions/monitoring/start.sh	(working copy)
@@ -18,7 +18,7 @@
         kill -9 $pid
 fi
 
-psql -h 127.0.0.1 -p 5432 -U postgres -d cm --command "insert into ext_log values('monitoring', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
+PGPASSWORD=Array@123$ psql -h 127.0.0.1 -p 5432 -U amp_admin -d cm --command "insert into ext_log(name, action, time, result) values('monitoring', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
 
 export DJANGO_SETTINGS_MODULE=djproject.settings
 nohup python -W ignore /ca/webui/htdocs/new/src/manage.py runfcgi method=threaded daemonize=false maxchildren=500 host=127.0.0.1 port=3033 webui_on &
Index: /branches/amp_4_0/extensions/rs_api/start.sh
===================================================================
--- /branches/amp_4_0/extensions/rs_api/start.sh	(revision 2646)
+++ /branches/amp_4_0/extensions/rs_api/start.sh	(working copy)
@@ -9,7 +9,7 @@
         kill -9 $pid
 fi
 
-psql -h 127.0.0.1 -p 5432 -U postgres -d cm --command "insert into ext_log values('rs_api', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
+PGPASSWORD=Array@123$ psql -h 127.0.0.1 -p 5432 -U amp_admin -d cm --command "insert into ext_log(name, action, time, result) values('rs_api', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
 
 export DJANGO_SETTINGS_MODULE=djproject.settings
 nohup python -W ignore /ca/webui/htdocs/new/src/manage.py runfcgi method=threaded daemonize=false maxchildren=500 host=127.0.0.1 port=3033 webui_on &
Index: /branches/amp_4_0/extensions/vpn_license_server/start.sh
===================================================================
--- /branches/amp_4_0/extensions/vpn_license_server/start.sh	(revision 2646)
+++ /branches/amp_4_0/extensions/vpn_license_server/start.sh	(working copy)
@@ -22,7 +22,7 @@
         kill -9 $pid
 fi
 
-psql -h 127.0.0.1 -p 5432 -U postgres -d cm --command "insert into ext_log values('vpn_license_server', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
+PGPASSWORD=Array@123$ psql -h 127.0.0.1 -p 5432 -U amp_admin -d cm --command "insert into ext_log(name, action, time, result) values('vpn_license_server', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
 
 export DJANGO_SETTINGS_MODULE=djproject.settings
 nohup python -W ignore /ca/webui/htdocs/new/src/manage.py runfcgi method=threaded daemonize=false maxchildren=500 host=127.0.0.1 port=3033 webui_on &
Index: /branches/amp_4_0/extensions/vpn_mgmt/start.sh
===================================================================
--- /branches/amp_4_0/extensions/vpn_mgmt/start.sh	(revision 2646)
+++ /branches/amp_4_0/extensions/vpn_mgmt/start.sh	(working copy)
@@ -8,4 +8,4 @@
 cp -r /ca/extensions/vpn_mgmt/webui/locales/* /ca/webui/htdocs/new/src/client/app/locales/vpn_mgmt/
 #3. start related backend process (if exists)
 
-psql -h 127.0.0.1 -p 5432 -U postgres -d cm --command "insert into ext_log values('vpn_mgmt', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
+PGPASSWORD=Array@123$ psql -h 127.0.0.1 -p 5432 -U amp_admin -d cm --command "insert into ext_log(name, action, time, result) values('vpn_mgmt', 'enable', to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'), 'success')"
Index: /branches/amp_4_0/platform/dependencies/README.md
===================================================================
--- /branches/amp_4_0/platform/dependencies/README.md	(nonexistent)
+++ /branches/amp_4_0/platform/dependencies/README.md	(working copy)
@@ -0,0 +1,3 @@
+### Dependencies
+
+#### This directory contains the offline dependency installable.
\ No newline at end of file
Index: /branches/amp_4_0/platform/dependencies/python/README.md
===================================================================
--- /branches/amp_4_0/platform/dependencies/python/README.md	(nonexistent)
+++ /branches/amp_4_0/platform/dependencies/python/README.md	(working copy)
@@ -0,0 +1,7 @@
+### Get python-pip3 packages
+
+#### To download the pip offline packages 
+sh get_offline_packages.sh
+
+#### Install the downloaded packages
+pip3 install --no-index --find-links=./offline_packages -r requirements.txt
Index: /branches/amp_4_0/platform/dependencies/python/get_offline_packages.sh
===================================================================
--- /branches/amp_4_0/platform/dependencies/python/get_offline_packages.sh	(nonexistent)
+++ /branches/amp_4_0/platform/dependencies/python/get_offline_packages.sh	(working copy)
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+pip3 download -r ./requirements.txt --dest offline_pip_packages/ --platform linux-x86_64 --python-version 313 --implementation cp --abi cp313 --only-binary=:all:
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/APScheduler-3.11.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/APScheduler-3.11.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/anyio-4.9.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/anyio-4.9.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/asgiref-3.8.1-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/asgiref-3.8.1-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/certifi-2025.4.26-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/certifi-2025.4.26-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/chardet-5.2.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/chardet-5.2.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/charset_normalizer-3.4.2-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/charset_normalizer-3.4.2-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/cssselect2-0.8.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/cssselect2-0.8.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/dicttoxml-1.7.16-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/dicttoxml-1.7.16-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/django-5.2.3-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/django-5.2.3-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/dnspython-2.7.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/dnspython-2.7.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/elastic_transport-8.17.1-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/elastic_transport-8.17.1-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/elasticsearch-9.0.2-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/elasticsearch-9.0.2-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/fonttools-4.58.2-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/fonttools-4.58.2-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/h11-0.16.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/h11-0.16.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/httpcore-1.0.9-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/httpcore-1.0.9-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/httpx-0.28.1-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/httpx-0.28.1-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/idna-3.10-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/idna-3.10-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/influxdb_client-1.49.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/influxdb_client-1.49.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/pyasynchat-1.0.4-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/pyasynchat-1.0.4-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/pyasyncore-1.0.4-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/pyasyncore-1.0.4-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/pycparser-2.22-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/pycparser-2.22-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/pydyf-0.11.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/pydyf-0.11.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/pyphen-0.17.2-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/pyphen-0.17.2-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/python_dateutil-2.9.0.post0-py2.py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/python_dateutil-2.9.0.post0-py2.py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/pytz-2025.2-py2.py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/pytz-2025.2-py2.py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/reactivex-4.0.4-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/reactivex-4.0.4-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/requests-2.32.4-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/requests-2.32.4-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/rpm-0.4.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/rpm-0.4.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/setuptools-80.4.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/setuptools-80.4.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/six-1.17.0-py2.py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/six-1.17.0-py2.py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/sniffio-1.3.1-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/sniffio-1.3.1-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/sqlparse-0.5.3-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/sqlparse-0.5.3-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/tftpy-0.8.5-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/tftpy-0.8.5-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/tinycss2-1.4.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/tinycss2-1.4.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/tinyhtml5-2.0.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/tinyhtml5-2.0.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/toml-0.10.2-py2.py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/toml-0.10.2-py2.py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/typing_extensions-4.14.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/typing_extensions-4.14.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/tzlocal-5.3.1-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/tzlocal-5.3.1-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/urllib3-2.4.0-py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/urllib3-2.4.0-py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/offline_pip_packages/webencodings-0.5.1-py2.py3-none-any.whl
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/dependencies/python/offline_pip_packages/webencodings-0.5.1-py2.py3-none-any.whl
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/dependencies/python/requirements.txt
===================================================================
--- /branches/amp_4_0/platform/dependencies/python/requirements.txt	(nonexistent)
+++ /branches/amp_4_0/platform/dependencies/python/requirements.txt	(working copy)
@@ -0,0 +1,40 @@
+anyio==4.9.0
+APScheduler==3.11.0
+asgiref==3.8.1
+certifi==2025.4.26
+chardet==5.2.0
+charset-normalizer==3.4.2
+cssselect2==0.8.0
+dicttoxml==1.7.16
+Django==5.2.3
+dnspython==2.7.0
+elastic-transport==8.17.1
+elasticsearch==9.0.2
+fonttools==4.58.2
+h11==0.16.0
+httpcore==1.0.9
+httpx==0.28.1
+idna==3.10
+influxdb-client==1.49.0
+pyasynchat==1.0.4
+pyasyncore==1.0.4
+pycparser==2.22
+pydyf==0.11.0
+pyphen==0.17.2
+python-dateutil==2.9.0.post0
+pytz==2025.2
+reactivex==4.0.4
+requests==2.32.4
+rpm==0.4.0
+setuptools==80.4.0
+six==1.17.0
+sniffio==1.3.1
+sqlparse==0.5.3
+tftpy==0.8.5
+tinycss2==1.4.0
+tinyhtml5==2.0.0
+toml==0.10.2
+typing_extensions==4.14.0
+tzlocal==5.3.1
+urllib3==2.4.0
+webencodings==0.5.1
Index: /branches/amp_4_0/scripts/check_webui_root_user.py
===================================================================
--- /branches/amp_4_0/scripts/check_webui_root_user.py	(revision 2646)
+++ /branches/amp_4_0/scripts/check_webui_root_user.py	(working copy)
@@ -1,7 +1,9 @@
+import os
+
 import commands
 import psycopg2
-import os
 
+
 class DB(object):
     def __init__(self, conn):
         self.conn = conn
@@ -9,8 +11,8 @@
     @classmethod
     def get_connected_db(cls, path=None):
         conn = psycopg2.connect(database="cm",
-                                user="postgres",
-                                password="",
+                                user="amp_admin",
+                                password="Array@123$",
                                 host="127.0.0.1",
                                 port="5432")
         if conn:
@@ -36,14 +38,13 @@
         self.conn.commit()
         cu.close()
 
-
     def close(self):
         self.conn.close()
 
 
 if __name__ == '__main__':
-    #Firstly, we should clean auth table to unify the CLI and database for users
-    #when a user: execute "no user" & "write memory" via cli and then "reboot"(database "auth" table still has records) 
+    # Firstly, we should clean auth table to unify the CLI and database for users
+    # when a user: execute "no user" & "write memory" via cli and then "reboot"(database "auth" table still has records)
     db = DB.get_connected_db()
     select_sql = "SELECT username, auth, root FROM user_authorization;"
     data = db.fetchall(select_sql)
@@ -54,16 +55,16 @@
     with open('/ca/conf/ca.conf', 'r') as f:
         cli_data = f.read()
     for each in result:
-        cli_str_prefix = 'user name "%s"'%each['username']
+        cli_str_prefix = 'user name "%s"' % each['username']
         if cli_str_prefix not in cli_data:
             db = DB.get_connected_db()
             delete_sql = ''' DELETE FROM user_authorization WHERE username='%s' ''' % each['username']
             db.execute_sql(delete_sql)
             db.close()
 
-    #how to add one default root user? 
-    #if account admin/admin not exist, add it and make it as root user
-    #if account admin/admin exists, make it as root user
+    # how to add one default root user?
+    # if account admin/admin not exist, add it and make it as root user
+    # if account admin/admin exists, make it as root user
     db = DB.get_connected_db()
     select_sql = "SELECT username, auth, root FROM user_authorization;"
     data = db.fetchall(select_sql)
@@ -72,13 +73,13 @@
     result = [dict(zip(key, each)) for each in data]
     root_user = [each for each in result if each['root'] == 1]
     if len(root_user) == 0:
-        #seems no root user
-        #should check whether "admin/admin" exists
+        # seems no root user
+        # should check whether "admin/admin" exists
         if 'no such user' in commands.getstatusoutput("id admin")[1]:
-            #create one
+            # create one
             cmd = """echo 'user name admin "XXXXXXXXX5q$QkeSlO6sFeEDBz7GltJ97.8II7ZTNYrgX4rNp6wy7OGvSAJsBDVU8oysPGzqEtjcvSIEw2PV7uSkIe.Mzn8pb." config' >> /ca/conf/ca.conf"""
             os.system(cmd)
-        #make it be webui root user
+        # make it be webui root user
         db = DB.get_connected_db()
         insert_sql = ''' INSERT INTO user_authorization(username, auth, root) VALUES('admin', NULL, 1) '''
         db.execute_sql(insert_sql)
Index: /branches/amp_4_0/src/webui/webui/conf/build_config.py
===================================================================
--- /branches/amp_4_0/src/webui/webui/conf/build_config.py	(revision 2646)
+++ /branches/amp_4_0/src/webui/webui/conf/build_config.py	(working copy)
@@ -1,33 +1,33 @@
 #!/usr/bin/env python3
-import sys
 import string
+import sys
 
 if len(sys.argv) < 4:
-        print("usage: " + sys.argv[0] + " <template file> + <output file> + param1=value1 ... ")
-        print("example: " + sys.argv[0] + " /ca/xmlrpc/conf/httpd.conf /etc/xmlrpc_httpd.conf port=9999")
-        sys.exit(-1)
+    print("usage: " + sys.argv[0] + " <template file> + <output file> + param1=value1 ... ")
+    print("example: " + sys.argv[0] + " /ca/xmlrpc/conf/httpd.conf /etc/xmlrpc_httpd.conf port=9999")
+    sys.exit(-1)
 
-#open tempate and output file
+# open template and output file
 template_file = sys.argv[1]
 filein = open(template_file)
 
 output_file = sys.argv[2]
 fileout = open(output_file, "w")
 
-#parse param value pair into dict
+# parse param value pair into dict
 d = {}
-for i in range(3,len(sys.argv)):
-        #print "argv" + str(i) + ": " + sys.argv[i]
-        (name, value) = sys.argv[i].split('=', 1)
-        d[name] = value
+for i in range(3, len(sys.argv)):
+    # print "argv" + str(i) + ": " + sys.argv[i]
+    (name, value) = sys.argv[i].split('=', 1)
+    d[name] = value
 
-#read it
+# read it
 src = string.Template(filein.read())
 filein.close()
 
-#do the substitution
+# do the substitution
 result = src.substitute(d)
 
-#write it
+# write it
 fileout.write(result)
 fileout.close()
Index: /branches/amp_4_0/tools/signature/RPM-GPG-KEY-ARRAY
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/pgp-keys
