Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update module github.com/apenella/go-ansible to v2 #343

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Apr 20, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/apenella/go-ansible v1.3.0 -> v2.0.1 age adoption passing confidence

Release Notes

apenella/go-ansible (github.com/apenella/go-ansible)

v2.0.1

Compare Source

Fixed
  • Fixed the String method on the AnsiblePlaybookOptions and AnsibleAdhocOptions structs that do not return the verbose flags correctly.

v2.0.0

Compare Source

Version 2.0.0 of go-ansible introduces several disruptive changes. Read the upgrade guide carefully before proceeding with the upgrade.

BREAKING CHANGES

Note
The latest major version of go-ansible, version 2.x, introduced significant and breaking changes. If you are currently using a version prior to 2.x, please refer to the upgrade guide for detailed information on how to migrate to version 2.x.

  • The Go module name has been changed from github.com/apenella/go-ansible to github.com/apenella/go-ansible/v2. So, you need to update your import paths to use the new module name.
  • The relationship between the executor and AnsiblePlaybookCmd / AnsibleAdhocCmd / AnsibleInvetoryCmd has undergone important changes.
    • Inversion of responsibilities: The executor is now responsible for executing external commands, while AnsiblePlaybookCmd, AnsibleInventoryCmd and AnsibleAdhocCmd have cut down their responsibilities, primarily focusing on generating the command to be executed.
    • Method and Attribute Removal: The following methods and attributes have been removed on AnsiblePlaybookCmd, AnsibleInventoryCmd and AnsibleAdhocCmd:
      • The Run method.
      • The Exec and StdoutCallback attributes.
    • Attributes Renaming: The Options attribute has been renamed to PlaybookOptions in AnsiblePlaybookCmd, AdhocOptions in AnsibleAdhocCmd and InventoryOptions in AnsibleInventoryCmd.
  • The Executor interface has undergone a significant signature change. This change entails the removal of the following arguments resultsFunc and options. The current signature is: Execute(ctx context.Context) error.
  • The github.com/apenella/go-ansible/pkg/options package has been removed. After that deletion, the attributes from AnsibleConnectionOptions and AnsiblePrivilegeEscalationOptions attributes have been moved to the PlaybookOptions, AdhocOptions and InventoryOptions structs.
  • The github.com/apenella/go-ansible/pkg/stdoutcallback package has been removed. Its responsibilities have been absorbed by two distinc packages github.com/apenella/go-ansible/v2/pkg/execute/result, which manages the output of the commands, and github.com/apenella/go-ansible/v2/pkg/execute/stdoutcallback that enables the setting of the stdout callback.
  • The constants AnsibleForceColorEnv and AnsibleHostKeyCheckingEnv have been removed from the github.com/apenella/go-ansible/pkg/options package.
  • The functions AnsibleForceColor, AnsibleAvoidHostKeyChecking and AnsibleSetEnv have been removed from the github.com/apenella/go-ansible/pkg/options package. Use the ExecutorWithAnsibleConfigurationSettings decorator instead defined in the github.com/apenella/go-ansible/v2/pkg/execute/configuration package.
  • The methods WithWrite and WithShowduration have been removed from the ExecutorTimeMeasurement decorator. Instead, a new method named Duration has been introduced for obtaining the duration of the execution.
  • In the AnsiblePlaybookJSONResultsPlayTaskHostsItem struct, the attributes StdoutLines and StderrLines have chnage their type from []string to []interface{}.
Fixed
  • Quote properly the attributes SCPExtraArgs, SFTPExtraArgs, SSHCommonArgs, SSHExtraArgs in AnsibleAdhocOptions and AnsiblePlaybookOptions structs when generating the command to be executed. #​140
  • When using the JSON Stdout Callback method combined with enabled verbosity in the command, it causes an error during JSON parsing. To resolve this issue, the DefaultExecute struct includes the Quiet method, which removes verbosity from the executed command. #​110
Added
  • AnsibleAdhocExecute executor has been introduced. That executor allows you to create an executor to run ansible commands using the default settings of DefaultExecute. This executor is located in the github.com/apenella/go-ansible/v2/pkg/execute/adhoc package.
  • AnsibleInventoryExecute executor has been introduced. That executor allows you to create an executor to run ansible-inventory commands using the default settings of DefaultExecute. This executor is located in the github.com/apenella/go-ansible/v2/pkg/execute/inventory package.
  • ansibleplaybook-embed-python example to demonstrate how to use go-ansible library along with the go-embed-python package.
  • ansibleplaybook-extravars example to show how to configure extra vars when running an Ansible playbook command.
  • ansibleplaybook-ssh example to show how to execute an Ansible playbook using SSH as the connection method.
  • AnsiblePlaybookExecute executor has been introduced. That executor allows you to create an executor to run ansible-playbook commands using the default settings of DefaultExecute. This executor is located in the github.com/apenella/go-ansible/v2/pkg/execute/playbook package.
  • Commander interface has been introduced in the github.com/apenella/go-ansible/v2/pkg/execute package. This interface defines the criteria for a struct to be compliant in generating execution commands.
  • ErrorEnricher interface has been introduced in the github.com/apenella/go-ansible/v2/pkg/execute package. This interface defines the criteria for a struct to be compliant in enriching the error message of the command execution.
  • Executabler interface has been introduced in the github.com/apenella/go-ansible/v2/pkg/execute package. This interface defines the criteria for a struct to be compliant in executing external commands.
  • ExecutorEnvVarSetter interface in github.com/apenella/go-ansible/v2/pkg/execute/configuration defines the criteria for a struct to be compliant in setting Ansible configuration.
  • ExecutorQuietStdoutCallbackSetter interface has been introduced in the github.com/apenella/go-ansible/v2/pkg/execute/stdoutcallback package. This interface defines the criteria for a struct to be compliant in setting an executor that accepts the stdout callback configuration and that enables the Quiet method for Ansible executions.
  • ExecutorStdoutCallbackSetter interface has been introduced in the github.com/apenella/go-ansible/v2/pkg/execute/stdoutcallback package. This interface defines the criteria for a struct to be compliant in setting an executor that accepts the stdout callback configuration for Ansible executions.
  • github.com/apenella/go-ansible/v2/internal/executable/os/exec package has been introduced. This package serves as a wrapper for os.exec.
  • github.com/apenella/go-ansible/v2/pkg/execute/configuration package includes the ExecutorWithAnsibleConfigurationSettings struct, which acts as a decorator that facilitates the configuration of Ansible settings within the executor.
  • github.com/apenella/go-ansible/v2/pkg/execute/result/default package has been introduced. This package offers the default component for printing execution results. It supersedes the DefaultStdoutCallbackResults function that was previously defined in the github.com/apenella/go-ansible/v2/pkg/stdoutcallback package.
  • github.com/apenella/go-ansible/v2/pkg/execute/result/json package has been introduced. This package offers the component for printing execution results from the JSON stdout callback. It supersedes the JSONStdoutCallbackResults function that was previously defined in the github.com/apenella/go-ansible/v2/pkg/stdoutcallback package.
  • github.com/apenella/go-ansible/v2/pkg/execute/stdoutcallback. package has been introduced and offers multiple decorators designed to set the stdout callback for Ansible executions.
  • github.com/apenella/go-ansible/v2/pkg/execute/workflow package has been introduced and allows you to define a workflow for executing multiple commands in a sequence.
  • github.com/apenella/go-ansible/v2/pkg/galaxy/collection/install package has been introduced. This package allows you to install Ansible collections from the Ansible Galaxy. Along with this package, the example workflowexecute-ansibleplaybook-with-galaxy-install-collection has been added to demonstrate how to install an Ansible collection and execute an Ansible playbook in a sequence.
  • github.com/apenella/go-ansible/v2/pkg/galaxy/role/install package has been introduced. This package allows you to install Ansible roles from the Ansible Galaxy. Along with this package, the example workflowexecute-ansibleplaybook-with-galaxy-install-role has been added to demonstrate how to install an Ansible role and execute an Ansible playbook in a sequence.
  • golangci-lint has been added to the CI/CD pipeline to ensure the code quality.
  • NewAnsibleAdhocCmd, NewAnsibleInventoryCmd and NewAnsiblePlaybookCmd functions have been introduced. These functions are responsible for creating the AnsibleAdhocCmd, AnsibleInventoryCmd and AnsiblePlaybookCmd structs, respectively.
  • Path attribute has been added to the AnsiblePlaybookJSONResultsPlayTaskHostsItem struct.
  • ResultsOutputer interface has been introduced in the github.com/apenella/go-ansible/v2/pkg/execute/result package. This interface defines the criteria for a struct to be compliant in printing execution results.
  • A utility to generate the code for the configuration package has been introduced. This utility is located in the utils/cmd/configGenerator.go.
  • The Quiet method has been added to the DefaultExecute struct. This method forces to remove verbosity from the executed command.
Changed
  • DefaultExecute used the String method from the Commander to include the command in the error message when the execution fails, instead of using the the String method from the os/exec.Cmd struct.
  • In the AnsiblePlaybookJSONResultsPlayTaskHostsItem struct, the attributes StdoutLines and StderrLines have chnage their type from []string to []interface{}.
  • The AnsibleAdhocCmd struct has been updated to implement the Commander interface.
  • The AnsibleInventoryCmd struct has been updated to implement the Commander interface.
  • The AnsiblePlaybookCmd struct has been updated to implement the Commander interface.
  • The AnsiblePlaybookOptions and AnsibleAdhocOptions structs have been updated to include the attributes from AnsibleConnectionOptions and AnsiblePrivilegeEscalationOptions.
  • The DefaultExecute struct has been updated to have a new attribute named Exec of type Executabler that is responsible for executing external commands.
  • The DefaultExecute struct has been updated to have a new attribute named Output of type ResultsOutputer that is responsible for printing the execution's output.
  • The DefaultExecute struct has been updated to implement the Executor interface.
  • The DefaultExecute struct has been updated to implement the ExecutorEnvVarSetter interface.
  • The DefaultExecute struct has been updated to implement the ExecutorStdoutCallbackSetter interface.
  • The Execute method in the DefaultExecute struct has been updated to return an error on the deferred function when the command execution fails.
  • The Options attribute in AnsibleAdhocCmd struct has been renamed to AdhocOptions.
  • The Options attribute in AnsibleInventoryCmd struct has been renamed to InventoryOptions.
  • The Options attribute in AnsiblePlaybookCmd struct has been renamed to PlaybookOptions.
  • The Read method in the ReadPasswordFromEnvVar struct from the github.com/apenella/go-ansible/v2/vault/password/envvars package has been updated to log a warning message when the environment variable is not set.
  • The examples has been adapted to use executor as the component to execute Ansible commands.
  • The package github.com/apenella/go-ansible/pkg/stdoutcallback/result/transformer has been moved to github.com/apenella/go-ansible/v2/pkg/execute/result/transformer.
  • Upgrade the Go version from 1.19 to 1.22.
Removed
  • Remove from DefaultExecute ansible-playbook error enrichment.
  • The Exec attribute has been removed from AnsiblePlaybookCmd and AdhocPlaybookCmd.
  • The github.com/apenella/go-ansible/pkg/options package has been removed. After the AnsibleConnectionOptions and AnsiblePrivilegeEscalationOptions structs are not available anymore.
  • The github.com/apenella/go-ansible/pkg/stdoutcallback package has been removed.
  • The Run method has been removed from the AnsiblePlaybookCmd and AdhocPlaybookCmd structs.
  • The ShowDuration attribute in the DefaultExecute struct has been removed.
  • The StdoutCallback attribute has been removed from AnsiblePlaybookCmd and AdhocPlaybookCmd.
  • The constants AnsibleForceColorEnv and AnsibleHostKeyCheckingEnv have been removed from the github.com/apenella/go-ansible/pkg/options package.
  • The functions AnsibleForceColor, AnsibleAvoidHostKeyChecking and AnsibleSetEnv have been removed from the github.com/apenella/go-ansible/pkg/options package. Use the ExecutorWithAnsibleConfigurationSettings decorator instead defined in the github.com/apenella/go-ansible/v2/pkg/execute/configuration package.
  • The methods WithWrite and withshowduration have been removed from the ExecutorTimeMeasurement decorator.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the renovate label Apr 20, 2024
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch 2 times, most recently from 10710e0 to 2600134 Compare May 16, 2024 00:09
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from 2600134 to 9b39a0c Compare May 16, 2024 20:32
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch 2 times, most recently from 39ba975 to a6b8c72 Compare June 4, 2024 06:56
Copy link
Contributor Author

renovate bot commented Jun 4, 2024

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 1 additional dependency was updated

Details:

Package Change
github.com/fatih/color v1.13.0 -> v1.16.0

@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from a6b8c72 to e228152 Compare June 7, 2024 22:21
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch 4 times, most recently from 3d6a005 to 069f9c5 Compare June 19, 2024 21:23
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from 069f9c5 to a0019e8 Compare June 28, 2024 21:08
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch 4 times, most recently from 392d32e to 9d1b7e0 Compare July 14, 2024 10:07
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from 9d1b7e0 to 2374394 Compare August 15, 2024 22:26
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from 2374394 to c1266fc Compare September 3, 2024 20:06
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from c1266fc to a22f840 Compare September 11, 2024 17:24
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from a22f840 to af13ced Compare September 20, 2024 19:44
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch 3 times, most recently from b1227cc to 85be194 Compare October 8, 2024 22:06
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from 85be194 to d92c65d Compare October 28, 2024 21:38
@renovate renovate bot force-pushed the renovate/github.com-apenella-go-ansible-2.x branch from d92c65d to f807934 Compare November 6, 2024 22:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants