Skip to content

Commit

Permalink
Merge "Few more improvements in schema transformer"
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Jun 9, 2015
2 parents a40e0a6 + 2ef269e commit b23d33b
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 13 deletions.
6 changes: 6 additions & 0 deletions src/api-lib/vnc_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ def str_to_class(class_name):
return None
#end str_to_class

def compare_refs(old_refs, new_refs):
# compare refs in an object
old_ref_dict = {':'.join(ref['to']): ref['attr'] for ref in old_refs}
new_ref_dict = {':'.join(ref['to']): ref['attr'] for ref in new_refs}
return old_ref_dict == new_ref_dict
# end compare_refs

def _read_cfg(cfg_parser, section, option, default):
try:
Expand Down
36 changes: 25 additions & 11 deletions src/config/schema-transformer/to_bgp.py
Original file line number Diff line number Diff line change
Expand Up @@ -621,13 +621,22 @@ def locate_routing_instance(self, rinst_name, service_chain=None,
_vnc_lib.routing_instance_delete(id=rinst_obj.uuid)
rinst_obj = None
else:
need_update = False
if (rinst_obj.get_routing_instance_is_default() !=
is_default):
rinst_obj.set_routing_instance_is_default(is_default)
need_update = True
old_rt_refs = copy.deepcopy(rinst_obj.get_route_target_refs())
rinst_obj.set_route_target(rtgt_obj, InstanceTargetType())
rinst_obj.set_routing_instance_is_default(is_default)
if inst_tgt_data:
for rt in self.rt_list:
rtgt_obj = RouteTarget(rt)
rinst_obj.add_route_target(rtgt_obj, inst_tgt_data)
_vnc_lib.routing_instance_update(rinst_obj)
if (not compare_refs(rinst_obj.get_route_target_refs(),
old_rt_refs)):
need_update = True
if need_update:
_vnc_lib.routing_instance_update(rinst_obj)
except (NoIdError, KeyError):
rinst_obj = None
if rinst_obj is None:
Expand Down Expand Up @@ -1295,10 +1304,10 @@ def _get_acl(uuid):
else:
_vnc_lib.access_control_list_delete(id=acl['uuid'])
config_id = self.obj.get_configured_security_group_id() or 0
self.set_configured_security_group_id(config_id)
self.set_configured_security_group_id(config_id, False)
# end __init__

def set_configured_security_group_id(self, config_id):
def set_configured_security_group_id(self, config_id, update_acl=True):
if self.config_sgid == config_id:
return
self.config_sgid = config_id
Expand Down Expand Up @@ -1327,9 +1336,10 @@ def set_configured_security_group_id(self, config_id):
if sg_id != self.obj.get_security_group_id():
_vnc_lib.security_group_update(self.obj)
from_value = self.sg_id or self.name
for sg in self._dict.values():
sg.update_acl(from_value=from_value,
to_value=self.obj.get_security_group_id())
if update_acl:
for sg in self._dict.values():
sg.update_acl(from_value=from_value,
to_value=self.obj.get_security_group_id())
# end for sg
self.sg_id = self.obj.get_security_group_id()
# end set_configured_security_group_id
Expand Down Expand Up @@ -2494,12 +2504,13 @@ def get_service_mode(self):
class LogicalRouterST(DictST):
_dict = {}

def __init__(self, name):
def __init__(self, name, obj=None):
self.name = name
self.interfaces = set()
self.virtual_networks = set()
self.rt_list = set()
obj = _vnc_lib.logical_router_read(fq_name_str=name)
if not obj:
obj = _vnc_lib.logical_router_read(fq_name_str=name)
rt_ref = obj.get_route_target_refs()
old_rt_key = None
if rt_ref:
Expand Down Expand Up @@ -2711,6 +2722,9 @@ def __init__(self, args=None):

# Clean up stale objects
def reinit(self):
lr_list = _vnc_lib.logical_routers_list(detail=True)
for lr in lr_list:
LogicalRouterST.locate(lr.get_fq_name_str(), lr)
vn_list = _vnc_lib.virtual_networks_list(detail=True,
fields=['routing_instances',
'access_control_lists'])
Expand Down Expand Up @@ -2927,8 +2941,8 @@ def add_virtual_network_network_policy(self, idents, meta):
vnp = VirtualNetworkPolicyType()
vnp.build(meta)
virtual_network.add_policy(policy_name, vnp)
self.current_network_set |= policy.networks_back_ref
self.current_network_set |= policy.analyzer_vn_set
self.current_network_set |= (
policy.networks_back_ref | policy.analyzer_vn_set)
for pol in NetworkPolicyST.values():
if policy_name in pol.policies:
self.current_network_set |= pol.networks_back_ref
Expand Down
2 changes: 0 additions & 2 deletions src/config/svc-monitor/svc_monitor/svc_monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -1039,8 +1039,6 @@ def run_svc_monitor(args=None):
except requests.exceptions.ConnectionError as e:
monitor.logger.api_conn_status_update(ConnectionStatus.DOWN, str(e))
time.sleep(3)
except ResourceExhaustionError: # haproxy throws 503
time.sleep(3)
except ResourceExhaustionError: # haproxy throws 503
time.sleep(3)

Expand Down

0 comments on commit b23d33b

Please sign in to comment.