From: Scott Baker Date: Tue, 7 Jan 2014 00:04:58 +0000 (-0800) Subject: sync step for service provider X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=f52084579318ff0ca52115af40c3a6b05f17446e;p=plstackapi.git sync step for service provider --- 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()