Skip to main content

API library for Core API.

Project description

python3-cyberfusion-cluster-support

API library for Core API.

Install

PyPI

Run the following command to install the package from PyPI:

pip3 install python3-cyberfusion-cluster-support

Generic

Run the following command to create a source distribution:

python3 setup.py sdist

Debian

Run the following commands to build a Debian package:

mk-build-deps -i -t 'apt -o Debug::pkgProblemResolver=yes --no-install-recommends -y'
dpkg-buildpackage -us -uc

Configure

Config file options

  • Section clusterapi, key clusterid. Only objects belonging to the specified cluster are loaded.
  • Section clusterapi, key serviceaccountid. Only objects belonging to a cluster for which a service account to cluster exists for the specified service account are loaded.

Class options

  • config_file_path. Non-default config file path.
  • cluster_ids. Only objects belonging to the specified clusters are loaded.

Cluster IDs: order of precedence

The cluster_ids class option takes precedence over the clusterid config file option.

If neither is set, all objects are loaded.

If the clusterid config file option is set, but you want to load all objects, setting the cluster_ids class option to None (default) will not work. Instead, use the sentinel value cyberfusion.ClusterSupport.ALL_CLUSTERS.

Usage

Basic

from cyberfusion.ClusterSupport import ClusterSupport

s = ClusterSupport()

Read

API objects without parameters

Some API objects do not require parameters to be retrieved.

These API objects are retrieved from the Core API once. They are then cached.

Examples:

print(s.database_users)
print(s.unix_users)
print(s.fpm_pools)

API objects with parameters

Some API objects require parameters to be retrieved.

These API objects are retrieved from the Core API on every call.

Example:

print(s.access_logs(virtual_host_id=s.virtual_hosts[0].id, ...))

Update

Example:

d = s.database_users[0]
d.password = "newpassword"
d.update()

Create

Example:

from cyberfusion.ClusterSupport import ClusterSupport
from cyberfusion.ClusterSupport.certificates import Certificate

s = ClusterSupport()

c = Certificate(s)
assert c.id is None

c.create(common_names=["domlimev.nl", "www.domlimev.nl"])
assert c.id is not None
assert c.common_names == common_names=["domlimev.nl", "www.domlimev.nl"]

Delete

Example:

from cyberfusion.ClusterSupport import ClusterSupport

s = ClusterSupport()

c = s.certificates[0]
c.delete()

Tests

Run tests with pytest:

pytest tests/

New tests with cassettes

Tests re-use cassettes.

Wrote a new test? Record a cassette as follows:

  • Reset your Core API instance.
  • Run the test passing pytest ... --record-mode rewrite.
  • Pass the following environment variables to pytest:
    • CLUSTER_API_SERVER_URL
    • CLUSTER_API_USERNAME
    • CLUSTER_API_PASSWORD
    • CLUSTER_API_API_KEY

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page