[MOS 10.0] Update cinder to v9.0.0.0b1
[openstack-build/cinder-build.git] / xenial / debian / patches / Missing_configuration_opts_from_cinder.sample.conf.patch
1 Subject: Missing configuration opts from cinder.sample.conf
2  The logic for writing opts registered with register_opt() to the
3  auto-generated opts.py file was flawed in that the directories where
4  there were opts being registered with this method would be imported,
5  but the actual opt would be missed when looking through the file for
6  the name of the opt being registered. Now the singular opts are being
7  caught and written to opts.py for the oslo-config-generator to process.
8  .
9  The 'backend' section was added to generate_cinder_opts.py
10  due to some of the missing opts being a part of that section.
11  .
12  Also the way some of the opts that were being registered with groups
13  were incorrect and so this addresses those in both how they were
14  processed in generate_cinder_opts.py and the files in which they are being
15  registered.
16  .
17  There is also one change to the name of an opt in cinder/volume/api.py.
18  Instances such as this one will be caught by the in-progress hacking
19  check patch: https://review.openstack.org/#/c/223375/
20 Author: Kendall Nelson <kjnelson@us.ibm.com>
21 Date: Mon, 21 Sep 2015 18:11:19 +0000 (-0500)
22 X-Git-Url: https://review.openstack.org/gitweb?p=openstack%2Fcinder.git;a=commitdiff_plain;h=10f5e92e1246dd33b244c4a7031bb81b17b240a3
23 Change-Id: I8d333d7529d40f3a3b3651ca3a52c0048d96b99a
24 Bug-Ubuntu: https://bugs.launchpad.net/cinder/+bug/1498122
25 Origin: upstream, https://review.openstack.org/#/c/225974/
26 Last-Update: 2015-09-01
27
28 diff --git a/cinder/config/generate_cinder_opts.py b/cinder/config/generate_cinder_opts.py
29 index 9fa8d13..50c206b 100644
30 --- a/cinder/config/generate_cinder_opts.py
31 +++ b/cinder/config/generate_cinder_opts.py
32 @@ -19,6 +19,8 @@ if __name__ == "__main__":
33      opt_file = open("cinder/opts.py", 'a')
34      opt_dict = {}
35      dir_trees_list = []
36 +    REGISTER_OPTS_STR = "CONF.register_opts("
37 +    REGISTER_OPT_STR = "CONF.register_opt("
38  
39      opt_file.write("import copy\n")
40      opt_file.write("import itertools\n\n")
41 @@ -31,11 +33,11 @@ if __name__ == "__main__":
42                       '+  | sed -e "s/^' + basedir +
43                       '\///g" | sort -u')
44  
45 -    cmd_opts = common_string % "CONF.register_opts("
46 +    cmd_opts = common_string % REGISTER_OPTS_STR
47      output_opts = subprocess.check_output('{}'.format(cmd_opts), shell = True)
48      dir_trees_list = output_opts.split()
49  
50 -    cmd_opt = common_string % "CONF.register_opt("
51 +    cmd_opt = common_string % REGISTER_OPT_STR
52      output_opt = subprocess.check_output('{}'.format(cmd_opt), shell = True)
53      temp_list = output_opt.split()
54  
55 @@ -84,21 +86,29 @@ if __name__ == "__main__":
56                              'BRCD_FABRIC_EXAMPLE': [],
57                              'CISCO_FABRIC_EXAMPLE': [],
58                              'profiler': [],
59 +                            'backend': [],
60                              'DEFAULT': [], }
61  
62      def _write_item(opts):
63          list_name = opts[-3:]
64 -        if list_name.lower() == "opts":
65 +        if list_name.lower() == "opt":
66              opt_file.write("            [" + opts.strip("\n") + "],\n")
67          else:
68              opt_file.write("            " + opts.strip("\n") + ",\n")
69  
70 +    def _retrieve_name(aline):
71 +        if REGISTER_OPT_STR in aline:
72 +            str_to_replace = REGISTER_OPT_STR
73 +        else:
74 +            str_to_replace = REGISTER_OPTS_STR
75 +        return aline.replace(str_to_replace, "")
76 +
77      for key in opt_dict:
78          fd = os.open(opt_dict[key], os.O_RDONLY)
79          afile = os.fdopen(fd, "r")
80  
81          for aline in afile:
82 -            exists = aline.find("CONF.register_opts(")
83 +            exists = aline.find("CONF.register_opt")
84              if exists != -1:
85                  # TODO(kjnelson) FIX THIS LATER. These are instances where
86                  # CONF.register_opts is happening without actually registering
87 @@ -109,41 +119,48 @@ if __name__ == "__main__":
88                      continue
89  
90                  if aline.find("fc-zone-manager") != -1:
91 -                    fc_zm_list = aline.replace("CONF.register_opts(", '')
92 -                    fc_zm_list = fc_zm_list.replace(", 'fc-zone-manager')", '')
93 -                    fc_zm_list.strip()
94 +                    fc_zm_list = _retrieve_name(aline)
95 +                    replace_string = ", group='fc-zone-manager')"
96 +                    fc_zm_list = fc_zm_list.replace(replace_string, '')
97 +                    fc_zm_list = fc_zm_list.strip()
98                      line = key + "." + fc_zm_list
99                      registered_opts_dict['fc-zone-manager'].append(line)
100                  elif aline.find("keymgr") != -1:
101 -                    keymgr_list = aline.replace("CONF.register_opts(", '')
102 +                    keymgr_list = _retrieve_name(aline)
103                      keymgr_list = keymgr_list.replace(", group='keymgr')", '')
104 -                    keymgr_list = keymgr_list.replace(", 'keymgr')", '')
105 -                    keymgr_list.strip()
106 +                    keymgr_list = keymgr_list.strip()
107                      line = key + "." + keymgr_list
108                      registered_opts_dict['keymgr'].append(line)
109                  elif aline.find("BRCD_FABRIC_EXAMPLE") != -1:
110 -                    brcd_list = aline.replace("CONF.register_opts(", '')
111 -                    replace_string = ", 'BRCD_FABRIC_EXAMPLE')"
112 +                    brcd_list = _retrieve_name(aline)
113 +                    replace_string = ", group='BRCD_FABRIC_EXAMPLE')"
114                      brcd_list = brcd_list.replace(replace_string, '')
115 -                    brcd_list.strip()
116 +                    brcd_list = brcd_list.strip()
117                      line = key + "." + brcd_list
118                      registered_opts_dict['BRCD_FABRIC_EXAMPLE'].append(line)
119                  elif aline.find("CISCO_FABRIC_EXAMPLE") != -1:
120 -                    cisco_list = aline.replace("CONF.register_opts(", '')
121 -                    replace_string = ", 'CISCO_FABRIC_EXAMPLE')"
122 +                    cisco_list = _retrieve_name(aline)
123 +                    replace_string = ", group='CISCO_FABRIC_EXAMPLE')"
124                      cisco_list = cisco_list.replace(replace_string, '')
125 -                    cisco_list.strip()
126 +                    cisco_list = cisco_list.strip()
127                      line = key + "." + cisco_list
128                      registered_opts_dict['CISCO_FABRIC_EXAMPLE'].append(line)
129                  elif aline.find("profiler") != -1:
130 -                    profiler_list = aline.replace("CONF.register_opts(", '')
131 +                    profiler_list = _retrieve_name(aline)
132                      replace_string = ', group="profiler")'
133                      profiler_list = profiler_list.replace(replace_string, '')
134 -                    profiler_list.strip()
135 +                    profiler_list = profiler_list.strip()
136                      line = key + "." + profiler_list
137                      registered_opts_dict['profiler'].append(line)
138 +                elif aline.find("backend") != -1:
139 +                    backend_list = _retrieve_name(aline)
140 +                    replace_string = ', group=backend)'
141 +                    backend_list = backend_list.replace(replace_string, '')
142 +                    backend_list = backend_list.strip()
143 +                    line = key + "." + backend_list
144 +                    registered_opts_dict['backend'].append(line)
145                  else:
146 -                    default_list = aline.replace("CONF.register_opts(", '')
147 +                    default_list = _retrieve_name(aline)
148                      default_list = default_list.replace(')', '').strip()
149                      line = key + "." + default_list
150                      registered_opts_dict['DEFAULT'].append(line)
151 @@ -166,6 +183,14 @@ if __name__ == "__main__":
152      for item in registered_opts_dict["profiler"]:
153          _write_item(item)
154  
155 +    backend_str = ("    )),\n"
156 +                   "    ('backend',\n"
157 +                   "    itertools.chain(\n")
158 +    opt_file.write(backend_str)
159 +
160 +    for item in registered_opts_dict["backend"]:
161 +        _write_item(item)
162 +
163      cisco_str = ("    )),\n"
164                   "    ('CISCO_FABRIC_EXAMPLE',\n"
165                   "    itertools.chain(\n")
166 diff --git a/cinder/keymgr/key_mgr.py b/cinder/keymgr/key_mgr.py
167 index 4d8bbdb..71ed7a7 100644
168 --- a/cinder/keymgr/key_mgr.py
169 +++ b/cinder/keymgr/key_mgr.py
170 @@ -32,7 +32,7 @@ encryption_opts = [
171  ]
172  
173  CONF = cfg.CONF
174 -CONF.register_opts(encryption_opts, 'keymgr')
175 +CONF.register_opts(encryption_opts, group='keymgr')
176  
177  
178  @six.add_metaclass(abc.ABCMeta)
179 diff --git a/cinder/volume/api.py b/cinder/volume/api.py
180 index 03f1d74..5db3a7b 100644
181 --- a/cinder/volume/api.py
182 +++ b/cinder/volume/api.py
183 @@ -52,12 +52,13 @@ from cinder.volume import utils as volume_utils
184  from cinder.volume import volume_types
185  
186  
187 -allow_force_upload = cfg.BoolOpt('enable_force_upload',
188 -                                 default=False,
189 -                                 help='Enables the Force option on '
190 -                                      'upload_to_image. This enables '
191 -                                      'running upload_volume on in-use '
192 -                                      'volumes for backends that support it.')
193 +allow_force_upload_opt = cfg.BoolOpt('enable_force_upload',
194 +                                     default=False,
195 +                                     help='Enables the Force option on '
196 +                                          'upload_to_image. This enables '
197 +                                          'running upload_volume on in-use '
198 +                                          'volumes for backends that '
199 +                                          'support it.')
200  volume_host_opt = cfg.BoolOpt('snapshot_same_host',
201                                default=True,
202                                help='Create volume from snapshot at the host '
203 @@ -73,7 +74,7 @@ az_cache_time_opt = cfg.IntOpt('az_cache_duration',
204                                      'seconds')
205  
206  CONF = cfg.CONF
207 -CONF.register_opt(allow_force_upload)
208 +CONF.register_opt(allow_force_upload_opt)
209  CONF.register_opt(volume_host_opt)
210  CONF.register_opt(volume_same_az_opt)
211  CONF.register_opt(az_cache_time_opt)
212 diff --git a/cinder/zonemanager/drivers/brocade/brcd_fabric_opts.py b/cinder/zonemanager/drivers/brocade/brcd_fabric_opts.py
213 index 6c1276a..26c8fbe 100644
214 --- a/cinder/zonemanager/drivers/brocade/brcd_fabric_opts.py
215 +++ b/cinder/zonemanager/drivers/brocade/brcd_fabric_opts.py
216 @@ -50,7 +50,7 @@ brcd_zone_opts = [
217  ]
218  
219  CONF = cfg.CONF
220 -CONF.register_opts(brcd_zone_opts, 'BRCD_FABRIC_EXAMPLE')
221 +CONF.register_opts(brcd_zone_opts, group='BRCD_FABRIC_EXAMPLE')
222  LOG = logging.getLogger(__name__)
223  
224  
225 diff --git a/cinder/zonemanager/drivers/brocade/brcd_fc_zone_driver.py b/cinder/zonemanager/drivers/brocade/brcd_fc_zone_driver.py
226 index 696af1f..506888d 100644
227 --- a/cinder/zonemanager/drivers/brocade/brcd_fc_zone_driver.py
228 +++ b/cinder/zonemanager/drivers/brocade/brcd_fc_zone_driver.py
229 @@ -52,7 +52,7 @@ brcd_opts = [
230  ]
231  
232  CONF = cfg.CONF
233 -CONF.register_opts(brcd_opts, 'fc-zone-manager')
234 +CONF.register_opts(brcd_opts, group='fc-zone-manager')
235  
236  
237  class BrcdFCZoneDriver(fc_zone_driver.FCZoneDriver):
238 diff --git a/cinder/zonemanager/drivers/cisco/cisco_fabric_opts.py b/cinder/zonemanager/drivers/cisco/cisco_fabric_opts.py
239 index c105b31..0aa0cea 100644
240 --- a/cinder/zonemanager/drivers/cisco/cisco_fabric_opts.py
241 +++ b/cinder/zonemanager/drivers/cisco/cisco_fabric_opts.py
242 @@ -47,7 +47,7 @@ cisco_zone_opts = [
243  ]
244  
245  CONF = cfg.CONF
246 -CONF.register_opts(cisco_zone_opts, 'CISCO_FABRIC_EXAMPLE')
247 +CONF.register_opts(cisco_zone_opts, group='CISCO_FABRIC_EXAMPLE')
248  
249  
250  def load_fabric_configurations(fabric_names):
251 diff --git a/cinder/zonemanager/drivers/cisco/cisco_fc_zone_driver.py b/cinder/zonemanager/drivers/cisco/cisco_fc_zone_driver.py
252 index 98d4535..85d69b6 100644
253 --- a/cinder/zonemanager/drivers/cisco/cisco_fc_zone_driver.py
254 +++ b/cinder/zonemanager/drivers/cisco/cisco_fc_zone_driver.py
255 @@ -50,7 +50,7 @@ cisco_opts = [
256  ]
257  
258  CONF = cfg.CONF
259 -CONF.register_opts(cisco_opts, 'fc-zone-manager')
260 +CONF.register_opts(cisco_opts, group='fc-zone-manager')
261  
262  
263  class CiscoFCZoneDriver(fc_zone_driver.FCZoneDriver):
264 diff --git a/cinder/zonemanager/fc_zone_manager.py b/cinder/zonemanager/fc_zone_manager.py
265 index ecbbe23..011890b 100644
266 --- a/cinder/zonemanager/fc_zone_manager.py
267 +++ b/cinder/zonemanager/fc_zone_manager.py
268 @@ -64,7 +64,7 @@ zone_manager_opts = [
269  ]
270  
271  CONF = cfg.CONF
272 -CONF.register_opts(zone_manager_opts, 'fc-zone-manager')
273 +CONF.register_opts(zone_manager_opts, group='fc-zone-manager')
274  
275  
276  class ZoneManager(fc_common.FCCommon):