Получите имя Удаленного блока в зависимом очаровании

В моей модели амулета у меня есть несколько выполнений приложений, и мне присоединили subordanite очарование к одному из тех:

Unit                Workload  Agent  Machine  Public address  Ports            Message
mycharm/0*           active    idle   4        192.168.1.34   80/tcp           ready
wordpress/0*         unknown   idle   2        192.168.1.48   80/tcp
  trustysub/0*       active    idle            192.168.1.48                    ready

Теперь я хочу мой trustysub зависимое очарование для знания unit_name единицы он привязан (wordpress/0). Таким образом, когда я добавляю отношение juju add-relation wordpress trustysub, Я могу написать имя единицы Wordpress в файл или что-то.

@when('myrelation.available')
def write_unit_name():
    # code to get unitname
    f = open('myfile', 'w')
    f.write('unitname')
    f.close()
    status_set('active', 'ready')

мой metadata.yml похож на это:

name: trustysub
summary: test charm
maintainer: Sebastien Pattyn <sebastien.pattyn@gmail.com>
description: |
  This subordinate charm writes the unitname from the charm it has a relationship with, to a file
tags: ['misc']
subordinate: true
requires:
  subrelation:
    interface: juju-info
    scope: container
series: ['trusty']

Любая идея о том, что я должен добавить в своем коде для получения unitname Wordpress в моем зависимом очаровании

0
задан 17 January 2017 в 06:55

1 ответ

пакет Charmhelpers.core.hookenv имеет некоторые функции, которые могут использоваться для получения информации об отношение. Импорт пакета даст Вам возможность возвратить Удаленный блок при помощи remote_unit() метод. Это возвратит определенный удаленный блок для текущего отношения Hook.

можно использовать его как это.

from charmhelpers.core.hookenv import remote_unit

@when('myrelation.available')
def write_unit_name():
    f = open('myfile', 'w')
    f.write(remote_unit())
    f.close()
    status_set('active', 'ready')
0
ответ дан 7 November 2019 в 03:48

Другие вопросы по тегам:

Похожие вопросы: