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.
- {ops-cli-2.1.7/src/ops_cli.egg-info → ops-cli-2.2.1}/PKG-INFO +146 -10
- {ops-cli-2.1.7 → ops-cli-2.2.1}/README.md +3 -2
- {ops-cli-2.1.7 → ops-cli-2.2.1}/requirements.txt +56 -49
- {ops-cli-2.1.7 → ops-cli-2.2.1}/setup.py +3 -5
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/aws.py +3 -2
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/config.py +40 -5
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/ssh.py +1 -1
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/sshconfig.py +1 -1
- {ops-cli-2.1.7 → ops-cli-2.2.1/src/ops_cli.egg-info}/PKG-INFO +146 -10
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/entry_points.txt +0 -1
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/requires.txt +65 -58
- {ops-cli-2.1.7 → ops-cli-2.2.1}/LICENSE +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/MANIFEST.in +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/.opsconfig.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/README.md +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/clusters/kubeconfigs/README.md +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/clusters/my-kubernetes-cluster.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/backends.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/common_variables.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/configure-local-kubectl.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-cluster-autoscaler.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-cluster.tf.jinja2 +0 -0
- {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
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/eks-worker-nodes.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/outputs.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/providers.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/scripts/fileexist.sh +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/variables.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/aws-eks/vpc.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/backends.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/common_variables.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/common/providers.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/backends.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/cluster-autoscaler.tf +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/common_variables.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/dashboard.tf +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/kube-state-metrics.tf +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/kube2iam.tf +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/provider_helm.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/providers.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm/variables.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm-init/backends.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/compositions/generic/helm-init/helm-init.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/aws-kubernetes/update.sh +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/.opsconfig.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/README.md +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/install_stress_tool.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/setup.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/setup12.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra-env.sh +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra_defaults.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/cassandra_defaults_12.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible/templates/stress.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/ansible.cfg +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/cluster1.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/cluster2.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/main/main.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/main/variables.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/cassandra/main.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/macros.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/shared_iam/default_policy.json +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/modules/vpc/main.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/cassandra-stress/terraform/user_data +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/README.md +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/cluster/dev/dev.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/cluster/prod/prod.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/inventory/hosts +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/password_dev.txt +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/password_prod.txt +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/playbook/example.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/vault/vault_dev.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/ansible-vault/vault/vault_prod.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/.opsconfig.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/README.md +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/local_inventory/hosts +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/my-aws-cluster.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/inventory/my-azure-cluster.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/packer/README.md +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/packer/clusters/ubuntu.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/packer/packer/ubuntu.json +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/.gitignore +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/README.md +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/ansible.cfg +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/playbooks/site.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/common/tasks/main.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/db/tasks/main.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/roles/web/tasks/main.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/ansible/tasks/copy-key.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/clusters/example.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/main/main.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/main/shared_variables.tf +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/db/instance.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/db/main.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/macros.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/shared_iam/default_policy.json +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/vpc/main.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/elb.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/instance.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/modules/web/main.tf.jinja2 +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-and-ansible/terraform/user_data +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/.opsconfig.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/README.md +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/compositions/terraform/cluster/main.tf +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/compositions/terraform/network/main.tf +0 -0
- {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
- {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
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster1/conf.yaml +0 -0
- {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
- {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
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/cluster=cluster2/conf.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/config/env=dev/default.yaml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/modules/cluster/main.tf +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/examples/features/terraform-hierarchical/modules/network/main.tf +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/setup.cfg +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/callback_plugins/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/filter_plugins/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/filter_plugins/commonfilters.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/clusterconfig.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/ansible/vars_plugins/opsconfig.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/config_generator.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/helmfile.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/inventory.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/packer.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/parser.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/playbook.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/run.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/sync.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/cli/terraform.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ansible/ansible.cfg +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/deploy_prometheus_alert_rules.yml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/install_rpm.yml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ansible/tasks/remove_prometheus_alert_rules.yml +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.config +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.scb.proxy.config.tpl +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/ssh/ssh.tunnel.config +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/data/terraform/terraformrc +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/git_utils.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/hierarchical/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/hierarchical/composition_config_generator.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/SKMS.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/azurerm.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/caching.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/ec2inventory.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/generator.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/azr.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/cns.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/ec2.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/legacy_pcs.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/inventory/plugin/skms.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/jinja/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/main.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/opsconfig.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/simpleconsul.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/simplessm.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/simplevault.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/terraform/__init__.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops/terraform/terraform_cmd_generator.py +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/SOURCES.txt +0 -0
- {ops-cli-2.1.7 → ops-cli-2.2.1}/src/ops_cli.egg-info/dependency_links.txt +0 -0
- {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
|
|
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
|
[](https://github.com/adobe/ops-cli/actions/workflows/release.yml) [](https://github.com/adobe/ops-cli/pkgs/container/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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
3
|
-
|
|
4
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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==
|
|
104
|
-
idna==3.
|
|
105
|
-
inflection==0.3.
|
|
106
|
-
isodate==0.6.
|
|
107
|
-
jinja2==
|
|
108
|
-
jmespath==0.
|
|
109
|
-
kubernetes==
|
|
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.
|
|
112
|
-
|
|
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.
|
|
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.
|
|
117
|
-
pyasn1
|
|
118
|
-
pyasn1==0.4.
|
|
119
|
-
pycparser==2.
|
|
120
|
-
|
|
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==
|
|
124
|
-
requests
|
|
125
|
-
requests==
|
|
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.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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)
|