%define name VMAnalyzer
%define version 0.1.0
%define release 39
%define debug_package %{nil}

Summary: A lightweight virtualization performance monitoring analysis tool
Name: %{name}
Version: %{version}
Release: %{release}%{?dist}
License: Mulan PSL v2
URL: https://gitee.com/src-openeuler/VMAnalyzer
BuildRoot: %{name}-%{version}-%{release}
Requires: python3-libvirt
Requires: python3-redis
Requires: python3-mock
Requires: python3-six
Requires: python3-libxml2
Requires: redis
Requires: python3-pbr
Requires: python3-setuptools
%ifarch aarch64
Requires: python3-wheel
%endif
BuildRequires: systemd,python3
Source0:%{name}-%{version}.tar.gz

%description
A lightweight virtualization performance monitoring analysis tool

%prep
%setup -q

%build
exit 0

%install
rm -rf %{buildroot}/usr/bin/vm_analyer/

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/agent
cp -r %{_builddir}/%{name}-%{version}/agent/* %{buildroot}/usr/bin/vm_analyer/agent

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer
cp %{_builddir}/%{name}-%{version}/setup.py %{buildroot}/usr/bin/vm_analyer

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/tests
cp -r %{_builddir}/%{name}-%{version}/tests/* %{buildroot}/usr/bin/vm_analyer/tests

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/utils
cp -r %{_builddir}/%{name}-%{version}/utils/* %{buildroot}/usr/bin/vm_analyer/utils

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/diagnose/domain_detect
cp -r %{_builddir}/%{name}-%{version}/diagnose/domain_detect/* %{buildroot}/usr/bin/vm_analyer/diagnose/domain_detect

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/diagnose/qemuconsume
cp -r %{_builddir}/%{name}-%{version}/diagnose/qemuconsume/* %{buildroot}/usr/bin/vm_analyer/diagnose/qemuconsume

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/diagnose/hugepages_detect
cp -r %{_builddir}/%{name}-%{version}/diagnose/hugepages_detect/* %{buildroot}/usr/bin/vm_analyer/diagnose/hugepages_detect

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/diagnose/virt_check
cp -r %{_builddir}/%{name}-%{version}/diagnose/virt_check/* %{buildroot}/usr/bin/vm_analyer/diagnose/virt_check

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/diagnose/check_secret
cp -r %{_builddir}/%{name}-%{version}/diagnose/check_secret/* %{buildroot}/usr/bin/vm_analyer/diagnose/check_secret

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/diagnose/vcpu_sched_latency
cp -r %{_builddir}/%{name}-%{version}/diagnose/vcpu_sched_latency/* %{buildroot}/usr/bin/vm_analyer/diagnose/vcpu_sched_latency

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/gather
cp -r %{_builddir}/%{name}-%{version}/gather/* %{buildroot}/usr/bin/vm_analyer/gather

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/oneClickEnable
cp -r %{_builddir}/%{name}-%{version}/oneClickEnable/* %{buildroot}/usr/bin/vm_analyer/oneClickEnable

mkdir -p -m 755 %{buildroot}/usr/bin/vm_analyer/stability
cp -r %{_builddir}/%{name}-%{version}/stability/* %{buildroot}/usr/bin/vm_analyer/stability
%clean
[ -d "$RPM_BUILD_ROOT" ] && rm -rf $RPM_BUILD_ROOT

%post
chmod -R 755 /usr/bin/vm_analyer
chmod -R 755 /usr/bin/vm_analyer/tests
chmod -R 755 /usr/bin/vm_analyer/utils
chmod -R 755 /usr/bin/vm_analyer/diagnose/domain_detect
chmod -R 755 /usr/bin/vm_analyer/diagnose/qemuconsume
chmod -R 755 /usr/bin/vm_analyer/diagnose/hugepages_detect
chmod -R 755 /usr/bin/vm_analyer/diagnose/virt_check
chmod -R 755 /usr/bin/vm_analyer/diagnose/check_secret
chmod -R 755 /usr/bin/vm_analyer/diagnose/vcpu_sched_latency
chmod -R 755 /usr/bin/vm_analyer/gather
chmod -R 755 /usr/bin/vm_analyer/oneClickEnable
chmod -R 755 /usr/bin/vm_analyer/stability

rm -rf /usr/local/bin/vm-analyzer-agent
cd /usr/bin/vm_analyer

%ifarch x86_64
sudo pip3 install -e .
%else
sudo pip3 install -e . --no-build-isolation
%endif

%preun

%postun

%files
/usr/bin/vm_analyer/agent
/usr/bin/vm_analyer/setup.py
/usr/bin/vm_analyer/tests
/usr/bin/vm_analyer/utils
/usr/bin/vm_analyer/diagnose/domain_detect
/usr/bin/vm_analyer/diagnose/qemuconsume
/usr/bin/vm_analyer/diagnose/hugepages_detect
/usr/bin/vm_analyer/diagnose/virt_check
/usr/bin/vm_analyer/diagnose/check_secret
/usr/bin/vm_analyer/diagnose/vcpu_sched_latency
/usr/bin/vm_analyer/gather
/usr/bin/vm_analyer/oneClickEnable
/usr/bin/vm_analyer/stability

%changelog
* Tue Apr 28 2026 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-39
- fix offline dependency install failure to adapt aarch64

* Mon Dec 08 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-38
- synchronize the 24.03-LTS-SP3 source code

* Mon Dec 01 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-37
- add premium memory detection 

* Mon Dec 01 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-36
- agent: add vcpus info detection

* Mon Dec 01 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-35
- get vm vcpupin

* Thu Nov 27 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-34
- qga password change stability test

* Thu Nov 27 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-33
- ccxdesign/libver detection 

* Thu Nov 27 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-32
- adapt to multiple qemu process 
- virt_check update
- optimize qemu_var and os_var matching formats

* Thu Nov 27 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-31
- revised code to conform to coding rules
- support liveupdate test

* Wed Nov 26 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-30
- vcpu sched switch

* Wed Nov 26 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-29
- add vcpu sched latency collection

* Wed Nov 26 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-28
- check the unique/permission of libvirt secrets

* Mon Nov 24 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-27
- check the usage of libvirt secrets

* Mon Nov 24 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-26
- enhanced test files for detailed log checks

* Mon Nov 24 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-25
- add virtual machine status and log-related information detection

* Mon Nov 24 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-24
- add disk I/O stats detection

* Mon Nov 24 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-23
- add interface stats detection

* Fri Nov 21 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-22
- add memory usage detection

* Fri Nov 21 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-21
- health check function optimization

* Thu Nov 20 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-20
- add domain premium detection

* Thu Nov 20 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-19
- add host premium CPU core isolation check

* Thu Nov 20 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-18
- add host premium sysctl/libvirtd/qemu configure detection

* Thu Nov 20 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-17
- add host premium basic-detection

* Thu Nov 20 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-16
- add domain memory/schedinfo detection

* Thu Nov 20 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-15
- add domain cpu information detection

* Wed Nov 19 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-14
- add host memory/auth detection

* Wed Nov 19 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-13
- add host hugepage/cpu/virtualization information detection

* Wed Nov 19 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-12
- add host sysctl/cve/kpatch detection

* Wed Nov 19 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-11
- add host system/kernel information detection 

* Wed Nov 19 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-10
- modify qemuconsume and domain_detect detect method 

* Wed Nov 19 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-9
- add function record_vm_hugepages

* Wed Nov 19 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-8
- check hugepage quantity allocation for each node according to Hugepages_node.conf

* Tue Nov 18 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-7
- add function record_node_hugepages

* Tue Nov 18 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-6
- add flamegraph.pl and stackcollapse-perf.pl

* Tue Nov 18 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-5
- add qemuconsume

* Tue Nov 18 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-4
- add disk_status|blk_error detection

* Tue Nov 18 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-3
- add qga_status|interface_link detection

* Tue Nov 18 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-2
- add domain running status detection

* Tue Nov 18 2025 Xu Zheng <xuzheng_yewu@cmss.chinamobile.com> - 0.1.0-1
- Synchronize the source code repository