Adding support for deletion of vip, dns, and init services.
Change-Id: I6b0f00aaf7e3c83e1a35ed1ecb4127f743aeba6d
This commit is contained in:
parent
7c2e09450a
commit
a4b62a9a00
37
requires.py
37
requires.py
|
@ -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 = []
|
||||
|
|
Loading…
Reference in New Issue