2016-08-04 2 views
0

私はJujuには新しく、魅力を書こうとしています。私はサービスに配備されているすべてのユニットのIPアドレスが必要です。ローカル展開ジュジュ -Jujuの魅力にあるサービスの全ユニットのIPアドレスを取得するにはどうすればいいですか?

wordpressの私は、地元のレポから私の魅力を展開::信頼できる/ X

私を、私はCS -n 3を展開

EGIはWordPress with-- ジュジュの3台を持って使用しています私は私の魅力にフックのいずれかで、ワードプレスのサービスのすべての3つのIPアドレスのリストを必要とする、今two--ジュジュアドオン関係のXのwordpressの

間の関係を追加します(X)

私は関係-キーを設定しましたwordpressでrelatiを使ってみましたon-ids-> relation-list-> relation-私の魅力のフックツールを取得します。 しかし、それは私にちょうど1つのipと3つのすべてを与えません。

relation-ids - 1つのIDを指定します。 リレーションリストID - 1つのユニットのみが表示されます。 relation-get - 対応するipを指定します。

予想される結果を得るにはどうすればよいですか?

答えて

0

あなたはget_host_ipが魅力のすべてのユニットのIPアドレスを取得するにはcharmhelpers

from charmhelpers.contrib.openstack.utils import get_host_ip 

からインポートすることができ、あなたはピア関係を追加する必要が

get_host_ip(unit_get('private-address')

を使用してユニットのアドレスを取得することができます。あなたはhere

1

からの関係について読むことができますこのような何かを試してみてください:

from charmhelpers.contrib.openstack.utils import get_host_ip 
from charmhelpers.core.hookenv import (
    relation_ids, 
    related_units, 
    relation_get, 
) 
def _get_ips(rel_name): 
    return [get_host_ip(rdata['private-address']) 
      for rid in relation_ids(rel_name) 
      for rdata in 
      (relation_get(rid=rid, unit=unit) for unit in related_units(rid)) 
      if rdata] 

ips = _get_ips("wordpress") 

リレーション名はあなたのケースで異なる場合があります。それを確認してください。

関連する問題