Browse Source

[FIX] models

Gogs 7 years ago
parent
commit
adc58e4d9a

+ 41 - 1
api/resources/odoo_resource.py

@@ -5,6 +5,7 @@ from django.conf import settings
 from tastypie.resources import Resource
 from tastypie.utils import trailing_slash
 from simplejson import JSONDecodeError
+from core.models.request import Request
 from api.utils.odoo_api import (
     normalize_name,
     check_name,
@@ -43,7 +44,13 @@ class OdooResource(Resource):
         except KeyError:
             name = None
 
+        r = Request.objects.create(name='Crear contenedor Odoo')
+
         if not name:
+            r.issue = 'name is required'
+            r.status = 5
+            r.save()
+
             return self.create_response(request, {
                 'error_message': 'name is required'
             })
@@ -53,6 +60,10 @@ class OdooResource(Resource):
         name_exists = check_name(name)
 
         if name_exists:
+            r.issue = 'name is already exists'
+            r.status = 5
+            r.save()
+
             return self.create_response(request, {
                 'error_message': 'name is already exists'
             })
@@ -64,6 +75,10 @@ class OdooResource(Resource):
         folders_created = create_folders(name)
 
         if not folders_created:
+            r.issue = 'folders structure cannot be created'
+            r.status = 5
+            r.save()
+
             return self.create_response(request, {
                 'error_message': 'folders structure cannot be created'
             })
@@ -72,6 +87,10 @@ class OdooResource(Resource):
         conf_created = create_configuration(name)
 
         if not conf_created:
+            r.issue = 'configuration cannot be created'
+            r.status = 5
+            r.save()
+
             return self.create_response(request, {
                 'error_message': 'configuration cannot be created'
             })
@@ -80,6 +99,10 @@ class OdooResource(Resource):
         db_created = create_database(name)
 
         if not db_created:
+            r.issue = 'database cannot be created'
+            r.status = 5
+            r.save()
+
             return self.create_response(request, {
                 'error_message': 'database cannot be created'
             })
@@ -88,12 +111,29 @@ class OdooResource(Resource):
         odoo_created = create_odoo_container(name, [port])
 
         if not odoo_created:
+            r.issue = 'odoo container cannot be created'
+            r.status = 5
+            r.save()
+
             return self.create_response(request, {
                 'error_message': 'odoo container cannot be created'
             })
 
-        apply_permissions(name)
+        # Apply permissions 
+        permissions_applied = apply_permissions(name)
+
+        if not permissions_applied:
+            r.issue = 'odoo container cannot be started'
+            r.status = 5
+            r.save()
+
+            return self.create_response(request, {
+                'error_message': 'odoo container cannot be started'
+            })
 
+        r.status = 4
+        r.save()
+        
         return self.create_response(request, {
             'action': {
                 'type': 'redirect',

+ 4 - 1
api/resources/request_resource.py

@@ -1,8 +1,10 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
+from tastypie import fields
 from tastypie.resources import ModelResource
 from tastypie.authorization import Authorization
 from core.models.request import Request
+from api.resources.user_resource import UserResource
 
 '''
 '''
@@ -10,7 +12,8 @@ class RequestResource(ModelResource):
     class Meta:
         queryset = Request.objects.all()
         authorization = Authorization()
-        always_return_data = True
+        always_return_data = True,
+        collection_name = 'requests'
         
     def dehydrate_status(self, bundle):
         return [

+ 19 - 0
core/migrations/0002_remove_task_playbook_name.py

@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2018-03-27 18:48
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='task',
+            name='playbook_name',
+        ),
+    ]

+ 20 - 0
core/migrations/0003_request_issue.py

@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2018-03-27 18:57
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0002_remove_task_playbook_name'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='request',
+            name='issue',
+            field=models.CharField(blank=True, max_length=100),
+        ),
+    ]

+ 1 - 0
core/models/request.py

@@ -16,4 +16,5 @@ REQUEST_STATUSES = (
 '''
 class Request(Base):
     status = models.PositiveSmallIntegerField(choices=REQUEST_STATUSES, default=1)
+    issue = models.CharField(max_length=100, blank=True)
     user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)

+ 0 - 1
core/models/task.py

@@ -7,6 +7,5 @@ from core.models.request import Request
 '''
 '''
 class Task(Base):
-    playbook_name = models.CharField(max_length=35)
     last_execution = models.DateTimeField()
     request = models.ForeignKey(Request, on_delete=models.CASCADE, null=True)

+ 4 - 0
yarn.lock

@@ -0,0 +1,4 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+