def _update_pool_session_persistence(self, context, pool_id, info): # removing these keys as it is possible that they are passed in and # their existence will cause issues bc they are not acceptable as # dictionary values info.pop('pool', None) info.pop('pool_id', None) pool = self._get_resource(context, models.PoolV2, pool_id) with context.session.begin(subtransactions=True): # Update sessionPersistence table sess_qry = context.session.query(models.SessionPersistenceV2) sesspersist_db = sess_qry.filter_by(pool_id=pool_id).first() # Insert a None cookie_info if it is not present to overwrite an # existing value in the database. if 'cookie_name' not in info: info['cookie_name'] = None if sesspersist_db: sesspersist_db.update(info) else: info['pool_id'] = pool_id sesspersist_db = models.SessionPersistenceV2(**info) context.session.add(sesspersist_db) # Update pool table pool.session_persistence = sesspersist_db context.session.add(pool)
def _create_session_persistence_db(self, session_info, pool_id): session_info['pool_id'] = pool_id return models.SessionPersistenceV2(**session_info)