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 __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
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)
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)
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)