From 93661ea14756dd47d954e978de359b0686f8ebc6 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Fri, 3 Jan 2014 12:01:40 -0800 Subject: [PATCH] use hpclib --- .../hpc_observer/steps/sync_hpcservices.py | 79 +++---------------- 1 file changed, 10 insertions(+), 69 deletions(-) diff --git a/planetstack/hpc_observer/steps/sync_hpcservices.py b/planetstack/hpc_observer/steps/sync_hpcservices.py index 049b316..a747cea 100644 --- a/planetstack/hpc_observer/steps/sync_hpcservices.py +++ b/planetstack/hpc_observer/steps/sync_hpcservices.py @@ -1,89 +1,30 @@ import os +import sys import base64 from django.db.models import F, Q from planetstack.config import Config from observer.syncstep import SyncStep from core.models import Service from hpc.models import HpcService +from requestrouter.models import RequestRouterService from util.logger import Logger, logging +# hpclibrary will be in steps/.. +parentdir = os.path.join(os.path.dirname(__file__),"..") +sys.path.insert(0,parentdir) + +from hpclib import HpcLibrary + logger = Logger(level=logging.INFO) -class SyncHpcService(SyncStep): +class SyncHpcService(SyncStep, HpcLibrary): provides=[HpcService] requested_interval=0 def fetch_pending(self): return HpcService.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) - def extract_slice_info(hpc_service): - """ Produce a dict that describes the slices for the CMI - - slice_coblitz = - service_coblitz = - hostname_coblitz = - hostnames_coblitz = ,,... - - slice_cmi = - ... - """ - - slicenames = {} - slicehosts = {} - for slice in hpc_service.service.all(): - name = slice.name - if not ("_" in name): - continue - - if "coblitz" in name: - slicenames["coblitz"] = name - slicehosts["coblitz"] = [sliver.node.name for sliver in slice.slivers.all()] - elif "cmi" in name: - slicenames["cmi"] = name - slicehosts["cmi"] = [sliver.node.name for sliver in slice.slivers.all()] - - base_hrn = None - if "coblitz" in slicenames: - base_hrn = slicenames["coblitz"].split("_")[0] - - mapping = {} - mapping["base_hrn"] = base_hrn - for (k,v) in slicenames.items(): - mapping["slice_" + k] = v - mapping["service_" + k] = v.split("_",1)[1] - for (k,v) in slicehosts.items() - mapping["hostname_" + k] = v[0] - mapping["hostnames_" + k] = ",".join(v) - - return mapping - - def write_slices_file(self, hpc_service): - mapping = self.extract_slicenames(hpc_service) - - fn = "/tmp/slices" - - f = open(fn, "w") - f.write(""" -ENABLE_PLC=True -ENABLE_PS=False -BASE_HRN="%(base_hrn)" -RELEVANT_SERVICE_NAMES=['%(service_coblitz)', '%(service_dnsredir)', '%(service_dnsdemux)'] -COBLITZ_SLICE_NAME="%(slice_coblitz)" -COBLITZ_SLICE_ID=1 -COBLITZ_PS_SLICE_NAME="%(slice_coblitz)" -DNSREDIR_SLICE_NAME="%(slice_dnsredir)" -DNSREDIR_SLICE_ID=2 -DNSREDIR_PS_SLICE_NAME="%(slice_dnsredir)" -DNSDEMUX_SLICE_NAME="%(slice_dnsdemux)" -DNSDEMUX_SLICE_ID=3 -DNSDEMUX_PS_SLICE_NAME="%(slice_dnsdemux)" -CMI_URL="http://%(hostname_cmi)" -CMI_HTTP_PORT="8004" -CMI_HTTPS_PORT="8003" -PUPPET_MASTER_HOSTNAME="%(hostname_cmi)" -PUPPET_MASTER_PORT="8140" -""") - def sync_record(self, hpc_service): logger.info("sync'ing hpc_service %s" % str(hpc_service)) + self.write_slices_file(hpc_service, None) hpc_service.save() -- 2.43.0