def __init__(self, uuid, obj_dict=None):
     self.uuid = uuid
     self.service_template = None
     self.loadbalancer = None
     self.loadbalancer_pool = None
     self.interface_route_tables = set()
     self.service_health_checks = set()
     self.instance_ips = set()
     self.virtual_machines = set()
     self.logical_router = None
     self.params = None
     self.bindings = None
     self.kvps = None
     self.state = 'init'
     self.launch_count = 0
     self.back_off = -1
     self.image = None
     self.flavor = None
     self.max_instances = 0
     self.availability_zone = None
     self.ha_mode = None
     self.vr_id = None
     self.vn_changed = False
     self.local_preference = [None, None]
     self.vn_info = []
     self.port_tuples = set()
     obj_dict = self.update(obj_dict)
     self.set_children('port_tuple', obj_dict)
     self.add_to_parent(obj_dict)
     if self.ha_mode == 'active-standby':
         self.max_instances = 2
         self.local_preference = [svc_info.get_active_preference(),
                                  svc_info.get_standby_preference()]
示例#2
0
 def __init__(self, uuid, obj_dict=None):
     self.uuid = uuid
     self.service_template = None
     self.loadbalancer = None
     self.loadbalancer_pool = None
     self.interface_route_tables = set()
     self.service_health_checks = set()
     self.instance_ips = set()
     self.virtual_machines = set()
     self.logical_router = None
     self.params = None
     self.bindings = None
     self.kvps = None
     self.state = 'init'
     self.launch_count = 0
     self.back_off = -1
     self.image = None
     self.flavor = None
     self.max_instances = 0
     self.availability_zone = None
     self.ha_mode = None
     self.vr_id = None
     self.vn_changed = False
     self.local_preference = [None, None]
     self.vn_info = []
     self.port_tuples = set()
     obj_dict = self.update(obj_dict)
     self.set_children('port_tuple', obj_dict)
     self.add_to_parent(obj_dict)
     if self.ha_mode == 'active-standby':
         self.max_instances = 2
         self.local_preference = [
             svc_info.get_active_preference(),
             svc_info.get_standby_preference()
         ]
    def _get_local_prefs(self, si_obj, max_instances):
        local_prefs = [None, None]

        si_db_entry = self.db.service_instance_get(si_obj.get_fq_name_str())
        if si_db_entry:
            for inst_count in range(0, max_instances):
                column = self.db.get_vm_db_prefix(inst_count) + 'preference'
                if column in si_db_entry:
                    local_prefs[inst_count] = int(si_db_entry[column])

        if not local_prefs[0] and not local_prefs[1]:
            local_prefs[0] = svc_info.get_active_preference()
            local_prefs[1] = svc_info.get_standby_preference()
        elif local_prefs[0] == svc_info.get_active_preference():
            local_prefs[1] = svc_info.get_standby_preference()
        elif local_prefs[0] == svc_info.get_standby_preference():
            local_prefs[1] = svc_info.get_active_preference()

        return local_prefs
示例#4
0
    def _get_local_prefs(self, si_obj, max_instances):
        local_prefs = [None, None]

        si_db_entry = self.db.service_instance_get(si_obj.get_fq_name_str())
        if si_db_entry:
            for inst_count in range(0, max_instances):
                column = self.db.get_vm_db_prefix(inst_count) + 'preference'
                if column in si_db_entry:
                    local_prefs[inst_count] = int(si_db_entry[column])

        if not local_prefs[0] and not local_prefs[1]:
            local_prefs[0] = svc_info.get_active_preference()
            local_prefs[1] = svc_info.get_standby_preference()
        elif local_prefs[0] == svc_info.get_active_preference():
            local_prefs[1] = svc_info.get_standby_preference()
        elif local_prefs[0] == svc_info.get_standby_preference():
            local_prefs[1] = svc_info.get_active_preference()

        return local_prefs
    def _update_local_preference(self, si, del_vm):
        if si.ha_mode != 'active-standby':
            return

        if si.local_preference[del_vm.index] == \
                svc_info.get_standby_preference():
            return

        si.local_preference[del_vm.index] = svc_info.get_standby_preference()
        other_index = si.max_instances - del_vm.index - 1
        si.local_preference[other_index] = svc_info.get_active_preference()

        for vm_id in si.virtual_machines:
            vm = VirtualMachineSM.get(vm_id)
            if vm:
                self._check_create_netns_vm(vm.index, si, st, vm)
示例#6
0
    def _update_local_preference(self, si, del_vm):
        if si.ha_mode != 'active-standby':
            return

        if si.local_preference[del_vm.index] == \
                svc_info.get_standby_preference():
            return

        si.local_preference[del_vm.index] = svc_info.get_standby_preference()
        other_index = si.max_instances - del_vm.index - 1
        si.local_preference[other_index] = svc_info.get_active_preference()

        for vm_id in si.virtual_machines:
            vm = VirtualMachineSM.get(vm_id)
            if vm:
                self._check_create_netns_vm(vm.index, si, st, vm)
示例#7
0
 def __init__(self, uuid, obj_dict=None):
     self.uuid = uuid
     self.service_template = None
     self.loadbalancer_pool = None
     self.virtual_machines = set()
     self.params = None
     self.state = 'init'
     self.image = None
     self.flavor = None
     self.max_instances = 0
     self.availability_zone = None
     self.ha_mode = None
     self.vr_id = None
     self.local_preference = [None, None]
     self.vn_info = []
     self.update(obj_dict)
     if self.ha_mode == 'active-standby':
         self.max_instances = 2
         self.local_preference = [svc_info.get_active_preference(),
                                  svc_info.get_standby_preference()]
 def update(self, obj=None):
     if obj is None:
         obj = self.read_obj(self.uuid)
     self.name = obj['fq_name'][-1]
     self.fq_name = obj['fq_name']
     self.proj_name = obj['fq_name'][-2]
     self.params = obj['service_instance_properties']
     self.update_single_ref('service_template', obj)
     self.update_single_ref('loadbalancer_pool', obj)
     self.update_multiple_refs('virtual_machine', obj)
     self.id_perms = obj['id_perms']
     self.ha_mode = self.params.get('ha_mode', None)
     if self.ha_mode and self.ha_mode == 'active-standby':
         self.max_instances = 2
         self.local_preference = [svc_info.get_active_preference(),
             svc_info.get_standby_preference()]
     else:
         scale_out = self.params.get('scale_out', None)
         if scale_out:
             self.max_instances = scale_out.get('max_instances', 1)
示例#9
0
 def __init__(self, uuid, obj_dict=None):
     self.uuid = uuid
     self.service_template = None
     self.loadbalancer_pool = None
     self.virtual_machines = set()
     self.params = None
     self.state = 'init'
     self.image = None
     self.flavor = None
     self.max_instances = 0
     self.availability_zone = None
     self.ha_mode = None
     self.vr_id = None
     self.local_preference = [None, None]
     self.vn_info = []
     self.update(obj_dict)
     if self.ha_mode == 'active-standby':
         self.max_instances = 2
         self.local_preference = [svc_info.get_active_preference(),
                                  svc_info.get_standby_preference()]
示例#10
0
 def update(self, obj=None):
     if obj is None:
         obj = self.read_obj(self.uuid)
     self.name = obj['fq_name'][-1]
     self.fq_name = obj['fq_name']
     self.proj_name = obj['fq_name'][-2]
     self.params = obj['service_instance_properties']
     self.update_single_ref('service_template', obj)
     self.update_single_ref('loadbalancer_pool', obj)
     self.update_multiple_refs('virtual_machine', obj)
     self.id_perms = obj['id_perms']
     self.ha_mode = self.params.get('ha_mode', None)
     if self.ha_mode and self.ha_mode == 'active-standby':
         self.max_instances = 2
         self.local_preference = [
             svc_info.get_active_preference(),
             svc_info.get_standby_preference()
         ]
     else:
         scale_out = self.params.get('scale_out', None)
         if scale_out:
             self.max_instances = scale_out.get('max_instances', 1)