diff --git a/web/pgadmin/browser/server_groups/servers/databases/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/__init__.py index 1b7882d97..e35d076c6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/__init__.py @@ -599,6 +599,9 @@ class DatabaseView(PGChildNodeView): return make_json_response( success=0, errormsg=_( + 'Error: Object not found.' + ), + info=_( 'The specified database could not be found.\n' ) ) diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py index f159a05fd..ac8b47656 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py @@ -454,6 +454,17 @@ class CastView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified cast object could not be found.\n' + ) + ) + # drop cast result = res['rows'][0] sql = render_template("/".join([self.template_path, 'delete.sql']), diff --git a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py index f4293566b..5ae5a0fba 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py @@ -452,6 +452,17 @@ class EventTriggerView(PGChildNodeView): if not status: return internal_server_error(errormsg=name) + if name is None: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified event trigger could not be found.\n' + ) + ) + sql = render_template("/".join([self.template_path, 'delete.sql']), name=name, cascade=cascade) status, res = self.conn.execute_scalar(sql) if not status: diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py index f4c1e9ef2..1f70a1a37 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py @@ -310,6 +310,18 @@ class ExtensionView(PGChildNodeView): status, name = self.conn.execute_scalar(SQL) if not status: return internal_server_error(errormsg=name) + + if name is None: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified extension could not be found.\n' + ) + ) + # drop extension SQL = render_template("/".join( [self.template_path, 'delete.sql'] diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py index 8efd50f70..2103f5032 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py @@ -478,6 +478,17 @@ class ForeignDataWrapperView(PGChildNodeView): status, name = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=name) + + if name is None: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified foreign data wrapper could not be found.\n' + ) + ) # drop foreign data wrapper node sql = render_template("/".join([self.template_path, 'delete.sql']), name=name, cascade=cascade, conn=self.conn) diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py index e4c71dfef..66a1ad203 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py @@ -488,6 +488,18 @@ class ForeignServerView(PGChildNodeView): status, name = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=name) + + if name is None: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified foreign server could not be found.\n' + ) + ) + # drop foreign server sql = render_template("/".join([self.template_path, 'delete.sql']), name=name, cascade=cascade, conn=self.conn) diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mapping/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mapping/__init__.py index eac065937..369d2a4e8 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mapping/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mapping/__init__.py @@ -499,11 +499,30 @@ class UserMappingView(PGChildNodeView): if not status: return internal_server_error(errormsg=name) + if name is None: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified foreign server could not be found.\n' + ) + ) + sql = render_template("/".join([self.template_path, 'properties.sql']), umid=umid, conn=self.conn) status, res = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'The specified user mapping could not be found.\n' + ) + ) + data = res['rows'][0] # drop user mapping diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py index 7b99024f1..cf7d12607 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py @@ -616,6 +616,18 @@ It may have been removed by another user. status, name = self.conn.execute_scalar(SQL) if not status: return internal_server_error(errormsg=name) + + if name is None: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified schema could not be found.\n' + ) + ) + # drop schema SQL = render_template( "/".join([self.template_path, 'sql/delete.sql']), diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py index 4492a7949..29fbe616f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py @@ -457,6 +457,17 @@ class CollationView(PGChildNodeView): if not status: return internal_server_error(errormsg=name) + if name is None: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified collation could not be found.\n' + ) + ) + SQL = render_template("/".join([self.template_path, 'delete.sql']), name=name, cascade=cascade, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py index f9a2d8270..2345627d4 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py @@ -567,6 +567,17 @@ AND relkind != 'c'))""" if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified domain could not be found.\n' + ) + ) + name, basensp = res['rows'][0] SQL = render_template("/".join([self.template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py index 8db6b04a6..cf5fa35cb 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py @@ -441,6 +441,17 @@ class DomainConstraintView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified domain constraint could not be found.\n' + ) + ) + data = res['rows'][0] SQL = render_template("/".join([self.template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py index 7b698c0b0..a37210761 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py @@ -707,6 +707,17 @@ AND relkind != 'c'))""" if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified foreign table could not be found.\n' + ) + ) + name, basensp = res['rows'][0] SQL = render_template("/".join([self.template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py index 69f034814..2aa6eca99 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py @@ -567,10 +567,16 @@ class FtsConfigurationView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) - if len(res['rows']) == 0: - return gone(_(""" - Could not find the FTS Configuration node to delete. - """)) + if not res['rows']: + return make_json_response( + success=0, + errormsg=_( + 'Error: Object not found.' + ), + info=_( + 'The specified FTS configuration could not be found.\n' + ) + ) # Drop FTS Configuration result = res['rows'][0] diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py index 987cd6dde..5ff86a38b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py @@ -553,10 +553,16 @@ class FtsDictionaryView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) - if len(res['rows']) == 0: - return gone(_(""" - Could not find the FTS Dictionary node to delete. - """)) + if not res['rows']: + return make_json_response( + success=0, + errormsg=_( + 'Error: Object not found.' + ), + info=_( + 'The specified FTS dictionary could not be found.\n' + ) + ) # Drop FTS Dictionary result = res['rows'][0] diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py index d6aae60d9..ec152ba17 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py @@ -487,8 +487,16 @@ class FtsParserView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) - if len(res['rows']) == 0: - return gone(_("Could not find the FTS Parser node.")) + if not res['rows']: + return make_json_response( + success=0, + errormsg=_( + 'Error: Object not found.' + ), + info=_( + 'The specified FTS parser could not be found.\n' + ) + ) # Drop fts Parser result = res['rows'][0] diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py index 661299884..dfd1ae129 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py @@ -449,6 +449,17 @@ class FtsTemplateView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified FTS template could not be found.\n' + ) + ) + # Drop fts template result = res['rows'][0] sql = render_template("/".join([self.template_path, 'delete.sql']), diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py index 9873ba37c..c2a48a256 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py @@ -788,6 +788,17 @@ class FunctionView(PGChildNodeView, DataTypeReader): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified function could not be found.\n' + ) + ) + name, func_args, nspname = res['rows'][0] SQL = render_template("/".join([self.sql_template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py index 5f55e97f5..c0e18fcf3 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py @@ -383,6 +383,17 @@ class SequenceView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=_( + 'Error: Object not found.' + ), + info=_( + 'The specified sequence could not be found.\n' + ) + ) + SQL = render_template("/".join([self.template_path, 'delete.sql']), data=res['rows'][0], cascade=cascade) status, res = self.conn.execute_scalar(SQL) if not status: diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py index e67add5dd..fc838ac6c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py @@ -1500,6 +1500,18 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings): status, res = self.conn.execute_dict(SQL) if not status: return internal_server_error(errormsg=res) + + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified table could not be found.\n' + ) + ) + data = res['rows'][0] SQL = render_template("/".join([self.template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py index c860316c1..2bd513dc8 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py @@ -594,6 +594,17 @@ class ColumnsView(PGChildNodeView, DataTypeReader): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified column could not be found.\n' + ) + ) + data = dict(res['rows'][0]) # We will add table & schema as well data['schema'] = self.schema diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py index 4aa9552ef..2361d8988 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py @@ -508,6 +508,17 @@ class CheckConstraintView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=_( + 'Error: Object not found.' + ), + info=_( + 'The specified check constraint could not be found.\n' + ) + ) + data = res['rows'][0] SQL = render_template("/".join([self.template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py index bb9c7ea04..23f80d0f0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py @@ -621,6 +621,17 @@ class ExclusionConstraintView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=_( + 'Error: Object not found.' + ), + info=_( + 'The specified exclusion constraint could not be found.\n' + ) + ) + data = res['rows'][0] data['schema'] = self.schema data['table'] = self.table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py index 5a05a91a3..446d2476a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py @@ -683,6 +683,17 @@ class ForeignKeyConstraintView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=_( + 'Error: Object not found.' + ), + info=_( + 'The specified foreign key could not be found.\n' + ) + ) + data = res['rows'][0] data['schema'] = self.schema data['table'] = self.table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py index a5ee551ba..bab913718 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py @@ -643,6 +643,17 @@ class IndexConstraintView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=_( + 'Error: Object not found.' + ), + info=_( + 'The specified constraint could not be found.\n' + ) + ) + data = res['rows'][0] data['schema'] = self.schema data['table'] = self.table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py index e2cce0b58..3b98dcf2d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py @@ -638,6 +638,17 @@ class IndexesView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified index could not be found.\n' + ) + ) + data = dict(res['rows'][0]) SQL = render_template("/".join([self.template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py index c256e4004..ccd1a7708 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py @@ -377,6 +377,18 @@ class RuleView(PGChildNodeView): status, res_data = self.conn.execute_dict(SQL) if not status: return internal_server_error(errormsg=res_data) + + if not res_data['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified rule could not be found.\n' + ) + ) + # drop rule rset = res_data['rows'][0] SQL = render_template("/".join( diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py index 35559ea98..ae8fb3f01 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py @@ -623,6 +623,17 @@ class TriggerView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified trigger could not be found.\n' + ) + ) + data = dict(res['rows'][0]) SQL = render_template("/".join([self.template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py index dc790ce73..472dfe7e4 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py @@ -965,6 +965,17 @@ class TypeView(PGChildNodeView, DataTypeReader): if not status: return internal_server_error(errormsg=res) + if not res['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified type could not be found.\n' + ) + ) + # Making copy of output for future use data = dict(res['rows'][0]) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py index efd1247b2..f307e7c0a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py @@ -575,6 +575,17 @@ class ViewNode(PGChildNodeView, VacuumSettings): if not status: return internal_server_error(errormsg=res_data) + if not res_data['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified view could not be found.\n' + ) + ) + # drop view SQL = render_template( "/".join([ diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py b/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py index 16c617a9a..4f4de4fa6 100644 --- a/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py @@ -430,6 +430,18 @@ class ResourceGroupView(NodeView): status, rgname = self.conn.execute_scalar(sql) if not status: return internal_server_error(errormsg=rgname) + + if rgname is None: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified resource group could not be found.\n' + ) + ) + # drop resource group sql = render_template("/".join([self.template_path, 'delete.sql']), rgname=rgname, conn=self.conn) status, res = self.conn.execute_scalar(sql) diff --git a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py index 6137a6917..4ea284c1b 100644 --- a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py @@ -368,9 +368,15 @@ class TablespaceView(PGChildNodeView): if not status: return internal_server_error(errormsg=rset) - if len(rset['rows']) != 1: - return gone( - errormsg=gettext("Could not find the tablespace on the server.") + if not rset['rows']: + return make_json_response( + success=0, + errormsg=gettext( + 'Error: Object not found.' + ), + info=gettext( + 'The specified tablespace could not be found.\n' + ) ) # drop tablespace