From 200b489b97119652ae99c265094c374e43d5e595 Mon Sep 17 00:00:00 2001
From: stedif <stefano.difrischia@inaf.it>
Date: Tue, 29 Jun 2021 11:27:30 +0200
Subject: [PATCH] L2SS-234: Replace Python-MySQL connection library from
 'mysql.connector' to 'PyMySql'

---
 devices/toolkit/archiver.py               |  4 +-
 docker-compose/jupyter/Dockerfile         |  2 +-
 jupyter-notebooks/archiving_test_v2.ipynb | 66 +++++++++--------------
 3 files changed, 29 insertions(+), 43 deletions(-)

diff --git a/devices/toolkit/archiver.py b/devices/toolkit/archiver.py
index 942fcf2e2..9efbf69b4 100644
--- a/devices/toolkit/archiver.py
+++ b/devices/toolkit/archiver.py
@@ -5,7 +5,7 @@ from .lofar2_config import configure_logging
 from tango import DeviceProxy
 from datetime import datetime, timedelta
 
-import mysql.connector
+import pymysql
 from sqlalchemy import create_engine, and_
 from sqlalchemy.orm import sessionmaker
 from sqlalchemy.orm.session import Session
@@ -39,7 +39,7 @@ def connect_to_archiving_db(host: str = 'archiver-maria-db', port: int = 3306, u
     """
     Returns a session to a MySQL DBMS using default or user-defined credentials.
     """
-    engine = create_engine('mysql+mysqlconnector://'+user+':'+password+'@'+host+':'+str(port)+'/'+database)
+    engine = create_engine('mysql+pymysql://'+user+':'+password+'@'+host+':'+str(port)+'/'+database)
     Session = sessionmaker(bind=engine)
     return Session()
 
diff --git a/docker-compose/jupyter/Dockerfile b/docker-compose/jupyter/Dockerfile
index 79e17ae5f..03dd2690f 100644
--- a/docker-compose/jupyter/Dockerfile
+++ b/docker-compose/jupyter/Dockerfile
@@ -24,7 +24,7 @@ RUN sudo pip3 install python-logstash-async
 COPY jupyter-notebook /usr/local/bin/jupyter-notebook
 
 #Install further python modules
-RUN sudo pip3 install mysql-connector-python sqlalchemy
+RUN sudo pip3 install PyMySQL[rsa] sqlalchemy
 
 # Add Tini. Tini operates as a process subreaper for jupyter. This prevents kernel crashes.
 ENV TINI_VERSION v0.6.0
diff --git a/jupyter-notebooks/archiving_test_v2.ipynb b/jupyter-notebooks/archiving_test_v2.ipynb
index 3e61e9273..a91a06cc0 100644
--- a/jupyter-notebooks/archiving_test_v2.ipynb
+++ b/jupyter-notebooks/archiving_test_v2.ipynb
@@ -11,7 +11,7 @@
     "sys.path.append('/hosthome/tango/devices')\n",
     "from toolkit.archiver import *\n",
     "from toolkit.archiver_base import *\n",
-    "import mysql.connector"
+    "import pymysql"
    ]
   },
   {
@@ -55,8 +55,7 @@
     {
      "data": {
       "text/plain": [
-       "[<Attribute(fullname='tango://databaseds:10000/lts/randomdata/1/rnd1',data_type ='37',ttl='0',facility ='tango://databaseds:10000',domain ='lts',family ='randomdata',member ='1',name ='rnd1')>,\n",
-       " <Attribute(fullname='tango://databaseds:10000/lts/randomdata/1/rnd3',data_type ='37',ttl='0',facility ='tango://databaseds:10000',domain ='lts',family ='randomdata',member ='1',name ='rnd3')>]"
+       "[]"
       ]
      },
      "execution_count": 4,
@@ -98,9 +97,7 @@
     {
      "data": {
       "text/plain": [
-       "[<Attribute(fullname='tango://databaseds:10000/lts/randomdata/1/rnd1',data_type ='37',ttl='0',facility ='tango://databaseds:10000',domain ='lts',family ='randomdata',member ='1',name ='rnd1')>,\n",
-       " <Attribute(fullname='tango://databaseds:10000/lts/randomdata/1/rnd3',data_type ='37',ttl='0',facility ='tango://databaseds:10000',domain ='lts',family ='randomdata',member ='1',name ='rnd3')>,\n",
-       " <Attribute(fullname='tango://databaseds:10000/lts/randomdata/1/rnd5',data_type ='37',ttl='0',facility ='tango://databaseds:10000',domain ='lts',family ='randomdata',member ='1',name ='rnd5')>]"
+       "[<Attribute(fullname='tango://databaseds:10000/lts/randomdata/1/rnd5',data_type ='37',ttl='0',facility ='tango://databaseds:10000',domain ='lts',family ='randomdata',member ='1',name ='rnd5')>]"
       ]
      },
      "execution_count": 7,
@@ -121,7 +118,7 @@
     {
      "data": {
       "text/plain": [
-       "3"
+       "1"
       ]
      },
      "execution_count": 8,
@@ -164,17 +161,17 @@
     {
      "data": {
       "text/plain": [
-       "[<Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:07.119788',recv_time='2021-06-25 15:24:07.930917',insert_time='2021-06-25 15:24:07.932652',value_r='0.2033680434',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:08.120465',recv_time='2021-06-25 15:24:08.124548',insert_time='2021-06-25 15:24:08.127058',value_r='0.9330212368',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:09.120343',recv_time='2021-06-25 15:24:09.123946',insert_time='2021-06-25 15:24:09.126367',value_r='0.1619766261',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:10.120398',recv_time='2021-06-25 15:24:10.123090',insert_time='2021-06-25 15:24:10.125112',value_r='0.1600708165',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:11.120518',recv_time='2021-06-25 15:24:11.123866',insert_time='2021-06-25 15:24:11.125772',value_r='0.1953627874',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:12.120626',recv_time='2021-06-25 15:24:12.123934',insert_time='2021-06-25 15:24:12.126119',value_r='0.4233485985',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:13.120682',recv_time='2021-06-25 15:24:13.123542',insert_time='2021-06-25 15:24:13.125435',value_r='0.1744663070',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:14.120714',recv_time='2021-06-25 15:24:14.123980',insert_time='2021-06-25 15:24:14.126306',value_r='0.9820536486',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:15.120239',recv_time='2021-06-25 15:24:15.122162',insert_time='2021-06-25 15:24:15.123428',value_r='0.9547788992',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:16.120990',recv_time='2021-06-25 15:24:16.124006',insert_time='2021-06-25 15:24:16.126385',value_r='0.1627633385',quality='2',att_error_desc_id='None')>,\n",
-       " <Scalar_Double_RO(att_conf_id='3',data_time='2021-06-25 15:24:17.120261',recv_time='2021-06-25 15:24:17.124313',insert_time='2021-06-25 15:24:17.126494',value_r='0.2554102953',quality='2',att_error_desc_id='None')>]"
+       "[<Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:38.714262',recv_time='2021-06-29 09:16:38.774292',insert_time='2021-06-29 09:16:39.159880',value_r='0.2958946761',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:39.714827',recv_time='2021-06-29 09:16:39.719078',insert_time='2021-06-29 09:16:39.721273',value_r='0.8807975186',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:40.714155',recv_time='2021-06-29 09:16:40.716398',insert_time='2021-06-29 09:16:40.717919',value_r='0.0134650459',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:41.714350',recv_time='2021-06-29 09:16:41.717135',insert_time='2021-06-29 09:16:41.718952',value_r='0.9234930024',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:42.714262',recv_time='2021-06-29 09:16:42.716531',insert_time='2021-06-29 09:16:42.718287',value_r='0.9836669132',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:43.713763',recv_time='2021-06-29 09:16:43.715033',insert_time='2021-06-29 09:16:43.715846',value_r='0.9767208804',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:44.714301',recv_time='2021-06-29 09:16:44.717308',insert_time='2021-06-29 09:16:44.718940',value_r='0.7456424356',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:45.715039',recv_time='2021-06-29 09:16:45.718040',insert_time='2021-06-29 09:16:45.719659',value_r='0.0549410354',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:46.714540',recv_time='2021-06-29 09:16:46.716689',insert_time='2021-06-29 09:16:46.718230',value_r='0.0321376209',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:47.714685',recv_time='2021-06-29 09:16:47.716871',insert_time='2021-06-29 09:16:47.718901',value_r='0.4936257329',quality='2',att_error_desc_id='None')>,\n",
+       " <Scalar_Double_RO(att_conf_id='1',data_time='2021-06-29 09:16:48.714605',recv_time='2021-06-29 09:16:48.716232',insert_time='2021-06-29 09:16:48.716840',value_r='0.4535587703',quality='2',att_error_desc_id='None')>]"
       ]
      },
      "execution_count": 10,
@@ -188,38 +185,27 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": null,
    "id": "ab476d57",
    "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[]"
-      ]
-     },
-     "execution_count": 11,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
     "get_attribute_value_by_interval(main_att, '2021-06-21 13:20:00', '2021-06-23 15:21:00')"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 11,
    "id": "21c9b91b",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "Decimal('0.2033680434')"
+       "Decimal('0.2958946761')"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -232,7 +218,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
+   "execution_count": 12,
    "id": "762ea947",
    "metadata": {},
    "outputs": [
@@ -242,7 +228,7 @@
        "(toolkit.archiver_base.Scalar_Double,)"
       ]
      },
-     "execution_count": 18,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -253,7 +239,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 22,
+   "execution_count": 13,
    "id": "56b31348",
    "metadata": {},
    "outputs": [
@@ -261,7 +247,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "[0.2033680434, 0.9330212368, 0.1619766261, 0.1600708165, 0.1953627874, 0.4233485985, 0.174466307, 0.9820536486, 0.9547788992, 0.1627633385, 0.2554102953]\n"
+      "[0.2958946761, 0.8807975186, 0.0134650459, 0.9234930024, 0.9836669132, 0.9767208804, 0.7456424356, 0.0549410354, 0.0321376209, 0.4936257329, 0.4535587703]\n"
      ]
     }
    ],
@@ -272,7 +258,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 24,
+   "execution_count": 14,
    "id": "a26aa8f0",
    "metadata": {},
    "outputs": [
@@ -280,7 +266,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "['2021-06-25 15:24:07:930917', '2021-06-25 15:24:08:124548', '2021-06-25 15:24:09:123946', '2021-06-25 15:24:10:123090', '2021-06-25 15:24:11:123866', '2021-06-25 15:24:12:123934', '2021-06-25 15:24:13:123542', '2021-06-25 15:24:14:123980', '2021-06-25 15:24:15:122162', '2021-06-25 15:24:16:124006', '2021-06-25 15:24:17:124313']\n"
+      "['2021-06-29 09:16:38:774292', '2021-06-29 09:16:39:719078', '2021-06-29 09:16:40:716398', '2021-06-29 09:16:41:717135', '2021-06-29 09:16:42:716531', '2021-06-29 09:16:43:715033', '2021-06-29 09:16:44:717308', '2021-06-29 09:16:45:718040', '2021-06-29 09:16:46:716689', '2021-06-29 09:16:47:716871', '2021-06-29 09:16:48:716232']\n"
      ]
     }
    ],
-- 
GitLab