Improvise the pgsql driver to keep the utility names used for different
operation like backup, restore, etc within it. Also: * improvised the color combination of the background process logger. * Removed an unnecessary print statement from the get_storage_directory(..) function, also return None if STORAGE_DIR is set to None.pull/3/head
parent
5348f6e96a
commit
b22d73ec46
|
|
@ -7,13 +7,11 @@
|
||||||
#
|
#
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
import six
|
|
||||||
from abc import ABCMeta, abstractmethod, abstractproperty
|
|
||||||
from flask import render_template
|
from flask import render_template
|
||||||
from flask.ext.babel import gettext
|
from flask.ext.babel import gettext
|
||||||
|
|
||||||
|
|
||||||
class ServerType:
|
class ServerType(object):
|
||||||
"""
|
"""
|
||||||
Server Type
|
Server Type
|
||||||
|
|
||||||
|
|
@ -72,5 +70,17 @@ class ServerType:
|
||||||
reverse=True
|
reverse=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def utility(cls, operation, sverion):
|
||||||
|
if operation == 'backup':
|
||||||
|
return 'pg_dump'
|
||||||
|
if operation == 'backup_server':
|
||||||
|
return 'pg_dumpall'
|
||||||
|
if operation == 'restore':
|
||||||
|
return 'pg_restore'
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
# Default Server Type
|
# Default Server Type
|
||||||
ServerType('pg', gettext("PostgreSQL"), -1)
|
ServerType('pg', gettext("PostgreSQL"), -1)
|
||||||
|
|
|
||||||
|
|
@ -85,24 +85,24 @@
|
||||||
|
|
||||||
.pg-panel-content div.bg-process-watcher.col-xs-12 {
|
.pg-panel-content div.bg-process-watcher.col-xs-12 {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0px;
|
padding: 0px 0px 0px 0px;
|
||||||
WebkitTransition: all 1s;
|
WebkitTransition: all 1s;
|
||||||
transition: all 1s;
|
transition: all 1s;
|
||||||
|
background-color: rgb(255, 239, 217);
|
||||||
}
|
}
|
||||||
|
|
||||||
ol.pg-bg-process-logs {
|
ol.pg-bg-process-logs {
|
||||||
padding: 15px 15px 15px 60px;
|
padding: 5px 10px 5px 60px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: #000;
|
background: rgb(255, 239, 217);
|
||||||
}
|
}
|
||||||
|
|
||||||
.pg-bg-res-out, .pg-bg-res-err {
|
.pg-bg-res-out, .pg-bg-res-err {
|
||||||
background-color: #000;
|
background-color: rgb(255, 239, 217);
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
font-size: 12px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.pg-bg-res-out {
|
.pg-bg-res-out {
|
||||||
|
|
@ -117,6 +117,7 @@ ol.pg-bg-process-logs {
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
min-height: 70px;
|
min-height: 70px;
|
||||||
color: #000;
|
color: #000;
|
||||||
|
background-color: whitesmoke;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pg-panel-content .bg-process-stats p{
|
.pg-panel-content .bg-process-stats p{
|
||||||
|
|
@ -131,7 +132,7 @@ ol.pg-bg-process-logs {
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
background-color: white;
|
background-color: whitesmoke;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pg-panel-content .bg-process-footer p {
|
.pg-panel-content .bg-process-footer p {
|
||||||
|
|
|
||||||
|
|
@ -335,6 +335,7 @@ WHERE
|
||||||
for st in kwargs['server_types']:
|
for st in kwargs['server_types']:
|
||||||
if st.instanceOf(mgr.ver):
|
if st.instanceOf(mgr.ver):
|
||||||
mgr.server_type = st.stype
|
mgr.server_type = st.stype
|
||||||
|
mgr.server_cls = st
|
||||||
break
|
break
|
||||||
|
|
||||||
mgr.update_session()
|
mgr.update_session()
|
||||||
|
|
@ -1017,6 +1018,7 @@ class ServerManager(object):
|
||||||
self.ver = None
|
self.ver = None
|
||||||
self.sversion = None
|
self.sversion = None
|
||||||
self.server_type = None
|
self.server_type = None
|
||||||
|
self.server_cls = None
|
||||||
self.password = None
|
self.password = None
|
||||||
|
|
||||||
self.sid = server.id
|
self.sid = server.id
|
||||||
|
|
@ -1188,6 +1190,7 @@ WHERE db.oid = {0}""".format(did))
|
||||||
self.ver = None
|
self.ver = None
|
||||||
self.sversion = None
|
self.sversion = None
|
||||||
self.server_type = None
|
self.server_type = None
|
||||||
|
self.server_cls = None
|
||||||
self.password = None
|
self.password = None
|
||||||
|
|
||||||
self.update_session()
|
self.update_session()
|
||||||
|
|
@ -1203,6 +1206,7 @@ WHERE db.oid = {0}""".format(did))
|
||||||
self.ver = None
|
self.ver = None
|
||||||
self.sversion = None
|
self.sversion = None
|
||||||
self.server_type = None
|
self.server_type = None
|
||||||
|
self.server_cls = None
|
||||||
self.password = None
|
self.password = None
|
||||||
|
|
||||||
self.update_session()
|
self.update_session()
|
||||||
|
|
@ -1221,6 +1225,18 @@ WHERE db.oid = {0}""".format(did))
|
||||||
managers[self.sid] = updated_mgr
|
managers[self.sid] = updated_mgr
|
||||||
session['__pgsql_server_managers'] = managers
|
session['__pgsql_server_managers'] = managers
|
||||||
|
|
||||||
|
def utility(self, operation):
|
||||||
|
"""
|
||||||
|
utility(operation)
|
||||||
|
|
||||||
|
Returns: name of the utility which used for the operation
|
||||||
|
"""
|
||||||
|
if self.server_cls is not None:
|
||||||
|
return self.server_cls.utility(operation, self.sversion)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Driver(BaseDriver):
|
class Driver(BaseDriver):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -28,12 +28,15 @@ def get_storage_directory():
|
||||||
), 'storage'
|
), 'storage'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if storage_dir is None:
|
||||||
|
return None
|
||||||
|
|
||||||
username = current_user.email.split('@')[0]
|
username = current_user.email.split('@')[0]
|
||||||
if len(username) == 0 or username[0].isdigit():
|
if len(username) == 0 or username[0].isdigit():
|
||||||
username = 'pga_user_' + username
|
username = 'pga_user_' + username
|
||||||
|
|
||||||
storage_dir = os.path.join(storage_dir, username)
|
storage_dir = os.path.join(storage_dir, username)
|
||||||
print(storage_dir)
|
|
||||||
|
|
||||||
if not os.path.exists(storage_dir):
|
if not os.path.exists(storage_dir):
|
||||||
os.makedirs(storage_dir, int('700', 8))
|
os.makedirs(storage_dir, int('700', 8))
|
||||||
|
|
@ -55,7 +58,7 @@ def init_app(app):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if not os.path.isdir(storage_dir):
|
if storage_dir and not os.path.isdir(storage_dir):
|
||||||
if os.path.exists(storage_dir):
|
if os.path.exists(storage_dir):
|
||||||
raise Exception(
|
raise Exception(
|
||||||
'The value specified for as the storage directory is not a directory!'
|
'The value specified for as the storage directory is not a directory!'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue