Skip to content

Commit 9378a71

Browse files
authored
Merge pull request #37 from sap-linuxlab/dev
merge dev to main for release 1.2.0
2 parents 22dfae9 + 5fd8038 commit 9378a71

Some content is hidden

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

44 files changed

+2849
-308
lines changed

.ansible-lint

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
# Collection wide lint-file
3+
# DO NOT CHANGE
4+
exclude_paths:
5+
- .ansible/
6+
- .cache/
7+
- .github/
8+
# - docs/
9+
- changelogs/
10+
- playbooks/
11+
- tests/
12+
enable_list:
13+
- yaml
14+
skip_list:
15+
# We don't want to enforce new Ansible versions for Galaxy:
16+
- meta-runtime[unsupported-version]
17+
# We do not want to use checks which are marked as experimental:
18+
- experimental
19+
# We use ignore_errors for all the assert tasks, which should be acceptable:
20+
- ignore-errors
21+
# We want to allow single digit version numbers in a role's meta/main.yml file:
22+
- schema
23+
# Allow templating inside name because it creates more detailed output:
24+
- name[template]

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,4 @@ __pycache__/
5252
# VSCode
5353
.vscode
5454

55+
.ansible

CHANGELOG.rst

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,77 @@
11
===================================
2-
community.sap_launchpad Release Notes
2+
community.sap\_launchpad Release Notes
33
===================================
44

55
.. contents:: Topics
66

7+
v1.2.0
8+
======
9+
10+
Release Summary
11+
---------------
12+
13+
Enhancements to Modules and introduction of new Ansible Role.
14+
15+
Minor Changes
16+
-------------
17+
- sap_software_download: New Ansible Role with enhanced logic for downloading software using Ansible Module software_center_download (https://github.com/sap-linuxlab/community.sap_launchpad/pull/32)
18+
- sap_software_download: Download stack XML option (https://github.com/sap-linuxlab/community.sap_launchpad/pull/35)
19+
- software_center_download: Add option to search for latest packages (https://github.com/sap-linuxlab/community.sap_launchpad/pull/28)
20+
- maintenance_planner modules: Add option to use Display ID instead of name (https://github.com/sap-linuxlab/community.sap_launchpad/pull/31)
21+
- Collection Readme update and preparation for 1.2.0 release (https://github.com/sap-linuxlab/community.sap_launchpad/pull/34)
722

8-
v1.1.0
23+
Bugfixes
24+
--------
25+
26+
- fix: cache gigya sdk build number (https://github.com/sap-linuxlab/community.sap_launchpad/pull/33)
27+
28+
29+
v1.1.1
930
======
1031

1132
Release Summary
1233
---------------
1334

14-
| Release Date: 2023-11-28
15-
| Community contribution Ansible Module systems_info to query registered systems in me.sap.com
16-
| Community contribution Ansible Module license_keys to create systems and license keys on me.sap.com/licensekey
35+
Various bug fixes
1736

37+
Bugfixes
38+
--------
39+
- Append logic for Account Temporarily Locked Out
40+
- Fix errors in the example file
1841

19-
v1.0.1
42+
43+
v1.1.0 (2023-11-28)
2044
======
2145

2246
Release Summary
2347
---------------
2448

25-
| Release Date: 2023-09-14
26-
| Fix for handling old password prompt
49+
Community contribution with new Ansible Modules `systems_info` and `license_keys``
50+
51+
Minor Changes
52+
-------------
53+
54+
- Create/update systems and license keys (https://github.com/sap-linuxlab/community.sap_launchpad/pull/16)
55+
56+
57+
v1.0.1 (2023-09-14)
58+
======
59+
60+
Release Summary
61+
---------------
62+
63+
Various bug fixes
64+
65+
Bugfixes
66+
--------
67+
68+
- Fix for handling old password prompt
2769

2870

29-
v1.0.0
71+
v1.0.0 (2023-08-22)
3072
======
3173

3274
Release Summary
3375
---------------
3476

35-
| Release Date: 2023-08-22
36-
| Initial Release on Galaxy
77+
Initial Release on Galaxy

README.md

Lines changed: 91 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,131 @@
1-
# community.sap_launchpad Ansible Collection ![Ansible Lint](https://github.com/sap-linuxlab/community.sap_launchpad/actions/workflows/ansible-lint.yml/badge.svg?branch=main)
1+
# community.sap_launchpad Ansible Collection
22

3-
This Ansible Collection executes basic SAP.com Support operations tasks.
3+
![Ansible Lint](https://github.com/sap-linuxlab/community.sap_launchpad/actions/workflows/ansible-lint.yml/badge.svg?branch=main)
44

5-
## Functionality
5+
## Description
66

7-
This Ansible Collection executes basic SAP.com Support operations tasks, including:
7+
This Ansible Collection provides roles and modules to automate interaction with SAP Launchpad API, primarily focusing on downloading software and files from the SAP Software Download Center and Maintenance Planner.
88

9-
- **Software Center Catalog**
10-
- Search and Download of SAP software center catalog files
11-
- Search and Extraction of SAP software center catalog information
12-
- **Maintenance Planner**
13-
- Lookup and download files from an existing 'New Implementation' MP Transaction and Stack, using SAP software center's download basket
9+
Included role and modules cover range of options:
10+
- Preparation of environment before download.
11+
- Download of specific SAP Software files.
12+
- Download of alternative SAP Software files if specific was not available.
13+
- Download of SAP Software files from existing Maintenance Plan transaction.
14+
- Download of Stack file from existing Maintenance Plan transaction.
15+
- Register Systems and License Keys
16+
- Query registered Systems
1417

15-
## Contents
1618

17-
An Ansible Playbook can call either an Ansible Role, or the individual Ansible Modules for handling the API calls to various SAP Support Portal API capabilities:
18-
- **Ansible Roles** (runs multiple Ansible Modules)
19-
- **Ansible Modules** (and adjoining Python Functions)
19+
## Requirements
2020

21-
For further information regarding the development, code structure and execution workflow please read the [Development documentation](./docs/DEVELOPMENT.md).
21+
### Control Nodes
22+
| Type | Version |
23+
| :--- | :--- |
24+
| Operating system | Any operating system with required Python and Ansible versions |
25+
| Python | 3.11 or higher |
26+
| Ansible | 9.9 or higher |
27+
| Ansible-core | 2.16 or higher |
2228

23-
Within this Ansible Collection, there are various Ansible Modules.
2429

25-
#### Ansible Modules
30+
### Managed Nodes
31+
| Type | Version |
32+
| :--- | :--- |
33+
| Operating system | SUSE Linux Enterprise Server 15 SP5+, 16 <br> Red Hat Enterprise Linux 8.x, 9.x, 10.x |
34+
| Python | 3.11 or higher (SUSE) <br> 3.9 or higher (Red Hat) |
2635

27-
| Name &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp; | Summary |
28-
| :-- | :-- |
29-
| [sap_launchpad.software_center_download](./docs/module_software_center_download.md) | search for files and download |
30-
| [sap_launchpad.maintenance_planner_files](./docs/module_maintenance_planner_files.md) | maintenance planner files retrieval |
31-
| [sap_launchpad.maintenance_planner_stack_xml_download](./docs/module_maintenance_planner_stack_xml_download.md) | maintenance planner stack xml download |
36+
**NOTE: Operating system needs to have access to required package repositories either directly or via subscription registration.**
3237

33-
## Execution
3438

35-
### Credentials - SAP User ID
39+
## Installation Instructions
3640

37-
SAP software installation media must be obtained from SAP directly, and requires valid license agreements with SAP in order to access these files.
41+
### Installation
42+
Install this collection with Ansible Galaxy command:
43+
```console
44+
ansible-galaxy collection install community.sap_launchpad
45+
```
3846

39-
An SAP Company Number (SCN) contains one or more Installation Number/s, providing licences for specified SAP Software. When an SAP User ID is created within the SAP Customer Number (SCN), the administrator must provide SAP Download authorizations for the SAP User ID.
47+
Optionally you can include collection in requirements.yml file and include it together with other collections using: `ansible-galaxy collection install -r requirements.yml`
48+
Requirements file need to be maintained in following format:
49+
```yaml
50+
collections:
51+
- name: community.sap_launchpad
52+
```
4053
41-
When an SAP User ID (e.g. S-User) is enabled with and part of an SAP Universal ID, then the `sap_launchpad` Ansible Collection **must** use:
42-
- the SAP User ID
43-
- the password for login with the SAP Universal ID
54+
### Upgrade
55+
Installed Ansible Collection will not be upgraded automatically when Ansible package is upgraded.
4456
45-
In addition, if a SAP Universal ID is used then the recommendation is to check and reset the SAP User ID ‘Account Password’ in the [SAP Universal ID Account Manager](https://account.sap.com/manage/accounts), which will help to avoid any potential conflicts.
57+
To upgrade the collection to the latest available version, run the following command:
58+
```console
59+
ansible-galaxy collection install community.sap_launchpad --upgrade
60+
```
4661

47-
For further information regarding connection errors, please see the FAQ section [Errors with prefix 'SAP SSO authentication failed - '](./docs/FAQ.md#errors-with-prefix-sap-sso-authentication-failed---).
62+
You can also install a specific version of the collection, when you encounter issues with latest version. Please report these issues in affected Role repository if that happens.
63+
Example of downgrading collection to version 1.0.0:
64+
```
65+
ansible-galaxy collection install community.sap_launchpad:==1.0.0
66+
```
4867

49-
### Execution examples
68+
See [Installing collections](https://docs.ansible.com/ansible/latest/collections_guide/collections_installing.html) for more details on installation methods.
5069

51-
There are various methods to execute the Ansible Collection, dependant on the use case. For more information, see [Execution examples with code samples](./docs/EXEC_EXAMPLES.md) and the summary below:
5270

53-
| Execution Scenario | Use Case | Target |
54-
| --- | --- | --- |
55-
| Ansible Playbook <br/>-> source Ansible Collection <br/>-> execute Ansible Task <br/>--> run Ansible Module <br/>---> run Python/Bash Functions | Simple executions with a few activities | Localhost or Remote |
56-
| Ansible Playbook <br/>-> source Ansible Collection <br/>-> execute Ansible Task <br/>--> run Ansible Role <br/>---> run Ansible Module <br/>----> run Python/Bash Functions <br/>--> run Ansible Role<br/>---> ... | Complex executions with various interlinked activities;<br/> run in parallel or sequentially | Localhost or Remote |
57-
| Python/Bash Functions | Simple testing or non-Ansible use cases | Localhost |
71+
## Contents
5872

59-
---
73+
### Ansible Modules
74+
| Name | Summary |
75+
| :-- | :-- |
76+
| [sap_launchpad.software_center_download](./docs/module_software_center_download.md) | Search and download SAP Software file |
77+
| [sap_launchpad.maintenance_planner_files](./docs/module_maintenance_planner_files.md) | Get list of files from Maintenance Planner |
78+
| [sap_launchpad.maintenance_planner_stack_xml_download](./docs/module_maintenance_planner_stack_xml_download.md) | Get stack file from Maintenance Planner |
6079

61-
## Requirements, Dependencies and Testing
80+
### Ansible Roles
81+
| Name | Summary |
82+
| :-- | :-- |
83+
| [sap_software_download](./roles/sap_software_download/README.md) | Prepare environment and download SAP Software files or Maintenance Plan transaction files |
6284

63-
### Operating System requirements
6485

65-
Designed for Linux operating systems, e.g. RHEL.
86+
## Testing
87+
This Ansible Collection was tested across different Operating Systems and SAP products.
6688

67-
This role has not been tested and amended for SAP NetWeaver Application Server instantiations on IBM AIX or Windows Server.
89+
| Type | Version |
90+
| :--- | :--- |
91+
| Operating system | SUSE Linux Enterprise Server 15 SP5+, 16 <br> Red Hat Enterprise Linux 8.x, 9.x, 10.x |
92+
| Python | 3.11, 3.12 |
93+
| Ansible | 9, 10, 11 |
94+
| Ansible-core | 2.16, 2.17, 2.18 |
6895

69-
Assumptions for executing this role include:
70-
- Registered OS License and OS Package repositories are available (from the relevant content delivery network of the OS vendor)
71-
- Simultaneous Ansible Playbook executions will require amendment of Ansible Variable name `softwarecenter_search_list` shown in execution samples (containing the list of installation media to download). This avoids accidental global variable clashes from occuring in Ansible Playbooks executed from the same controller host with an inline Ansible Inventory against 'all' target hosts.
7296

73-
### Python requirements
97+
## Contributing
98+
You can find more information about ways you can contribute at [sap-linuxlab website](https://sap-linuxlab.github.io/initiative_contributions/).
7499

75-
Execution/Controller/Management host:
76-
- Python 3
77100

78-
Target host:
79-
- Python 3, with Python Modules `beautifulsoup4 lxml requests` (see [Execution examples with code samples](./docs/EXEC_EXAMPLES.md))
101+
## Support
102+
You can report any issues using [Issues](https://github.com/sap-linuxlab/community.sap_launchpad/issues) section.
80103

81-
### Testing on execution/controller host
82104

83-
**Tests with Ansible Core release versions:**
84-
- Ansible Core 2.11.5 community edition
105+
## Release Notes and Roadmap
106+
You can find the release notes of this collection in [Changelog file](./CHANGELOG.rst)
85107

86-
**Tests with Python release versions:**
87-
- Python 3.9.7 (i.e. CPython distribution)
88108

89-
**Tests with Operating System release versions:**
90-
- RHEL 8.4
91-
- macOS 11.6 (Big Sur), with Homebrew used for Python 3.x via PyEnv
109+
## Further Information
92110

93-
### Testing on target/remote host
111+
### Credentials - SAP S-User
94112

95-
**Tests with Operating System release versions:**
96-
- RHEL 8.2 for SAP
113+
SAP software files must be obtained from SAP directly, and requires valid license agreements with SAP in order to access these files.
97114

98-
**Tests with Python release versions:**
99-
- Python 3.6.x (i.e. CPython distribution), default for RHEL 8.x and SLES 15.x
100-
- Python 3.8.x (i.e. CPython distribution)
115+
An SAP Company Number (SCN) contains one or more Installation Number/s, providing licenses for specified SAP Software. When an SAP User ID is created within the SAP Customer Number (SCN), the administrator must provide SAP Download authorizations for the SAP User ID.
101116

102-
## License
117+
When an SAP User ID (e.g. S-User) is enabled with and part of an SAP Universal ID, then the `sap_launchpad` Ansible Collection **must** use:
118+
- the SAP User ID
119+
- the password for login with the SAP Universal ID
103120

104-
- [Apache 2.0](./LICENSE)
121+
In addition, if a SAP Universal ID is used then the recommendation is to check and reset the SAP User ID ‘Account Password’ in the [SAP Universal ID Account Manager](https://account.sap.com/manage/accounts), which will help to avoid any potential conflicts.
105122

106-
## Contributors
123+
For further information regarding connection errors, please see the FAQ section [Errors with prefix 'SAP SSO authentication failed - '](./docs/FAQ.md#errors-with-prefix-sap-sso-authentication-failed---).
124+
125+
**Multi Factor Authentication is not supported.**
107126

108-
Contributors to the Ansible Roles within this Ansible Collection, are shown within [/docs/contributors](./docs/CONTRIBUTORS.md).
127+
### Variable Precedence Rules
128+
Please follow [Ansible Precedence guidelines](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable) on how to pass variables when using this collection.
129+
130+
## License
131+
[Apache 2.0](./LICENSE)

changelogs/changelog.yaml

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,43 @@
11
ancestor: null
22
releases:
3-
4-
1.1.0:
3+
1.2.0:
4+
release_date: '2025-04-04'
55
changes:
6-
release_summary: '| Release Date: 2023-11-28
7-
8-
| Community contribution Ansible Module systems_info to query registered systems in me.sap.com
9-
10-
| Community contribution Ansible Module license_keys to create systems and license keys on me.sap.com/licensekey
6+
release_summary: Enhancements to Modules and introduction of new Ansible Role
7+
minor_changes:
8+
- sap_software_download - New Ansible Role with enhanced logic for downloading software using Ansible Module software_center_download (https://github.com/sap-linuxlab/community.sap_launchpad/pull/32)
9+
- sap_software_download - Download stack XML option (https://github.com/sap-linuxlab/community.sap_launchpad/pull/35)
10+
- software_center_download - Add option to search for latest packages (https://github.com/sap-linuxlab/community.sap_launchpad/pull/28)
11+
- maintenance_planner modules - Add option to use Display ID instead of name (https://github.com/sap-linuxlab/community.sap_launchpad/pull/31)
12+
- Collection Readme update and preparation for 1.2.0 release (https://github.com/sap-linuxlab/community.sap_launchpad/pull/34)
13+
bugfixes:
14+
- fix - cache gigya sdk build number (https://github.com/sap-linuxlab/community.sap_launchpad/pull/33)
15+
16+
1.1.1:
17+
release_date: '2024-03-18'
18+
changes:
19+
release_summary: Various bug fixes
20+
bugfixes:
21+
- Append logic for Account Temporarily Locked Out
22+
- Fix errors in the example file
1123

12-
'
24+
1.1.0:
1325
release_date: '2023-11-28'
14-
15-
1.0.1:
1626
changes:
17-
release_summary: '| Release Date: 2023-09-14
27+
release_summary: Community contribution with new Ansible Modules systems_info and license_keys
28+
minor_changes:
29+
- Create/update systems and license keys (https://github.com/sap-linuxlab/community.sap_launchpad/pull/16)
1830

19-
| Fix for handling old password prompt
20-
21-
'
31+
1.0.1:
2232
release_date: '2023-09-14'
33+
changes:
34+
release_summary: Various bug fixes
35+
bugfixes:
36+
- Fix for handling old password prompt
2337

2438
1.0.0:
39+
release_date: '2023-08-22'
2540
changes:
26-
release_summary: '| Release Date: 2023-08-22
27-
28-
| Initial Release on Galaxy
29-
30-
'
41+
release_summary: Initial Release on Galaxy
3142
fragments:
3243
- v1.0.0_summary.yaml
33-
release_date: '2023-08-22'

docs/CONTRIBUTORS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@
88
- **Sean Freeman** - Origin developer of Python API constructs, and project owner
99
- **SVA GmbH - System Vertrieb Alexander GmbH**
1010
- **Rainer Leber** - User acceptance testing
11+
- **SUSE**
12+
- SUSE SAP Emerging Technology Solutions
13+
- **Marcel Mamula** - Developer of Ansible Collection

0 commit comments

Comments
 (0)