[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