Coder Social home page Coder Social logo

interface-redis's Introduction

Interface-Redis

Implementation

Layers leveraging this interface can react to the 'endpoint.redis.available' flag set on the requires side of the interface/relationship.

Example

When a relationship is created via the redis interface, the flag 'endpoint.redis.available' will be set active in the relating charm.

juju deploy cs:~omnivector/redis

juju deploy my-test-charm

juju relate my-test-charm redis

Where my-test-charm could resemble the following

# layer.yaml
includes: 
  - 'layer:basic'
  - 'interface:redis'
# metadata.yaml

name:  my-test-charm
summary: my-test-charm
maintainer: James Beedy <[email protected]>
description: |
  test-charm
tags:
  - test
series:
  - bionic
requires:
  redis:
    interface: redis
# my_test_charm.py

from charms.reactive import (
    when,
    when_not,
    set_flag,
    endpoint_from_flag,
)

from charmhelpers.core.hookenv import status_set
from charmhelpers.core import unitdata


KV = unitdata.kv()


@when('endpoint.redis.available')
@when_not('my-test-charm.redis.available')
def get_set_redis_connection_info():
    """ Save redis connection info to unitdata.
    """
    status_set('maintenance', 'Getting redis connection info')

    endpoint = endpoint_from_flag('endpoint.redis.available')

    KV.set('redis_host', endpoint.relation_data()[0]['host'])
    KV.set('redis_port', endpoint.relation_data()[0]['port'])

    status_set('active', 'Redis connection info received')
    set_flag('my-test-charm.redis.available')

Copyright

License

  • AGPLv3 (see LICENSE file)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.