ops-cli 2.1.7__tar.gz → 2.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. {ops-cli-2.1.7/src/ops_cli.egg-info → ops-cli-2.2.1}/PKG-INFO +146 -10
  2. {ops-cli-2.1.7 → ops-cli-2.2.1}/README.md +3 -2
  3. {ops-cli-2.1.7 → ops-cli-2.2.1}/requirements.txt +56 -49
  4. {ops-cli-2.1.7 → ops-cli-2.2.1}/setup.py +3 -5
  5. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/aws.py +3 -2
  6. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/config.py +40 -5
  7. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/ssh.py +1 -1
  8. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/sshconfig.py +1 -1
  9. {ops-cli-2.1.7 → ops-cli-2.2.1/src/ops_cli.egg-info}/PKG-INFO +146 -10
  10. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/entry_points.txt +0 -1
  11. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/requires.txt +65 -58
  12. {ops-cli-2.1.7 → ops-cli-2.2.1}/LICENSE +0 -0
  13. {ops-cli-2.1.7 → ops-cli-2.2.1}/MANIFEST.in +0 -0
  14. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/.opsconfig.yaml +0 -0
  15. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/README.md +0 -0
  16. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/clusters/kubeconfigs/README.md +0 -0
  17. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/clusters/my-kubernetes-cluster.yaml +0 -0
  18. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/backends.tf.jinja2 +0 -0
  19. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/common_variables.tf.jinja2 +0 -0
  20. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/configure-local-kubectl.tf.jinja2 +0 -0
  21. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-cluster-autoscaler.tf.jinja2 +0 -0
  22. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-cluster.tf.jinja2 +0 -0
  23. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-worker-nodes-auth-configmap.tf.jinja2 +0 -0
  24. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-worker-nodes.tf.jinja2 +0 -0
  25. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/outputs.tf.jinja2 +0 -0
  26. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/providers.tf.jinja2 +0 -0
  27. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/scripts/fileexist.sh +0 -0
  28. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/variables.tf.jinja2 +0 -0
  29. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/vpc.tf.jinja2 +0 -0
  30. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/backends.tf.jinja2 +0 -0
  31. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/common_variables.tf.jinja2 +0 -0
  32. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/providers.tf.jinja2 +0 -0
  33. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/backends.tf.jinja2 +0 -0
  34. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/cluster-autoscaler.tf +0 -0
  35. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/common_variables.tf.jinja2 +0 -0
  36. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/dashboard.tf +0 -0
  37. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/kube-state-metrics.tf +0 -0
  38. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/kube2iam.tf +0 -0
  39. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/provider_helm.tf.jinja2 +0 -0
  40. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/providers.tf.jinja2 +0 -0
  41. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/variables.tf.jinja2 +0 -0
  42. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm-init/backends.tf.jinja2 +0 -0
  43. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm-init/helm-init.tf.jinja2 +0 -0
  44. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/update.sh +0 -0
  45. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/.opsconfig.yaml +0 -0
  46. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/README.md +0 -0
  47. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/install_stress_tool.yaml +0 -0
  48. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/setup.yaml +0 -0
  49. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/setup12.yaml +0 -0
  50. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra-env.sh +0 -0
  51. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra_defaults.yaml +0 -0
  52. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra_defaults_12.yaml +0 -0
  53. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/stress.yaml +0 -0
  54. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible.cfg +0 -0
  55. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/cluster1.yaml +0 -0
  56. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/cluster2.yaml +0 -0
  57. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/main/main.tf.jinja2 +0 -0
  58. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/main/variables.tf.jinja2 +0 -0
  59. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/cassandra/main.tf.jinja2 +0 -0
  60. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/macros.tf.jinja2 +0 -0
  61. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/shared_iam/default_policy.json +0 -0
  62. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/vpc/main.tf.jinja2 +0 -0
  63. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/user_data +0 -0
  64. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/README.md +0 -0
  65. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/cluster/dev/dev.yaml +0 -0
  66. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/cluster/prod/prod.yaml +0 -0
  67. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/inventory/hosts +0 -0
  68. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/password_dev.txt +0 -0
  69. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/password_prod.txt +0 -0
  70. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/playbook/example.yaml +0 -0
  71. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/vault/vault_dev.yaml +0 -0
  72. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/vault/vault_prod.yaml +0 -0
  73. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/.opsconfig.yaml +0 -0
  74. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/README.md +0 -0
  75. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/local_inventory/hosts +0 -0
  76. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/my-aws-cluster.yaml +0 -0
  77. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/my-azure-cluster.yaml +0 -0
  78. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/packer/README.md +0 -0
  79. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/packer/clusters/ubuntu.yaml +0 -0
  80. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/packer/packer/ubuntu.json +0 -0
  81. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/.gitignore +0 -0
  82. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/README.md +0 -0
  83. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/ansible.cfg +0 -0
  84. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/playbooks/site.yaml +0 -0
  85. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/common/tasks/main.yaml +0 -0
  86. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/db/tasks/main.yaml +0 -0
  87. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/web/tasks/main.yaml +0 -0
  88. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/tasks/copy-key.yaml +0 -0
  89. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/clusters/example.yaml +0 -0
  90. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/main/main.tf.jinja2 +0 -0
  91. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/main/shared_variables.tf +0 -0
  92. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/db/instance.tf.jinja2 +0 -0
  93. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/db/main.tf.jinja2 +0 -0
  94. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/macros.tf.jinja2 +0 -0
  95. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/shared_iam/default_policy.json +0 -0
  96. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/vpc/main.tf.jinja2 +0 -0
  97. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/elb.tf.jinja2 +0 -0
  98. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/instance.tf.jinja2 +0 -0
  99. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/main.tf.jinja2 +0 -0
  100. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/user_data +0 -0
  101. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/.opsconfig.yaml +0 -0
  102. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/README.md +0 -0
  103. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/compositions/terraform/cluster/main.tf +0 -0
  104. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/compositions/terraform/network/main.tf +0 -0
  105. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster1/composition=cluster/conf.yaml +0 -0
  106. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster1/composition=network/conf.yaml +0 -0
  107. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster1/conf.yaml +0 -0
  108. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster2/composition=cluster/conf.yaml +0 -0
  109. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster2/composition=network/conf.yaml +0 -0
  110. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster2/conf.yaml +0 -0
  111. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/default.yaml +0 -0
  112. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/modules/cluster/main.tf +0 -0
  113. {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/modules/network/main.tf +0 -0
  114. {ops-cli-2.1.7 → ops-cli-2.2.1}/setup.cfg +0 -0
  115. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/__init__.py +0 -0
  116. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/__init__.py +0 -0
  117. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/callback_plugins/__init__.py +0 -0
  118. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/filter_plugins/__init__.py +0 -0
  119. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/filter_plugins/commonfilters.py +0 -0
  120. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/__init__.py +0 -0
  121. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/clusterconfig.py +0 -0
  122. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/opsconfig.py +0 -0
  123. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/__init__.py +0 -0
  124. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/config_generator.py +0 -0
  125. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/helmfile.py +0 -0
  126. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/inventory.py +0 -0
  127. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/packer.py +0 -0
  128. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/parser.py +0 -0
  129. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/playbook.py +0 -0
  130. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/run.py +0 -0
  131. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/sync.py +0 -0
  132. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/terraform.py +0 -0
  133. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ansible/ansible.cfg +0 -0
  134. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/deploy_prometheus_alert_rules.yml +0 -0
  135. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/install_rpm.yml +0 -0
  136. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/remove_prometheus_alert_rules.yml +0 -0
  137. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.config +0 -0
  138. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.scb.proxy.config.tpl +0 -0
  139. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.tunnel.config +0 -0
  140. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/terraform/terraformrc +0 -0
  141. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/git_utils.py +0 -0
  142. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/hierarchical/__init__.py +0 -0
  143. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/hierarchical/composition_config_generator.py +0 -0
  144. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/SKMS.py +0 -0
  145. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/__init__.py +0 -0
  146. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/azurerm.py +0 -0
  147. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/caching.py +0 -0
  148. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/ec2inventory.py +0 -0
  149. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/generator.py +0 -0
  150. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/__init__.py +0 -0
  151. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/azr.py +0 -0
  152. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/cns.py +0 -0
  153. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/ec2.py +0 -0
  154. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/legacy_pcs.py +0 -0
  155. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/skms.py +0 -0
  156. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/jinja/__init__.py +0 -0
  157. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/main.py +0 -0
  158. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/opsconfig.py +0 -0
  159. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/simpleconsul.py +0 -0
  160. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/simplessm.py +0 -0
  161. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/simplevault.py +0 -0
  162. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/terraform/__init__.py +0 -0
  163. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/terraform/terraform_cmd_generator.py +0 -0
  164. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/SOURCES.txt +0 -0
  165. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/dependency_links.txt +0 -0
  166. {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/top_level.txt +0 -0
@@ -1,23 +1,20 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ops-cli
3
- Version: 2.1.7
3
+ Version: 2.2.1
4
4
  Summary: Ops - wrapper for Terraform, Ansible, and SSH for cloud automation
5
5
  Home-page: https://github.com/adobe/ops-cli
6
6
  Author: Adobe
7
7
  Author-email: noreply@adobe.com
8
8
  License: Apache2
9
- Platform: UNKNOWN
10
9
  Classifier: Development Status :: 5 - Production/Stable
11
10
  Classifier: Environment :: Web Environment
12
11
  Classifier: Intended Audience :: Developers
13
12
  Classifier: License :: OSI Approved :: Apache Software License
14
13
  Classifier: Operating System :: OS Independent
15
14
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.5
17
- Classifier: Programming Language :: Python :: 3.6
18
- Classifier: Programming Language :: Python :: 3.7
19
- Classifier: Programming Language :: Python :: 3.8
20
15
  Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
21
18
  Classifier: Programming Language :: Python :: Implementation :: CPython
22
19
  Classifier: Programming Language :: Python :: Implementation :: PyPy
23
20
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
@@ -26,6 +23,146 @@ Classifier: Topic :: Text Processing :: Markup :: HTML
26
23
  Requires-Python: >=3.5
27
24
  Description-Content-Type: text/markdown
28
25
  License-File: LICENSE
26
+ Requires-Dist: adal==1.2.7
27
+ Requires-Dist: ansible==8.2.0; python_version >= "3.9"
28
+ Requires-Dist: ansible-core==2.15.5; python_version >= "3.9"
29
+ Requires-Dist: awscli==1.29.12; python_version >= "3.7"
30
+ Requires-Dist: azure==4.0.0
31
+ Requires-Dist: azure-applicationinsights==0.1.1
32
+ Requires-Dist: azure-batch==4.1.3
33
+ Requires-Dist: azure-common==1.1.28
34
+ Requires-Dist: azure-core==1.29.4; python_version >= "3.7"
35
+ Requires-Dist: azure-cosmosdb-nspkg==2.0.2
36
+ Requires-Dist: azure-cosmosdb-table==1.0.6
37
+ Requires-Dist: azure-datalake-store==0.0.53
38
+ Requires-Dist: azure-eventgrid==1.3.0
39
+ Requires-Dist: azure-graphrbac==0.40.0
40
+ Requires-Dist: azure-keyvault==1.1.0
41
+ Requires-Dist: azure-loganalytics==0.1.1
42
+ Requires-Dist: azure-mgmt==4.0.0
43
+ Requires-Dist: azure-mgmt-advisor==1.0.1
44
+ Requires-Dist: azure-mgmt-applicationinsights==0.1.1
45
+ Requires-Dist: azure-mgmt-authorization==0.50.0
46
+ Requires-Dist: azure-mgmt-batch==5.0.1
47
+ Requires-Dist: azure-mgmt-batchai==2.0.0
48
+ Requires-Dist: azure-mgmt-billing==0.2.0
49
+ Requires-Dist: azure-mgmt-cdn==3.1.0
50
+ Requires-Dist: azure-mgmt-cognitiveservices==3.0.0
51
+ Requires-Dist: azure-mgmt-commerce==1.0.1
52
+ Requires-Dist: azure-mgmt-compute==4.6.2
53
+ Requires-Dist: azure-mgmt-consumption==2.0.0
54
+ Requires-Dist: azure-mgmt-containerinstance==1.5.0
55
+ Requires-Dist: azure-mgmt-containerregistry==2.8.0
56
+ Requires-Dist: azure-mgmt-containerservice==4.4.0
57
+ Requires-Dist: azure-mgmt-cosmosdb==0.4.1
58
+ Requires-Dist: azure-mgmt-datafactory==0.6.0
59
+ Requires-Dist: azure-mgmt-datalake-analytics==0.6.0
60
+ Requires-Dist: azure-mgmt-datalake-nspkg==3.0.1
61
+ Requires-Dist: azure-mgmt-datalake-store==0.5.0
62
+ Requires-Dist: azure-mgmt-datamigration==1.0.0
63
+ Requires-Dist: azure-mgmt-devspaces==0.1.0
64
+ Requires-Dist: azure-mgmt-devtestlabs==2.2.0
65
+ Requires-Dist: azure-mgmt-dns==2.1.0
66
+ Requires-Dist: azure-mgmt-eventgrid==1.0.0
67
+ Requires-Dist: azure-mgmt-eventhub==2.6.0
68
+ Requires-Dist: azure-mgmt-hanaonazure==0.1.1
69
+ Requires-Dist: azure-mgmt-iotcentral==0.1.0
70
+ Requires-Dist: azure-mgmt-iothub==0.5.0
71
+ Requires-Dist: azure-mgmt-iothubprovisioningservices==0.2.0
72
+ Requires-Dist: azure-mgmt-keyvault==1.1.0
73
+ Requires-Dist: azure-mgmt-loganalytics==0.2.0
74
+ Requires-Dist: azure-mgmt-logic==3.0.0
75
+ Requires-Dist: azure-mgmt-machinelearningcompute==0.4.1
76
+ Requires-Dist: azure-mgmt-managementgroups==0.1.0
77
+ Requires-Dist: azure-mgmt-managementpartner==0.1.1
78
+ Requires-Dist: azure-mgmt-maps==0.1.0
79
+ Requires-Dist: azure-mgmt-marketplaceordering==0.1.0
80
+ Requires-Dist: azure-mgmt-media==1.0.1
81
+ Requires-Dist: azure-mgmt-monitor==0.5.2
82
+ Requires-Dist: azure-mgmt-msi==0.2.0
83
+ Requires-Dist: azure-mgmt-network==2.7.0
84
+ Requires-Dist: azure-mgmt-notificationhubs==2.1.0
85
+ Requires-Dist: azure-mgmt-nspkg==3.0.2
86
+ Requires-Dist: azure-mgmt-policyinsights==0.1.0
87
+ Requires-Dist: azure-mgmt-powerbiembedded==2.0.0
88
+ Requires-Dist: azure-mgmt-rdbms==1.9.0
89
+ Requires-Dist: azure-mgmt-recoveryservices==0.3.0
90
+ Requires-Dist: azure-mgmt-recoveryservicesbackup==0.3.0
91
+ Requires-Dist: azure-mgmt-redis==5.0.0
92
+ Requires-Dist: azure-mgmt-relay==0.1.0
93
+ Requires-Dist: azure-mgmt-reservations==0.2.1
94
+ Requires-Dist: azure-mgmt-resource==2.2.0
95
+ Requires-Dist: azure-mgmt-scheduler==2.0.0
96
+ Requires-Dist: azure-mgmt-search==2.1.0
97
+ Requires-Dist: azure-mgmt-servicebus==0.5.3
98
+ Requires-Dist: azure-mgmt-servicefabric==0.2.0
99
+ Requires-Dist: azure-mgmt-signalr==0.1.1
100
+ Requires-Dist: azure-mgmt-sql==0.9.1
101
+ Requires-Dist: azure-mgmt-storage==2.0.0
102
+ Requires-Dist: azure-mgmt-subscription==0.2.0
103
+ Requires-Dist: azure-mgmt-trafficmanager==0.50.0
104
+ Requires-Dist: azure-mgmt-web==0.35.0
105
+ Requires-Dist: azure-nspkg==3.0.2
106
+ Requires-Dist: azure-servicebus==0.21.1
107
+ Requires-Dist: azure-servicefabric==6.3.0.0
108
+ Requires-Dist: azure-servicemanagement-legacy==0.20.7
109
+ Requires-Dist: azure-storage-blob==1.5.0
110
+ Requires-Dist: azure-storage-common==1.4.2
111
+ Requires-Dist: azure-storage-file==1.4.0
112
+ Requires-Dist: azure-storage-queue==1.4.0
113
+ Requires-Dist: backports.functools-lru-cache==1.6.6; python_version >= "2.6"
114
+ Requires-Dist: boto==2.49.0
115
+ Requires-Dist: boto3==1.28.12; python_version >= "3.7"
116
+ Requires-Dist: botocore==1.31.12; python_version >= "3.7"
117
+ Requires-Dist: cachetools==5.3.1; python_version >= "3.7"
118
+ Requires-Dist: certifi==2023.7.22; python_version >= "3.6"
119
+ Requires-Dist: cffi==1.16.0; python_version >= "3.8"
120
+ Requires-Dist: charset-normalizer==3.3.0; python_full_version >= "3.7.0"
121
+ Requires-Dist: colorama==0.4.4; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4"
122
+ Requires-Dist: cryptography==41.0.4; python_version >= "3.7"
123
+ Requires-Dist: deepmerge==1.1.0
124
+ Requires-Dist: docutils==0.16; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4"
125
+ Requires-Dist: gitdb==4.0.10; python_version >= "3.7"
126
+ Requires-Dist: gitpython==3.1.37; python_version >= "3.7"
127
+ Requires-Dist: google-auth==2.23.3; python_version >= "3.7"
128
+ Requires-Dist: hashmerge==0.2
129
+ Requires-Dist: himl==0.15.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
130
+ Requires-Dist: hvac==1.1.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0"
131
+ Requires-Dist: idna==3.4; python_version >= "3.5"
132
+ Requires-Dist: inflection==0.5.1; python_version >= "3.5"
133
+ Requires-Dist: isodate==0.6.1
134
+ Requires-Dist: jinja2==3.1.2; python_version >= "3.7"
135
+ Requires-Dist: jmespath==1.0.1; python_version >= "3.7"
136
+ Requires-Dist: kubernetes==26.1.0; python_version >= "3.6"
137
+ Requires-Dist: lru-cache==0.2.3
138
+ Requires-Dist: markupsafe==2.1.3; python_version >= "3.7"
139
+ Requires-Dist: msal==1.24.1; python_version >= "2.7"
140
+ Requires-Dist: msrest==0.7.1; python_version >= "3.6"
141
+ Requires-Dist: msrestazure==0.6.4
142
+ Requires-Dist: oauthlib==3.2.2; python_version >= "3.6"
143
+ Requires-Dist: packaging==23.2; python_version >= "3.7"
144
+ Requires-Dist: passgen==1.1.1
145
+ Requires-Dist: pathlib2==2.3.7.post1
146
+ Requires-Dist: pyasn1==0.5.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
147
+ Requires-Dist: pyasn1-modules==0.3.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
148
+ Requires-Dist: pycparser==2.21
149
+ Requires-Dist: pyhcl==0.4.5
150
+ Requires-Dist: pyjwt==2.8.0; python_version >= "3.7"
151
+ Requires-Dist: python-consul==1.1.0
152
+ Requires-Dist: python-dateutil==2.8.2; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2"
153
+ Requires-Dist: pyyaml==6.0.1; python_version >= "3.6"
154
+ Requires-Dist: requests==2.31.0; python_version >= "3.7"
155
+ Requires-Dist: requests-oauthlib==1.3.1; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
156
+ Requires-Dist: resolvelib==1.0.1
157
+ Requires-Dist: rsa==4.7.2; python_version >= "3.5" and python_version < "4"
158
+ Requires-Dist: s3transfer==0.6.2; python_version >= "3.7"
159
+ Requires-Dist: setuptools==68.2.2; python_version >= "3.8"
160
+ Requires-Dist: simpledi==0.4.1
161
+ Requires-Dist: six==1.16.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2"
162
+ Requires-Dist: smmap==5.0.1; python_version >= "3.7"
163
+ Requires-Dist: typing-extensions==4.8.0; python_version >= "3.8"
164
+ Requires-Dist: urllib3==1.26.17; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
165
+ Requires-Dist: websocket-client==1.6.4; python_version >= "3.8"
29
166
 
30
167
  # Ops CLI
31
168
  [![Build status](https://github.com/adobe/ops-cli/actions/workflows/release.yml/badge.svg)](https://github.com/adobe/ops-cli/actions/workflows/release.yml) [![Docker image](https://img.shields.io/badge/Docker-ghcr.io/adobe/opscli-brightgreen.svg?style=flat-square)](https://github.com/adobe/ops-cli/pkgs/container/ops-cli) [![License](https://img.shields.io/github/license/adobe/ops-cli)](https://github.com/adobe/ops-cli/blob/master/LICENSE)
@@ -71,6 +208,7 @@ It can be used to add a layer of templating (using jinja2) on top of Terraform f
71
208
  * [Terraform landscape](#terraform-landscape)
72
209
  * [SSH](#ssh)
73
210
  * [SSHPass](#sshpass)
211
+ * [Balabit SCB](#scb)
74
212
  * [Play](#play)
75
213
  * [Run command](#run-command)
76
214
  * [Sync files](#sync-files)
@@ -179,7 +317,7 @@ workon ops
179
317
  # uninstall previous `ops` version (if you have it)
180
318
  pip uninstall ops --yes
181
319
 
182
- # install ops-cli v2.1.7 stable release
320
+ # install ops-cli v2.2.1 stable release
183
321
  pip install --upgrade ops-cli
184
322
  ```
185
323
 
@@ -195,7 +333,7 @@ You can try out `ops-cli`, by using docker. The docker image has all required pr
195
333
 
196
334
  To start out a container, running the latest `ops-cli` docker image run:
197
335
  ```sh
198
- docker run -it ghcr.io/adobe/ops-cli:2.1.7 bash
336
+ docker run -it ghcr.io/adobe/ops-cli:2.2.1 bash
199
337
  ```
200
338
 
201
339
  After the container has started, you can start using `ops-cli`:
@@ -810,5 +948,3 @@ Either install the tool in a virtualenv or:
810
948
  [Apache License 2.0](/LICENSE)
811
949
 
812
950
 
813
-
814
-
@@ -42,6 +42,7 @@ It can be used to add a layer of templating (using jinja2) on top of Terraform f
42
42
  * [Terraform landscape](#terraform-landscape)
43
43
  * [SSH](#ssh)
44
44
  * [SSHPass](#sshpass)
45
+ * [Balabit SCB](#scb)
45
46
  * [Play](#play)
46
47
  * [Run command](#run-command)
47
48
  * [Sync files](#sync-files)
@@ -150,7 +151,7 @@ workon ops
150
151
  # uninstall previous `ops` version (if you have it)
151
152
  pip uninstall ops --yes
152
153
 
153
- # install ops-cli v2.1.7 stable release
154
+ # install ops-cli v2.2.1 stable release
154
155
  pip install --upgrade ops-cli
155
156
  ```
156
157
 
@@ -166,7 +167,7 @@ You can try out `ops-cli`, by using docker. The docker image has all required pr
166
167
 
167
168
  To start out a container, running the latest `ops-cli` docker image run:
168
169
  ```sh
169
- docker run -it ghcr.io/adobe/ops-cli:2.1.7 bash
170
+ docker run -it ghcr.io/adobe/ops-cli:2.2.1 bash
170
171
  ```
171
172
 
172
173
  After the container has started, you can start using `ops-cli`:
@@ -1,16 +1,20 @@
1
1
  adal==1.2.7
2
- ansible==2.9.25
3
- awscli==1.20.33
4
- azure-applicationinsights==0.1.0
2
+ ansible==8.2.0; python_version >= '3.9'
3
+ ansible-core==2.15.5; python_version >= '3.9'
4
+ awscli==1.29.12; python_version >= '3.7'
5
+ azure==4.0.0
6
+ azure-applicationinsights==0.1.1
5
7
  azure-batch==4.1.3
6
- azure-common==1.1.27
8
+ azure-common==1.1.28
9
+ azure-core==1.29.4; python_version >= '3.7'
7
10
  azure-cosmosdb-nspkg==2.0.2
8
11
  azure-cosmosdb-table==1.0.6
9
- azure-datalake-store==0.0.52
12
+ azure-datalake-store==0.0.53
10
13
  azure-eventgrid==1.3.0
11
14
  azure-graphrbac==0.40.0
12
15
  azure-keyvault==1.1.0
13
- azure-loganalytics==0.1.0
16
+ azure-loganalytics==0.1.1
17
+ azure-mgmt==4.0.0
14
18
  azure-mgmt-advisor==1.0.1
15
19
  azure-mgmt-applicationinsights==0.1.1
16
20
  azure-mgmt-authorization==0.50.0
@@ -48,7 +52,7 @@ azure-mgmt-managementgroups==0.1.0
48
52
  azure-mgmt-managementpartner==0.1.1
49
53
  azure-mgmt-maps==0.1.0
50
54
  azure-mgmt-marketplaceordering==0.1.0
51
- azure-mgmt-media==1.0.0
55
+ azure-mgmt-media==1.0.1
52
56
  azure-mgmt-monitor==0.5.2
53
57
  azure-mgmt-msi==0.2.0
54
58
  azure-mgmt-network==2.7.0
@@ -73,7 +77,6 @@ azure-mgmt-storage==2.0.0
73
77
  azure-mgmt-subscription==0.2.0
74
78
  azure-mgmt-trafficmanager==0.50.0
75
79
  azure-mgmt-web==0.35.0
76
- azure-mgmt==4.0.0
77
80
  azure-nspkg==3.0.2
78
81
  azure-servicebus==0.21.1
79
82
  azure-servicefabric==6.3.0.0
@@ -82,52 +85,56 @@ azure-storage-blob==1.5.0
82
85
  azure-storage-common==1.4.2
83
86
  azure-storage-file==1.4.0
84
87
  azure-storage-queue==1.4.0
85
- azure==4.0.0
86
- backports.functools-lru-cache==1.6.4; python_version >= '2.6'
87
- boto3==1.18.33
88
+ backports.functools-lru-cache==1.6.6; python_version >= '2.6'
88
89
  boto==2.49.0
89
- botocore==1.21.33; python_version >= '3.6'
90
- cachetools==4.2.4; python_version ~= '3.5'
91
- certifi==2021.10.8
92
- cffi==1.15.0
93
- charset-normalizer==2.0.7; python_version >= '3'
94
- colorama==0.4.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
95
- cryptography==35.0.0; python_version >= '3.6'
96
- deepmerge==0.3.0; python_version >= '3'
97
- docutils==0.15.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
98
- gitdb==4.0.7; python_version >= '3.4'
99
- gitpython==3.1.24
100
- google-auth==2.3.0; python_version >= '3.6'
90
+ boto3==1.28.12; python_version >= '3.7'
91
+ botocore==1.31.12; python_version >= '3.7'
92
+ cachetools==5.3.1; python_version >= '3.7'
93
+ certifi==2023.7.22; python_version >= '3.6'
94
+ cffi==1.16.0; python_version >= '3.8'
95
+ charset-normalizer==3.3.0; python_full_version >= '3.7.0'
96
+ colorama==0.4.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
97
+ cryptography==41.0.4; python_version >= '3.7'
98
+ deepmerge==1.1.0
99
+ docutils==0.16; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
100
+ gitdb==4.0.10; python_version >= '3.7'
101
+ gitpython==3.1.37; python_version >= '3.7'
102
+ google-auth==2.23.3; python_version >= '3.7'
101
103
  hashmerge==0.2
102
- himl==0.7.3
103
- hvac==0.11.0
104
- idna==3.3; python_version >= '3'
105
- inflection==0.3.1
106
- isodate==0.6.0
107
- jinja2==2.11.3
108
- jmespath==0.10.0; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
109
- kubernetes==18.20.0
104
+ himl==0.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
105
+ hvac==1.1.1; python_full_version >= '3.6.2' and python_full_version < '4.0.0'
106
+ idna==3.4; python_version >= '3.5'
107
+ inflection==0.5.1; python_version >= '3.5'
108
+ isodate==0.6.1
109
+ jinja2==3.1.2; python_version >= '3.7'
110
+ jmespath==1.0.1; python_version >= '3.7'
111
+ kubernetes==26.1.0; python_version >= '3.6'
110
112
  lru-cache==0.2.3
111
- markupsafe==2.0.1; python_version >= '3.6'
112
- msrest==0.6.21
113
+ markupsafe==2.1.3; python_version >= '3.7'
114
+ msal==1.24.1; python_version >= '2.7'
115
+ msrest==0.7.1; python_version >= '3.6'
113
116
  msrestazure==0.6.4
114
- oauthlib==3.1.1; python_version >= '3.6'
117
+ oauthlib==3.2.2; python_version >= '3.6'
118
+ packaging==23.2; python_version >= '3.7'
115
119
  passgen==1.1.1
116
- pathlib2==2.3.6
117
- pyasn1-modules==0.2.8
118
- pyasn1==0.4.8
119
- pycparser==2.20; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
120
- pyjwt==2.2.0; python_version >= '3.6'
120
+ pathlib2==2.3.7.post1
121
+ pyasn1==0.5.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
122
+ pyasn1-modules==0.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
123
+ pycparser==2.21
124
+ pyhcl==0.4.5
125
+ pyjwt==2.8.0; python_version >= '3.7'
121
126
  python-consul==1.1.0
122
127
  python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'
123
- pyyaml==5.4.1
124
- requests-oauthlib==1.3.0
125
- requests==2.26.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
128
+ pyyaml==6.0.1; python_version >= '3.6'
129
+ requests==2.31.0; python_version >= '3.7'
130
+ requests-oauthlib==1.3.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
131
+ resolvelib==1.0.1
126
132
  rsa==4.7.2; python_version >= '3.5' and python_version < '4'
127
- s3transfer==0.5.0; python_version >= '3.6'
128
- simpledi==0.3
129
- six==1.16.0
130
- smmap==4.0.0; python_version >= '3.5'
131
- typing-extensions==3.10.0.2; python_version < '3.10'
132
- urllib3==1.26.7; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
133
- websocket-client==1.2.1; python_version >= '3.6'
133
+ s3transfer==0.6.2; python_version >= '3.7'
134
+ setuptools==68.2.2; python_version >= '3.8'
135
+ simpledi==0.4.1
136
+ six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'
137
+ smmap==5.0.1; python_version >= '3.7'
138
+ typing-extensions==4.8.0; python_version >= '3.8'
139
+ urllib3==1.26.17; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
140
+ websocket-client==1.6.4; python_version >= '3.8'
@@ -23,7 +23,7 @@ _mydir = os.path.abspath(os.path.dirname(sys.argv[0]))
23
23
  _requires = [r for r in open(os.path.sep.join((_mydir, 'requirements.txt')), "r").read().split('\n') if len(r) > 1]
24
24
  setup(
25
25
  name='ops-cli',
26
- version='2.1.7',
26
+ version='2.2.1',
27
27
  description='Ops - wrapper for Terraform, Ansible, and SSH for cloud automation',
28
28
  long_description=_readme + '\n\n',
29
29
  long_description_content_type='text/markdown',
@@ -39,11 +39,9 @@ setup(
39
39
  'License :: OSI Approved :: Apache Software License',
40
40
  'Operating System :: OS Independent',
41
41
  'Programming Language :: Python :: 3',
42
- 'Programming Language :: Python :: 3.5',
43
- 'Programming Language :: Python :: 3.6',
44
- 'Programming Language :: Python :: 3.7',
45
- 'Programming Language :: Python :: 3.8',
46
42
  'Programming Language :: Python :: 3.9',
43
+ 'Programming Language :: Python :: 3.10',
44
+ 'Programming Language :: Python :: 3.11',
47
45
  'Programming Language :: Python :: Implementation :: CPython',
48
46
  'Programming Language :: Python :: Implementation :: PyPy',
49
47
  'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
@@ -9,13 +9,14 @@
9
9
  # governing permissions and limitations under the License.
10
10
 
11
11
  from . import get_output
12
+ from shlex import quote
12
13
 
13
14
 
14
15
  def access_key(profile):
15
16
  return get_output(
16
- 'aws configure get aws_access_key_id --profile %s' % profile)
17
+ 'aws configure get aws_access_key_id --profile %s' % quote(profile))
17
18
 
18
19
 
19
20
  def secret_key(profile):
20
21
  return get_output(
21
- 'aws configure get aws_secret_access_key --profile %s' % profile)
22
+ 'aws configure get aws_secret_access_key --profile %s' % quote(profile))
@@ -8,21 +8,22 @@
8
8
  # OF ANY KIND, either express or implied. See the License for the specific language
9
9
  # governing permissions and limitations under the License.
10
10
 
11
- import collections
12
11
  import os
13
-
14
12
  import yaml
15
13
 
16
14
  from ansible.module_utils.common.collections import ImmutableDict
17
15
  from ansible.parsing.dataloader import DataLoader
18
- from ansible.plugins.loader import PluginLoader
19
16
  from ansible.template import Templar
20
- from ansible.utils.vars import load_extra_vars
17
+ from ansible.utils.vars import combine_vars
21
18
  from ansible.vars.manager import VariableManager
22
19
  from ops.cli import display
23
20
  from ansible import constants as C
24
21
  from ansible import context
25
22
  import logging
23
+ from ansible.errors import AnsibleOptionsError
24
+ from ansible.module_utils._text import to_text
25
+ from ansible.parsing.splitter import parse_kv
26
+ from collections.abc import MutableMapping
26
27
 
27
28
  logger = logging.getLogger(__name__)
28
29
 
@@ -34,6 +35,38 @@ def get_cluster_name(cluster_config_path):
34
35
  '/')[-1].replace('.yaml', '').replace('.yml', '')
35
36
 
36
37
 
38
+ def load_extra_vars(loader):
39
+ """
40
+ Overriding Ansible function using version before slight var loading optimization
41
+ in order to avoid caching issues https://github.com/ansible/ansible/pull/78835/files
42
+ """
43
+
44
+ extra_vars = {}
45
+ for extra_vars_opt in context.CLIARGS.get('extra_vars', tuple()):
46
+ data = None
47
+ extra_vars_opt = to_text(extra_vars_opt, errors='surrogate_or_strict')
48
+ if extra_vars_opt is None or not extra_vars_opt:
49
+ continue
50
+
51
+ if extra_vars_opt.startswith(u"@"):
52
+ # Argument is a YAML file (JSON is a subset of YAML)
53
+ data = loader.load_from_file(extra_vars_opt[1:])
54
+ elif extra_vars_opt[0] in [u'/', u'.']:
55
+ raise AnsibleOptionsError("Please prepend extra_vars filename '%s' with '@'" % extra_vars_opt)
56
+ elif extra_vars_opt[0] in [u'[', u'{']:
57
+ # Arguments as YAML
58
+ data = loader.load(extra_vars_opt)
59
+ else:
60
+ # Arguments as Key-value
61
+ data = parse_kv(extra_vars_opt)
62
+
63
+ if isinstance(data, MutableMapping):
64
+ extra_vars = combine_vars(extra_vars, data)
65
+ else:
66
+ raise AnsibleOptionsError("Invalid extra vars data supplied. '%s' could not be made into a dictionary" % extra_vars_opt)
67
+ return extra_vars
68
+
69
+
37
70
  class ClusterConfig(object):
38
71
  def __init__(self, cluster_config_generator,
39
72
  ops_config, cluster_config_path):
@@ -164,6 +197,8 @@ class ClusterConfigGenerator(object):
164
197
  read_variables = variable_manager.get_vars()
165
198
 
166
199
  templar = Templar(data_loader, variables=read_variables)
167
- templar._filter_loader = self.template.filter_plugin_loader
200
+
201
+ for filter in self.template.filter_plugin_loader.all():
202
+ templar.environment.filters.update(filter.filters())
168
203
 
169
204
  return templar.template(read_variables, fail_on_undefined=True)
@@ -286,7 +286,7 @@ class SshRunner(object):
286
286
  if args.proxy:
287
287
  if scb_enabled:
288
288
  proxy_port = args.local or SshConfigGenerator.generate_ssh_scb_proxy_port(
289
- self.ansible_inventory.generated_path.rstrip("/inventory"),
289
+ self.ansible_inventory.generated_path.removesuffix("/inventory"),
290
290
  args.auto_scb_port,
291
291
  scb_proxy_port
292
292
  )
@@ -90,7 +90,7 @@ class SshConfigGenerator(object):
90
90
  ssh_config_content = ssh_config_template.format(
91
91
  scb_proxy_port=scb_proxy_port
92
92
  )
93
- ssh_config_path = ssh_config_tpl_path.rstrip("_tpl")
93
+ ssh_config_path = ssh_config_tpl_path.removesuffix("_tpl")
94
94
  with open(ssh_config_path, 'w') as f:
95
95
  f.write(ssh_config_content)
96
96
  os.fchmod(f.fileno(), 0o644)