[Asterisk-code-review] second bundle (asterisk[master])
HZMI8gkCvPpom0tM
asteriskteam at digium.com
Wed Jul 22 09:34:35 CDT 2015
HZMI8gkCvPpom0tM has uploaded a new change for review.
https://gerrit.asterisk.org/948
Change subject: second bundle
......................................................................
second bundle
Change-Id: I86e5d40ad6473917a046685a6a9346a2d6524be8
---
M contrib/ast-db-manage/config/versions/15b1430ad6f1_add_moh_passthrough_option_to_pjsip.py
M contrib/ast-db-manage/config/versions/23530d604b96_add_rpid_immediate.py
M contrib/ast-db-manage/config/versions/28b8e71e541f_add_g726_non_standard.py
M contrib/ast-db-manage/config/versions/31cd4f4891ec_add_auto_dtmf_mode.py
M contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py
M contrib/ast-db-manage/config/versions/498357a710ae_add_rtp_keepalive.py
M contrib/ast-db-manage/config/versions/945b1098bdd_add_media_encryption_optimistic_to_pjsip.py
7 files changed, 95 insertions(+), 60 deletions(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/48/948/1
diff --git a/contrib/ast-db-manage/config/versions/15b1430ad6f1_add_moh_passthrough_option_to_pjsip.py b/contrib/ast-db-manage/config/versions/15b1430ad6f1_add_moh_passthrough_option_to_pjsip.py
index 54f08ff..cc88c83 100644
--- a/contrib/ast-db-manage/config/versions/15b1430ad6f1_add_moh_passthrough_option_to_pjsip.py
+++ b/contrib/ast-db-manage/config/versions/15b1430ad6f1_add_moh_passthrough_option_to_pjsip.py
@@ -18,13 +18,19 @@
YESNO_VALUES = ['yes', 'no']
def upgrade():
- ############################# Enums ##############################
+ currentcontext = op.get_context()
+ if currentcontext.bind.dialect.name != 'oracle':
+ ############################# Enums ##############################
- # yesno_values have already been created, so use postgres enum object
- # type to get around "already created" issue - works okay with mysql
- yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
+ # yesno_values have already been created, so use postgres enum object
+ # type to get around "already created" issue - works okay with mysql
+ yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
- op.add_column('ps_endpoints', sa.Column('moh_passthrough', yesno_values))
+ op.add_column('ps_endpoints', sa.Column('moh_passthrough', yesno_values))
+ if currentcontext.bind.dialect.name == 'oracle':
+ yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
+
+ op.add_column('ps_endpoints', sa.Column('moh_passthrough', sa.Enum(*YESNO_VALUES, name='psepYnNmohpassthrough') ))
def downgrade():
- op.drop_column('ps_endpoints', 'moh_passthrough')
+ op.drop_column('ps_endpoints', 'moh_passthrough')
diff --git a/contrib/ast-db-manage/config/versions/23530d604b96_add_rpid_immediate.py b/contrib/ast-db-manage/config/versions/23530d604b96_add_rpid_immediate.py
index dc0c01c..416c9fe 100755
--- a/contrib/ast-db-manage/config/versions/23530d604b96_add_rpid_immediate.py
+++ b/contrib/ast-db-manage/config/versions/23530d604b96_add_rpid_immediate.py
@@ -36,13 +36,17 @@
YESNO_VALUES = ['yes', 'no']
def upgrade():
- ############################# Enums ##############################
+ currentcontext = op.get_context()
+ if currentcontext.bind.dialect.name != 'oracle':
+ ############################# Enums ##############################
- # yesno_values have already been created, so use postgres enum object
- # type to get around "already created" issue - works okay with mysql
- yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
+ # yesno_values have already been created, so use postgres enum object
+ # type to get around "already created" issue - works okay with mysql
+ yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
- op.add_column('ps_endpoints', sa.Column('rpid_immediate', yesno_values))
+ op.add_column('ps_endpoints', sa.Column('rpid_immediate', yesno_values))
+ if currentcontext.bind.dialect.name == 'oracle':
+ op.add_column('ps_endpoints', sa.Column('rpid_immediate', sa.Enum(*YESNO_VALUES, name='psepYnNrpidimmediate')))
def downgrade():
- op.drop_column('ps_endpoints', 'rpid_immediate')
+ op.drop_column('ps_endpoints', 'rpid_immediate')
diff --git a/contrib/ast-db-manage/config/versions/28b8e71e541f_add_g726_non_standard.py b/contrib/ast-db-manage/config/versions/28b8e71e541f_add_g726_non_standard.py
index ad36bd9..b0c0ab9 100644
--- a/contrib/ast-db-manage/config/versions/28b8e71e541f_add_g726_non_standard.py
+++ b/contrib/ast-db-manage/config/versions/28b8e71e541f_add_g726_non_standard.py
@@ -18,13 +18,17 @@
YESNO_VALUES = ['yes', 'no']
def upgrade():
- ############################# Enums ##############################
+ currentcontext = op.get_context()
+ if currentcontext.bind.dialect.name == 'oracle':
+ op.add_column('ps_endpoints', sa.Column('g726_non_standard', sa.Enum(*YESNO_VALUES, name='psepYnNg726nonstandard')))
+ return
+ ############################# Enums ##############################
- # yesno_values have already been created, so use postgres enum object
- # type to get around "already created" issue - works okay with mysql
- yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
- op.add_column('ps_endpoints', sa.Column('g726_non_standard', yesno_values))
+ # yesno_values have already been created, so use postgres enum object
+ # type to get around "already created" issue - works okay with mysql
+ yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
+ op.add_column('ps_endpoints', sa.Column('g726_non_standard', yesno_values))
def downgrade():
- op.drop_column('ps_endpoints', 'g726_non_standard')
+ op.drop_column('ps_endpoints', 'g726_non_standard')
diff --git a/contrib/ast-db-manage/config/versions/31cd4f4891ec_add_auto_dtmf_mode.py b/contrib/ast-db-manage/config/versions/31cd4f4891ec_add_auto_dtmf_mode.py
index 0d84390..02b958f 100644
--- a/contrib/ast-db-manage/config/versions/31cd4f4891ec_add_auto_dtmf_mode.py
+++ b/contrib/ast-db-manage/config/versions/31cd4f4891ec_add_auto_dtmf_mode.py
@@ -21,44 +21,56 @@
new_type = sa.Enum(*NEW_ENUM, name='pjsip_dtmf_mode_values_v2')
tcr = sa.sql.table('ps_endpoints', sa.Column('dtmf_mode', new_type,
- nullable=True))
+ nullable=True))
def upgrade():
- context = op.get_context()
+ currentcontext = op.get_context()
- # Upgrading to this revision WILL clear your directmedia values.
- if context.bind.dialect.name != 'postgresql':
- op.alter_column('ps_endpoints', 'dtmf_mode',
- type_=new_type,
- existing_type=old_type)
- else:
- enum = ENUM('rfc4733', 'inband', 'info', 'auto',
- name='pjsip_dtmf_mode_values_v2')
- enum.create(op.get_bind(), checkfirst=False)
+ if currentcontext.bind.dialect.name == 'postgresql':
+ # Upgrading to this revision WILL clear your directmedia values.
+ enum = ENUM('rfc4733', 'inband', 'info', 'auto',
+ name='pjsip_dtmf_mode_values_v2')
+ enum.create(op.get_bind(), checkfirst=False)
- op.execute('ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE'
- ' pjsip_dtmf_mode_values_v2 USING'
- ' dtmf_mode::text::pjsip_dtmf_mode_values_v2')
+ op.execute('ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE'
+ ' pjsip_dtmf_mode_values_v2 USING'
+ ' dtmf_mode::text::pjsip_dtmf_mode_values_v2')
- ENUM(name="pjsip_dtmf_mode_values").drop(op.get_bind(), checkfirst=False)
+ ENUM(name="pjsip_dtmf_mode_values").drop(op.get_bind(), checkfirst=False)
+ return
+ if currentcontext.bind.dialect.name == 'oracle':
+ # i not like else also in oracle not possible to alter constraint
+ # so we have to drop it and recreate . It is very important to use option novalidate which will force checks
+ # for all new updates and inserts but not do full table scan. But as i see for our case
+ # we can safely validate it after creation , so lets do it
+ op.execute('alter table ps_endpoints drop constraint PSEPDTMFMODE');
+ op.execute('alter table ps_endpoints add constraint PSEPDTMFMODE CHECK (dtmf_mode IN (\'rfc4733\', \'inband\', \'info\',\'auto\')) ENABLE VALIDATE');
+ return
+ op.alter_column('ps_endpoints', 'dtmf_mode',type_=new_type, existing_type=old_type)
+
+
def downgrade():
- context = op.get_context()
+ currentcontext = op.get_context()
+
+ #op.execute(tcr.update().where(tcr.c.directmedia==u'outgoing')
+ # .values(directmedia=None))
- op.execute(tcr.update().where(tcr.c.directmedia==u'outgoing')
- .values(directmedia=None))
+ if currentcontext.bind.dialect.name == 'postgresql':
+ enum = ENUM('rfc4733', 'inband', 'info',
+ name='pjsip_dtmf_mode_values')
+ enum.create(op.get_bind(), checkfirst=False)
- if context.bind.dialect.name != 'postgresql':
- op.alter_column('ps_endpoints', 'dtmf_mode',
- type_=old_type,
- existing_type=new_type)
- else:
- enum = ENUM('rfc4733', 'inband', 'info',
- name='pjsip_dtmf_mode_values')
- enum.create(op.get_bind(), checkfirst=False)
+ op.execute('ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE'
+ ' pjsip_dtmf_mode_values USING'
+ ' dtmf_mode::text::pjsip_dtmf_mode_values')
- op.execute('ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE'
- ' pjsip_dtmf_mode_values USING'
- ' dtmf_mode::text::pjsip_dtmf_mode_values')
-
- ENUM(name="pjsip_dtmf_mode_values_v2").drop(op.get_bind(), checkfirst=False)
+ ENUM(name="pjsip_dtmf_mode_values_v2").drop(op.get_bind(), checkfirst=False)
+ return
+ if currentcontext.bind.dialect.name == 'oracle':
+ op.execute('alter table ps_endpoints drop constraint PSEPDTMFMODE');
+ # it could be that 'auto' already used somewhere. So cannot validate
+ op.execute('alter table ps_endpoints add constraint PSEPDTMFMODE CHECK (dtmf_mode IN (\'rfc4733\', \'inband\', \'info\')) ENABLE NOVALIDATE');
+ return
+ op.alter_column('ps_endpoints', 'dtmf_mode',type_=old_type, existing_type=new_type)
+
diff --git a/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py b/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py
index b7d9924..6120db5 100644
--- a/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py
+++ b/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py
@@ -15,7 +15,6 @@
def upgrade():
- op.add_column('ps_globals', sa.Column('endpoint_identifier_order', sa.String(40)))
-
+ op.add_column('ps_globals', sa.Column('endpoint_identifier_order', sa.String(40)))
def downgrade():
- op.drop_column('ps_globals', 'endpoint_identifier_order')
+ op.drop_column('ps_globals', 'endpoint_identifier_order')
diff --git a/contrib/ast-db-manage/config/versions/498357a710ae_add_rtp_keepalive.py b/contrib/ast-db-manage/config/versions/498357a710ae_add_rtp_keepalive.py
index 5a4f470..d8184ca 100644
--- a/contrib/ast-db-manage/config/versions/498357a710ae_add_rtp_keepalive.py
+++ b/contrib/ast-db-manage/config/versions/498357a710ae_add_rtp_keepalive.py
@@ -15,8 +15,8 @@
def upgrade():
- op.add_column('ps_endpoints', sa.Column('rtp_keepalive', sa.Integer))
+ op.add_column('ps_endpoints', sa.Column('rtp_keepalive', sa.Integer))
def downgrade():
- op.drop_column('ps_endpoints', 'rtp_keepalive')
+ op.drop_column('ps_endpoints', 'rtp_keepalive')
diff --git a/contrib/ast-db-manage/config/versions/945b1098bdd_add_media_encryption_optimistic_to_pjsip.py b/contrib/ast-db-manage/config/versions/945b1098bdd_add_media_encryption_optimistic_to_pjsip.py
index 7a463f0..3098b92 100644
--- a/contrib/ast-db-manage/config/versions/945b1098bdd_add_media_encryption_optimistic_to_pjsip.py
+++ b/contrib/ast-db-manage/config/versions/945b1098bdd_add_media_encryption_optimistic_to_pjsip.py
@@ -18,14 +18,24 @@
YESNO_VALUES = ['yes', 'no']
def upgrade():
- ############################# Enums ##############################
+ currentcontext = op.get_context()
+ if currentcontext.bind.dialect.name != 'oracle':
+ ############################# Enums ##############################
- # yesno_values have already been created, so use postgres enum object
- # type to get around "already created" issue - works okay with mysql
- yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
+ # yesno_values have already been created, so use postgres enum object
+ # type to get around "already created" issue - works okay with mysql
+ yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
- op.add_column('ps_endpoints', sa.Column('media_encryption_optimistic', yesno_values))
+ op.add_column('ps_endpoints', sa.Column('media_encryption_optimistic', yesno_values))
+ if currentcontext.bind.dialect.name == 'oracle':
+ ############################# Enums ##############################
+
+ # yesno_values have already been created, so use postgres enum object
+ # type to get around "already created" issue - works okay with mysql
+ yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
+
+ op.add_column('ps_endpoints', sa.Column('media_encryption_optimistic', ENUM(*YESNO_VALUES, name='psepYnNmediaencryptionoptim')))
def downgrade():
- op.drop_column('ps_endpoints', 'media_encryption_optimistic')
+ op.drop_column('ps_endpoints', 'media_encryption_optimistic')
--
To view, visit https://gerrit.asterisk.org/948
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I86e5d40ad6473917a046685a6a9346a2d6524be8
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Owner: HZMI8gkCvPpom0tM <fuxfwgc4a2i1gr at gmail.com>
More information about the asterisk-code-review
mailing list