Better handling of errors and exceptions when new view name already
exists
This commit is contained in:
@ -6,3 +6,4 @@ cdef extern from "obierrno.h":
|
|||||||
|
|
||||||
extern int OBI_LINE_IDX_ERROR
|
extern int OBI_LINE_IDX_ERROR
|
||||||
extern int OBI_ELT_IDX_ERROR
|
extern int OBI_ELT_IDX_ERROR
|
||||||
|
extern int OBIVIEW_ALREADY_EXISTS_ERROR
|
||||||
|
@ -22,6 +22,9 @@ from obitools3.apps.config import getConfiguration,logger
|
|||||||
from obitools3.apps.temp import get_temp_dms
|
from obitools3.apps.temp import get_temp_dms
|
||||||
from obitools3.utils cimport tobytes # TODO because can't read options as bytes
|
from obitools3.utils cimport tobytes # TODO because can't read options as bytes
|
||||||
|
|
||||||
|
from obitools3.dms.capi.obierrno cimport obi_errno, \
|
||||||
|
OBIVIEW_ALREADY_EXISTS_ERROR
|
||||||
|
|
||||||
|
|
||||||
class MalformedURIException(RuntimeError):
|
class MalformedURIException(RuntimeError):
|
||||||
pass
|
pass
|
||||||
@ -219,10 +222,13 @@ def open_uri(uri,
|
|||||||
type(resource[1]),
|
type(resource[1]),
|
||||||
urlunparse(urip))
|
urlunparse(urip))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
global obi_errno
|
||||||
|
if obi_errno == OBIVIEW_ALREADY_EXISTS_ERROR:
|
||||||
|
raise Exception("View name already exists in this DMS")
|
||||||
error=e
|
error=e
|
||||||
|
|
||||||
if scheme==b"dms" :
|
if scheme==b"dms" :
|
||||||
logger('Error','cannot open DMS: %s', uri)
|
logger('Error','Could not open DMS URI: %s', uri)
|
||||||
raise FileNotFoundError('uri')
|
raise FileNotFoundError('uri')
|
||||||
|
|
||||||
if not urip.scheme:
|
if not urip.scheme:
|
||||||
|
@ -128,6 +128,8 @@ extern int obi_errno;
|
|||||||
*/
|
*/
|
||||||
#define OBI_JSON_ERROR (34) /** Error related to JSON operations.
|
#define OBI_JSON_ERROR (34) /** Error related to JSON operations.
|
||||||
*/
|
*/
|
||||||
|
#define OBIVIEW_ALREADY_EXISTS_ERROR (35) /** Tried to create a new view with a name already existing in the DMS.
|
||||||
|
*/
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
|
||||||
#endif /* OBIERRNO_H_ */
|
#endif /* OBIERRNO_H_ */
|
||||||
|
@ -1496,8 +1496,8 @@ Obiview_p obi_new_view(OBIDMS_p dms, const char* view_name, Obiview_p view_to_cl
|
|||||||
// Check uniqueness of name
|
// Check uniqueness of name
|
||||||
if (view_exists(dms, view_name))
|
if (view_exists(dms, view_name))
|
||||||
{
|
{
|
||||||
obi_set_errno(OBIVIEW_ERROR);
|
obi_set_errno(OBIVIEW_ALREADY_EXISTS_ERROR);
|
||||||
obidebug(1, "\nName of new view already exists");
|
obidebug(1, "\nName of new view ('%s') already exists", view_name);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user