Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
989 commits
Select commit Hold shift + click to select a range
3a549f3
Remove redundant LD_LIBRARY_PATH environment variable from resource m…
devanshjainms Feb 3, 2025
4f18da0
Refactor shell command in resource migration task for improved readab…
devanshjainms Feb 3, 2025
2f606f6
Refactor resource registration tasks to set facts and use shell comma…
devanshjainms Feb 3, 2025
9addffa
Remove commented-out functional test entries for primary node crash t…
devanshjainms Feb 3, 2025
eb29ad2
Remove unnecessary condition for automated registration in primary-no…
devanshjainms Feb 3, 2025
4b4d0ef
Add AUTOMATED_REGISTER attribute handling in cluster status checker a…
devanshjainms Feb 3, 2025
f375790
Update primary-crash-index.yml to use cluster_status_pre.AUTOMATED_RE…
devanshjainms Feb 3, 2025
1e5f646
Re-enable primary node crash functional test in input-api.yaml
devanshjainms Feb 3, 2025
68ab56f
Update primary-node-kill.yml to use cluster_status_pre.AUTOMATED_REGI…
devanshjainms Feb 3, 2025
d58c297
Refactor indentation in primary-node-kill.yml for improved readability
devanshjainms Feb 3, 2025
efd14f5
Add tasks for blocking network communication and simulating node cras…
hdamecharla Feb 3, 2025
5ad3bfa
Update primary-echo-b.yml to use cluster_status_pre.AUTOMATED_REGISTE…
devanshjainms Feb 3, 2025
6d1ebd2
Add cleanup step for failed resources and reorder test execution step…
devanshjainms Feb 3, 2025
6793be6
Update input-api.yaml and HA tasks to enable secondary node crash tes…
devanshjainms Feb 3, 2025
3740f18
Add pipefail option to shell commands and introduce new tasks for ASC…
hdamecharla Feb 3, 2025
e38116d
Refactor whitespace in test-case-setup.yml for improved readability
hdamecharla Feb 3, 2025
2bda6c0
Refactor pre-validation checks to use cluster_status_pre.AUTOMATED_RE…
devanshjainms Feb 3, 2025
79134fc
Enhance Ansible lint workflow with security hardening and update depe…
hdamecharla Feb 3, 2025
9dae858
Refactor shell command formatting and improve readability in HANA DB …
hdamecharla Feb 3, 2025
8884473
Refactor shell command formatting and improve whitespace for better r…
hdamecharla Feb 3, 2025
df1cbaf
Refactor node-crash.yml to improve clarity on system crash handling; …
hdamecharla Feb 3, 2025
d3f611b
Add error handling to cluster-report tasks by ignoring errors during …
devanshjainms Feb 3, 2025
76216bb
Ignore errors in cluster-report tasks to prevent failure on file copy…
devanshjainms Feb 3, 2025
8912edf
Remove redundant resource registration tasks from secondary echo and …
devanshjainms Feb 3, 2025
3052911
Refactor secondary crash index tasks and update report styles for imp…
devanshjainms Feb 3, 2025
832692e
Enhance cluster status validation in secondary crash index tasks for …
devanshjainms Feb 3, 2025
f8d5ce0
Refactor cleanup task placement in secondary echo and node kill scrip…
devanshjainms Feb 3, 2025
95b4bd7
Enhance block network communication test logic and enable related fun…
devanshjainms Feb 3, 2025
f0da004
Refactor block network task logic for improved cluster status validat…
devanshjainms Feb 3, 2025
fd25ddb
Fix firewall rule condition checks and improve cluster status validat…
devanshjainms Feb 3, 2025
6382052
Enhance Azure Load Balancer validation and enable related functional …
devanshjainms Feb 3, 2025
db9ac29
Add automation registration call in cluster status checker for improv…
devanshjainms Feb 3, 2025
70e2ba9
Refactor test execution task names and comment out unused HA function…
devanshjainms Feb 3, 2025
4497705
Add error handling for missing log file in HTML report renderer
devanshjainms Feb 3, 2025
f86c622
Add error handling for missing log file and comment out unused HA fun…
devanshjainms Feb 3, 2025
c35f685
Fix condition for determining index server crash success in secondary…
devanshjainms Feb 4, 2025
f8ede0e
Uncomment HA functional test cases in input API configuration
devanshjainms Feb 4, 2025
eeb5910
Refactor condition for cluster status check in block-network task
devanshjainms Feb 4, 2025
e57db4b
Fix default value handling for log messages in post-validations task
devanshjainms Feb 4, 2025
1f495b2
devanshjainms Feb 4, 2025
7c5a557
devanshjainms Feb 4, 2025
14a6ec3
Add wait task for cluster stability before validation in block-networ…
devanshjainms Feb 4, 2025
b6e61d7
Update condition for primary node check and set facts for cluster sta…
devanshjainms Feb 4, 2025
beb47aa
Add debug messages for cluster status and improve default value handl…
devanshjainms Feb 4, 2025
e42aac9
Refactor block network task to set primary_alive fact and simplify co…
devanshjainms Feb 4, 2025
37d5230
Refactor debug messages and maintain test case details in block netwo…
devanshjainms Feb 4, 2025
5f27be0
Refactor block network task to update variable names for clarity and …
devanshjainms Feb 4, 2025
f3d171a
Fix indentation for post validations task in block network YAML
devanshjainms Feb 4, 2025
a187a54
Refactor block network task to improve variable naming and enhance cl…
devanshjainms Feb 4, 2025
628884a
Refactor command logging to remove single quotes from output
devanshjainms Feb 4, 2025
1da6902
Refactor block network task to improve primary node status checks and…
devanshjainms Feb 4, 2025
f230511
Fix typo in block network task by updating 'start' to 'state' for cla…
devanshjainms Feb 4, 2025
e9d13bd
Refactor block network and post validations tasks to remove commented…
devanshjainms Feb 4, 2025
72fc635
Update block network task to clarify wait for reboot completion and e…
devanshjainms Feb 4, 2025
f74dcc5
Increase timeout in block network task to allow more time for reboot …
devanshjainms Feb 4, 2025
22c6230
Reduce timeout in block network task for reboot completion and refact…
devanshjainms Feb 4, 2025
7232303
Add ansible_os_family parameter to get_cluster_status tasks for consi…
devanshjainms Feb 4, 2025
c1f70f4
Refactor error message handling and comment out unused functional tes…
devanshjainms Feb 4, 2025
d528b6d
Simplify stonith-action command for REDHAT and enhance output parsing…
devanshjainms Feb 4, 2025
a5fc642
Refactor stonith_action parsing in ClusterStatusChecker for improved …
devanshjainms Feb 4, 2025
e8b6fce
Comment out unused functional test cases in input API YAML for clarity
devanshjainms Feb 4, 2025
a4bd0cb
Uncomment functional test cases in input API YAML for improved visibi…
devanshjainms Feb 4, 2025
32dbc36
Normalize OS distribution strings in IndexServerCheck tests for consi…
devanshjainms Feb 4, 2025
2b8872b
devanshjainms Feb 6, 2025
1cdd708
Add SAP HANA High Availability test cases and pseudocode documentation
devanshjainms Feb 6, 2025
cc25a5b
Add pseudocode documentation for filesystem freeze, SBD fencing, node…
devanshjainms Feb 6, 2025
b6d4923
Refactor network blocking task to improve node connectivity checks an…
hdamecharla Feb 6, 2025
dd32570
Enhance network block tasks by adding primary node IP retrieval and i…
devanshjainms Feb 6, 2025
7efef69
Comment out unused HA functional test cases in input-api.yaml
devanshjainms Feb 6, 2025
ec71846
Refactor HA test case documentation and enhance network connectivity …
devanshjainms Feb 6, 2025
c05ee33
Refactor network connectivity checks to improve primary and secondary…
devanshjainms Feb 6, 2025
dceb2fb
Enhance BlockNetworkTest function by improving network monitoring, er…
devanshjainms Feb 7, 2025
07a2056
Refactor HA configuration tasks and add YAML constants for improved c…
devanshjainms Feb 8, 2025
ac88227
Update path for loading constants in HAClusterValidator to use the co…
devanshjainms Feb 8, 2025
189e0af
Fix path for loading constants in HAClusterValidator to use the corre…
devanshjainms Feb 8, 2025
23c1f26
Add dynamic search for constants file in SapAutomationQA class
devanshjainms Feb 8, 2025
eda4e81
Refactor HAClusterValidator to accept constants as a parameter and up…
devanshjainms Feb 8, 2025
45dffbb
Fix path for loading pcmk configuration file in ha-config.yml
devanshjainms Feb 8, 2025
8bca626
Update path for loading pcmk configuration in ha-config.yml to use ab…
devanshjainms Feb 8, 2025
252584a
Fix path for loading pcmk constants in ha-config.yml to use relative …
devanshjainms Feb 8, 2025
b3d8483
Fix path for loading pcmk constants in ha-config.yml to use the corre…
devanshjainms Feb 8, 2025
267b875
Fix path for loading pcmk constants in ha-config.yml to use absolute …
devanshjainms Feb 8, 2025
6c13f6f
Fix path for loading pcmk constants in ha-config.yml to use relative …
devanshjainms Feb 8, 2025
44cff15
Fix path for loading pcmk constants in ha-config.yml to use the corre…
devanshjainms Feb 8, 2025
94e9c59
Fix loading of pcmk constants in ha-config.yml to parse YAML correctly
devanshjainms Feb 8, 2025
0f4bfb0
Refactor result update in HAClusterValidator to simplify parameter as…
devanshjainms Feb 8, 2025
c15a97b
No code changes made.
devanshjainms Feb 8, 2025
3765e15
Handle None expected_value in HAClusterValidator to prevent errors
devanshjainms Feb 8, 2025
1dbf873
Enhance HAClusterValidator documentation and refactor parameter handl…
devanshjainms Feb 8, 2025
b0d5c19
Refactor addRow function in report.html to replace 'type' parameter w…
devanshjainms Feb 8, 2025
b01c5db
Remove redundant interval setting in pcmk.yaml for cleaner configuration
devanshjainms Feb 8, 2025
3380b8a
Refactor HAClusterValidator to streamline instance attribute parsing …
devanshjainms Feb 8, 2025
9c011c2
Refactor HAClusterValidator to improve OS parameter parsing and updat…
devanshjainms Feb 8, 2025
5738e1d
Refactor HAClusterValidator to streamline configuration parsing and u…
devanshjainms Feb 8, 2025
903e897
Fix typo in HAClusterValidator to correct 'constraint' to 'constraints'
devanshjainms Feb 8, 2025
02e9996
Add logging for OS parameters retrieval and handle exceptions in HACl…
devanshjainms Feb 8, 2025
69d1b0e
Enhance HAClusterValidator to append success message for HA parameter…
devanshjainms Feb 8, 2025
5df1103
Update report.html to increase font size for better readability
devanshjainms Feb 8, 2025
1d1146e
Remove redundant interval setting from pcmk.yaml for resource monitoring
devanshjainms Feb 8, 2025
0eeafae
Refactor HAClusterValidator to utilize CIB_ADMIN command and enhance …
devanshjainms Feb 10, 2025
5b53ef8
Fix typo in OS_PARAMETERS key and clean up logging statements in HACl…
devanshjainms Feb 10, 2025
10113af
Remove unnecessary shell_command flag from execute_command_subprocess…
devanshjainms Feb 10, 2025
9ee90e8
Enhance parameter retrieval in HAClusterValidator and update pcmk.yam…
devanshjainms Feb 10, 2025
4c2d143
Refactor HAClusterValidator to collect parameters from parsed configu…
devanshjainms Feb 10, 2025
fb6288e
Refactor HAClusterValidator to improve parameter extraction from XML …
devanshjainms Feb 10, 2025
876a20b
Add global.ini parameter parsing to HAClusterValidator and update pcm…
devanshjainms Feb 10, 2025
c5ffb14
Fix error handling for global.ini parameter retrieval in HAClusterVal…
devanshjainms Feb 10, 2025
cc26d86
Add logging for global.ini parameter retrieval in HAClusterValidator
devanshjainms Feb 10, 2025
4075920
Enhance HAClusterValidator to handle missing parameters gracefully
devanshjainms Feb 10, 2025
0e6ee5d
Refactor parameter parsing in HAClusterValidator to use a list for im…
devanshjainms Feb 10, 2025
892ac32
Fix global.ini parameter retrieval to extend parameters list for bett…
devanshjainms Feb 10, 2025
126fe8e
Refactor HAClusterValidator to streamline parameter retrieval and par…
devanshjainms Feb 10, 2025
b6d5391
Enhance HAClusterValidator to support parsing of meta attributes for …
devanshjainms Feb 10, 2025
1076fbe
Refactor AzureLoadBalancer to improve parameter handling and error me…
devanshjainms Feb 10, 2025
288457e
Refactor HAClusterValidator to improve meta attribute handling and up…
devanshjainms Feb 10, 2025
9212595
Enhance HAClusterValidator to improve resource category handling and …
devanshjainms Feb 10, 2025
5e56b85
Refactor HAClusterValidator to improve meta attribute retrieval and e…
devanshjainms Feb 10, 2025
d834395
Refactor pcmk.yaml to separate meta attributes for topology and hana,…
devanshjainms Feb 10, 2025
738710e
Refactor HAClusterValidator to improve error messaging by removing un…
devanshjainms Feb 10, 2025
92b6973
Refactor HAClusterValidator to correct XPath expressions for topology…
devanshjainms Feb 10, 2025
ba4d163
Refactor HAClusterValidator and pcmk.yaml to improve meta attribute p…
devanshjainms Feb 10, 2025
7db4573
Refactor HAClusterValidator to correct XPath expression for hana_meta…
devanshjainms Feb 10, 2025
8f3ae95
Refactor HAClusterValidator and pcmk.yaml to enhance resource configu…
devanshjainms Feb 11, 2025
e98308e
Refactor HAClusterValidator and pcmk.yaml to correct configuration re…
devanshjainms Feb 11, 2025
467f2fe
Refactor HAClusterValidator to correct fencing mechanism retrieval lo…
devanshjainms Feb 11, 2025
bdf1ce0
Refactor pcmk.yaml to streamline valid configurations and enhance pri…
devanshjainms Feb 11, 2025
c06f352
Refactor get_pcmk_properties.py and pcmk.yaml to improve configuratio…
devanshjainms Feb 11, 2025
95d15ef
Refactor get_pcmk_properties.py to skip processing for op_defaults on…
devanshjainms Feb 11, 2025
0d4d8f3
Refactor pcmk.yaml to rename RHEL to REDHAT and restructure operation…
devanshjainms Feb 11, 2025
ca065a6
Refactor input-api.yaml to enable Azure Load Balancer validation and …
devanshjainms Feb 11, 2025
1060c07
Refactor get_pcmk_properties.py to add a check for None values and re…
devanshjainms Feb 11, 2025
244ebc9
Refactor get_azure_lb.py to use lb_constants for load balancer rules …
devanshjainms Feb 11, 2025
369c1bf
Refactor get_azure_lb.py to access AZURE_LOADBALANCER constants for i…
devanshjainms Feb 11, 2025
2d18cf9
Refactor get_azure_lb.py to convert the result to a dictionary for im…
devanshjainms Feb 11, 2025
6b6205c
Refactor get_pcmk_properties.py to simplify value checks and improve …
devanshjainms Feb 11, 2025
bb005dd
Refactor get_azure_lb.py and get_pcmk_properties.py to improve parame…
devanshjainms Feb 11, 2025
722fc2a
Add logging for parameters in AzureLoadBalancer for improved debugging
devanshjainms Feb 11, 2025
dbc2bc6
Refactor AzureLoadBalancer parameter validation to use expected value…
devanshjainms Feb 11, 2025
a578e13
Refactor AzureLoadBalancer to replace extend with append for paramete…
devanshjainms Feb 11, 2025
f500b84
Refactor AzureLoadBalancer to remove unnecessary logging and improve …
devanshjainms Feb 11, 2025
59b02b2
Refactor AzureLoadBalancer to ensure parameter values and expected va…
devanshjainms Feb 11, 2025
80ef760
Update idle_timeout_in_minutes in AzureLoadBalancer rules to 4 for op…
devanshjainms Feb 11, 2025
04c8c66
Update idle_timeout_in_minutes in AzureLoadBalancer rules to 30 for e…
devanshjainms Feb 11, 2025
9f0ba4f
Add constraints parsing functionality to HAClusterValidator
devanshjainms Feb 11, 2025
f310adf
Remove unnecessary dictionary wrapping in constraints parameter creat…
devanshjainms Feb 11, 2025
ad185c1
Refactor parameter creation in HAClusterValidator for improved readab…
devanshjainms Feb 11, 2025
99bf5e8
Improve constraints parameter creation in HAClusterValidator by skipp…
devanshjainms Feb 11, 2025
16635f3
Remove 'with-rsc-role' key from rsc_colocation in constants.yaml
devanshjainms Feb 11, 2025
68feae3
Correct SLES key to SUSE in constants.yaml
devanshjainms Feb 11, 2025
6bd7723
Correct SLES key to SUSE in constants.yaml
devanshjainms Feb 11, 2025
db2ad21
Add HA functional tests for resource migration and node crashes in in…
devanshjainms Feb 11, 2025
5ea5485
Enhance HA functional test descriptions for clarity and detail in inp…
devanshjainms Feb 11, 2025
904f4b4
Refactor constants and enhance log parsing functionality in telemetry…
devanshjainms Feb 11, 2025
2665faa
Add SAP SCS High Availability test cases documentation
hdamecharla Feb 11, 2025
3f2aae2
Add logging for invalid telemetry data destination in TelemetryDataSe…
devanshjainms Feb 11, 2025
e5563fc
Add data_sent flag to TelemetryDataSender and refactor authorization …
devanshjainms Feb 11, 2025
42f81c0
Add logging for parameter validation and telemetry data sending in Te…
devanshjainms Feb 11, 2025
b2fa9e6
Update input-api.yaml to enable Azure Load Balancer validation test a…
devanshjainms Feb 11, 2025
d9ab2c2
Add TelemetryDataDestination enum and update telemetry data sender logic
devanshjainms Feb 11, 2025
df6cfb8
Update telemetry data destination validation to use specific enum values
devanshjainms Feb 11, 2025
ed50ab9
Fix typo in KUSTO telemetry data destination value
devanshjainms Feb 11, 2025
a0ff0df
Refactor telemetry data sending logic to streamline method invocation
devanshjainms Feb 11, 2025
ff39613
Simplify telemetry data sending by removing unnecessary assignment in…
devanshjainms Feb 11, 2025
4e26aaa
Add data_logged flag to telemetry result and streamline error handling
devanshjainms Feb 11, 2025
bc1266e
Enhance telemetry data logging and status updates with improved messa…
devanshjainms Feb 11, 2025
7adc491
Update SAP parameters and add architecture documentation for testing …
devanshjainms Feb 11, 2025
24eb671
Update README to enhance getting started section with integration opt…
devanshjainms Feb 11, 2025
1d9bd0e
Remove key benefits section from README to streamline getting started…
devanshjainms Feb 11, 2025
e1f1cb6
Rename "SAP Automated Testing Framework" to "SAP Testing Automation F…
devanshjainms Feb 11, 2025
ac64d1e
Update telemetry setup instructions to specify Personal Access Token …
devanshjainms Feb 12, 2025
8b93d3b
devanshjainms Feb 12, 2025
5b9c2fd
Refactor import statements in log_parser.py for improved module resol…
devanshjainms Feb 12, 2025
1e46864
Enhance pull request template with detailed sections for problem stat…
devanshjainms Feb 12, 2025
4f54c68
Merge branch 'main' of https://github.com/Azure/sap-automation-qa int…
devanshjainms Feb 12, 2025
a166609
Enable pytest coverage reporting in GitHub Actions workflow
devanshjainms Feb 12, 2025
3a60801
Add filesystem_freeze module and corresponding unit tests; update ans…
devanshjainms Feb 13, 2025
b333c7a
Update ansible-lint exclusions and refactor HA Testing Framework play…
devanshjainms Feb 13, 2025
0a20eed
Update ansible-lint exclusions to skip run_once tasks and plays
devanshjainms Feb 13, 2025
a1613c4
Update ansible-lint exclusions to skip run_once tasks and plays
devanshjainms Feb 13, 2025
3ec93cd
Fix ansible-lint exclusions for run_once tasks and plays
devanshjainms Feb 13, 2025
5787a4d
Update test assertion for get_load_balancers method in Azure Load Bal…
devanshjainms Feb 13, 2025
daeb630
Refactor assertions in get_load_balancers_details test for clarity
devanshjainms Feb 13, 2025
c0d8098
Refactor code for improved readability in package list and cluster st…
devanshjainms Feb 13, 2025
f064f34
Update pytest coverage threshold to fail under 85%
devanshjainms Feb 13, 2025
9d53980
Add pre-commit configuration and improve code documentation and struc…
devanshjainms Feb 13, 2025
0fab0e2
Add fake_open_factory to improve file handling in HAClusterValidator …
devanshjainms Feb 13, 2025
d3b052d
Add pcmk_constants to ha-config.yml and remove node-crash.yml
devanshjainms Feb 13, 2025
ec7e35c
Rename scs_instance_number to ascs_instance_number for consistency in…
devanshjainms Feb 13, 2025
2c17ccd
Refactor get_pcmk_properties_scs.py to simplify return statement in g…
devanshjainms Feb 13, 2025
d42b791
Add fencing_mechanism parameter to HAClusterValidator and update rela…
devanshjainms Feb 13, 2025
f20f0a8
Enhance HAClusterValidator to support resource parsing and add ERS co…
devanshjainms Feb 13, 2025
cc41079
Add _parse_nvpair_elements method to HAClusterValidator for parsing n…
devanshjainms Feb 13, 2025
f686b1d
Update constants.yaml to restructure operations and add azureevents c…
devanshjainms Feb 14, 2025
02e94dd
Enhance HAClusterValidator to parse SAPInstance resources for ASCS an…
devanshjainms Feb 14, 2025
c5082e6
Add ASCS and ERS SAPInstance resource parsing to HAClusterValidator
devanshjainms Feb 14, 2025
10ba9d1
Refactor HAClusterValidator to include ASCS and ERS in resource categ…
devanshjainms Feb 14, 2025
0f8305c
Add OS parameters parsing and update constraints in HAClusterValidator
devanshjainms Feb 14, 2025
2f49290
Rename get_pcmk_properties task to get_pcmk_properties_db and remove …
devanshjainms Feb 14, 2025
7766d18
Update black linting to check both src and tests directories
devanshjainms Feb 14, 2025
4f6c0b5
Remove unnecessary blank lines in constants.yaml
devanshjainms Feb 14, 2025
68bddbf
Exclude ha_scs task files from ansible-lint checks
devanshjainms Feb 14, 2025
cb8989e
Refactor GitHub Actions workflows: separate code coverage into its ow…
devanshjainms Feb 14, 2025
43b3fbe
Add step to install dependencies in GitHub Actions Ansible lint workflow
devanshjainms Feb 14, 2025
09ad7ee
Enhance test execution reporting: include hostname and adjust status …
devanshjainms Mar 4, 2025
ad7200a
Refactor HAClusterValidator: enhance resource_defaults retrieval for …
devanshjainms Mar 4, 2025
c2cc5e5
Add hostname fact retrieval for test execution in HA DB tasks
devanshjainms Mar 4, 2025
bc073e8
Enhance RESOURCE_DEFAULTS in constants.yaml: add AFA and ISCSI config…
devanshjainms Mar 4, 2025
2c5c6b3
Enhance test execution tasks: update hostname retrieval to use hostva…
devanshjainms Mar 4, 2025
9af4399
Update test execution hostname retrieval to use virtual_host for prim…
devanshjainms Mar 4, 2025
ef50eb4
Update post-validations to use virtual_host as default for test execu…
devanshjainms Mar 4, 2025
1726ca2
Update post-validations to set default timestamps for test execution …
devanshjainms Mar 4, 2025
9f7feba
Update test case message for HANA DB cluster status checks to provide…
devanshjainms Mar 4, 2025
e7df3f2
Refactor HA Functional Test definitions: enable Resource Migration an…
devanshjainms Mar 4, 2025
98ddbe0
Uncomment HA Functional Test definitions for Primary Node Kill, Crash…
devanshjainms Mar 4, 2025
0d6a9a7
Add HA Functional Test definitions for Secondary Node Kill and Echo B…
devanshjainms Mar 4, 2025
4a33db2
Remove unnecessary newline in fs-freeze.yml post validations task
devanshjainms Mar 4, 2025
c94afe8
Add HA Functional Test definitions for Resource Migration, Primary No…
devanshjainms Mar 4, 2025
3a6bd1b
Update task includes for post and pre-validations to use database-spe…
devanshjainms Mar 4, 2025
10c6170
Fix attribute name casing and streamline node attribute processing in…
devanshjainms Mar 4, 2025
bc5e182
Remove unnecessary call to _get_automation_register in ClusterStatusC…
devanshjainms Mar 4, 2025
986ac48
Fix variable reference in cleanup resource test execution condition
devanshjainms Mar 4, 2025
b5e2bae
Remove unnecessary pre-validation location constraints from ASCS migr…
devanshjainms Mar 4, 2025
a7b1436
Add cleanup step for failed resources in pre-validation task
devanshjainms Mar 4, 2025
d052533
Refactor ASCS migration task descriptions and remove unused block net…
devanshjainms Mar 4, 2025
12ac56a
Update test group configuration to enable ASCS Node Crash and refine …
devanshjainms Mar 5, 2025
149dfba
Add async execution for ASCS node crash simulation command
devanshjainms Mar 5, 2025
29d3608
Change command to shell module for ASCS node crash and fix typo in va…
devanshjainms Mar 5, 2025
ee9113f
Update SCS high availability documentation and refactor ASCS resource…
devanshjainms Mar 5, 2025
18bbb15
Add unit tests for get_cluster_status_scs module and remove legacy tests
devanshjainms Mar 6, 2025
f331cfc
Remove legacy HA functional test entries from input-api.yaml
devanshjainms Mar 6, 2025
59ca6f3
Rename get_cluster_status to get_cluster_status_db for clarity in HAN…
devanshjainms Mar 6, 2025
febc1d2
Add logging for cluster readiness check in SCSClusterStatusChecker
devanshjainms Mar 6, 2025
9ef298a
Add debug task to display ansible_os_family during SCS pre-validation
devanshjainms Mar 6, 2025
43cbd2c
Refactor cluster status checking logic and improve logging for node a…
devanshjainms Mar 6, 2025
d75e667
Refactor cluster status checker to enhance functionality and improve …
devanshjainms Mar 6, 2025
7d60e47
Refactor SCS cluster status checker to improve clarity and functionality
devanshjainms Mar 6, 2025
f087d29
Refactor cluster status validation method to improve readability and …
devanshjainms Mar 6, 2025
9510f54
Refactor SCS cluster status checker to simplify node attribute handli…
devanshjainms Mar 6, 2025
14fb7e3
Comment out the checker.run() call in the cluster status module
devanshjainms Mar 6, 2025
33b104b
Refactor cluster status checker to enhance functionality and improve …
devanshjainms Mar 6, 2025
79967d7
Remove temporary debug task for ansible_os_family in pre-validation f…
devanshjainms Mar 6, 2025
818c762
Reorder tasks in pre-validation for SCS nodes to ensure proper execut…
devanshjainms Mar 6, 2025
0629524
Refactor SCS cluster status checker to enhance node attribute process…
devanshjainms Mar 6, 2025
efcc867
Add HA functional tests for primary and secondary node failures to en…
devanshjainms Mar 7, 2025
c4b8415
Fix SCS cluster status checker to return correct node attributes and …
devanshjainms Mar 7, 2025
345300e
Add .gitattributes and CODEOWNERS files; update Jinja2 version and im…
devanshjainms Mar 12, 2025
8c63b85
Update SDAF integration documentation to clarify prerequisites and st…
devanshjainms Mar 12, 2025
c82521a
Update Python coverage badge in README for improved clarity
devanshjainms Mar 12, 2025
2682ef9
Update README badges for improved clarity and add OpenSSF Scorecard b…
devanshjainms Mar 12, 2025
eec831d
Update section header in README to enhance readability with an icon
devanshjainms Mar 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .ansible-lint
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@ exclude_paths:
- src/modules
- src/module_utils
- .github
- src/roles/ha_db_hana/tasks/files/
- src/roles/ha_scs/tasks/files/

skip_list:
- no-handler
- run-once[task]
- run-once[play]
- key-order[task]
- key-order[play]
- name[casing]
Expand Down
40 changes: 40 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2

# Python files
[*.py]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4

[*.{y{a,}ml}]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2

[*.{diff,md}]
trim_trailing_whitespace = false
insert_final_newline = false

[*.{sh,bat}]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = tab
9 changes: 9 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Specific formats to always use LF
*.py text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.sh text eol=lf
*.cfg text eol=lf

# Retain execution permissions for scripts
*.sh text eol=lf diff=sh
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# This file is used to define the code owners for the repository

* @Azure/azure-sap-deployment-automation
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
10 changes: 1 addition & 9 deletions .github/workflows/github-actions-ansible-lint.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

name: Pull Request - Ansible Lint and Code Coverage
name: Pull Request - Ansible Lint
on: [push, pull_request]
permissions:
contents: read
Expand Down Expand Up @@ -39,11 +39,3 @@ jobs:
- name: Run ansible-lint
run: |
ansible-lint src/ -c .ansible-lint

# - name: Run pytest with coverage
# run: |
# pytest --cov=src/ --cov-report=xml tests/

- name: Check code formatting with black
run: |
black --check src/ --config pyproject.toml
35 changes: 35 additions & 0 deletions .github/workflows/github-actions-code-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

name: Pull Request - Code Coverage
on: [push, pull_request]
permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
with:
egress-policy: audit

- name: Checkout the code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2

- name: Setup Python
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 #v5.4.0
with:
python-version: '3.x'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Run pytest with coverage
run: |
pytest --cov=src/ --cov-fail-under=85 --cov-report=xml tests/

- name: Check code formatting with black
run: |
black --check src/ tests/ --config pyproject.toml
6 changes: 6 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
repos:
- repo: https://github.com/psf/black
rev: 23.12.1
hooks:
- id: black
args: [--check, --diff]
72 changes: 45 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,75 @@
# SAP Testing Automation Framework

## Overview
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Azure](https://img.shields.io/badge/Microsoft-SAP%20on%20Azure-0078D4?logo=microsoft)](https://docs.microsoft.com/azure/sap)
[![Python Coverage](https://img.shields.io/badge/Code%20Coverage-85%25-success?logo=python&logoColor=white)](https://github.com/Azure/sap-automation-qa/actions/workflows/github-actions-code-coverage.yml)
[![Ansible Lint](https://github.com/Azure/sap-automation-qa/actions/workflows/github-actions-ansible-lint.yml/badge.svg)](https://github.com/Azure/sap-automation-qa/actions/workflows/github-actions-ansible-lint.yml)
[![OpenSSF Scorecard](https://img.shields.io/ossf-scorecard/github.com/Azure/sap-automation-qa)](https://scorecard.dev/viewer/?uri=github.com/Azure/sap-automation-qa)

The SAP Testing Automation Framework is a automation solution designed to validate the configuration and performance of SAP systems on Azure under a wide array of scenarios. This framework not only streamlines the testing of SAP environments but also brings confidence and assurance by simulating real-world conditions.

Currently, the framework offers test scenarios focusing on high availability functional testing and configuration checks. Under the high availability category, we address critical components including:
## 🔍 Overview

- **SAP HANA Database HA Configurations:** Validate SAP HANA database configurations, ensuring resilience, rapid failover, and optimal performance even in adverse conditions.
- **SAP Central Services (SCS/ERS) HA Setups:** Test and verify the configuration integrity and robustness of SAP Central Services, including load balancing, failover mechanisms, and component interoperability.
The SAP Testing Automation Framework is an open-source orchestration tool for validating SAP deployments on Microsoft Azure. This framework systematically evaluates system configuration, performance, and resilience across diverse operational scenarios, providing organizations with actionable insights and quantifiable results. Through thorough testing, the framework helps SAP admins ensure their environments meet performance benchmarks and availability requirements. By simulating real conditions in controlled environments, admins can identify potential issues before they affect production systems.

By integrating comprehensive monitoring, detailed logging, and automated evaluation, our framework transforms how organizations maintain and enhance the reliability of their SAP landscapes on Azure.
The framework incorporates advanced monitoring capabilities, detailed analytical reporting, and fully automated evaluation processes, delivering significant operational efficiencies while enhancing the overall reliability of SAP landscapes on Azure.

### Purpose
### 📊 Key Features

Testing is crucial for maintaining business continuity in SAP environments. This framework addresses several critical needs:
- **High Availability Testing** - Comprehensive validation of failover mechanisms for both SAP HANA database clusters and Central Services components, ensuring business continuity under adverse conditions. Currently, the framework offers test scenarios focusing on high availability functional testing and configuration checks. Under the high availability category, we address critical components including:

**Risk Mitigation**:
- **SAP HANA Database HA Configurations:** Validate SAP HANA database configurations, ensuring resilience, rapid failover, and optimal performance even in adverse conditions.

- **SAP Central Services (SCS/ERS) HA Setups:** Test and verify the configuration integrity and robustness of SAP Central Services, including load balancing, failover mechanisms, and component interoperability.

- **Configuration Validation** - Systematic assessment of SAP system configurations against established best practices and Microsoft-recommended architecture standards to ensure optimal deployment.

- **Detailed Reporting** - Generation of comprehensive test result documentation with analytical summaries and specific remediation guidance for identified issues.

### 🏆 Purpose

Testing is essential for ensuring business continuity in mission-critical SAP environments. This framework systematically addresses the following critical business needs:

- **Risk Mitigation**:
The framework provides systematic testing of failure scenarios, helping organizations identify and address potential issues before they impact production systems. It simulates various failure modes, including node failures, network interruptions, and storage issues, ensuring that recovery mechanisms function as designed.

**Compliance**:
- **Compliance**:
Organizations must often demonstrate that their SAP systems meet specific availability requirements. This framework provides documented evidence of HA testing, including detailed logs and reports that can be used for audit purposes. It helps ensure that HA implementations align with organizational standards and regulatory requirements.

**Quality Assurance**:
- **Quality Assurance**:
Through automated and consistent testing procedures, the framework helps maintain high quality standards across SAP infrastructure components. It validates that all HA mechanisms, including clustering software, storage replication, and application-level failover, work together seamlessly.

**Automation**:
- **Automation**:
Manual testing of HA configurations is time-consuming and prone to human error. This framework automates the entire testing process, from setup to execution and reporting, significantly reducing the operational overhead of HA testing while improving accuracy and consistency.

## Get Started
## 🚦 Get Started

There are two primary ways to get started with the SAP Testing Automated Framework. Choose the path that best fits your current environment and objectives:

### [Integration with SAP Deployment Automation Framework (SDAF)](./docs/SDAF_INTEGRATION.md)
### Option 1: [Integration with SAP Deployment Automation Framework (SDAF)](./docs/SDAF_INTEGRATION.md)

If you already have [SDAF](https://github.com/Azure/sap-automation) environment set up, integrating the SAP Testing Automation Framework is a natural extension that allows you to leverage existing deployment pipelines and configurations.

### [Getting Started with High Availability Testing (Standalone)](./docs/GETTING_STARTED.md)
### Option 2: [Getting Started with High Availability Testing (Standalone)](./docs/HIGH_AVAILABILITY.md)

For users focused solely on validating SAP functionality and configurations, the standalone approach offers a streamlined process to test critical SAP components without the complexity of full deployment integration.

### 🏗️ [Architecture and Components](./docs/ARCHITECTURE.md)

### [Architecture and Components](./docs/ARCHITECTURE.md)
Curious about how it all works? Check out our detailed architecture documentation.

## License
## 🆘Support

Copyright (c) Microsoft Corporation.
Licensed under the MIT License.
For support and questions, please:

## Support
1. Check [existing issues](https://github.com/Azure/sap-automation-qa/issues/)
2. Create new issue if needed and provide detailed information about the problem

For support and questions, please:
1. Check existing issues
2. Create new issue if needed
3. Provide detailed information about the problem
## 📚 Additional Resources

## Additional Resources
- [Azure SAP Documentation](https://docs.microsoft.com/azure/sap)
- [SAP on Azure: High Availability Guide](https://docs.microsoft.com/azure/sap/workloads/sap-high-availability-guide-start)

## Contributing
## 🤝 Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
Expand All @@ -72,7 +83,14 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [[email protected]](mailto:[email protected]) with any additional questions or comments.

## Trademarks
## ⚖️ Legal

### License

> Copyright (c) Microsoft Corporation.
> Licensed under the MIT License.

### Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
Expand Down
90 changes: 90 additions & 0 deletions WORKSPACES/SYSTEM/DEV-WEEU-SAP01-X00/hosts.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
X00_DB:
hosts:
x00dhdb00l01f:
ansible_host : 127.0.0.1
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
virtual_host : x00dhdb00l01f
become_user : root
os_type : linux
vm_name : AZURE_VM_NAME

x00dhdb00l11f:
ansible_host : 127.0.0.1
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
virtual_host : x00dhdb00l11f
become_user : root
os_type : linux
vm_name : AZURE_VM_NAME_2

vars:
node_tier : hana
supported_tiers : [hana]

X00_SCS:
hosts:
x00scs00l1f8:
ansible_host : 127.0.0.1
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
virtual_host : x00scs00l01f
become_user : root
os_type : linux
vm_name : AZURE_VM_NAME_3

vars:
node_tier : scs
supported_tiers : [scs]

X00_ERS:
hosts:
x00scs01l1f8:
ansible_host : 127.0.0.1
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
virtual_host : x00ers00l01f
become_user : root
os_type : linux
vm_name : AZURE_VM_NAME_4

vars:
node_tier : ers
supported_tiers : [ers]


X00_PAS:
hosts:
x00app00l1f8:
ansible_host : 127.0.0.1
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
virtual_host : x00app00l01f
become_user : root
os_type : linux
vm_name : AZURE_VM_NAME_5

vars:
node_tier : pas
supported_tiers : [pas]

X00_APP:
hosts:
x00app01l1f8:
ansible_host : 127.0.0.1
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
virtual_host : x00app01l1f8
become_user : root
os_type : linux
vm_name : AZURE_VM_NAME_6

vars:
node_tier : app
supported_tiers : [app]
Loading