blob: 83ba138bd9874499f89f199850875ea40f222af7 [file] [log] [blame]
Yunpeng Zhang9b335072017-08-02 20:56:32 -04001import os
2import sys
3from django.db.models import Q, F
4from synchronizers.new_base.modelaccessor import *
5from synchronizers.new_base.SyncInstanceUsingAnsible import SyncInstanceUsingAnsible
6
7parentdir = os.path.join(os.path.dirname(__file__), "..")
8sys.path.insert(0, parentdir)
9
10class SyncVSMTenant(SyncInstanceUsingAnsible):
Yunpeng Zhang9b335072017-08-02 20:56:32 -040011 provides = [VSMTenant]
12
13 observes = VSMTenant
14
15 requested_interval = 0
16
17 template_name = "vsmtenant_playbook.yaml"
18
Omar Abdelkader3de2c532017-08-07 19:50:54 -060019 service_key_name = "/opt/xos/configurations/mcord/mcord_private_key"
Yunpeng Zhang9b335072017-08-02 20:56:32 -040020
21 def __init__(self, *args, **kwargs):
22 super(SyncVSMTenant, self).__init__(*args, **kwargs)
23
24 def fetch_pending(self, deleted):
Yunpeng Zhang9b335072017-08-02 20:56:32 -040025 if (not deleted):
26 objs = VSMTenant.get_tenant_objects().filter(
27 Q(enacted__lt=F('updated')) | Q(enacted=None), Q(lazy_blocked=False))
28 else:
29 # If this is a deletion we get all of the deleted tenants..
30 objs = VSMTenant.get_deleted_tenant_objects()
31
32 return objs
33