summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-hpecp.spec513
-rw-r--r--sources1
3 files changed, 515 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..97eee31 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/hpecp-0.22.13.tar.gz
diff --git a/python-hpecp.spec b/python-hpecp.spec
new file mode 100644
index 0000000..5f512cd
--- /dev/null
+++ b/python-hpecp.spec
@@ -0,0 +1,513 @@
+%global _empty_manifest_terminate_build 0
+Name: python-hpecp
+Version: 0.22.13
+Release: 1
+Summary: HPE Ezmeral Container Platform client
+License: MIT License
+URL: https://github.com/hpe-container-platform-community/hpecp-python-library
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2d/eb/97975e0af5ace5b0c7b1658f19aa40ddda12c4d8bf29d6d915627406e3f9/hpecp-0.22.13.tar.gz
+BuildArch: noarch
+
+Requires: python3-future
+Requires: python3-requests
+Requires: python3-tabulate
+Requires: python3-six
+Requires: python3-polling
+Requires: python3-pyyaml
+Requires: python3-fire
+Requires: python3-jmespath
+Requires: python3-jinja2
+Requires: python3-wrapt
+Requires: python3-enum34
+Requires: python3-configparser
+
+%description
+## Documentation
+See [here](https://hpe-container-platform-community.github.io/hpecp-python-library/index.html) for User Documentation.
+## Contributing
+See:
+- [Developing Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/DEVELOPING.md)
+- [Contribution Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/CONTRIBUTING.md)
+## Installation
+```shell
+pip3 install -U hpecp
+```
+If you encounter an issue installing on Centos 7.7 with Python 2.7 see [here](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/docs/README-INSTALL-HPECP-HOSTS.md) for a workaround
+## CLI examples
+You need to create a config file with your endpoint details - note that you can have multiple profiles:
+```ini
+cat > ~/.hpecp.conf <<EOF
+[default]
+api_host = 127.0.0.1
+api_port = 8080
+use_ssl = True
+verify_ssl = False
+warn_ssl = False
+username = admin
+password = admin123
+[tenant1]
+tenant = /api/v1/tenant/15
+admin = ad_admin1
+password = pass123
+EOF
+```
+Setup bash autocomplete:
+```sh
+source <(hpecp autocomplete bash)
+```
+Autocompletion:
+```sh
+hpecp TAB
+```
+Add gateway:
+```sh
+hpecp lock create "Install Gateway"
+hpecp gateway create-with-ssh-key --ip 10.1.0.5 --proxy-node-hostname my.gateway.local --ssh-key-file controller_private.key
+hpecp gateway wait-for-state ${GATEWAY_ID} --states [installed] --timeout-secs 1200
+hpecp lock delete-all
+```
+Add K8s worker host:
+```sh
+hpecp k8sworker create-with-ssh-key \
+ --ip 10.1.0.10 \
+ --ssh-key-file controller_private.key \
+ --persistent-disks /dev/nvme1n1 \
+ --ephemeral-disks /dev/nvme2n1 \
+ --wait-for-operation-secs 600
+```
+K8s versions:
+```sh
+hpecp k8scluster k8s-supported-versions --major-filter 1 --minor-filter 17
+```
+Create k8s cluster:
+```sh
+hpecp k8scluster create --name myclus1 --k8shosts-config /api/v2/worker/k8shost/1:master --k8s_version=1.17.0
+```
+Get k8s available addons:
+```sh
+hpecp k8scluster get-available-addons --id $CLUSTER_ID
+```
+Add k8s cluster addons:
+```sh
+hpecp k8scluster add-addons --id $CLUSTER_ID --addons [istio,harbor]
+```
+List with columns parameter:
+```sh
+hpecp k8scluster list --columns [id,description,status]
+```
+List with (jmespath) query parameter:
+```sh
+hpecp catalog list --query "[?state!='installed' && state!='installing'] | [*].[_links.self.href] | []" --output text
+```
+List --query examples:
+```sh
+hpecp tenant examples
+```
+Tenant create:
+```sh
+TENANT_ID=$(hpecp tenant create --name tenant1 --description "dev tenant" --k8s-cluster-id $CLUSTER_ID --tenant-type k8s)
+hpecp tenant wait-for-status --id $TENANT_ID --status [ready] --timeout-secs 600
+```
+Add LDAP role to Tenant:
+```sh
+ADMIN_GROUP="CN=DemoTenantAdmins,CN=Users,DC=samdom,DC=example,DC=com"
+ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text)
+hpecp tenant add-external-user-group --tenant-id $TENANT_ID --group $ADMIN_GROUP --role-id $ADMIN_ROLE
+```
+Add internal user to Tenant:
+```sh
+ADMIN_USER_ID=$(hpecp user list --query "[?label.name == 'admin'][_links.self.href]" --output text)
+ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text)
+hpecp tenant assign-user-to-role --tenant-id $TENANT_ID --role-id $ADMIN_ROLE --user-id $ADMIN_USER_ID
+```
+Tenant kube config:
+```sh
+PROFILE=tenant1 hpecp tenant k8skubeconfig > tenant1_kube.conf
+# get available Kubedirector apps
+kubectl --kubeconfig tenant1_kube.conf -n t1 get kubedirectorapps
+# list running applications
+kubectl --kubeconfig tenant1_kube.conf -n t1 describe kubedirectorclusters
+```
+Http call:
+```sh
+hpecp httpclient get /some/uri
+```
+Use a different config file:
+```sh
+HPECP_CONFIG_FILE=myclus.conf hpecp do-something
+```
+Logging with HTTP tracing:
+```sh
+export LOG_LEVEL=DEBUG
+hpecp do-something
+```
+More sophisticated CLI examples [here](https://github.com/hpe-container-platform-community/hcp-demo-env-aws-terraform/tree/master/bin/experimental)
+## Python Library Examples
+See docs: https://hpe-container-platform-community.github.io/hpecp-python-library/index.html
+Example:
+```py3
+from hpecp import ContainerPlatformClient
+client = ContainerPlatformClient(username='admin',
+ password='admin123',
+ api_host='127.0.0.1',
+ api_port=8080,
+ use_ssl=True,
+ verify_ssl='/certs/hpecp-ca-cert.pem')
+client.create_session() # Login
+# Alternatively:
+# client = ContainerPlatformClient.create_from_config_file().create_session()
+print(client.k8s_cluster.list(columns=['description', 'id']))
+```
+On my environment, this displays:
+```
++-------------+-----------------------+
+| description | id |
++-------------+-----------------------+
+| my cluster | /api/v2/k8scluster/20 |
++-------------+-----------------------+
+```
+
+%package -n python3-hpecp
+Summary: HPE Ezmeral Container Platform client
+Provides: python-hpecp
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-hpecp
+## Documentation
+See [here](https://hpe-container-platform-community.github.io/hpecp-python-library/index.html) for User Documentation.
+## Contributing
+See:
+- [Developing Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/DEVELOPING.md)
+- [Contribution Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/CONTRIBUTING.md)
+## Installation
+```shell
+pip3 install -U hpecp
+```
+If you encounter an issue installing on Centos 7.7 with Python 2.7 see [here](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/docs/README-INSTALL-HPECP-HOSTS.md) for a workaround
+## CLI examples
+You need to create a config file with your endpoint details - note that you can have multiple profiles:
+```ini
+cat > ~/.hpecp.conf <<EOF
+[default]
+api_host = 127.0.0.1
+api_port = 8080
+use_ssl = True
+verify_ssl = False
+warn_ssl = False
+username = admin
+password = admin123
+[tenant1]
+tenant = /api/v1/tenant/15
+admin = ad_admin1
+password = pass123
+EOF
+```
+Setup bash autocomplete:
+```sh
+source <(hpecp autocomplete bash)
+```
+Autocompletion:
+```sh
+hpecp TAB
+```
+Add gateway:
+```sh
+hpecp lock create "Install Gateway"
+hpecp gateway create-with-ssh-key --ip 10.1.0.5 --proxy-node-hostname my.gateway.local --ssh-key-file controller_private.key
+hpecp gateway wait-for-state ${GATEWAY_ID} --states [installed] --timeout-secs 1200
+hpecp lock delete-all
+```
+Add K8s worker host:
+```sh
+hpecp k8sworker create-with-ssh-key \
+ --ip 10.1.0.10 \
+ --ssh-key-file controller_private.key \
+ --persistent-disks /dev/nvme1n1 \
+ --ephemeral-disks /dev/nvme2n1 \
+ --wait-for-operation-secs 600
+```
+K8s versions:
+```sh
+hpecp k8scluster k8s-supported-versions --major-filter 1 --minor-filter 17
+```
+Create k8s cluster:
+```sh
+hpecp k8scluster create --name myclus1 --k8shosts-config /api/v2/worker/k8shost/1:master --k8s_version=1.17.0
+```
+Get k8s available addons:
+```sh
+hpecp k8scluster get-available-addons --id $CLUSTER_ID
+```
+Add k8s cluster addons:
+```sh
+hpecp k8scluster add-addons --id $CLUSTER_ID --addons [istio,harbor]
+```
+List with columns parameter:
+```sh
+hpecp k8scluster list --columns [id,description,status]
+```
+List with (jmespath) query parameter:
+```sh
+hpecp catalog list --query "[?state!='installed' && state!='installing'] | [*].[_links.self.href] | []" --output text
+```
+List --query examples:
+```sh
+hpecp tenant examples
+```
+Tenant create:
+```sh
+TENANT_ID=$(hpecp tenant create --name tenant1 --description "dev tenant" --k8s-cluster-id $CLUSTER_ID --tenant-type k8s)
+hpecp tenant wait-for-status --id $TENANT_ID --status [ready] --timeout-secs 600
+```
+Add LDAP role to Tenant:
+```sh
+ADMIN_GROUP="CN=DemoTenantAdmins,CN=Users,DC=samdom,DC=example,DC=com"
+ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text)
+hpecp tenant add-external-user-group --tenant-id $TENANT_ID --group $ADMIN_GROUP --role-id $ADMIN_ROLE
+```
+Add internal user to Tenant:
+```sh
+ADMIN_USER_ID=$(hpecp user list --query "[?label.name == 'admin'][_links.self.href]" --output text)
+ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text)
+hpecp tenant assign-user-to-role --tenant-id $TENANT_ID --role-id $ADMIN_ROLE --user-id $ADMIN_USER_ID
+```
+Tenant kube config:
+```sh
+PROFILE=tenant1 hpecp tenant k8skubeconfig > tenant1_kube.conf
+# get available Kubedirector apps
+kubectl --kubeconfig tenant1_kube.conf -n t1 get kubedirectorapps
+# list running applications
+kubectl --kubeconfig tenant1_kube.conf -n t1 describe kubedirectorclusters
+```
+Http call:
+```sh
+hpecp httpclient get /some/uri
+```
+Use a different config file:
+```sh
+HPECP_CONFIG_FILE=myclus.conf hpecp do-something
+```
+Logging with HTTP tracing:
+```sh
+export LOG_LEVEL=DEBUG
+hpecp do-something
+```
+More sophisticated CLI examples [here](https://github.com/hpe-container-platform-community/hcp-demo-env-aws-terraform/tree/master/bin/experimental)
+## Python Library Examples
+See docs: https://hpe-container-platform-community.github.io/hpecp-python-library/index.html
+Example:
+```py3
+from hpecp import ContainerPlatformClient
+client = ContainerPlatformClient(username='admin',
+ password='admin123',
+ api_host='127.0.0.1',
+ api_port=8080,
+ use_ssl=True,
+ verify_ssl='/certs/hpecp-ca-cert.pem')
+client.create_session() # Login
+# Alternatively:
+# client = ContainerPlatformClient.create_from_config_file().create_session()
+print(client.k8s_cluster.list(columns=['description', 'id']))
+```
+On my environment, this displays:
+```
++-------------+-----------------------+
+| description | id |
++-------------+-----------------------+
+| my cluster | /api/v2/k8scluster/20 |
++-------------+-----------------------+
+```
+
+%package help
+Summary: Development documents and examples for hpecp
+Provides: python3-hpecp-doc
+%description help
+## Documentation
+See [here](https://hpe-container-platform-community.github.io/hpecp-python-library/index.html) for User Documentation.
+## Contributing
+See:
+- [Developing Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/DEVELOPING.md)
+- [Contribution Guide](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/CONTRIBUTING.md)
+## Installation
+```shell
+pip3 install -U hpecp
+```
+If you encounter an issue installing on Centos 7.7 with Python 2.7 see [here](https://github.com/hpe-container-platform-community/hpecp-python-library/blob/master/docs/README-INSTALL-HPECP-HOSTS.md) for a workaround
+## CLI examples
+You need to create a config file with your endpoint details - note that you can have multiple profiles:
+```ini
+cat > ~/.hpecp.conf <<EOF
+[default]
+api_host = 127.0.0.1
+api_port = 8080
+use_ssl = True
+verify_ssl = False
+warn_ssl = False
+username = admin
+password = admin123
+[tenant1]
+tenant = /api/v1/tenant/15
+admin = ad_admin1
+password = pass123
+EOF
+```
+Setup bash autocomplete:
+```sh
+source <(hpecp autocomplete bash)
+```
+Autocompletion:
+```sh
+hpecp TAB
+```
+Add gateway:
+```sh
+hpecp lock create "Install Gateway"
+hpecp gateway create-with-ssh-key --ip 10.1.0.5 --proxy-node-hostname my.gateway.local --ssh-key-file controller_private.key
+hpecp gateway wait-for-state ${GATEWAY_ID} --states [installed] --timeout-secs 1200
+hpecp lock delete-all
+```
+Add K8s worker host:
+```sh
+hpecp k8sworker create-with-ssh-key \
+ --ip 10.1.0.10 \
+ --ssh-key-file controller_private.key \
+ --persistent-disks /dev/nvme1n1 \
+ --ephemeral-disks /dev/nvme2n1 \
+ --wait-for-operation-secs 600
+```
+K8s versions:
+```sh
+hpecp k8scluster k8s-supported-versions --major-filter 1 --minor-filter 17
+```
+Create k8s cluster:
+```sh
+hpecp k8scluster create --name myclus1 --k8shosts-config /api/v2/worker/k8shost/1:master --k8s_version=1.17.0
+```
+Get k8s available addons:
+```sh
+hpecp k8scluster get-available-addons --id $CLUSTER_ID
+```
+Add k8s cluster addons:
+```sh
+hpecp k8scluster add-addons --id $CLUSTER_ID --addons [istio,harbor]
+```
+List with columns parameter:
+```sh
+hpecp k8scluster list --columns [id,description,status]
+```
+List with (jmespath) query parameter:
+```sh
+hpecp catalog list --query "[?state!='installed' && state!='installing'] | [*].[_links.self.href] | []" --output text
+```
+List --query examples:
+```sh
+hpecp tenant examples
+```
+Tenant create:
+```sh
+TENANT_ID=$(hpecp tenant create --name tenant1 --description "dev tenant" --k8s-cluster-id $CLUSTER_ID --tenant-type k8s)
+hpecp tenant wait-for-status --id $TENANT_ID --status [ready] --timeout-secs 600
+```
+Add LDAP role to Tenant:
+```sh
+ADMIN_GROUP="CN=DemoTenantAdmins,CN=Users,DC=samdom,DC=example,DC=com"
+ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text)
+hpecp tenant add-external-user-group --tenant-id $TENANT_ID --group $ADMIN_GROUP --role-id $ADMIN_ROLE
+```
+Add internal user to Tenant:
+```sh
+ADMIN_USER_ID=$(hpecp user list --query "[?label.name == 'admin'][_links.self.href]" --output text)
+ADMIN_ROLE=$(hpecp role list --query "[?label.name == 'Admin'][_links.self.href]" --output text)
+hpecp tenant assign-user-to-role --tenant-id $TENANT_ID --role-id $ADMIN_ROLE --user-id $ADMIN_USER_ID
+```
+Tenant kube config:
+```sh
+PROFILE=tenant1 hpecp tenant k8skubeconfig > tenant1_kube.conf
+# get available Kubedirector apps
+kubectl --kubeconfig tenant1_kube.conf -n t1 get kubedirectorapps
+# list running applications
+kubectl --kubeconfig tenant1_kube.conf -n t1 describe kubedirectorclusters
+```
+Http call:
+```sh
+hpecp httpclient get /some/uri
+```
+Use a different config file:
+```sh
+HPECP_CONFIG_FILE=myclus.conf hpecp do-something
+```
+Logging with HTTP tracing:
+```sh
+export LOG_LEVEL=DEBUG
+hpecp do-something
+```
+More sophisticated CLI examples [here](https://github.com/hpe-container-platform-community/hcp-demo-env-aws-terraform/tree/master/bin/experimental)
+## Python Library Examples
+See docs: https://hpe-container-platform-community.github.io/hpecp-python-library/index.html
+Example:
+```py3
+from hpecp import ContainerPlatformClient
+client = ContainerPlatformClient(username='admin',
+ password='admin123',
+ api_host='127.0.0.1',
+ api_port=8080,
+ use_ssl=True,
+ verify_ssl='/certs/hpecp-ca-cert.pem')
+client.create_session() # Login
+# Alternatively:
+# client = ContainerPlatformClient.create_from_config_file().create_session()
+print(client.k8s_cluster.list(columns=['description', 'id']))
+```
+On my environment, this displays:
+```
++-------------+-----------------------+
+| description | id |
++-------------+-----------------------+
+| my cluster | /api/v2/k8scluster/20 |
++-------------+-----------------------+
+```
+
+%prep
+%autosetup -n hpecp-0.22.13
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-hpecp -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.22.13-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..d6f90d0
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+83d37c0ea25c998c7dd2dca75183de69 hpecp-0.22.13.tar.gz