MySQL database relation for Juju Operator Framework Charms
Project description
Juju Operator Framework Charm Interface for MySQL & MariaDB Relations
To use this interface in your
Juju Operator Framework charm,
instruct charmcraft to embed
it into your built Operator Framework charm by adding ops-lib-mysql to
your requirements.txt file::
ops
ops-lib-mysql
Your charm needs to declare its use of the interface in its metadata.yaml file:
requires:
db:
interface: mysql
limit: 1 # Most charms only handle a single MySQL Application.
Your charm needs to bootstrap it and handle events:
from opslib.mysql import MySQLClient, MySQLRelationEvent
class MyCharm(ops.charm.CharmBase):
_state = ops.framework.StoredState()
def __init__(self, *args):
super().__init__(*args)
self._state.set_default(
db_available=False, db_conn_str=None, db_host=None, db_port=None, db_name=None,
db_user=None, db_password=None, db_root_password=None,
)
self.db = MySQLClient(self, 'db') # 'db' relation in metadata.yaml
self.framework.observe(self.db.on.database_changed, self._on_database_changed)
def _on_database_changed(self, event: MySQLRelationEvent):
self._state.db_available = event.is_available # Boolean flag
self._state.db_conn_str = event.connection_string # host={host} port={port} ...
self._state.db_host = event.host
self._state.db_port = event.port
self._state.db_name = event.database
self._state.db_user = event.user
self._state.db_password = event.password
self._state.db_root_password = event.root_password
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
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 ops-lib-mysql-1.0.zip.
File metadata
- Download URL: ops-lib-mysql-1.0.zip
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
093215604f00176b0693de7857d4eb7f7da1190fdff4d1a3a95d1cb5d839ac5a
|
|
| MD5 |
32604e844c9d98c6e3f2a0eb666cf4dc
|
|
| BLAKE2b-256 |
5fdc77e5602009e7fa96625fa84be8f6c1dce1cefe156e703853772ade188542
|
File details
Details for the file ops_lib_mysql-1.0-py2.py3-none-any.whl.
File metadata
- Download URL: ops_lib_mysql-1.0-py2.py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97bf3cf7c2aff0124516d6811071010a3fcdf4f39a01a8855c1c1f27edd7a448
|
|
| MD5 |
d730ae6db7cf33c492f011b70015eb92
|
|
| BLAKE2b-256 |
fe4bdbe3919dfe6f3df36c6dafee29cf3e9c777606fd8007f5de40c6cbedd4c5
|