[pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Hackers,

Attached is the patch to capture the notification from psycopg2 and displayed it in "Messages" tab of query tool. Added feature test to cover this scenario.

Refer Notification.png file to how it looks in "Messages" tab. Please review it.

--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246

Notification.png (113K) Download Attachment
RM_3204.patch (6K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Joao De Almeida Pereira
Hi Akshay,

This patch is flaky; it doesn't always pass the tests in our pipeline.

======================================================================
ERROR: runTest (pgadmin.feature_tests.query_tool_tests.QueryToolFeatureTest)
Query tool feature test
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/build/5988fb0a/pgadmin-repo/web/pgadmin/feature_tests/query_tool_tests.py", line 101, in runTest
self._query_tool_notify_statements()
File "/tmp/build/5988fb0a/pgadmin-repo/web/pgadmin/feature_tests/query_tool_tests.py", line 643, in _query_tool_notify_statements
'//div[contains(@class, "sql-editor-message") and '
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 169, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 261, in wait_for_element
return self._wait_for("element to exist", element_if_it_exists)
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 327, in _wait_for
"Timed out waiting for " + waiting_for_message
File "/root/.pyenv/versions/pgadmin/lib/python2.7/site-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for element to exist

All the failures are related to query_tool_notify_statements.  Please take another look.

Sincerely,

Victoria & Joao

On Tue, May 15, 2018 at 6:01 AM Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

Attached is the patch to capture the notification from psycopg2 and displayed it in "Messages" tab of query tool. Added feature test to cover this scenario.

Refer Notification.png file to how it looks in "Messages" tab. Please review it.

--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Joao

On Tue, 15 May 2018, 19:36 Joao De Almeida Pereira, <[hidden email]> wrote:
Hi Akshay,

This patch is flaky; it doesn't always pass the tests in our pipeline.

======================================================================
ERROR: runTest (pgadmin.feature_tests.query_tool_tests.QueryToolFeatureTest)
Query tool feature test
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/build/5988fb0a/pgadmin-repo/web/pgadmin/feature_tests/query_tool_tests.py", line 101, in runTest
self._query_tool_notify_statements()
File "/tmp/build/5988fb0a/pgadmin-repo/web/pgadmin/feature_tests/query_tool_tests.py", line 643, in _query_tool_notify_statements
'//div[contains(@class, "sql-editor-message") and '
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 169, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 261, in wait_for_element
return self._wait_for("element to exist", element_if_it_exists)
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 327, in _wait_for
"Timed out waiting for " + waiting_for_message
File "/root/.pyenv/versions/pgadmin/lib/python2.7/site-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for element to exist

All the failures are related to query_tool_notify_statements.  Please take another look.

     There is some serious problems of timeout issues. I have tested it couple of times and working fine. Will test tomorrow one more time. I have followed the code written in the same file. If those test cases have passed then this should also. 

Sincerely,

Victoria & Joao

On Tue, May 15, 2018 at 6:01 AM Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

Attached is the patch to capture the notification from psycopg2 and displayed it in "Messages" tab of query tool. Added feature test to cover this scenario.

Refer Notification.png file to how it looks in "Messages" tab. Please review it.

--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Hackers,

On Tue, May 15, 2018 at 9:52 PM, Akshay Joshi <[hidden email]> wrote:
Hi Joao

On Tue, 15 May 2018, 19:36 Joao De Almeida Pereira, <[hidden email]> wrote:
Hi Akshay,

This patch is flaky; it doesn't always pass the tests in our pipeline.

======================================================================
ERROR: runTest (pgadmin.feature_tests.query_tool_tests.QueryToolFeatureTest)
Query tool feature test
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/build/5988fb0a/pgadmin-repo/web/pgadmin/feature_tests/query_tool_tests.py", line 101, in runTest
self._query_tool_notify_statements()
File "/tmp/build/5988fb0a/pgadmin-repo/web/pgadmin/feature_tests/query_tool_tests.py", line 643, in _query_tool_notify_statements
'//div[contains(@class, "sql-editor-message") and '
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 169, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 261, in wait_for_element
return self._wait_for("element to exist", element_if_it_exists)
File "/tmp/build/5988fb0a/pgadmin-repo/web/regression/feature_utils/pgadmin_page.py", line 327, in _wait_for
"Timed out waiting for " + waiting_for_message
File "/root/.pyenv/versions/pgadmin/lib/python2.7/site-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for element to exist

All the failures are related to query_tool_notify_statements.  Please take another look.

     There is some serious problems of timeout issues. I have tested it couple of times and working fine. Will test tomorrow one more time. I have followed the code written in the same file. If those test cases have passed then this should also. 

      Issue is with Python 2.7, yesterday i have verified it on Python 3.5. Attached is the modified patch, please review it. 

Sincerely,

Victoria & Joao

On Tue, May 15, 2018 at 6:01 AM Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

Attached is the patch to capture the notification from psycopg2 and displayed it in "Messages" tab of query tool. Added feature test to cover this scenario.

Refer Notification.png file to how it looks in "Messages" tab. Please review it.

--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246

RM_3204_v2.patch (6K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Anthony Emengo
Hey,

The code looks great! The tests all passed as well.

Sincerely

Anthony and Victoria
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Dave Page-7
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?
 
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.
 
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Dave Page-7


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246

RM_3204_v3.patch (16K) Download Attachment
Notify_Messages.png (68K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi All

Please ignore the previous patch. Attached is the latest one.

On Tue, May 22, 2018 at 11:37 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246

RM_3204_v4.patch (20K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Dave Page-7
In reply to this post by Akshay Joshi
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Dave Page-7


On Tue, May 22, 2018 at 9:13 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

 

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Dave

On Tue, May 22, 2018 at 2:02 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 9:13 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

       If there are too many notifications then it's annoying for user to popped up N number of alertify dialogs. Notification is only receives when any other query execute on the session where "LISTEN" command executes. So for example I have NOTIFY 10 times from different sessions and execute any other query on the session("LISTEN" one), 10 alertify dialog will be popped up. 
    Again it's timeout issue, not able to reproduce on my machine will look into it. Maybe will have to add webDriverWait.  

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Dave Page-7


On Tue, May 22, 2018 at 10:01 AM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Tue, May 22, 2018 at 2:02 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 9:13 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

       If there are too many notifications then it's annoying for user to popped up N number of alertify dialogs. Notification is only receives when any other query execute on the session where "LISTEN" command executes. So for example I have NOTIFY 10 times from different sessions and execute any other query on the session("LISTEN" one), 10 alertify dialog will be popped up.

Sure, but then a) it's the users choice to listen for something very noisey, and b) if there are many notifications then the message box dialogue will become huge.

The other nice thing about using notifications is that they don't require any acknowledgement; they show you the event happened, and then get out of the way, allowing you to jump to the messages tab if needed.
 
 
    Again it's timeout issue, not able to reproduce on my machine will look into it. Maybe will have to add webDriverWait.  

OK.
 

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Hackers, 

As per suggestion by Dave and discussion with in the team, I have modified the logic again. Following are the modifications:
  • Instead of waiting for another query to execute on the session where 'LISTEN' command has been executed, we fetched the notify messages in the connection status polling logic. Doing this user will get the notify messages asap. 
  • Instead of showing all the notifications in single alertify dialog, we call alertify.info('<msg>') for individual notifications.
  • Created new tab 'Notifications' in Query Tool where all the notify messages will be recorded with the timestamp and payload.
Please review the latest patch.   

On Tue, May 22, 2018 at 2:43 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 10:01 AM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Tue, May 22, 2018 at 2:02 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 9:13 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

       If there are too many notifications then it's annoying for user to popped up N number of alertify dialogs. Notification is only receives when any other query execute on the session where "LISTEN" command executes. So for example I have NOTIFY 10 times from different sessions and execute any other query on the session("LISTEN" one), 10 alertify dialog will be popped up.

Sure, but then a) it's the users choice to listen for something very noisey, and b) if there are many notifications then the message box dialogue will become huge.

The other nice thing about using notifications is that they don't require any acknowledgement; they show you the event happened, and then get out of the way, allowing you to jump to the messages tab if needed.
 
 
    Again it's timeout issue, not able to reproduce on my machine will look into it. Maybe will have to add webDriverWait.  

OK.
 

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246

RM_3204_v5.patch (33K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Hakers,

On my last patch feature tests were failed for GreenPlum5 database only not for PostgreSQL. I have verified that on https://gpdb-dev.bosh.pivotalci.info/teams/pgadmin/pipelines/pgadmin-patch/jobs/run-tests/builds/93.

Can someone from Pivotal team help me, as I don't have GreenPlum database and don't know why it is failing. 

On Sat, May 26, 2018 at 5:47 PM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers, 

As per suggestion by Dave and discussion with in the team, I have modified the logic again. Following are the modifications:
  • Instead of waiting for another query to execute on the session where 'LISTEN' command has been executed, we fetched the notify messages in the connection status polling logic. Doing this user will get the notify messages asap. 
  • Instead of showing all the notifications in single alertify dialog, we call alertify.info('<msg>') for individual notifications.
  • Created new tab 'Notifications' in Query Tool where all the notify messages will be recorded with the timestamp and payload.
Please review the latest patch.   

On Tue, May 22, 2018 at 2:43 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 10:01 AM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Tue, May 22, 2018 at 2:02 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 9:13 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

       If there are too many notifications then it's annoying for user to popped up N number of alertify dialogs. Notification is only receives when any other query execute on the session where "LISTEN" command executes. So for example I have NOTIFY 10 times from different sessions and execute any other query on the session("LISTEN" one), 10 alertify dialog will be popped up.

Sure, but then a) it's the users choice to listen for something very noisey, and b) if there are many notifications then the message box dialogue will become huge.

The other nice thing about using notifications is that they don't require any acknowledgement; they show you the event happened, and then get out of the way, allowing you to jump to the messages tab if needed.
 
 
    Again it's timeout issue, not able to reproduce on my machine will look into it. Maybe will have to add webDriverWait.  

OK.
 

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Joao De Almeida Pereira

Hello Akshay,

The code looks good, we do have some minor notes for next time:

. To make the code easier to understand we should decide on 1 term and not have notifies and notifications to reference the same thing.
. It would be nice if we tried not to use XPATH to get the HTML components that we are testing on. Maybe try to use CSS classes. Selenium also has a driver.select_by_class_name which would work well in this case.

The error that we are seeing in CI is related to pg_notify. This function was introduced in 9.0 and Greenplum is still not there yet. In order to solve this need to skip that part of the tests. There is an example in that same file using the function _test_explain_plan_feature to skip a tests depending on the Version.

Thanks
Anthony && Joao


On Mon, May 28, 2018 at 1:34 AM Akshay Joshi <[hidden email]> wrote:
Hi Hakers,

On my last patch feature tests were failed for GreenPlum5 database only not for PostgreSQL. I have verified that on https://gpdb-dev.bosh.pivotalci.info/teams/pgadmin/pipelines/pgadmin-patch/jobs/run-tests/builds/93.

Can someone from Pivotal team help me, as I don't have GreenPlum database and don't know why it is failing. 

On Sat, May 26, 2018 at 5:47 PM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers, 

As per suggestion by Dave and discussion with in the team, I have modified the logic again. Following are the modifications:
  • Instead of waiting for another query to execute on the session where 'LISTEN' command has been executed, we fetched the notify messages in the connection status polling logic. Doing this user will get the notify messages asap. 
  • Instead of showing all the notifications in single alertify dialog, we call alertify.info('<msg>') for individual notifications.
  • Created new tab 'Notifications' in Query Tool where all the notify messages will be recorded with the timestamp and payload.
Please review the latest patch.   

On Tue, May 22, 2018 at 2:43 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 10:01 AM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Tue, May 22, 2018 at 2:02 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 9:13 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

       If there are too many notifications then it's annoying for user to popped up N number of alertify dialogs. Notification is only receives when any other query execute on the session where "LISTEN" command executes. So for example I have NOTIFY 10 times from different sessions and execute any other query on the session("LISTEN" one), 10 alertify dialog will be popped up.

Sure, but then a) it's the users choice to listen for something very noisey, and b) if there are many notifications then the message box dialogue will become huge.

The other nice thing about using notifications is that they don't require any acknowledgement; they show you the event happened, and then get out of the way, allowing you to jump to the messages tab if needed.
 
 
    Again it's timeout issue, not able to reproduce on my machine will look into it. Maybe will have to add webDriverWait.  

OK.
 

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Akshay Joshi
Hi Joao

On Tue, May 29, 2018 at 9:10 PM, Joao De Almeida Pereira <[hidden email]> wrote:

Hello Akshay,

The code looks good, we do have some minor notes for next time:

. To make the code easier to understand we should decide on 1 term and not have notifies and notifications to reference the same thing.

     Fixed and used 'notifies' where it reference the same, but still at some places 'notifications' is used because the new tab represents the 'Notifications'. 
    

. It would be nice if we tried not to use XPATH to get the HTML components that we are testing on. Maybe try to use CSS classes. Selenium also has a driver.select_by_class_name which would work well in this case.

     Tried to use both CSS_SELECTOR and CLASS_NAME, but it doesn't support string comparison(contains method). I have googled for this and most of the sites suggested to use XPATH where we can use contains() method.  
   

The error that we are seeing in CI is related to pg_notify. This function was introduced in 9.0 and Greenplum is still not there yet. In order to solve this need to skip that part of the tests. There is an example in that same file using the function _test_explain_plan_feature to skip a tests depending on the Version.

    OK. I have skip that part of the tests as per your suggestion. I have rename the method "_test_explain_plan_feature" to "_supported_server_version" which is more meaningful then the previous one.

   Attached is the modified patch. Please review it.
 

Thanks
Anthony && Joao


On Mon, May 28, 2018 at 1:34 AM Akshay Joshi <[hidden email]> wrote:
Hi Hakers,

On my last patch feature tests were failed for GreenPlum5 database only not for PostgreSQL. I have verified that on https://gpdb-dev.bosh.pivotalci.info/teams/pgadmin/pipelines/pgadmin-patch/jobs/run-tests/builds/93.

Can someone from Pivotal team help me, as I don't have GreenPlum database and don't know why it is failing. 

On Sat, May 26, 2018 at 5:47 PM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers, 

As per suggestion by Dave and discussion with in the team, I have modified the logic again. Following are the modifications:
  • Instead of waiting for another query to execute on the session where 'LISTEN' command has been executed, we fetched the notify messages in the connection status polling logic. Doing this user will get the notify messages asap. 
  • Instead of showing all the notifications in single alertify dialog, we call alertify.info('<msg>') for individual notifications.
  • Created new tab 'Notifications' in Query Tool where all the notify messages will be recorded with the timestamp and payload.
Please review the latest patch.   

On Tue, May 22, 2018 at 2:43 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 10:01 AM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Tue, May 22, 2018 at 2:02 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 9:13 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

       If there are too many notifications then it's annoying for user to popped up N number of alertify dialogs. Notification is only receives when any other query execute on the session where "LISTEN" command executes. So for example I have NOTIFY 10 times from different sessions and execute any other query on the session("LISTEN" one), 10 alertify dialog will be popped up.

Sure, but then a) it's the users choice to listen for something very noisey, and b) if there are many notifications then the message box dialogue will become huge.

The other nice thing about using notifications is that they don't require any acknowledgement; they show you the event happened, and then get out of the way, allowing you to jump to the messages tab if needed.
 
 
    Again it's timeout issue, not able to reproduce on my machine will look into it. Maybe will have to add webDriverWait.  

OK.
 

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246

RM_3204_v6.patch (34K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4][Patch] Feature #3204 Notify/Listen not working in version 2.1

Joao De Almeida Pereira

Hello Akshay,

Thanks for taking a look. We did the following changes over your patch:

  • Changed the XPATH to CSS_SELECTOR, please look in pgadmin/feature_tests/query_tool_tests.py:660 and 667
  • Changed the other places in _query_tool_notify_statements to do not use xpath.
  • Moved the skip that previously was around the entire function to surround only the pg_notify call

Thanks
Victoria && Joao


On Wed, May 30, 2018 at 1:52 AM Akshay Joshi <[hidden email]> wrote:
Hi Joao

On Tue, May 29, 2018 at 9:10 PM, Joao De Almeida Pereira <[hidden email]> wrote:

Hello Akshay,

The code looks good, we do have some minor notes for next time:

. To make the code easier to understand we should decide on 1 term and not have notifies and notifications to reference the same thing.

     Fixed and used 'notifies' where it reference the same, but still at some places 'notifications' is used because the new tab represents the 'Notifications'. 
    

. It would be nice if we tried not to use XPATH to get the HTML components that we are testing on. Maybe try to use CSS classes. Selenium also has a driver.select_by_class_name which would work well in this case.

     Tried to use both CSS_SELECTOR and CLASS_NAME, but it doesn't support string comparison(contains method). I have googled for this and most of the sites suggested to use XPATH where we can use contains() method.  
   

The error that we are seeing in CI is related to pg_notify. This function was introduced in 9.0 and Greenplum is still not there yet. In order to solve this need to skip that part of the tests. There is an example in that same file using the function _test_explain_plan_feature to skip a tests depending on the Version.

    OK. I have skip that part of the tests as per your suggestion. I have rename the method "_test_explain_plan_feature" to "_supported_server_version" which is more meaningful then the previous one.

   Attached is the modified patch. Please review it.
 

Thanks
Anthony && Joao


On Mon, May 28, 2018 at 1:34 AM Akshay Joshi <[hidden email]> wrote:
Hi Hakers,

On my last patch feature tests were failed for GreenPlum5 database only not for PostgreSQL. I have verified that on https://gpdb-dev.bosh.pivotalci.info/teams/pgadmin/pipelines/pgadmin-patch/jobs/run-tests/builds/93.

Can someone from Pivotal team help me, as I don't have GreenPlum database and don't know why it is failing. 

On Sat, May 26, 2018 at 5:47 PM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers, 

As per suggestion by Dave and discussion with in the team, I have modified the logic again. Following are the modifications:
  • Instead of waiting for another query to execute on the session where 'LISTEN' command has been executed, we fetched the notify messages in the connection status polling logic. Doing this user will get the notify messages asap. 
  • Instead of showing all the notifications in single alertify dialog, we call alertify.info('<msg>') for individual notifications.
  • Created new tab 'Notifications' in Query Tool where all the notify messages will be recorded with the timestamp and payload.
Please review the latest patch.   

On Tue, May 22, 2018 at 2:43 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 10:01 AM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Tue, May 22, 2018 at 2:02 PM, Dave Page <[hidden email]> wrote:


On Tue, May 22, 2018 at 9:13 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 22, 2018 at 7:07 AM, Akshay Joshi <[hidden email]> wrote:
Hi Hackers,

As per suggestion by Dave, I have modified the logic and now notifications are popped up in alertify dialog(refer Notify_Messages.png) as and when received on that session where "LISTEN" is executed. Attached is the modified patch, please review it. 

To test this feature following steps need to perform:
  • Apply the patch.
  • Run pgAdmin4
  • Connect to any database server and open query tool.
  • Execute 'LISTEN foo;' command.
  • Open another query tool window and execute 'NOTIFY foo'. (This is without payload).
  • Execute 'select pg_notify('foo', 'Hello')' query (with payload).
  • Go to the query tool window from where 'LISTEN' was executed and run any other query.   
I think there was a small misunderstanding here - I was suggesting that each notification be displayed in an Alertify notification, e.g. using alertify.message('A notification of FOO was received with payload '1234'...')

       If there are too many notifications then it's annoying for user to popped up N number of alertify dialogs. Notification is only receives when any other query execute on the session where "LISTEN" command executes. So for example I have NOTIFY 10 times from different sessions and execute any other query on the session("LISTEN" one), 10 alertify dialog will be popped up.

Sure, but then a) it's the users choice to listen for something very noisey, and b) if there are many notifications then the message box dialogue will become huge.

The other nice thing about using notifications is that they don't require any acknowledgement; they show you the event happened, and then get out of the way, allowing you to jump to the messages tab if needed.
 
 
    Again it's timeout issue, not able to reproduce on my machine will look into it. Maybe will have to add webDriverWait.  

OK.
 

 

 

On Mon, May 21, 2018 at 1:36 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 4:56 PM, Dave Page <[hidden email]> wrote:


On Fri, May 18, 2018 at 12:11 PM, Akshay Joshi <[hidden email]> wrote:
Hi Dave

On Fri, May 18, 2018 at 3:58 PM, Dave Page <[hidden email]> wrote:
Hi

On Wed, May 16, 2018 at 2:51 PM, Anthony Emengo <[hidden email]> wrote:
Hey,

The code looks great! The tests all passed as well.

Agreed - however, unless you check the Messages panel, you're not likely to see that a message was received.

Can we also show each message in an alertify panel?

    We need to change the design I guess, as we are currently send this as part of Messages. We will have to send this separately and show it in the alertify panel.

Yeah. Unfortunately I think notifications need to be more "active" than the messages. 

    I am working on the above. Can we add one preferences setting to "ON/OFF" this alertify panel ?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246



--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246

RM_3204_v7.patch (36K) Download Attachment
12