<p>Friendly Automation <strong>submitted</strong> this change.</p><p><a href="https://gerrit.asterisk.org/c/asterisk/+/13649">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  George Joseph: Looks good to me, approved
  Friendly Automation: Approved for Submit

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">queue_log: Add alembic script for generate db table for queue_log<br><br>Change-Id: I35b928a6251f9da9a1742b2cd14c63a00c3d0f0c<br>---<br>M contrib/ast-db-manage/README.md<br>A contrib/ast-db-manage/queue_log.ini.sample<br>A contrib/ast-db-manage/queue_log/env.py<br>A contrib/ast-db-manage/queue_log/script.py.mako<br>A contrib/ast-db-manage/queue_log/versions/4105ee839f58_create_queue_log_table.py<br>5 files changed, 122 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/contrib/ast-db-manage/README.md b/contrib/ast-db-manage/README.md</span><br><span>index 7add3ee..42f2376 100644</span><br><span>--- a/contrib/ast-db-manage/README.md</span><br><span>+++ b/contrib/ast-db-manage/README.md</span><br><span>@@ -11,6 +11,7 @@</span><br><span> </span><br><span>  * `cdr` - Table used for Asterisk to store CDR records</span><br><span>  * `config` - Tables used for Asterisk realtime configuration</span><br><span style="color: hsl(120, 100%, 40%);">+ * `queue_log` - Table used for Asterisk to store Queue Log records</span><br><span>  * `voicemail` - Tables used for `ODBC_STOARGE` of voicemail messages</span><br><span> </span><br><span> Alembic uses SQLAlchemy, which has support for</span><br><span>diff --git a/contrib/ast-db-manage/queue_log.ini.sample b/contrib/ast-db-manage/queue_log.ini.sample</span><br><span>new file mode 100644</span><br><span>index 0000000..ada14b5</span><br><span>--- /dev/null</span><br><span>+++ b/contrib/ast-db-manage/queue_log.ini.sample</span><br><span>@@ -0,0 +1,58 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# A generic, single database configuration.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[alembic]</span><br><span style="color: hsl(120, 100%, 40%);">+# path to migration scripts</span><br><span style="color: hsl(120, 100%, 40%);">+script_location = queue_log</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# template used to generate migration files</span><br><span style="color: hsl(120, 100%, 40%);">+# file_template = %%(rev)s_%%(slug)s</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# max length of characters to apply to the</span><br><span style="color: hsl(120, 100%, 40%);">+# "slug" field</span><br><span style="color: hsl(120, 100%, 40%);">+#truncate_slug_length = 40</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# set to 'true' to run the environment during</span><br><span style="color: hsl(120, 100%, 40%);">+# the 'revision' command, regardless of autogenerate</span><br><span style="color: hsl(120, 100%, 40%);">+# revision_environment = false</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#sqlalchemy.url = driver://user:pass@localhost/dbname</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#sqlalchemy.url = mysql://user:pass@localhost/queue_log</span><br><span style="color: hsl(120, 100%, 40%);">+sqlalchemy.url = postgresql://user:pass@localhost/queue_log</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Logging configuration</span><br><span style="color: hsl(120, 100%, 40%);">+[loggers]</span><br><span style="color: hsl(120, 100%, 40%);">+keys = root,sqlalchemy,alembic</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[handlers]</span><br><span style="color: hsl(120, 100%, 40%);">+keys = console</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[formatters]</span><br><span style="color: hsl(120, 100%, 40%);">+keys = generic</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[logger_root]</span><br><span style="color: hsl(120, 100%, 40%);">+level = WARN</span><br><span style="color: hsl(120, 100%, 40%);">+handlers = console</span><br><span style="color: hsl(120, 100%, 40%);">+qualname =</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[logger_sqlalchemy]</span><br><span style="color: hsl(120, 100%, 40%);">+level = WARN</span><br><span style="color: hsl(120, 100%, 40%);">+handlers =</span><br><span style="color: hsl(120, 100%, 40%);">+qualname = sqlalchemy.engine</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[logger_alembic]</span><br><span style="color: hsl(120, 100%, 40%);">+level = INFO</span><br><span style="color: hsl(120, 100%, 40%);">+handlers =</span><br><span style="color: hsl(120, 100%, 40%);">+qualname = alembic</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[handler_console]</span><br><span style="color: hsl(120, 100%, 40%);">+class = StreamHandler</span><br><span style="color: hsl(120, 100%, 40%);">+args = (sys.stderr,)</span><br><span style="color: hsl(120, 100%, 40%);">+level = NOTSET</span><br><span style="color: hsl(120, 100%, 40%);">+formatter = generic</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[formatter_generic]</span><br><span style="color: hsl(120, 100%, 40%);">+format = %(levelname)-5.5s [%(name)s] %(message)s</span><br><span style="color: hsl(120, 100%, 40%);">+datefmt = %H:%M:%S</span><br><span>diff --git a/contrib/ast-db-manage/queue_log/env.py b/contrib/ast-db-manage/queue_log/env.py</span><br><span>new file mode 120000</span><br><span>index 0000000..74b15c9</span><br><span>--- /dev/null</span><br><span>+++ b/contrib/ast-db-manage/queue_log/env.py</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../env.py</span><br><span>\ No newline at end of file</span><br><span>diff --git a/contrib/ast-db-manage/queue_log/script.py.mako b/contrib/ast-db-manage/queue_log/script.py.mako</span><br><span>new file mode 100644</span><br><span>index 0000000..43c0940</span><br><span>--- /dev/null</span><br><span>+++ b/contrib/ast-db-manage/queue_log/script.py.mako</span><br><span>@@ -0,0 +1,24 @@</span><br><span style="color: hsl(120, 100%, 40%);">+"""${message}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Revision ID: ${up_revision}</span><br><span style="color: hsl(120, 100%, 40%);">+Revises: ${down_revision | comma,n}</span><br><span style="color: hsl(120, 100%, 40%);">+Create Date: ${create_date}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+"""</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# revision identifiers, used by Alembic.</span><br><span style="color: hsl(120, 100%, 40%);">+revision = ${repr(up_revision)}</span><br><span style="color: hsl(120, 100%, 40%);">+down_revision = ${repr(down_revision)}</span><br><span style="color: hsl(120, 100%, 40%);">+branch_labels = ${repr(branch_labels)}</span><br><span style="color: hsl(120, 100%, 40%);">+depends_on = ${repr(depends_on)}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+from alembic import op</span><br><span style="color: hsl(120, 100%, 40%);">+import sqlalchemy as sa</span><br><span style="color: hsl(120, 100%, 40%);">+${imports if imports else ""}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+def upgrade():</span><br><span style="color: hsl(120, 100%, 40%);">+    ${upgrades if upgrades else "pass"}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+def downgrade():</span><br><span style="color: hsl(120, 100%, 40%);">+    ${downgrades if downgrades else "pass"}</span><br><span>diff --git a/contrib/ast-db-manage/queue_log/versions/4105ee839f58_create_queue_log_table.py b/contrib/ast-db-manage/queue_log/versions/4105ee839f58_create_queue_log_table.py</span><br><span>new file mode 100644</span><br><span>index 0000000..7c4a04e</span><br><span>--- /dev/null</span><br><span>+++ b/contrib/ast-db-manage/queue_log/versions/4105ee839f58_create_queue_log_table.py</span><br><span>@@ -0,0 +1,38 @@</span><br><span style="color: hsl(120, 100%, 40%);">+"""create queue_log table</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Revision ID: 4105ee839f58</span><br><span style="color: hsl(120, 100%, 40%);">+Revises:</span><br><span style="color: hsl(120, 100%, 40%);">+Create Date: 2016-09-30 22:32:45.918340</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+"""</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# revision identifiers, used by Alembic.</span><br><span style="color: hsl(120, 100%, 40%);">+revision = '4105ee839f58'</span><br><span style="color: hsl(120, 100%, 40%);">+down_revision = None</span><br><span style="color: hsl(120, 100%, 40%);">+branch_labels = None</span><br><span style="color: hsl(120, 100%, 40%);">+depends_on = None</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+from alembic import op</span><br><span style="color: hsl(120, 100%, 40%);">+import sqlalchemy as sa</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+def upgrade():</span><br><span style="color: hsl(120, 100%, 40%);">+    op.create_table(</span><br><span style="color: hsl(120, 100%, 40%);">+        'queue_log',</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('id', sa.BigInteger, primary_key=True, nullable=False,</span><br><span style="color: hsl(120, 100%, 40%);">+                  unique=True, autoincrement=True),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('time', sa.DateTime()),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('callid', sa.String(80)),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('queuename', sa.String(256)),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('agent', sa.String(80)),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('event', sa.String(32)),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('data1', sa.String(100)),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('data2', sa.String(100)),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('data3', sa.String(100)),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('data4', sa.String(100)),</span><br><span style="color: hsl(120, 100%, 40%);">+        sa.Column('data5', sa.String(100))</span><br><span style="color: hsl(120, 100%, 40%);">+    )</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+def downgrade():</span><br><span style="color: hsl(120, 100%, 40%);">+    op.drop_table('queue_log')</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/13649">change 13649</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/13649"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 17 </div>
<div style="display:none"> Gerrit-Change-Id: I35b928a6251f9da9a1742b2cd14c63a00c3d0f0c </div>
<div style="display:none"> Gerrit-Change-Number: 13649 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Rodrigo Ramirez Norambuena <a@rodrigoramirez.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>