diff --git a/docs/en_US/images/cloud_provider_for_postgresql.png b/docs/en_US/images/cloud_provider_for_postgresql.png index 0f245db27..6dd0cda6c 100644 Binary files a/docs/en_US/images/cloud_provider_for_postgresql.png and b/docs/en_US/images/cloud_provider_for_postgresql.png differ diff --git a/web/pgAdmin4.py b/web/pgAdmin4.py index af4db8a98..00a980538 100644 --- a/web/pgAdmin4.py +++ b/web/pgAdmin4.py @@ -16,10 +16,6 @@ import sys if sys.version_info < (3, 4): raise RuntimeError('This application must be run under Python 3.4 ' 'or later.') -# Due to https://github.com/eventlet/eventlet/issues/670 -if sys.version_info <= (3, 9): - import select - import builtins import os @@ -41,6 +37,7 @@ if (3, 10) > sys.version_info > (3, 8) and os.name == 'posix': # Fix eventlet issue with Python 3.9. # Ref: https://github.com/eventlet/eventlet/issues/670 # This was causing issue in psycopg3 + import select from eventlet import hubs hubs.use_hub("poll") diff --git a/web/pgacloud/providers/rds.py b/web/pgacloud/providers/rds.py index c62b9cd1c..136882871 100644 --- a/web/pgacloud/providers/rds.py +++ b/web/pgacloud/providers/rds.py @@ -45,7 +45,7 @@ class RdsProvider(AbsProvider): def init_args(self, parsers): """ Create the command line parser for this provider """ self.parser = parsers.add_parser('rds', - help='Amazon AWS RDS PostgreSQL', + help='Amazon RDS PostgreSQL', epilog='Credentials are read from ' '~/.aws/config by default and ' 'can be overridden in the ' diff --git a/web/pgadmin/misc/cloud/static/js/google.js b/web/pgadmin/misc/cloud/static/js/google.js index 6cfcf8257..a1ceac692 100644 --- a/web/pgadmin/misc/cloud/static/js/google.js +++ b/web/pgadmin/misc/cloud/static/js/google.js @@ -50,7 +50,6 @@ export function GoogleCredentials(props) { return new Promise((resolve, reject)=>{axiosApi.post(_url, post_data) .then((res) => { if (res.data && res.data.success == 1 ) { - _eventBus.fireEvent('SET_CRED_VERIFICATION_INITIATED',true); let params = 'scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=550,height=650,left=600,top=150'; child = window.open(res.data.data.auth_url, 'google_authentication', params); resolve(true); @@ -76,6 +75,7 @@ export function GoogleCredentials(props) { axiosApi.get(auth_url) .then((res)=>{ if (res.data.success && res.data.success == 1 ){ + _eventBus.fireEvent('SET_CRED_VERIFICATION_INITIATED',true); _eventBus.fireEvent('SET_ERROR_MESSAGE_FOR_CLOUD_WIZARD',[MESSAGE_TYPE.SUCCESS, gettext('Authentication completed successfully. Click the Next button to proceed.')]); clearInterval(interval); if(child){ @@ -242,12 +242,14 @@ GoogleDatabaseDetails.propTypes = { // Validation functions export function validateGoogleStep2(cloudInstanceDetails) { let isError = false; - if ((isEmptyString(cloudInstanceDetails.name) || isEmptyString(cloudInstanceDetails.project) || + if ((isEmptyString(cloudInstanceDetails.name) || (!/^(?=[a-z])[a-z0-9\-]*$/.test(cloudInstanceDetails.name) || + cloudInstanceDetails.name.length > 97) || isEmptyString(cloudInstanceDetails.project) || isEmptyString(cloudInstanceDetails.region) || isEmptyString(cloudInstanceDetails.availability_zone) || isEmptyString(cloudInstanceDetails.db_version) || isEmptyString(cloudInstanceDetails.instance_type) || isEmptyString(cloudInstanceDetails.instance_class) || isEmptyString(cloudInstanceDetails.storage_type)|| isEmptyString(cloudInstanceDetails.storage_size) || isEmptyString(cloudInstanceDetails.public_ips)) || - (cloudInstanceDetails.high_availability && isEmptyString(cloudInstanceDetails.secondary_availability_zone))) { + (cloudInstanceDetails.high_availability && (isEmptyString(cloudInstanceDetails.secondary_availability_zone) || + cloudInstanceDetails.secondary_availability_zone == cloudInstanceDetails.availability_zone))) { isError = true; } return isError; diff --git a/web/pgadmin/misc/cloud/static/js/google_schema.ui.js b/web/pgadmin/misc/cloud/static/js/google_schema.ui.js index 2d4e35a5f..4479a8675 100644 --- a/web/pgadmin/misc/cloud/static/js/google_schema.ui.js +++ b/web/pgadmin/misc/cloud/static/js/google_schema.ui.js @@ -523,7 +523,7 @@ class GoogleClusterSchema extends BaseUISchema { validate(data, setErr) { if ( !isEmptyString(data.name) && (!/^(?=[a-z])[a-z0-9\-]*$/.test(data.name) || data.name.length > 97)) { - setErr('name',gettext('Name must only contain lowercase letters, numbers, and hyphens. Start with a letter.')); + setErr('name',gettext('Name must only contain lowercase letters, numbers, and hyphens.Should start with a letter and must be 97 characters or less')); return true; } return false;