2012-06-18 4 views
1

Infoblox API 인 Infoblox 어플라이언스에서 ns 그룹의 보조 DNS 서버를 변경하려고합니다. 원본 nsgroup에는 두 개의 보조 DNS 서버가 포함되어 있으며 하나의 마스터를 가진 단일 DNS 보조 서버를 배치하려고합니다.Infoblox :: Grid :: DNS :: Nsgroup의 보조 DNS 서버 수정

다음 코드는 nsgroup의 주석을 변경하지만 NS Group의 보조 서버는 변경하지 않습니다! 난 항상 두 개의 보조 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(); 
} 

답변

2

아, Infoblox API의 즐거움. 이것은 뉘앙스 중 하나입니다. 새로운 멤버 개체를 만들려면 기존 멤버 개체를 사용할 수 없습니다. 하지만 이미 가져온 보조 오브젝트의 값을 사용할 수 있습니다 ...

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

희망이 있습니다.