Hello community,

here is the log from the commit of package yast2-dns-server for 
openSUSE:Factory checked in at 2012-05-03 11:01:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-dns-server (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-dns-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-dns-server", Maintainer is "loci...@suse.com"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-dns-server/yast2-dns-server.changes        
2012-04-17 22:04:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-dns-server.new/yast2-dns-server.changes   
2012-05-03 11:02:12.000000000 +0200
@@ -1,0 +2,19 @@
+Tue Apr 24 10:38:54 CEST 2012 - loci...@suse.com
+
+- Fixed redrawing records settings UI entries when deleting
+  records (BNC#758745).
+- 2.23.2
+
+------------------------------------------------------------------
+Fri Apr 20 16:16:11 CEST 2012 - loci...@suse.com
+
+- Fixed removing RRs from LDAP when they share the same LDAP
+  object with another non-deleted RRs (BNC#755592).
+
+------------------------------------------------------------------
+Tue Apr 17 16:53:59 CEST 2012 - loci...@suse.com
+
+- Triggering the global "modified" flag while adding/modifying
+  a zone to be correctly stored later (BNC#753038).
+
+------------------------------------------------------------------

Old:
----
  yast2-dns-server-2.23.1.tar.bz2

New:
----
  yast2-dns-server-2.23.2.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-dns-server.spec ++++++
--- /var/tmp/diff_new_pack.7OlSyR/_old  2012-05-03 11:02:18.000000000 +0200
+++ /var/tmp/diff_new_pack.7OlSyR/_new  2012-05-03 11:02:18.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-dns-server
-Version:        2.23.1
+Version:        2.23.2
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ yast2-dns-server-2.23.1.tar.bz2 -> yast2-dns-server-2.23.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dns-server-2.23.1/VERSION 
new/yast2-dns-server-2.23.2/VERSION
--- old/yast2-dns-server-2.23.1/VERSION 2012-04-17 11:17:59.000000000 +0200
+++ new/yast2-dns-server-2.23.2/VERSION 2012-04-24 14:57:14.000000000 +0200
@@ -1 +1 @@
-2.23.1
+2.23.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dns-server-2.23.1/configure 
new/yast2-dns-server-2.23.2/configure
--- old/yast2-dns-server-2.23.1/configure       2012-04-17 11:18:07.000000000 
+0200
+++ new/yast2-dns-server-2.23.2/configure       2012-04-24 14:57:22.000000000 
+0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for yast2-dns-server 2.23.1.
+# Generated by GNU Autoconf 2.68 for yast2-dns-server 2.23.2.
 #
 # Report bugs to <http://bugs.opensuse.org/>.
 #
@@ -559,8 +559,8 @@
 # Identity of this package.
 PACKAGE_NAME='yast2-dns-server'
 PACKAGE_TARNAME='yast2-dns-server'
-PACKAGE_VERSION='2.23.1'
-PACKAGE_STRING='yast2-dns-server 2.23.1'
+PACKAGE_VERSION='2.23.2'
+PACKAGE_STRING='yast2-dns-server 2.23.2'
 PACKAGE_BUGREPORT='http://bugs.opensuse.org/'
 PACKAGE_URL=''
 
@@ -1229,7 +1229,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures yast2-dns-server 2.23.1 to adapt to many kinds of 
systems.
+\`configure' configures yast2-dns-server 2.23.2 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1301,7 +1301,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of yast2-dns-server 2.23.1:";;
+     short | recursive ) echo "Configuration of yast2-dns-server 2.23.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1381,7 +1381,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-yast2-dns-server configure 2.23.1
+yast2-dns-server configure 2.23.2
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1398,7 +1398,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by yast2-dns-server $as_me 2.23.1, which was
+It was created by yast2-dns-server $as_me 2.23.2, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2328,7 +2328,7 @@
 
 # Define the identity of the package.
  PACKAGE='yast2-dns-server'
- VERSION='2.23.1'
+ VERSION='2.23.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2450,7 +2450,7 @@
 
 
 
-VERSION="2.23.1"
+VERSION="2.23.2"
 RPMNAME="yast2-dns-server"
 MAINTAINER="Lukas Ocilka <loci...@suse.cz>"
 
@@ -3380,7 +3380,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by yast2-dns-server $as_me 2.23.1, which was
+This file was extended by yast2-dns-server $as_me 2.23.2, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -3433,7 +3433,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-yast2-dns-server config.status 2.23.1
+yast2-dns-server config.status 2.23.2
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dns-server-2.23.1/configure.in 
new/yast2-dns-server-2.23.2/configure.in
--- old/yast2-dns-server-2.23.1/configure.in    2012-04-17 11:18:05.000000000 
+0200
+++ new/yast2-dns-server-2.23.2/configure.in    2012-04-24 14:57:19.000000000 
+0200
@@ -3,7 +3,7 @@
 dnl -- This file is generated by y2autoconf 2.21.8 - DO NOT EDIT! --
 dnl    (edit configure.in.in instead)
 
-AC_INIT(yast2-dns-server, 2.23.1, http://bugs.opensuse.org/, yast2-dns-server)
+AC_INIT(yast2-dns-server, 2.23.2, http://bugs.opensuse.org/, yast2-dns-server)
 dnl Check for presence of file 'RPMNAME'
 AC_CONFIG_SRCDIR([RPMNAME])
 
@@ -18,7 +18,7 @@
 AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
 
 dnl Important YaST2 variables
-VERSION="2.23.1"
+VERSION="2.23.2"
 RPMNAME="yast2-dns-server"
 MAINTAINER="Lukas Ocilka <loci...@suse.cz>"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dns-server-2.23.1/src/DnsServer.pm 
new/yast2-dns-server-2.23.2/src/DnsServer.pm
--- old/yast2-dns-server-2.23.1/src/DnsServer.pm        2012-04-17 
11:18:00.000000000 +0200
+++ new/yast2-dns-server-2.23.2/src/DnsServer.pm        2012-04-24 
14:57:14.000000000 +0200
@@ -532,6 +532,8 @@
        $zones[$current_zone_index] = \%tmp_current_zone;
     }
 
+    $self->SetModified ();
+
     return 1;
 }
 
@@ -1268,6 +1270,14 @@
 
     my $ok = 1;
 
+    foreach my $z (@zones) {
+       if (defined $z->{"modified"} and $z->{"modified"} == 1) {
+           y2milestone ("Some zones were modified");
+           $self->SetModified();
+           last;
+       }
+    }
+
     if ((! $modified) && (! SuSEFirewall->GetModified()))
     {
        return $ok;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dns-server-2.23.1/src/DnsZones.pm 
new/yast2-dns-server-2.23.2/src/DnsZones.pm
--- old/yast2-dns-server-2.23.1/src/DnsZones.pm 2012-04-17 11:18:00.000000000 
+0200
+++ new/yast2-dns-server-2.23.2/src/DnsZones.pm 2012-04-24 14:57:14.000000000 
+0200
@@ -5,7 +5,7 @@
 # Authors:      Jiri Srain <jsr...@suse.cz>
 #              Lukas Ocilka <loci...@suse.cz>
 #
-# $Id: DnsZones.pm 52897 2008-11-04 18:22:26Z locilka $
+# $Id: DnsZones.pm 67975 2012-04-20 14:19:54Z locilka $
 #
 # Contains routines for handling zone files (both directly and using nsupdate)
 
@@ -33,6 +33,7 @@
 
 my $zone_base_config_dn = "";
 
+my $LDAP_RECORD = 'Record';
 
 YaST::YCP::Import ("SCR");
 use DnsTsigKeys;
@@ -470,6 +471,11 @@
 
 # LDAP data
 
+# @param string record type
+sub LDAPRecordString {
+    return drunkCamelType (shift).$LDAP_RECORD;
+}
+
 BEGIN { $TYPEINFO{ZoneReadLdap} = ["function", [ "map", "any", "any" ], 
"string", "string" ]; }
 sub ZoneReadLdap {
     my $self = shift;
@@ -506,7 +512,7 @@
     my %zonemap = %{$found[0] || {}};
 
     my $serial = $self->UpdateSerial ("");
-    my @soa_str_lst = @{$zonemap{"sOARecord"}|| ["@ root $serial 3H 1H 1W 
1D"]};
+    my @soa_str_lst = @{$zonemap{LDAPRecordString('SOA')}|| ["@ root $serial 
3H 1H 1W 1D"]};
 
     my $soa_str = $soa_str_lst[0];
     my @soa_lst = split (" ", $soa_str);
@@ -557,7 +563,7 @@
 
        foreach my $rec_type (@all_rec_types)
        {
-           my $value_key = $rec_type."Record";
+           my $value_key = $rec_type.$LDAP_RECORD;
            my @values = @{$record{$value_key} || []};
            foreach my $value (@values)
            {
@@ -574,6 +580,41 @@
     return \%ret;
 }
 
+sub FillUpTmpLDAPRecords {
+    my $ref_found = shift;
+
+    my ($ldap_key, $record_key);
+    my $ldap_records = {};
+
+    foreach my $l_record (@{$$ref_found}) {
+       $ldap_key = $l_record->{'relativeDomainName'}[0];
+       $ldap_records->{$ldap_key} = [] if not defined 
$ldap_records->{$ldap_key};
+       foreach $record_key (keys %{$l_record}) {
+           push @{$ldap_records->{$ldap_key}}, $record_key if ($record_key =~ 
/^.*$LDAP_RECORD$/);
+       }
+    }
+
+    return $ldap_records;
+}
+
+sub MarkRemovedRecords {
+    my $ref_ldap_record = shift;
+    my $ref_relative_domain = shift;
+    my $ref_all_records = shift;
+
+    # Record is currently in LDAP
+    if (defined $$ref_all_records->{$$ref_relative_domain}) {
+       # All record types in relative domain
+       foreach my $recordtype (@{$$ref_all_records->{$$ref_relative_domain}}) {
+           # The new record does not contain such record type (thus it's 
removed)
+           if (not defined $$ref_ldap_record{$recordtype}) {
+               $$ref_ldap_record{$recordtype} = [];
+               y2milestone ("Record ".$recordtype." has been removed from 
".$$ref_relative_domain." object");
+           }
+       }
+    }
+}
+
 BEGIN { $TYPEINFO{ZoneFileWriteLdap} = ["function", "boolean", [ "map", "any", 
"any"]];}
 sub ZoneFileWriteLdap {
     my $self = shift;
@@ -611,16 +652,16 @@
        "relativeDomainName" => ["@"],
        "dNSTTL" => [DnsRoutines->NormalizeTime ($zone_map{"ttl"} || "2D")],
        "dNSClass" => ["IN"],
-       "sOARecord" => $soa_record,
+       LDAPRecordString('SOA') => $soa_record,
     );
 
     my @current_records = grep {
        my %r = %{$_};
-       $r{"key"} eq "@" || $r{"key"} eq $zone . "."
+       $r{"key"} eq "@" || $r{"key"} eq $zone."."
     } @records;
 
     foreach my $rec_ref (@current_records) {
-       my $type = lc ($rec_ref->{"type"}) . "record";
+       my $type = LDAPRecordString($rec_ref->{"type"});
        my @cur_vals = @{$ldap_record{$type} || []};
        push @cur_vals, $rec_ref->{"value"};
        $ldap_record{$type} = \@cur_vals;
@@ -639,15 +680,24 @@
     );
 
     my $found_ref = SCR->Read (".ldap.search", \%ldap_query);
+    y2debug ("Base record: ".Dumper($found_ref));
+
+    my $ldap_records = FillUpTmpLDAPRecords(\$found_ref);
+
+    # Some (sub)records have been removed but the LDAP record have to stay
+    foreach my $r ('@', $zone.'.') {
+       MarkRemovedRecords (\%ldap_record, \$r, \$ldap_records);
+    }
+    y2debug ("New base record: ".Dumper(\%ldap_record));
 
     if (scalar (@{$found_ref || []}) == 0)
     {
-       y2milestone ("Creating new record");
+       y2milestone ("Creating new zone record");
        SCR->Write (".ldap.add", \%ldap_cmd, \%ldap_record);
     }
     else
     {
-       y2milestone ("Modifying existing record");
+       y2milestone ("Modifying existing zone record");
        delete $ldap_record{"objectClass"}; # objectclass can be changed by 
mail-server
        SCR->Write (".ldap.modify", \%ldap_cmd, \%ldap_record);
     }
@@ -656,7 +706,9 @@
        my %r = %{$_};
        $r{"key"}
     } @records;
+    # Never delete the base entry
     push @all_records, "@";
+
     # the search config map
     %ldap_query = (
         "base_dn" => $zone_dn,
@@ -668,13 +720,16 @@
     $found_ref = SCR->Read (".ldap.search", \%ldap_query) || [];
 
     my @found = @{$found_ref};
-
     @found = map {
        my @l = @{$_->{"relativeDomainName"}};
        $l[0];
     } @found;
 
-   #remove removed entries
+    $ldap_records = FillUpTmpLDAPRecords(\$found_ref);
+    y2debug ("Records currently in LDAP: ".Dumper($ldap_records));
+    y2debug ("New state of records: ".Dumper(\@records));
+
+    # Delete removed entries (only fully removed entries will be deleted)
     my @deleted = grep {
        my $current = $_;
        my @equiv = grep {
@@ -716,12 +771,16 @@
        } @records;
 
        foreach my $rec_ref (@current_records) {
-           my $type = drunkCamelType ($rec_ref->{"type"})."Record";
+           my $type = LDAPRecordString($rec_ref->{"type"});
            my @cur_vals = @{$ldap_record{$type} || []};
            push @cur_vals, $rec_ref->{"value"};
            $ldap_record{$type} = \@cur_vals;
        }
 
+       # Some (sub)records have been removed but the LDAP record have to stay
+       MarkRemovedRecords (\%ldap_record, \$r, \$ldap_records);
+       y2debug ("New record: ".Dumper(\%ldap_record));
+
        # the search config map - to choose add or modify
        my %ldap_query = (
            "base_dn" => $rec_dn,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dns-server-2.23.1/src/cmdline.ycp 
new/yast2-dns-server-2.23.2/src/cmdline.ycp
--- old/yast2-dns-server-2.23.1/src/cmdline.ycp 2012-04-17 11:18:00.000000000 
+0200
+++ new/yast2-dns-server-2.23.2/src/cmdline.ycp 2012-04-24 14:57:14.000000000 
+0200
@@ -6,7 +6,7 @@
  * Summary:    Command Line for YaST2 DNS Server
  * Authors:    Lukas Ocilka <loci...@suse.cz>
  *
- * $Id: cmdline.ycp 66820 2011-11-16 10:56:18Z jsuchome $
+ * $Id: cmdline.ycp 67961 2012-04-17 14:58:46Z locilka $
  */
 
 {
@@ -357,8 +357,11 @@
                        (string) options["name"]:nil,
                        splitstring((string) options["forwarders"]:"", ",")
                    );
+               } else {
+                   return true;
                }
            } else {
+               y2error ("Cannot add new zone %1", options);
                return false;
            }
 
@@ -366,7 +369,7 @@
        } else if (options["remove"]:nil!=nil) {
            return DnsServerAPI::RemoveZone((string) options["name"]:nil);
 
-       // Chenging settings
+       // Changing settings
        } else if (options["set"]:nil!=nil) {
            // Zone MasterServers
            if (options["masterserver"]:nil != nil) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dns-server-2.23.1/src/dialog-masterzone.ycp 
new/yast2-dns-server-2.23.2/src/dialog-masterzone.ycp
--- old/yast2-dns-server-2.23.1/src/dialog-masterzone.ycp       2012-04-17 
11:18:00.000000000 +0200
+++ new/yast2-dns-server-2.23.2/src/dialog-masterzone.ycp       2012-04-24 
14:57:14.000000000 +0200
@@ -5,7 +5,7 @@
  * Authors:    Jiri Srain <jiri.sr...@suse.cz>,
  *              Lukas Ocilka <lukas.oci...@suse.cz>
  *
- * $Id: dialog-masterzone.ycp 67408 2012-02-10 12:27:51Z locilka $
+ * $Id: dialog-masterzone.ycp 68001 2012-04-24 08:43:58Z locilka $
  */
 
 {
@@ -1196,6 +1196,8 @@
        );
 }
 
+void SwitchAndAdjustEditationWidgets (string & type, map current_record, 
string & decoded_zone, string & zone);
+
 void RedrawZonesTable () {
     integer index = -1;
     string zone_name = current_zone["zone"]:"";
@@ -1270,10 +1272,12 @@
 
     if (size (items) > 0)
     {
-       r = (integer)
-           UI::QueryWidget (`id ("records_list"), `CurrentItem);
+       r = (integer) UI::QueryWidget (`id ("records_list"), `CurrentItem);
+
+       map current_record = current_zone["records", r]:$[];
+       string current_type = current_record["type"]:"A";
 
-       AdjustEditationWidgets (current_zone["records", r]:$[], 
decoded_zone_name, zone_name);
+       SwitchAndAdjustEditationWidgets (current_type, current_record, 
decoded_zone_name, zone_name);
     }
 }
 

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to