В моей модели амулета у меня есть несколько выполнений приложений, и мне присоединили 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 в моем зависимом очаровании
пакет 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')