|
@@ -20,11 +20,12 @@ from api.utils.odoo_api import (
|
|
)
|
|
)
|
|
from api.utils.jwt_token import get_user
|
|
from api.utils.jwt_token import get_user
|
|
from api.utils.jwt_authentication import JWTAuthentication
|
|
from api.utils.jwt_authentication import JWTAuthentication
|
|
|
|
+from api.utils.logger import (
|
|
|
|
+ info,
|
|
|
|
+ error
|
|
|
|
+)
|
|
from simplejson import JSONDecodeError
|
|
from simplejson import JSONDecodeError
|
|
import simplejson as json
|
|
import simplejson as json
|
|
-import logging
|
|
|
|
-
|
|
|
|
-logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
class OdooResource(Resource):
|
|
class OdooResource(Resource):
|
|
class Meta:
|
|
class Meta:
|
|
@@ -40,6 +41,8 @@ class OdooResource(Resource):
|
|
'''
|
|
'''
|
|
'''
|
|
'''
|
|
def odoo_create(self, request, **kwargs):
|
|
def odoo_create(self, request, **kwargs):
|
|
|
|
+ info('odoo creation is requested')
|
|
|
|
+
|
|
self.method_check(request, allowed='post')
|
|
self.method_check(request, allowed='post')
|
|
self.is_authenticated(request)
|
|
self.is_authenticated(request)
|
|
|
|
|
|
@@ -47,16 +50,18 @@ class OdooResource(Resource):
|
|
prefix_length = len(settings.JWT_PREFIX_HEADER)
|
|
prefix_length = len(settings.JWT_PREFIX_HEADER)
|
|
user = get_user(authorization_header[prefix_length + 1:])
|
|
user = get_user(authorization_header[prefix_length + 1:])
|
|
|
|
|
|
|
|
+ info('%s is authenticated' % user.username)
|
|
|
|
+
|
|
name = None
|
|
name = None
|
|
try:
|
|
try:
|
|
data = json.loads(request.body)
|
|
data = json.loads(request.body)
|
|
name = data['name']
|
|
name = data['name']
|
|
except JSONDecodeError:
|
|
except JSONDecodeError:
|
|
name = None
|
|
name = None
|
|
- logger.warning('json decode error')
|
|
|
|
|
|
+ error('json decode error')
|
|
except KeyError:
|
|
except KeyError:
|
|
name = None
|
|
name = None
|
|
- logger.warning('key error')
|
|
|
|
|
|
+ error('key error')
|
|
|
|
|
|
r = Request.objects.create(name='Crear contenedor Odoo')
|
|
r = Request.objects.create(name='Crear contenedor Odoo')
|
|
r.user = user
|
|
r.user = user
|
|
@@ -66,12 +71,12 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('name is required')
|
|
|
|
|
|
+ error('name is required')
|
|
|
|
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': 'name is required'
|
|
'error_message': 'name is required'
|
|
})
|
|
})
|
|
- logger.info('%s: request is ok' % name)
|
|
|
|
|
|
+ info('%s: request is ok' % name)
|
|
|
|
|
|
# 1. Check and get name
|
|
# 1. Check and get name
|
|
name = normalize_name(name)
|
|
name = normalize_name(name)
|
|
@@ -82,16 +87,16 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: name is already exists' % name)
|
|
|
|
|
|
+ error('%s: name is already exists' % name)
|
|
|
|
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: name is already exists' % name
|
|
'error_message': '%s: name is already exists' % name
|
|
})
|
|
})
|
|
- logger.info('%s: name is ok' % name)
|
|
|
|
|
|
+ info('%s: name is ok' % name)
|
|
|
|
|
|
# 2. Get port
|
|
# 2. Get port
|
|
port = randomize_port()
|
|
port = randomize_port()
|
|
- logger.info('%s: port is ok' % port)
|
|
|
|
|
|
+ info('%s: port is ok' % port)
|
|
|
|
|
|
# 3. Folder structure create
|
|
# 3. Folder structure create
|
|
folders_created = create_folders(name)
|
|
folders_created = create_folders(name)
|
|
@@ -100,12 +105,12 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: folders structure cannot be created' % name)
|
|
|
|
|
|
+ error('%s: folders structure cannot be created' % name)
|
|
|
|
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: folders structure cannot be created' % name
|
|
'error_message': '%s: folders structure cannot be created' % name
|
|
})
|
|
})
|
|
- logger.info('%s: folders is ok' % name)
|
|
|
|
|
|
+ info('%s: folders is ok' % name)
|
|
|
|
|
|
# 4. Configuration create
|
|
# 4. Configuration create
|
|
conf_created = create_configuration(name)
|
|
conf_created = create_configuration(name)
|
|
@@ -114,11 +119,11 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: configuration cannot be created' % name)
|
|
|
|
|
|
+ error('%s: configuration cannot be created' % name)
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: configuration cannot be created' % name
|
|
'error_message': '%s: configuration cannot be created' % name
|
|
})
|
|
})
|
|
- logger.info('%s: configuration is ok' % name)
|
|
|
|
|
|
+ info('%s: configuration is ok' % name)
|
|
|
|
|
|
# 5. Database create
|
|
# 5. Database create
|
|
db_created = create_database(name)
|
|
db_created = create_database(name)
|
|
@@ -128,11 +133,11 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: database cannot be created' % name)
|
|
|
|
|
|
+ error('%s: database cannot be created' % name)
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: database cannot be created' % name
|
|
'error_message': '%s: database cannot be created' % name
|
|
})
|
|
})
|
|
- logger.info('%s: database is ok' % name)
|
|
|
|
|
|
+ info('%s: database is ok' % name)
|
|
|
|
|
|
# 6. Copy a database backup
|
|
# 6. Copy a database backup
|
|
seed_copied = copy_database_seed()
|
|
seed_copied = copy_database_seed()
|
|
@@ -142,11 +147,11 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: database seed cannot be copied' % name)
|
|
|
|
|
|
+ error('%s: database seed cannot be copied' % name)
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: database seed cannot be copied' % name
|
|
'error_message': '%s: database seed cannot be copied' % name
|
|
})
|
|
})
|
|
- logger.info('%s: database seed is ok' % name)
|
|
|
|
|
|
+ info('%s: database seed is ok' % name)
|
|
|
|
|
|
# 7. Restore database schema
|
|
# 7. Restore database schema
|
|
db_restored = restore_database(name)
|
|
db_restored = restore_database(name)
|
|
@@ -156,11 +161,11 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: database cannot be restored' % name)
|
|
|
|
|
|
+ error('%s: database cannot be restored' % name)
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: database cannot be restored' % name
|
|
'error_message': '%s: database cannot be restored' % name
|
|
})
|
|
})
|
|
- logger.info('%s: database restore is ok' % name)
|
|
|
|
|
|
+ info('%s: database restore is ok' % name)
|
|
|
|
|
|
# 8. Remove unused bakup file
|
|
# 8. Remove unused bakup file
|
|
seed_removed = remove_database_seed()
|
|
seed_removed = remove_database_seed()
|
|
@@ -170,11 +175,11 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: seed cannot be removed' % name)
|
|
|
|
|
|
+ error('%s: seed cannot be removed' % name)
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: seed cannot be removed' % name
|
|
'error_message': '%s: seed cannot be removed' % name
|
|
})
|
|
})
|
|
- logger.info('%s: database seed remove is ok' % name)
|
|
|
|
|
|
+ info('%s: database seed remove is ok' % name)
|
|
|
|
|
|
|
|
|
|
# 9. Odoo create
|
|
# 9. Odoo create
|
|
@@ -185,11 +190,11 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: odoo container cannot be created' % name)
|
|
|
|
|
|
+ error('%s: odoo container cannot be created' % name)
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: odoo container cannot be created' % name
|
|
'error_message': '%s: odoo container cannot be created' % name
|
|
})
|
|
})
|
|
- logger.info('%s: container creation is ok' % name)
|
|
|
|
|
|
+ info('%s: container creation is ok' % name)
|
|
|
|
|
|
# 10. Apply permissions
|
|
# 10. Apply permissions
|
|
permissions_applied = apply_permissions(name)
|
|
permissions_applied = apply_permissions(name)
|
|
@@ -199,17 +204,17 @@ class OdooResource(Resource):
|
|
r.status = 5
|
|
r.status = 5
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.error('%s: odoo container cannot be started' % name)
|
|
|
|
|
|
+ error('%s: odoo container cannot be started' % name)
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'error_message': '%s: odoo container cannot be started' % name
|
|
'error_message': '%s: odoo container cannot be started' % name
|
|
})
|
|
})
|
|
- logger.info('%s: container started is ok' % name)
|
|
|
|
|
|
+ info('%s: container started is ok' % name)
|
|
|
|
|
|
r.issue = '%s: odoo container created successfully' % name
|
|
r.issue = '%s: odoo container created successfully' % name
|
|
r.status = 4
|
|
r.status = 4
|
|
r.save()
|
|
r.save()
|
|
|
|
|
|
- logger.info('%s: odoo creation is ok' % name)
|
|
|
|
|
|
+ info('%s: odoo creation is ok' % name)
|
|
|
|
|
|
return self.create_response(request, {
|
|
return self.create_response(request, {
|
|
'action': {
|
|
'action': {
|