Files
portfolio/migration-validation-framework/__pycache__/cli.cpython-312.pyc
T

71 lines
14 KiB
Plaintext
Raw Normal View History

Ë
£Šòik(ãóèdZddlZddlZddlZddlZddlmZddlmZddlm Z m
Z
m Z m Z ddl
mZmZmZddlmZddlmZed «Zed
«Zed «ZGd d
«ZdZedk(re«yy)
Migration Validation Framework - CLI Interface
A comprehensive tool for validating system migrations through data collection,
snapshot comparison, and automated reporting.
éN)Údatetime)ÚPath)ÚDictÚListÚOptionalÚAny)ÚmountsÚservicesÚ
disk_usage)Úcompare)Ú html_reportÚ snapshotsÚlogsÚreportsc
óæeZdZdZddefdZdZdZdee de
e e ffdZ d e
e e fd
e d e de fd Z
d
e de
e e ffdZd e d
e dee de fdZde de de de
e e ffdZdde de dee de fdZy)ÚMigrationValidatorz Main migration validation class.ÚverbosecóR||_|j«|j«y©N)rÚ
setup_loggingÚensure_directories)Úselfrs úcli.pyÚ__init__zMigrationValidator.__init__s!؈Œ Ø ×ÑÔØ ×ÑÕcóB|jrtjntj}tj|dtj
t dz «tjtj«g¬«tjt«|_ y)zConfigure logging.z)%(asctime)s - %(levelname)s - %(message)szvalidation.log)ÚlevelÚformatÚhandlersN)
rÚloggingÚDEBUGÚINFOÚ basicConfigÚ FileHandlerÚLOGS_DIRÚ
StreamHandlerÚsysÚstdoutÚ getLoggerÚ__name__Úlogger)rÚ log_levels rrz MigrationValidator.setup_logging#sjà%)§\¢\”G—M’M´w·|±|ˆ Ü×ÑØØ×#¤HÐ/?Ñ$?Ó×%¤c§j¡jÓõ
ô×Ó1ˆ rcóTtttfD]}|jd¬«Œy)z"Ensure required directories exist.T)Úexist_okN)Ú
SNAPSHOTS_DIRr%Ú REPORTS_DIRÚmkdir)rÚ directorys rrz%MigrationValidator.ensure_directories0s&ä´ +ˆ O‰O Tˆ  +rÚsystemsÚreturnc óv|jjd|«tj«j «|ddœidœ}dt
j fdtj fdtj fg}|D]g}|jjd|«i|d |<|D]:\}} |jjd
|d |«||«}||d ||<Œ<Œi|S#t$rD}|jjd |d
|d|«dt|«i|d ||<Yd}~Œ‰d}~wwxYw)z!Collect data from target systems.zCollecting data from systems: z1.0)Ú timestampr3Úversion)ÚmetadataÚdatar r
r zCollecting data from r9zRunning z collector on zFailed to collect z from z: ÚerrorN)
r+ÚinforÚnowÚ isoformatr Úcollectr
r ÚdebugÚ Exceptionr:Ústr) rr3ÚsnapshotÚ
collectorsÚsystemÚcollector_nameÚcollector_funcr9Úes rÚcollect_system_dataz&MigrationValidator.collect_system_data5srà ×ÑÐ9¸'¸Ð&Ÿ\™\^× ñð
ñ

ˆð”v—~
œ×
œ:× 
ˆ
ð ò QˆFØ K‰K× Ñ Ð4°V°HÐ >Ø')ˆH ˜ $à2<ò
QÑ. ðQØ—K‘K×°Ð0@ÀÈvÈhÐ&WÔ)¨&Ó1DØ?CH˜$ ,¨^Ò
Qð Qðˆøô QØ—KK×%Ð(:¸>Ð:JÈ&ÐQWÐPXÐXZÐ[\ÐZ]Ð&^Ô_Ø@GÌÈQËÐ?PH˜$ ,¨^Ö<ûðQúsÂ14C+Ã+ D8Ã4:D3Ä3D8rBÚlabelÚenvcó"|d|dtj«jd«}t|dz }t |d«5}t j ||d¬«ddd«|jjd|«|S#1swYŒ)xYw) zSave snapshot to disk.ú-z
%Y%m%d_%H%M%Sú.jsonÚ©ÚindentNzSnapshot saved: ) rr<Ústrftimer/ÚopenÚjsonÚdumpr+r;)rrBrIrJÚ snapshot_idÚ
snapshot_fileÚfs rÚ
save_snapshotz MigrationValidator.save_snapshotWà˜˜Q˜u˜g Q¤x§|¡|£~×'>Ñ'>¸Ó'OÐ&PÐQˆ Ü%¨;¨-°uÐ(=Ñ
ä
- Ó
Ü I‰Ih ¨!Õ 
×ÑÐ+¨K¨=ÐÐ÷  -ús ÁBÂBrVcóÆt|dz }|j«std|d«t|d«5}t j
|«cddd«S#1swYyxYw)zLoad snapshot from disk.rMz Snapshot ú
not foundÚrN)r/ÚexistsÚFileNotFoundErrorrSrTÚload)rrVrWrXs rÚ
load_snapshotz MigrationValidator.load_snapshotbs_ä%¨;¨-°uÐ(=Ñ
Ø×# i° ¨}¸JÐ$GÓ
- Ó
 ¨Ü—99˜Q“<÷ ÷ ò ús ¸AÁA có|jjd|d|«|j|«}|j|||«}|S)z"Create and save a system snapshot.z#Creating snapshot for environment: z , label: )r+r;rHrY)rrJrIr3rBrVs rÚcreate_snapshotz"MigrationValidator.create_snapshotksLà ×ÑÐ>¸s¸eÀ9ÈUÈGÐ×+¨GӨװ5¸#Ó>ˆ àÐrÚ snapshot1_idÚ snapshot2_idÚ output_idcóÔ|jjd|d|«|j|«}|j|«}tj||«}||t j «j«|dœ|d<td|dz }t|d«5}tj||d¬ «d
d
d
«|jjd |«|S#1swYŒ)xYw) zCompare two snapshots.zComparing snapshots: ú vs )Ú snapshot1Ú snapshot2r6Ú
comparison_idr8Ú comparison_rMrNrOrPNzComparison saved: ) r+r;r`r Úcompare_snapshotsrr<r=r0rSrTrU) rrcrdrerhriÚ
comparisonÚcomparison_filerXs rrlz$MigrationValidator.compare_snapshotstà ×Ñа¸dÀ<À.Ð×& 4ˆ Ø×& 4ˆ ä×.¨y¸
à×"
ˆ
ô&¨+°i°[ÀÐ(FÑFˆÜ
/ 
 /¨1Ü I‰Ij !¨AÕ 
×ÑÐ-¨i¨[ÐÐ÷  /ús ÂCÃC'NrjÚ format_typeÚ output_filecó:|jjd|d|«td|dz }|j«st d|d«t |d«5}t
j|«}ddd«|d k(r|d
|d }tj|«nI|d k(r6|d
|d}t |d