1

Infoblox APIを使用して、Infoblox アプライアンスの nsgroup のセカンダリ DNS サーバーを変更したいと考えています。元の nsgroup には 2 つのセカンダリ DNS サーバーが含まれており、1 つの DNS セカンダリ サーバーを配置したいと考えています (もちろん 1 つのマスターを使用)。

次のコードは、nsgroup のコメントを変更しますが、NS グループのセカンダリ サーバーは変更しません。私は常に 2 つのセカンダリ DNS サーバーを持っています。コードはエラーを引き起こしません。

sub nsGroupSlave {
    # https://ipam.illinois.edu/api/doc/Infoblox/Grid/DNS/Nsgroup.html

    my @retrieved_obj = $session->get(
        object => "Infoblox::Grid::DNS::Nsgroup",
        name => "Interne"); 
    my $nsg1 = $retrieved_obj[0]; 

    unless ($nsg1){
        msg(t() . "ERROR : " . Infoblox::status_code() . ":" . Infoblox::status_detail(),$v);
    } else {
        msg(t() . "OK",$v);
    }

    my @retrieved_objsp = $session->get(
        object => "Infoblox::Grid::Member",
        name => "ns1.intra.example.com"
    ); 
    my $nsp = $retrieved_objsp[0]; 

    my @retrieved_objssi = $session->get(
        object => "Infoblox::Grid::Member",
        name => "nsZ.intra.example.com"
    ); 
    my $nssi = $retrieved_objssi[0]; 


    my @result_array = $session->get(
        "object" => "Infoblox::Grid::DNS" , 
        "grid" => "infoblox" 
    );


    my $object = $result_array[0];

    $nsg1->primary($nsp);
    $nsg1->secondaries([$nssi]);
    $nsg1->comment("Modify by restore-backup");

    my $response1 = $session->modify($nsg1);
    unless ($response1) {
        msg(t() . "FAIL : ", $session->status_code() . ":" . $session->status_detail(),$v);
    }

    $object->nsgroups( [ $nsg1 ] );

    my $response3 = $session->modify($object);
    unless ($response3) {
        msg(t() . "FAIL : ", $session->status_code() . ":" . $session->status_detail(),$v);
    }

    $session->restart();
}
4

1 に答える 1

2

ああ、Infoblox API の素晴らしさ。これはそのニュアンスの 1 つです。新しいメンバー オブジェクトを作成する必要がある既存のメンバー オブジェクトを使用することはできません。ただし、既に取得したセカンダリ オブジェクトの値を使用することはできます...

my $newMember = Infoblox::DNS::Member->new(
    name     => $nssi->name(),
    ipv4addr => $nssi->ipv4addr(),
);
$nsg1->primary($nsp);
$nsg1->secondaries([$newMember]);
$nsg1->comment("Modify by restore-backup");

お役に立てれば。

于 2012-08-22T21:04:08.083 に答える