mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Added capability to deploy PostgreSQL servers on Amazon RDS. Fixes #7177
This commit is contained in:
committed by
Akshay Joshi
parent
b89e306df0
commit
e61a1045f5
@@ -763,7 +763,7 @@ def index():
|
||||
mfa_enabled=is_mfa_enabled(),
|
||||
login_url=login_url,
|
||||
_=gettext,
|
||||
auth_only_internal=auth_only_internal
|
||||
auth_only_internal=auth_only_internal,
|
||||
))
|
||||
|
||||
# Set the language cookie after login, so next time the user will have that
|
||||
|
||||
@@ -112,6 +112,10 @@ def server_icon_and_background(is_connected, manager, server):
|
||||
return 'icon-shared-server-not-connected{0}'.format(
|
||||
server_background_color
|
||||
)
|
||||
elif server.cloud_status == -1:
|
||||
return 'icon-server-cloud-deploy{0}'.format(
|
||||
server_background_color
|
||||
)
|
||||
else:
|
||||
return 'icon-server-not-connected{0}'.format(
|
||||
server_background_color
|
||||
@@ -256,7 +260,8 @@ class ServerModule(sg.ServerGroupPluginModule):
|
||||
user_name=server.username,
|
||||
shared=server.shared,
|
||||
is_kerberos_conn=bool(server.kerberos_conn),
|
||||
gss_authenticated=manager.gss_authenticated
|
||||
gss_authenticated=manager.gss_authenticated,
|
||||
cloud_status=server.cloud_status
|
||||
)
|
||||
|
||||
@property
|
||||
@@ -998,7 +1003,8 @@ class ServerNode(PGChildNodeView):
|
||||
'tunnel_authentication': tunnel_authentication,
|
||||
'kerberos_conn': bool(server.kerberos_conn),
|
||||
'gss_authenticated': manager.gss_authenticated,
|
||||
'gss_encrypted': manager.gss_encrypted
|
||||
'gss_encrypted': manager.gss_encrypted,
|
||||
'cloud_status': server.cloud_status
|
||||
}
|
||||
|
||||
return ajax_response(response)
|
||||
|
||||
@@ -342,17 +342,17 @@ define('pgadmin.node.schema', [
|
||||
pgBrowser.add_menus([{
|
||||
name: 'create_schema_on_coll', node: 'coll-schema', module: this,
|
||||
applies: ['object', 'context'], callback: 'show_obj_properties',
|
||||
category: 'create', priority: 4, label: gettext('Schema...'),
|
||||
category: 'create', priority: 1, label: gettext('Schema...'),
|
||||
icon: 'wcTabIcon icon-schema', data: {action: 'create'},
|
||||
},{
|
||||
name: 'create_schema', node: 'schema', module: this,
|
||||
applies: ['object', 'context'], callback: 'show_obj_properties',
|
||||
category: 'create', priority: 4, label: gettext('Schema...'),
|
||||
category: 'create', priority: 1, label: gettext('Schema...'),
|
||||
icon: 'wcTabIcon icon-schema', data: {action: 'create'},
|
||||
},{
|
||||
name: 'create_schema', node: 'database', module: this,
|
||||
applies: ['object', 'context'], callback: 'show_obj_properties',
|
||||
category: 'create', priority: 4, label: gettext('Schema...'),
|
||||
category: 'create', priority: 1, label: gettext('Schema...'),
|
||||
icon: 'wcTabIcon icon-schema', data: {action: 'create'},
|
||||
enable: 'can_create_schema',
|
||||
},
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 25.4.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M29,12.3c0,0-5.6,0-10,4.4c-0.2,0.2-0.4,0.4-0.5,0.6c-0.8-0.1-2,0-2.6,0.6c-1.4,1.4-1.9,3.8-1.9,3.8l3.1-0.4v1.1l1.9,1.9
|
||||
h1.1l-0.4,3.1c0,0,2.4-0.5,3.8-1.9c0.6-0.6,0.6-1.8,0.6-2.6c0.2-0.2,0.4-0.3,0.6-0.5C29,17.9,29,12.3,29,12.3z M22.8,17.3
|
||||
c0-0.7,0.6-1.2,1.2-1.2s1.2,0.6,1.2,1.2s-0.6,1.2-1.2,1.2S22.8,18,22.8,17.3z"/>
|
||||
<path d="M18,24.5c-0.6,0.6-1.5,0.3-1.5,0.3s-0.3-0.9,0.3-1.5c0,0,0.1-0.1,0.1-0.1l-0.3-0.3c-0.2,0.1-0.5,0.2-0.6,0.4
|
||||
c-0.9,0.9-0.7,2.7-0.7,2.7s1.9,0.1,2.7-0.7c0.2-0.2,0.3-0.4,0.4-0.6l-0.3-0.3C18.1,24.4,18.1,24.5,18,24.5z"/>
|
||||
<path d="M2.5,8.9h18.6c0.8,0,1.5-0.7,1.5-1.5V4.3c0-0.8-0.7-1.5-1.5-1.5H2.5C1.7,2.7,1,3.4,1,4.3v3.1C1,8.2,1.7,8.9,2.5,8.9z
|
||||
M18.8,4.6c0.6,0,1.2,0.5,1.2,1.2s-0.5,1.2-1.2,1.2s-1.2-0.5-1.2-1.2S18.2,4.6,18.8,4.6z M15.8,4.6c0.6,0,1.2,0.5,1.2,1.2
|
||||
s-0.5,1.2-1.2,1.2s-1.2-0.5-1.2-1.2S15.1,4.6,15.8,4.6z"/>
|
||||
<path d="M2.5,16.5h15.4c0.1-0.2,0.3-0.4,0.4-0.5c1.4-1.4,2.9-2.3,4.3-3v-1.1c0-0.8-0.7-1.5-1.5-1.5H2.5c-0.8,0-1.5,0.7-1.5,1.5V15
|
||||
C1,15.8,1.7,16.5,2.5,16.5z M18.8,12.3c0.6,0,1.2,0.5,1.2,1.2c0,0.6-0.5,1.2-1.2,1.2s-1.2-0.5-1.2-1.2
|
||||
C17.7,12.8,18.2,12.3,18.8,12.3z M15.8,12.3c0.6,0,1.2,0.5,1.2,1.2c0,0.6-0.5,1.2-1.2,1.2s-1.2-0.5-1.2-1.2
|
||||
C14.6,12.8,15.1,12.3,15.8,12.3z"/>
|
||||
<path d="M2.5,18.1c-0.8,0-1.5,0.7-1.5,1.5v3.1c0,0.8,0.7,1.5,1.5,1.5h10.1l0.7-3.2c0,0,0.3-1.6,1.2-2.9H2.5z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -80,13 +80,15 @@ define('pgadmin.node.server', [
|
||||
pgBrowser.add_menus([{
|
||||
name: 'create_server_on_sg', node: 'server_group', module: this,
|
||||
applies: ['object', 'context'], callback: 'show_obj_properties',
|
||||
category: 'create', priority: 1, label: gettext('Server...'),
|
||||
data: {action: 'create'}, icon: 'wcTabIcon icon-server', enable: 'canCreate',
|
||||
category: 'register', priority: 1, label: gettext('Server...'),
|
||||
data: {action: 'create'}, icon: 'wcTabIcon icon-server',
|
||||
enable: 'canCreate',
|
||||
},{
|
||||
name: 'create_server', node: 'server', module: this,
|
||||
applies: ['object', 'context'], callback: 'show_obj_properties',
|
||||
category: 'create', priority: 3, label: gettext('Server...'),
|
||||
data: {action: 'create'}, icon: 'wcTabIcon icon-server', enable: 'canCreate',
|
||||
category: 'register', priority: 3, label: gettext('Server...'),
|
||||
data: {action: 'create'}, icon: 'wcTabIcon icon-server',
|
||||
enable: 'canCreate',
|
||||
},{
|
||||
name: 'connect_server', node: 'server', module: this,
|
||||
applies: ['object', 'context'], callback: 'connect_server',
|
||||
@@ -808,8 +810,8 @@ define('pgadmin.node.server', [
|
||||
// Fetch the updated data
|
||||
$.get(server_url)
|
||||
.done(function(res) {
|
||||
if (res.shared && _.isNull(res.username) && data.user_id != current_user.id){
|
||||
if (!res.service){
|
||||
if (res.shared && _.isNull(res.username) && data.user_id != current_user.id) {
|
||||
if (!res.service) {
|
||||
pgAdmin.Browser.Node.callbacks.show_obj_properties.call(
|
||||
pgAdmin.Browser.Nodes[tree.itemData(item)._type], {action: 'edit'}
|
||||
);
|
||||
@@ -818,13 +820,30 @@ define('pgadmin.node.server', [
|
||||
tree.setInode(item);
|
||||
tree.addIcon(item, {icon: 'icon-shared-server-not-connected'});
|
||||
Notify.info('Please enter the server details to connect to the server. This server is a shared server.');
|
||||
}else{
|
||||
} else {
|
||||
data.is_connecting = false;
|
||||
tree.unload(item);
|
||||
tree.setInode(item);
|
||||
tree.addIcon(item, {icon: 'icon-shared-server-not-connected'});
|
||||
}
|
||||
}
|
||||
else if (res.cloud_status == -1) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
timeout: 30000,
|
||||
url: url_for('cloud.update_cloud_process', {'sid': res.id}),
|
||||
cache: false,
|
||||
async: true,
|
||||
contentType: 'application/json',
|
||||
})
|
||||
.done(function() {
|
||||
pgAdmin.Browser.BackgroundProcessObsorver.update_process_list();
|
||||
})
|
||||
.fail(function() {
|
||||
console.warn(arguments);
|
||||
});
|
||||
}
|
||||
return;
|
||||
}).always(function(){
|
||||
data.is_connecting = false;
|
||||
});
|
||||
@@ -1033,7 +1052,7 @@ define('pgadmin.node.server', [
|
||||
};
|
||||
|
||||
/* Wait till the existing request completes */
|
||||
if(data.is_connecting) {
|
||||
if(data.is_connecting || data.cloud_status == -1) {
|
||||
return;
|
||||
}
|
||||
data.is_connecting = true;
|
||||
|
||||
@@ -33,3 +33,13 @@
|
||||
vertical-align: middle;
|
||||
height: 1.3em;
|
||||
}
|
||||
|
||||
|
||||
.icon-server-cloud-deploy {
|
||||
background-image: url('{{ url_for('NODE-server.static', filename='img/serverbeingdeployed.svg') }}') !important;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 20px !important;
|
||||
align-content: center;
|
||||
vertical-align: middle;
|
||||
height: 1.3em;
|
||||
}
|
||||
|
||||
@@ -326,9 +326,18 @@ define('pgadmin.browser', [
|
||||
},
|
||||
menu_categories: {
|
||||
/* name, label (pair) */
|
||||
'register': {
|
||||
label: gettext('Register'),
|
||||
priority: 1,
|
||||
/* separator above this menu */
|
||||
above: false,
|
||||
below: true,
|
||||
/* icon: 'fa fa-magic', */
|
||||
single: true,
|
||||
},
|
||||
'create': {
|
||||
label: gettext('Create'),
|
||||
priority: 1,
|
||||
priority: 2,
|
||||
/* separator above this menu */
|
||||
above: false,
|
||||
below: true,
|
||||
|
||||
@@ -46,7 +46,7 @@ define([
|
||||
pgAdmin.Browser.add_menus([{
|
||||
name: 'refresh', node: this.type, module: this,
|
||||
applies: ['object', 'context'], callback: 'refresh',
|
||||
priority: 1, label: gettext('Refresh'),
|
||||
priority: 2, label: gettext('Refresh'),
|
||||
icon: 'fa fa-sync-alt',
|
||||
}]);
|
||||
|
||||
|
||||
@@ -118,8 +118,8 @@ define('pgadmin.browser.node', [
|
||||
module: self,
|
||||
applies: ['object', 'context'],
|
||||
callback: 'refresh',
|
||||
priority: 1,
|
||||
label: gettext('Refresh'),
|
||||
priority: 2,
|
||||
label: gettext('Refresh...'),
|
||||
icon: 'fa fa-sync-alt',
|
||||
}]);
|
||||
|
||||
@@ -792,6 +792,9 @@ define('pgadmin.browser.node', [
|
||||
}
|
||||
|
||||
l = gettext('Create - %s', this.label);
|
||||
if (this.type == 'server') {
|
||||
l = gettext('Register - %s', this.label);
|
||||
}
|
||||
p = addPanel();
|
||||
|
||||
setTimeout(function() {
|
||||
|
||||
Reference in New Issue
Block a user