Add ping_ok utility method

This commit is contained in:
PCoder 2018-08-21 23:24:40 +02:00
parent cda6c60e02
commit 91021d7612

View file

@ -1,3 +1,5 @@
import logging
import subprocess
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from datacenterlight.tasks import create_vm_task from datacenterlight.tasks import create_vm_task
@ -8,6 +10,8 @@ from utils.models import BillingAddress
from .cms_models import CMSIntegration from .cms_models import CMSIntegration
from .models import VMPricing, VMTemplate from .models import VMPricing, VMTemplate
logger = logging.getLogger(__name__)
def get_cms_integration(name): def get_cms_integration(name):
current_site = Site.objects.get_current() current_site = Site.objects.get_current()
@ -91,3 +95,21 @@ def create_vm(billing_address_data, stripe_customer_id, specs,
'token', 'customer']: 'token', 'customer']:
if session_var in request.session: if session_var in request.session:
del request.session[session_var] del request.session[session_var]
def ping_ok(host_ipv6):
"""
A utility method to check if a host responds to ping requests. Note: the
function relies on `ping6` utility of debian to check.
:param host_ipv6 str type parameter that represets the ipv6 of the host to
checked
:return True if the host responds to ping else returns False
"""
try:
output = subprocess.check_output("ping6 -c 1 -w 2 " + host_ipv6,
shell=True)
except Exception as ex:
logger.debug(host_ipv6 + " not reachable via ping. Error = " + str(ex))
return False
return True