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
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
Hashes for 3scale_api_crd-0.1.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51e80891c5199a0453e5f04580e792ec065d9f76a0f4ba50b108b489b166a360 |
|
MD5 | a3e0e22ca77898e732dda7671958ff4e |
|
BLAKE2b-256 | 8ed799d4906c34ea053105fe017a11e74446ddfabd5570825cc00a901de60de5 |