Asterisk - The Open Source Telephony Project GIT-master-115d7c0
417c0247fd7e_add_security_negotiation_and_security_.py
Go to the documentation of this file.
1"""add security_negotiation and security_mechanisms to endpoint
2
3Revision ID: 417c0247fd7e
4Revises: 539f68bede2c
5Create Date: 2022-08-08 15:35:31.416964
6
7"""
8
9# revision identifiers, used by Alembic.
10revision = '417c0247fd7e'
11down_revision = '539f68bede2c'
12
13from alembic import op
14import sqlalchemy as sa
15from sqlalchemy.dialects.postgresql import ENUM
16
17SECURITY_NEGOTIATION_NAME = 'security_negotiation_values'
18SECURITY_NEGOTIATION_VALUES = ['no', 'mediasec']
19
20def upgrade():
21 context = op.get_context()
22
23 if context.bind.dialect.name == 'postgresql':
24 security_negotiation_values = ENUM(*SECURITY_NEGOTIATION_VALUES, name=SECURITY_NEGOTIATION_NAME)
25 security_negotiation_values.create(op.get_bind(), checkfirst=False)
26
27 op.add_column('ps_endpoints', sa.Column('security_negotiation',
28 ENUM(*SECURITY_NEGOTIATION_VALUES, name=SECURITY_NEGOTIATION_NAME, create_type=False)))
29 op.add_column('ps_endpoints', sa.Column('security_mechanisms', sa.String(512)))
30
31 op.add_column('ps_registrations', sa.Column('security_negotiation',
32 ENUM(*SECURITY_NEGOTIATION_VALUES, name=SECURITY_NEGOTIATION_NAME, create_type=False)))
33 op.add_column('ps_registrations', sa.Column('security_mechanisms', sa.String(512)))
34
36 context = op.get_context()
37
38 if context.bind.dialect.name == 'mssql':
39 op.drop_constraint('ck_ps_endpoints_security_negotiation_security_negotiation_values', 'ps_endpoints')
40 op.drop_constraint('ck_ps_registrations_security_negotiation_security_negotiation_values', 'ps_registrations')
41
42 op.drop_column('ps_endpoints', 'security_negotiation')
43 op.drop_column('ps_endpoints', 'security_mechanisms')
44 op.drop_column('ps_registrations', 'security_negotiation')
45 op.drop_column('ps_registrations', 'security_mechanisms')
46
47 if context.bind.dialect.name == 'postgresql':
48 enum = ENUM(*SECURITY_NEGOTIATION_VALUES, name=SECURITY_NEGOTIATION_NAME)
49 enum.drop(op.get_bind(), checkfirst=False)