Andrew Bogott has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/359374 )

Change subject: designate:  Clean up puppet config for deleted instances.
......................................................................

designate:  Clean up puppet config for deleted instances.

Untested.

Bug: T147878
Change-Id: If9704177e51f7646a2d77c6dfa96fc7d3a044a3b
---
M modules/openstack/files/liberty/designate/wmf_sink/base.py
M modules/openstack/files/liberty/designate/wmf_sink/wmfsink.py
M modules/openstack/templates/liberty/designate/designate.conf.erb
3 files changed, 22 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/74/359374/1

diff --git a/modules/openstack/files/liberty/designate/wmf_sink/base.py 
b/modules/openstack/files/liberty/designate/wmf_sink/base.py
index 31273f3..4b93df5 100644
--- a/modules/openstack/files/liberty/designate/wmf_sink/base.py
+++ b/modules/openstack/files/liberty/designate/wmf_sink/base.py
@@ -51,26 +51,26 @@
 
         event_data = data.copy()
 
+        fqdn = cfg.CONF[self.name].fqdn_format % event_data
+        fqdn = fqdn.rstrip('.').encode('utf8')
+
         # Clean salt and puppet keys for deleted instance
-        if (cfg.CONF[self.name].puppet_key_format and
-                cfg.CONF[self.name].puppet_master_host):
-            puppetkey = cfg.CONF[self.name].puppet_key_format % event_data
-            puppetkey = puppetkey.rstrip('.').encode('utf8')
-            LOG.debug('Cleaning puppet key %s' % puppetkey)
+        if cfg.CONF[self.name].puppet_master_host:
+            LOG.debug('Cleaning puppet key %s' % fqdn)
             self._run_remote_command(cfg.CONF[self.name].puppet_master_host,
                                      cfg.CONF[self.name].certmanager_user,
                                      'sudo puppet cert clean %s' %
-                                     pipes.quote(puppetkey))
+                                     pipes.quote(fqdn))
 
-        if (cfg.CONF[self.name].salt_key_format and
-                cfg.CONF[self.name].salt_master_host):
-            saltkey = cfg.CONF[self.name].salt_key_format % event_data
-            saltkey = saltkey.rstrip('.').encode('utf8')
-            LOG.debug('Cleaning salt key %s' % saltkey)
+        if cfg.CONF[self.name].salt_master_host:
+            LOG.debug('Cleaning salt key %s' % fqdn)
             self._run_remote_command(cfg.CONF[self.name].salt_master_host,
                                      cfg.CONF[self.name].certmanager_user,
                                      'sudo salt-key -y -d  %s' %
-                                     pipes.quote(saltkey))
+                                     pipes.quote(fqdn))
+
+        # Clean up the puppet config for this instance, if there is one
+        self._delete_puppet_config(data['tenant_id'], fqdn)
 
         # Finally, delete any proxy records pointing to this instance.
         #
@@ -115,6 +115,12 @@
             return False
         return True
 
+    def _delete_puppet_config(self, projectid, fqdn):
+        endpoint = cfg.CONF[self.name].puppet_config_backend
+        url = "%s/%s/prefix/%s" % (endpoint, projectid, fqdn)
+        requests.delete(url, verify=False)
+        # Maybe there isn't such a prefix, and this will fail.  No problem!
+
     def _delete_proxies_for_ip(self, project, ip):
         project_proxies = self._get_proxy_list_for_project(project)
         for proxy in project_proxies:
diff --git a/modules/openstack/files/liberty/designate/wmf_sink/wmfsink.py 
b/modules/openstack/files/liberty/designate/wmf_sink/wmfsink.py
index e64601c..d37c87e 100644
--- a/modules/openstack/files/liberty/designate/wmf_sink/wmfsink.py
+++ b/modules/openstack/files/liberty/designate/wmf_sink/wmfsink.py
@@ -38,10 +38,10 @@
     cfg.ListOpt('puppetdefaultvars', default=[]),
 
     cfg.StrOpt('certmanager_user', default='certmanager'),
-    cfg.StrOpt('puppet_key_format', default=None),
-    cfg.StrOpt('salt_key_format', default=None),
+    cfg.StrOpt('fqdn_format', default=None),
     cfg.StrOpt('puppet_master_host', default=None),
     cfg.StrOpt('salt_master_host', default=None),
+    cfg.StrOpt('puppet_config_backend', default=None),
 ], group='handler:wmf_sink')
 
 cfg.CONF.register_group(cfg.OptGroup(
diff --git a/modules/openstack/templates/liberty/designate/designate.conf.erb 
b/modules/openstack/templates/liberty/designate/designate.conf.erb
index ae104d3..2bee84b 100644
--- a/modules/openstack/templates/liberty/designate/designate.conf.erb
+++ b/modules/openstack/templates/liberty/designate/designate.conf.erb
@@ -305,10 +305,10 @@
 control_exchange = nova
 
 certmanager_user = certmanager
-puppet_key_format = '%(hostname)s.%(project_name)s.%(domain)s'
+fqdn_format = '%(hostname)s.%(project_name)s.%(domain)s'
 puppet_master_host = "<%= @designateconfig['controller_hostname'] %>"
-salt_key_format = '%(hostname)s.%(project_name)s.%(domain)s'
 salt_master_host = "<%= @designateconfig['controller_hostname'] %>"
+puppet_config_backend  = "http://<%= @designateconfig['controller_hostname'] 
%>:8101/v1"
 
 #------------------------
 # Neutron Floating Handler

-- 
To view, visit https://gerrit.wikimedia.org/r/359374
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If9704177e51f7646a2d77c6dfa96fc7d3a044a3b
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Andrew Bogott <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to