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.
|
# limitations under the License.
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
import hashlib
|
||||||
|
|
||||||
import relations.hacluster.common
|
import relations.hacluster.common
|
||||||
from charms.reactive import hook
|
from charms.reactive import hook
|
||||||
|
@ -158,6 +159,19 @@ class HAClusterRequires(RelationBase):
|
||||||
|
|
||||||
self.set_local(resources=resources)
|
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):
|
def add_init_service(self, name, service, clone=True):
|
||||||
"""Add a InitService object for haproxy to self.resources
|
"""Add a InitService object for haproxy to self.resources
|
||||||
|
|
||||||
|
@ -174,6 +188,17 @@ class HAClusterRequires(RelationBase):
|
||||||
relations.hacluster.common.InitService(name, service, clone))
|
relations.hacluster.common.InitService(name, service, clone))
|
||||||
self.set_local(resources=resources)
|
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):
|
def add_dnsha(self, name, ip, fqdn, endpoint_type):
|
||||||
"""Add a DNS entry to self.resources
|
"""Add a DNS entry to self.resources
|
||||||
|
|
||||||
|
@ -205,6 +230,18 @@ class HAClusterRequires(RelationBase):
|
||||||
|
|
||||||
self.set_local(resources=resources)
|
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):
|
def get_remote_all(self, key, default=None):
|
||||||
"""Return a list of all values presented by remote units for key"""
|
"""Return a list of all values presented by remote units for key"""
|
||||||
values = []
|
values = []
|
||||||
|
|
Loading…
Reference in New Issue