3scale CRD Python Client
Project description
3scale-api-python-crd
3scale client uses CRs for object definition. CRs are processed by 3scale Operator.
Installing
Install and update using pip:
pip install 3scale-api-crd
Or as a dependency using the pipenv
pipenv install 3scale-api-crd
Usage
Client supports basic CRUD operations and it generates CRs in Openshift namespace defined by oc session.
Basic usage of the client:
oc login
oc project example
import threescale_api_crd
client = threescale_api_crd.ThreeScaleClientCRD(url="myaccount.3scale.net", token="secret_token", ssl_verify=True, ocp_provider_ref="secret_with_credentials")
Using of objects are described in 3scale API client README.
Run the Smoke Tests
To run the tests you need to have installed development dependencies:
pipenv install --dev
and then run the pytest:
pipenv run pytest -m smoke
Integration tests configuration
To run the integration tests you need to set these extra env variables:
THREESCALE_PROVIDER_URL='https://example-admin.3scale.net'
THREESCALE_PROVIDER_TOKEN='<test-token>'
THREESCALE_MASTER_URL='https://master.3scale.net'
THREESCALE_MASTER_TOKEN='<test-master-token>'
and to have valid oc tool session to Openshift where 3scale Operator is deployed and watches for CRs.
By default:
- oc namespace should be the namespace where 3scale instance is deployed
- the system-seed secret is used by 3scale Operator client
- THREESCALE_ variables are used for not implemented Threescale client features
If CRs are created in different namespace to 3scale deployment, env variable
OCP_PROVIDER_ACCOUNT_REF can be specified with secret name used by 3scale Operator client,
see https://github.com/3scale/3scale-operator/blob/master/doc/backend-reference.md#provider-account-reference
Finished integration unit tests
- AccountUsers
- Accounts
- ActiveDocs
- ApplicationPlans
- BackendMappingRules
- BackendMetrics
- BackendUsages
- Backends
- Limits
- MappingRules
- Metrics
- OpenApis
- Policies
- PolicyRegistries
- PricingRules
- Proxies
- Services
- Tenants
- ProxyConfigPromote
- Applications
- Methods
- ApplicationAuth
Command to run integration unit tests: pipenv run pytest --log-cli-level=10 -vvvv -s ./tests/integration/ |& tee x
TODO
- do https://github.com/3scale/3scale-operator/pull/813
- do not simulate app plan id
- create unit integration tests for:
- ProductDeploymentSpec
- AuthenticationSpec
- implement delete of policies + add unit tests
- add proper error messages in case of for example missing required arguments, see test_should_fields_be_required
- implement optimitazation on the oc level:
- for every test run, label objects - oc label product.capabilities.3scale.net/testyrclkfzyhue test_run=new --overwrite
- use only objects labeled by test run id - oc get product.capabilities.3scale.net --show-labels=true -l test_run=new
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file 3scale-api-crd-0.1.6.tar.gz.
File metadata
- Download URL: 3scale-api-crd-0.1.6.tar.gz
- Upload date:
- Size: 42.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6b3a608b232488584515a39447b7cd139f8309aaf451f0ed0548eee8c42575a
|
|
| MD5 |
85e1d5c1efd7c3d497925f945b31a16f
|
|
| BLAKE2b-256 |
d094b0f532d7e63ec8da2fecec0a5f0ae9f82df3d3b218550bee5f928c6ea65a
|
Provenance
The following attestation bundles were made for 3scale-api-crd-0.1.6.tar.gz:
Publisher:
release.yml on 3scale-qe/3scale-api-python-crd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
3scale_api_crd-0.1.6.tar.gz -
Subject digest:
b6b3a608b232488584515a39447b7cd139f8309aaf451f0ed0548eee8c42575a - Sigstore transparency entry: 246459307
- Sigstore integration time:
-
Permalink:
3scale-qe/3scale-api-python-crd@e386a57f5b9c27954aa5acdc7670143473884f56 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/3scale-qe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e386a57f5b9c27954aa5acdc7670143473884f56 -
Trigger Event:
push
-
Statement type:
File details
Details for the file 3scale_api_crd-0.1.6-py3-none-any.whl.
File metadata
- Download URL: 3scale_api_crd-0.1.6-py3-none-any.whl
- Upload date:
- Size: 53.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fa1cb7736020e46c9c02878957d553949aa9a3170592bde812f68bfc2258742
|
|
| MD5 |
e66c31437561de70a0dd640dd395f931
|
|
| BLAKE2b-256 |
da1dbc649fc464163b58844bc4af1b5352f61ad5f47c9d18526ea359099db64e
|
Provenance
The following attestation bundles were made for 3scale_api_crd-0.1.6-py3-none-any.whl:
Publisher:
release.yml on 3scale-qe/3scale-api-python-crd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
3scale_api_crd-0.1.6-py3-none-any.whl -
Subject digest:
8fa1cb7736020e46c9c02878957d553949aa9a3170592bde812f68bfc2258742 - Sigstore transparency entry: 246459314
- Sigstore integration time:
-
Permalink:
3scale-qe/3scale-api-python-crd@e386a57f5b9c27954aa5acdc7670143473884f56 -
Branch / Tag:
refs/tags/v0.1.6 - Owner: https://github.com/3scale-qe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e386a57f5b9c27954aa5acdc7670143473884f56 -
Trigger Event:
push
-
Statement type: