Adding support for deletion of vip, dns, and init services.

Change-Id: I6b0f00aaf7e3c83e1a35ed1ecb4127f743aeba6d
This commit is contained in:
Mike Wilson 2019-02-15 10:33:53 -05:00
parent 7c2e09450a
commit a4b62a9a00
1 changed files with 37 additions and 0 deletions

View File

@ -12,6 +12,7 @@
# limitations under the License.
import json
import hashlib
import relations.hacluster.common
from charms.reactive import hook
@ -158,6 +159,19 @@ class HAClusterRequires(RelationBase):
self.set_local(resources=resources)
def remove_vip(self, name, vip, iface=None):
"""Remove a virtual IP
:param name: string - Name of service
:param vip: string - Virtual IP
:param iface: string - Network interface vip bound to
"""
if iface:
nic_name = iface
else:
nic_name = hashlib.sha1(vip.encode('UTF-8')).hexdigest()[:7]
self.delete_resource('res_{}_{}_vip'.format(name, nic_name))
def add_init_service(self, name, service, clone=True):
"""Add a InitService object for haproxy to self.resources
@ -174,6 +188,17 @@ class HAClusterRequires(RelationBase):
relations.hacluster.common.InitService(name, service, clone))
self.set_local(resources=resources)
def remove_init_service(self, name, service):
"""Remove an init service
:param name: string - Name of service
:param service: string - Name of service used in init system
"""
res_key = 'res_{}_{}'.format(
name.replace('-', '_'),
service.replace('-', '_'))
self.delete_resource(res_key)
def add_dnsha(self, name, ip, fqdn, endpoint_type):
"""Add a DNS entry to self.resources
@ -205,6 +230,18 @@ class HAClusterRequires(RelationBase):
self.set_local(resources=resources)
def remove_dnsha(self, name, endpoint_type):
"""Remove a DNS entry
:param name: string - Name of service
:param endpoint_type: string - Public, private, internal etc
:returns: None
"""
res_key = 'res_{}_{}_hostname'.format(
self.service_name.replace('-', '_'),
self.endpoint_type)
self.delete_resource(res_key)
def get_remote_all(self, key, default=None):
"""Return a list of all values presented by remote units for key"""
values = []