]> granicus.if.org Git - pdns/commitdiff
pdnsutil: Use new domain in b2bmigrate
authorAki Tuomi <cmouse@cmouse.fi>
Tue, 1 May 2018 18:46:55 +0000 (21:46 +0300)
committerPieter Lexis <pieter.lexis@powerdns.com>
Wed, 23 May 2018 10:29:08 +0000 (12:29 +0200)
(cherry picked from commit 604e9ac3fd450e445c5b8ec43ec3f5fd1f5bf1a9)

pdns/pdnsutil.cc

index 8c0c5ccdb42dd6a14b9724c4b1bc60ee36343d01..9a77159311e7f8e536ceb5d03cb293da100f8bb9 100644 (file)
@@ -3110,12 +3110,14 @@ try
     // iterate zones
     for(const DomainInfo& di: domains) {
       size_t nr,nc,nm,nk;
+      DomainInfo di_new;
       DNSResourceRecord rr;
       cout<<"Processing '"<<di.zone<<"'"<<endl;
       // create zone
       if (!tgt->createDomain(di.zone)) throw PDNSException("Failed to create zone");
-      tgt->setKind(di.zone, di.kind);
-      tgt->setAccount(di.zone,di.account);
+      if (!tgt->getDomainInfo(di.zone, di_new)) throw PDNSException("Failed to create zone");
+      tgt->setKind(di_new.zone, di.kind);
+      tgt->setAccount(di_new.zone,di.account);
       string masters="";
       bool first = true;
       for(const string& master: di.masters) {
@@ -3124,11 +3126,12 @@ try
         first = false;
         masters += master;
       }
-      tgt->setMaster(di.zone, masters);
+      tgt->setMaster(di_new.zone, masters);
       // move records
       if (!src->list(di.zone, di.id, true)) throw PDNSException("Failed to list records");
       nr=0;
       while(src->get(rr)) {
+        rr.domain_id = di_new.id;
         if (!tgt->feedRecord(rr, DNSName())) throw PDNSException("Failed to feed record");
         nr++;
       }
@@ -3137,6 +3140,7 @@ try
       if (src->listComments(di.id)) {
         Comment c;
         while(src->getComment(c)) {
+          c.domain_id = di_new.id;
           tgt->feedComment(c);
           nc++;
         }