|
@@ -22,6 +22,9 @@ from api.utils.jwt_token import get_user
|
|
|
from api.utils.jwt_authentication import JWTAuthentication
|
|
|
from simplejson import JSONDecodeError
|
|
|
import simplejson as json
|
|
|
+import logging
|
|
|
+
|
|
|
+logger = logging.getLogger(__name__)
|
|
|
|
|
|
class OdooResource(Resource):
|
|
|
class Meta:
|
|
@@ -50,8 +53,10 @@ class OdooResource(Resource):
|
|
|
name = data['name']
|
|
|
except JSONDecodeError:
|
|
|
name = None
|
|
|
+ logger.warning('json decode error')
|
|
|
except KeyError:
|
|
|
name = None
|
|
|
+ logger.warning('key error')
|
|
|
|
|
|
r = Request.objects.create(name='Crear contenedor Odoo')
|
|
|
r.user = user
|
|
@@ -61,9 +66,12 @@ class OdooResource(Resource):
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('name is required')
|
|
|
+
|
|
|
return self.create_response(request, {
|
|
|
'error_message': 'name is required'
|
|
|
})
|
|
|
+ logger.info('%s: request is ok' % name)
|
|
|
|
|
|
# 1. Check and get name
|
|
|
name = normalize_name(name)
|
|
@@ -74,36 +82,43 @@ class OdooResource(Resource):
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: name is already exists' % name)
|
|
|
+
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: name is already exists' % name
|
|
|
})
|
|
|
+ logger.info('%s: name is ok' % name)
|
|
|
|
|
|
# 2. Get port
|
|
|
port = randomize_port()
|
|
|
+ logger.info('%s: port is ok' % port)
|
|
|
|
|
|
# 3. Folder structure create
|
|
|
folders_created = create_folders(name)
|
|
|
-
|
|
|
if not folders_created:
|
|
|
r.issue = '%s: folders structure cannot be created' % name
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: folders structure cannot be created' % name)
|
|
|
+
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: folders structure cannot be created' % name
|
|
|
})
|
|
|
+ logger.info('%s: folders is ok' % name)
|
|
|
|
|
|
# 4. Configuration create
|
|
|
conf_created = create_configuration(name)
|
|
|
-
|
|
|
if not conf_created:
|
|
|
r.issue = '%s: configuration cannot be created' % name
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: configuration cannot be created' % name)
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: configuration cannot be created' % name
|
|
|
})
|
|
|
+ logger.info('%s: configuration is ok' % name)
|
|
|
|
|
|
# 5. Database create
|
|
|
db_created = create_database(name)
|
|
@@ -113,9 +128,11 @@ class OdooResource(Resource):
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: database cannot be created' % name)
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: database cannot be created' % name
|
|
|
})
|
|
|
+ logger.info('%s: database is ok' % name)
|
|
|
|
|
|
# 6. Copy a database backup
|
|
|
seed_copied = copy_database_seed()
|
|
@@ -125,9 +142,11 @@ class OdooResource(Resource):
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: database seed cannot be copied' % name)
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: database seed cannot be copied' % name
|
|
|
})
|
|
|
+ logger.info('%s: database seed is ok' % name)
|
|
|
|
|
|
# 7. Restore database schema
|
|
|
db_restored = restore_database(name)
|
|
@@ -137,9 +156,11 @@ class OdooResource(Resource):
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: database cannot be restored' % name)
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: database cannot be restored' % name
|
|
|
})
|
|
|
+ logger.info('%s: database restore is ok' % name)
|
|
|
|
|
|
# 8. Remove unused bakup file
|
|
|
seed_removed = remove_database_seed()
|
|
@@ -149,9 +170,11 @@ class OdooResource(Resource):
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: seed cannot be removed' % name)
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: seed cannot be removed' % name
|
|
|
})
|
|
|
+ logger.info('%s: database seed remove is ok' % name)
|
|
|
|
|
|
|
|
|
# 9. Odoo create
|
|
@@ -162,9 +185,11 @@ class OdooResource(Resource):
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: odoo container cannot be created' % name)
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: odoo container cannot be created' % name
|
|
|
})
|
|
|
+ logger.info('%s: container creation is ok' % name)
|
|
|
|
|
|
# 10. Apply permissions
|
|
|
permissions_applied = apply_permissions(name)
|
|
@@ -174,13 +199,17 @@ class OdooResource(Resource):
|
|
|
r.status = 5
|
|
|
r.save()
|
|
|
|
|
|
+ logger.error('%s: odoo container cannot be started' % name)
|
|
|
return self.create_response(request, {
|
|
|
'error_message': '%s: odoo container cannot be started' % name
|
|
|
})
|
|
|
+ logger.info('%s: container started is ok' % name)
|
|
|
|
|
|
r.issue = '%s: odoo container created successfully' % name
|
|
|
r.status = 4
|
|
|
r.save()
|
|
|
+
|
|
|
+ logger.info('%s: odoo creation is ok' % name)
|
|
|
|
|
|
return self.create_response(request, {
|
|
|
'action': {
|