従属チャームでリモートユニット名を取得する


0

私のjujuモデルでは、いくつかのアプリケーションが実行されており、そのうちの1つに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']

下位チャームでWordpressのユニット名を取得するためにコードに追加する必要のあるアイデア

回答:


0

Charmhelpers.core.hookenvのパッケージは、AAの関係についての情報を取得するために使用することができますいくつかの機能を持っています。パッケージをインポートすると、remote_unit()メソッドを使用してリモートユニットを返すことができます。これは、現在のリレーションフックの特定のリモートユニットを返します。

このように使用できます。

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')
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.