Skip to content

Commit c1c56d4

Browse files
Initial PR (#5)
Initial PR --------- Co-authored-by: hdamecharla <[email protected]>
1 parent d9a2f43 commit c1c56d4

File tree

100 files changed

+11149
-38
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+11149
-38
lines changed

.ansible-lint

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@ exclude_paths:
22
- src/modules
33
- src/module_utils
44
- .github
5+
- src/roles/ha_db_hana/tasks/files/
6+
- src/roles/ha_scs/tasks/files/
57

68
skip_list:
79
- no-handler
10+
- run-once[task]
11+
- run-once[play]
812
- key-order[task]
913
- key-order[play]
1014
- name[casing]

.editorconfig

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
# top-most EditorConfig file
4+
root = true
5+
6+
[*]
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
indent_style = space
12+
indent_size = 2
13+
14+
# Python files
15+
[*.py]
16+
end_of_line = lf
17+
charset = utf-8
18+
trim_trailing_whitespace = true
19+
insert_final_newline = true
20+
indent_style = space
21+
indent_size = 4
22+
23+
[*.{y{a,}ml}]
24+
end_of_line = lf
25+
charset = utf-8
26+
trim_trailing_whitespace = true
27+
insert_final_newline = true
28+
indent_style = space
29+
indent_size = 2
30+
31+
[*.{diff,md}]
32+
trim_trailing_whitespace = false
33+
insert_final_newline = false
34+
35+
[*.{sh,bat}]
36+
end_of_line = lf
37+
charset = utf-8
38+
trim_trailing_whitespace = true
39+
insert_final_newline = true
40+
indent_style = tab

.gitattributes

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Specific formats to always use LF
2+
*.py text eol=lf
3+
*.yml text eol=lf
4+
*.yaml text eol=lf
5+
*.sh text eol=lf
6+
*.cfg text eol=lf
7+
8+
# Retain execution permissions for scripts
9+
*.sh text eol=lf diff=sh

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# This file is used to define the code owners for the repository
2+
3+
* @Azure/azure-sap-deployment-automation
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: "[BUG]"
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Additional context**
24+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/workflows/github-actions-ansible-lint.yml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
name: Pull Request - Ansible Lint and Code Coverage
2+
name: Pull Request - Ansible Lint
33
on: [push, pull_request]
44
permissions:
55
contents: read
@@ -39,11 +39,3 @@ jobs:
3939
- name: Run ansible-lint
4040
run: |
4141
ansible-lint src/ -c .ansible-lint
42-
43-
# - name: Run pytest with coverage
44-
# run: |
45-
# pytest --cov=src/ --cov-report=xml tests/
46-
47-
- name: Check code formatting with black
48-
run: |
49-
black --check src/ --config pyproject.toml
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
name: Pull Request - Code Coverage
3+
on: [push, pull_request]
4+
permissions:
5+
contents: read
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Harden Runner
12+
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
13+
with:
14+
egress-policy: audit
15+
16+
- name: Checkout the code
17+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
18+
19+
- name: Setup Python
20+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 #v5.4.0
21+
with:
22+
python-version: '3.x'
23+
24+
- name: Install dependencies
25+
run: |
26+
python -m pip install --upgrade pip
27+
pip install -r requirements.txt
28+
29+
- name: Run pytest with coverage
30+
run: |
31+
pytest --cov=src/ --cov-fail-under=85 --cov-report=xml tests/
32+
33+
- name: Check code formatting with black
34+
run: |
35+
black --check src/ tests/ --config pyproject.toml

.pre-commit-config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
repos:
2+
- repo: https://github.com/psf/black
3+
rev: 23.12.1
4+
hooks:
5+
- id: black
6+
args: [--check, --diff]

README.md

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,75 @@
11
# SAP Testing Automation Framework
22

3-
## Overview
3+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
4+
[![Azure](https://img.shields.io/badge/Microsoft-SAP%20on%20Azure-0078D4?logo=microsoft)](https://docs.microsoft.com/azure/sap)
5+
[![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)
6+
[![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)
7+
[![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)
48

5-
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.
69

7-
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:
10+
## 🔍 Overview
811

9-
- **SAP HANA Database HA Configurations:** Validate SAP HANA database configurations, ensuring resilience, rapid failover, and optimal performance even in adverse conditions.
10-
- **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.
12+
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.
1113

12-
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.
14+
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.
1315

14-
### Purpose
16+
### 📊 Key Features
1517

16-
Testing is crucial for maintaining business continuity in SAP environments. This framework addresses several critical needs:
18+
- **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:
1719

18-
**Risk Mitigation**:
20+
- **SAP HANA Database HA Configurations:** Validate SAP HANA database configurations, ensuring resilience, rapid failover, and optimal performance even in adverse conditions.
21+
22+
- **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.
23+
24+
- **Configuration Validation** - Systematic assessment of SAP system configurations against established best practices and Microsoft-recommended architecture standards to ensure optimal deployment.
25+
26+
- **Detailed Reporting** - Generation of comprehensive test result documentation with analytical summaries and specific remediation guidance for identified issues.
27+
28+
### 🏆 Purpose
29+
30+
Testing is essential for ensuring business continuity in mission-critical SAP environments. This framework systematically addresses the following critical business needs:
31+
32+
- **Risk Mitigation**:
1933
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.
2034

21-
**Compliance**:
35+
- **Compliance**:
2236
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.
2337

24-
**Quality Assurance**:
38+
- **Quality Assurance**:
2539
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.
2640

27-
**Automation**:
41+
- **Automation**:
2842
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.
2943

30-
## Get Started
44+
## 🚦 Get Started
3145

3246
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:
3347

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

3650
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.
3751

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

4054
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.
4155

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

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

45-
## License
60+
## 🆘Support
4661

47-
Copyright (c) Microsoft Corporation.
48-
Licensed under the MIT License.
62+
For support and questions, please:
4963

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

52-
For support and questions, please:
53-
1. Check existing issues
54-
2. Create new issue if needed
55-
3. Provide detailed information about the problem
67+
## 📚 Additional Resources
5668

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

61-
## Contributing
72+
## 🤝 Contributing
6273

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

75-
## Trademarks
86+
## ⚖️ Legal
87+
88+
### License
89+
90+
> Copyright (c) Microsoft Corporation.
91+
> Licensed under the MIT License.
92+
93+
### Trademarks
7694

7795
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
7896
trademarks or logos is subject to and must follow

0 commit comments

Comments
 (0)