跳转到主要内容

MySQL数据库关系,用于Juju操作框架Charm

项目描述

Juju操作框架Charm接口,用于MySQL和MariaDB关系

PyPI version PyPI Supported Python Versions GitHub license GitHub Actions (Tests)

要在您的Juju操作框架 charm中使用此接口,请指导charmcraft将其嵌入到您构建的操作框架charm中,通过将ops-lib-mysql添加到您的requirements.txt文件中:

ops
ops-lib-mysql

您的charm需要在它的metadata.yaml文件中声明它对接口的使用

requires:
  db:
    interface: mysql
    limit: 1  # Most charms only handle a single MySQL Application.

您的charm需要启动它并处理事件

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

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

ops-lib-mysql-1.0.zip (9.5 kB 查看哈希值)

上传于

构建发行版

ops_lib_mysql-1.0-py2.py3-none-any.whl (7.1 kB 查看散列值)

上传于 Python 2 Python 3

由以下支持