From c9e10e03c3d033396302aa55a6287fb330240ae7 Mon Sep 17 00:00:00 2001 From: Erica Portnoy Date: Sat, 30 Sep 2017 14:41:50 -0700 Subject: [PATCH] Fix existing bugs in nginxparser.py and obj.py --- certbot-nginx/certbot_nginx/configurator.py | 5 ++--- certbot-nginx/certbot_nginx/nginxparser.py | 9 ++++++--- certbot-nginx/certbot_nginx/obj.py | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/certbot-nginx/certbot_nginx/configurator.py b/certbot-nginx/certbot_nginx/configurator.py index e2ab7f14d..22d9d8edd 100644 --- a/certbot-nginx/certbot_nginx/configurator.py +++ b/certbot-nginx/certbot_nginx/configurator.py @@ -259,14 +259,13 @@ class NginxConfigurator(common.Installer): if self.new_vhost is None: default_vhost = self._get_default_vhost() self.new_vhost = self.parser.create_new_vhost_from_default(default_vhost) + if not self.new_vhost.ssl: + self._make_server_ssl(self.new_vhost) self.new_vhost.names = set() self.new_vhost.names.add(domain) name_block = [['\n ', 'server_name', ' ', " ".join(self.new_vhost.names)]] self.parser.add_server_directives(self.new_vhost, name_block, replace=True) - - if not self.new_vhost.ssl: - self._make_server_ssl(self.new_vhost) return self.new_vhost def _get_default_vhost(self): diff --git a/certbot-nginx/certbot_nginx/nginxparser.py b/certbot-nginx/certbot_nginx/nginxparser.py index 5e24f28da..75dac4ae8 100644 --- a/certbot-nginx/certbot_nginx/nginxparser.py +++ b/certbot-nginx/certbot_nginx/nginxparser.py @@ -189,13 +189,15 @@ class UnspacedList(list): item, spaced_item = self._coerce(x) slicepos = self._spaced_position(i) if i < len(self) else len(self.spaced) self.spaced.insert(slicepos, spaced_item) - list.insert(self, i, item) + if not spacey(item): + list.insert(self, i, item) self.dirty = True def append(self, x): item, spaced_item = self._coerce(x) self.spaced.append(spaced_item) - list.append(self, item) + if not spacey(item): + list.append(self, item) self.dirty = True def extend(self, x): @@ -226,7 +228,8 @@ class UnspacedList(list): raise NotImplementedError("Slice operations on UnspacedLists not yet implemented") item, spaced_item = self._coerce(value) self.spaced.__setitem__(self._spaced_position(i), spaced_item) - list.__setitem__(self, i, item) + if not spacey(item): + list.__setitem__(self, i, item) self.dirty = True def __delitem__(self, i): diff --git a/certbot-nginx/certbot_nginx/obj.py b/certbot-nginx/certbot_nginx/obj.py index e83f6239c..2371449f0 100644 --- a/certbot-nginx/certbot_nginx/obj.py +++ b/certbot-nginx/certbot_nginx/obj.py @@ -202,7 +202,7 @@ class VirtualHost(object): # pylint: disable=too-few-public-methods def _find_directive(directives, directive_name): """Find a directive of type directive_name in directives """ - if not directives or isinstance(directives, str) or len(directives) == 0: + if not directives or isinstance(directives, six.string_types) or len(directives) == 0: return None if directives[0] == directive_name: