def _create_router(self, distributed=True, ha=False): with self.ctx.session.begin(subtransactions=True): self.ctx.session.add(l3_models.Router(id=TEST_ROUTER_ID)) self.ctx.session.add( l3_attrs.RouterExtraAttributes(router_id=TEST_ROUTER_ID, distributed=distributed, ha=ha))
def _ensure_extra_attr_model(self, context, router_db): if not router_db['extra_attributes']: kwargs = {k: v['default'] for k, v in get_attr_info().items()} kwargs['router_id'] = router_db['id'] new = l3_attrs.RouterExtraAttributes(**kwargs) context.session.add(new) router_db['extra_attributes'] = new
def _process_extra_attr_router_create( self, context, router_db, router_req): kwargs = self._get_extra_attributes(router_req, self.extra_attributes) # extra_attributes reference is populated via backref if not router_db['extra_attributes']: attributes_db = l3_attrs.RouterExtraAttributes( router_id=router_db['id'], **kwargs) context.session.add(attributes_db) router_db['extra_attributes'] = attributes_db else: # The record will exist if RouterExtraAttributes model's # attributes are added with db migrations over time router_db['extra_attributes'].update(kwargs)