diff --git a/spug_api/apps/deploy/__init__.py b/spug_api/apps/deploy/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/spug_api/apps/deploy/models.py b/spug_api/apps/deploy/models.py new file mode 100644 index 0000000..9c2a2d8 --- /dev/null +++ b/spug_api/apps/deploy/models.py @@ -0,0 +1,23 @@ +from django.db import models +from libs import ModelMixin, human_time +from apps.account.models import User +from apps.app.models import App + + +class DeployRequest(models.Model, ModelMixin): + app = models.ForeignKey(App, on_delete=models.CASCADE) + name = models.CharField(max_length=50) + extra1 = models.TextField() + extra2 = models.TextField() + host_ids = models.TextField() + desc = models.CharField(max_length=255, null=True) + + created_at = models.CharField(max_length=20, default=human_time) + created_by = models.ForeignKey(User, models.PROTECT, related_name='+') + + def __repr__(self): + return f'' + + class Meta: + db_table = 'deploy_requests' + ordering = ('-id',) diff --git a/spug_api/apps/deploy/views.py b/spug_api/apps/deploy/views.py new file mode 100644 index 0000000..99b149a --- /dev/null +++ b/spug_api/apps/deploy/views.py @@ -0,0 +1,26 @@ +from django.views.generic import View +from libs import json_response, JsonParser, Argument +from apps.deploy.models import DeployRequest +import json + + +class RequestView(View): + def get(self, request): + requests = DeployRequest.objects.all() + return json_response(requests) + + def post(self, request): + form, error = JsonParser( + Argument('name', help='请输申请标题'), + Argument('extra1', help='缺少必要参数'), + Argument('extra2', help='缺少必要参数'), + Argument('host_ids', type=list, filter=lambda x: len(x), help='请选择要部署的主机'), + Argument('desc', required=False), + ).parse(request.body) + if error is None: + form.host_ids = json.dumps(form.host_ids) + DeployRequest.objects.create(**form) + return json_response(error=error) + + + diff --git a/spug_api/repos/.gitkeep b/spug_api/repos/.gitkeep new file mode 100644 index 0000000..e69de29