From f52084579318ff0ca52115af40c3a6b05f17446e Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Mon, 6 Jan 2014 16:04:58 -0800 Subject: [PATCH] sync step for service provider --- .../steps/sync_serviceprovider.py | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 planetstack/hpc_observer/steps/sync_serviceprovider.py diff --git a/planetstack/hpc_observer/steps/sync_serviceprovider.py b/planetstack/hpc_observer/steps/sync_serviceprovider.py new file mode 100644 index 0000000..d6820d6 --- /dev/null +++ b/planetstack/hpc_observer/steps/sync_serviceprovider.py @@ -0,0 +1,41 @@ +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 ServiceProvider +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 SyncServiceProvider(SyncStep, HpcLibrary): + provides=[ServiceProvider] + requested_interval=0 + + def __init__(self, **args): + SyncStep.__init__(self, **args) + HpcLibrary.__init__(self) + + def fetch_pending(self): + return ServiceProvider.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) + + def sync_record(self, sp): + logger.info("sync'ing service provider %s" % str(sp)) + account_name = self.make_account_name(sp.name) + print "XXX", sp.name, account_name + if not sp.service_provider_id: + id = self.client.onev.Create("ServiceProvider", {"account": account_name, "name": sp.name, "enabled": sp.enabled}) + sp.service_provider_id = id + else: + self.client.onev.Update("ServiceProvider", {"account": account_name, "name": sp.name, "enabled": sp.enabled}) + + sp.save() -- 2.43.0