summaryrefslogtreecommitdiff
path: root/0282-geo-rep-Fix-the-name-of-changelog-archive-file.patch
blob: 37a0f12669bcf135fa8ed723113ae51f9012e8d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
From 98c9fc8d774ae153ca6b44d3337cf5d9f7a030e2 Mon Sep 17 00:00:00 2001
From: Kotresh HR <khiremat@redhat.com>
Date: Fri, 16 Aug 2019 16:07:03 +0530
Subject: [PATCH 282/284] geo-rep: Fix the name of changelog archive file

Background:
The processed changelogs are archived each month in a single tar file.
The default format is "archive_YYYYMM.tar" which is specified as "%%Y%%m"
in configuration file.

Problem:
The created changelog archive file didn't have corresponding year
and month. It created as "archive_%Y%m.tar" on python2 only systems.

Cause and Fix:
Geo-rep expects "%Y%m" after the ConfigParser reads it from config file.
Since it was "%%Y%%m" in config file, geo-rep used to get correct value
"%Y%m" in python3 and "%%Y%%m" in python2 which is incorrect.
The fix can be to use "%Y%m" in config file but that fails in python3.
So the fix is to use "RawConfigParser" in geo-rep and use "%Y%m". This
works both in python2 and python3.

Backport of:
 > Patch: https://review.gluster.org/23248
 > Change-Id: Ie5b7d2bc04d0d53cd1769e064c2d67aaf95d557c
 > fixes: bz#1741890
 > Signed-off-by: Kotresh HR <khiremat@redhat.com>

Change-Id: Ie5b7d2bc04d0d53cd1769e064c2d67aaf95d557c
BUG: 1743634
Signed-off-by: Kotresh HR <khiremat@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/179188
Tested-by: RHGS Build Bot <nigelb@redhat.com>
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
---
 geo-replication/gsyncd.conf.in             |  2 +-
 geo-replication/syncdaemon/gsyncdconfig.py | 14 +++++++-------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/geo-replication/gsyncd.conf.in b/geo-replication/gsyncd.conf.in
index c2e4f0d..5ebd57a 100644
--- a/geo-replication/gsyncd.conf.in
+++ b/geo-replication/gsyncd.conf.in
@@ -109,7 +109,7 @@ type=int
 help=Minimum time interval in seconds for passive worker to become Active
 
 [changelog-archive-format]
-value=%%Y%%m
+value=%Y%m
 help=Processed changelogs will be archived in working directory. Pattern for archive file
 
 [use-meta-volume]
diff --git a/geo-replication/syncdaemon/gsyncdconfig.py b/geo-replication/syncdaemon/gsyncdconfig.py
index 38f3594..f823311 100644
--- a/geo-replication/syncdaemon/gsyncdconfig.py
+++ b/geo-replication/syncdaemon/gsyncdconfig.py
@@ -10,9 +10,9 @@
 #
 
 try:
-    from ConfigParser import ConfigParser, NoSectionError
+    from ConfigParser import RawConfigParser, NoSectionError
 except ImportError:
-    from configparser import ConfigParser, NoSectionError
+    from configparser import RawConfigParser, NoSectionError
 import os
 import shutil
 from string import Template
@@ -94,7 +94,7 @@ class Gconf(object):
         if name != "all" and not self._is_configurable(name):
             raise GconfNotConfigurable()
 
-        cnf = ConfigParser()
+        cnf = RawConfigParser()
         with open(self.custom_conf_file) as f:
             cnf.readfp(f)
 
@@ -138,7 +138,7 @@ class Gconf(object):
         if curr_val == value:
             return True
 
-        cnf = ConfigParser()
+        cnf = RawConfigParser()
         with open(self.custom_conf_file) as f:
             cnf.readfp(f)
 
@@ -178,7 +178,7 @@ class Gconf(object):
         self.session_conf_items = []
         self.default_values = {}
 
-        conf = ConfigParser()
+        conf = RawConfigParser()
         # Default Template config file
         with open(self.default_conf_file) as f:
             conf.readfp(f)
@@ -342,7 +342,7 @@ class Gconf(object):
         return False
 
 def is_config_file_old(config_file, mastervol, slavevol):
-    cnf = ConfigParser()
+    cnf = RawConfigParser()
     cnf.read(config_file)
     session_section = "peers %s %s" % (mastervol, slavevol)
     try:
@@ -357,7 +357,7 @@ def config_upgrade(config_file, ret):
     shutil.copyfile(config_file, config_file_backup)
 
     #write a new config file
-    config = ConfigParser()
+    config = RawConfigParser()
     config.add_section('vars')
 
     for key, value in ret.items():
-- 
1.8.3.1