Merge remote-tracking branch 'origin/v3' into v3

pull/8873/head
ibuler 2022-08-30 19:48:10 +08:00
commit ffd08eef74
7 changed files with 50 additions and 13 deletions

View File

@ -1,4 +1,7 @@
from .asset import *
from .host import *
from .database import *
from .web import *
from .cloud import *
from .network import *
from .permission import *

View File

@ -40,7 +40,7 @@ class AssetViewSet(SuggestionMixin, NodeFilterMixin, OrgBulkModelViewSet):
filterset_class = AssetFilterSet
search_fields = ("name", "ip")
ordering_fields = ("name", "ip", "port")
ordering = ('name', )
ordering = ('name',)
serializer_classes = (
('default', serializers.AssetSerializer),
('suggestion', serializers.MiniAssetSerializer),
@ -173,5 +173,3 @@ class AssetsTaskCreateApi(AssetsTaskMixin, generics.CreateAPIView):
has = self.request.user.has_perm(perm_required)
if not has:
self.permission_denied(request)

View File

@ -0,0 +1,15 @@
from assets.models import Cloud
from assets.serializers import CloudSerializer
from .asset import AssetViewSet
__all__ = ['CloudViewSet']
class CloudViewSet(AssetViewSet):
model = Cloud
def get_serializer_classes(self):
serializer_classes = super().get_serializer_classes()
serializer_classes['default'] = CloudSerializer
return serializer_classes

View File

@ -1,13 +1,13 @@
from assets.serializers import HostSerializer
from assets.models import Network
from assets.models import Networking
from .asset import AssetViewSet
__all__ = ['NetworkViewSet']
class NetworkViewSet(AssetViewSet):
model = Network
model = Networking
def get_serializer_classes(self):
serializer_classes = super().get_serializer_classes()

View File

@ -0,0 +1,15 @@
from assets.models import Web
from assets.serializers import WebSerializer
from .asset import AssetViewSet
__all__ = ['WebViewSet']
class WebViewSet(AssetViewSet):
model = Web
def get_serializer_classes(self):
serializer_classes = super().get_serializer_classes()
serializer_classes['default'] = WebSerializer
return serializer_classes

View File

@ -1,11 +1,11 @@
from rest_framework import serializers
from assets.models import DeviceInfo, Host, Database, Networking, Cloud
from assets.models import DeviceInfo, Host, Database, Networking, Cloud, Web
from .common import AssetSerializer
__all__ = [
'DeviceSerializer', 'HostSerializer', 'DatabaseSerializer',
'NetworkingSerializer', 'CloudSerializer',
'NetworkingSerializer', 'CloudSerializer', 'WebSerializer',
]
@ -34,12 +34,18 @@ class DatabaseSerializer(AssetSerializer):
fields = AssetSerializer.Meta.fields + ['db_name']
class NetworkingSerializer(AssetSerializer):
class WebSerializer(AssetSerializer):
class Meta(AssetSerializer.Meta):
model = Networking
model = Web
fields = AssetSerializer.Meta.fields + ['url']
class CloudSerializer(AssetSerializer):
class Meta(AssetSerializer.Meta):
model = Cloud
fields = AssetSerializer.Meta.fields + ['cluster']
class NetworkingSerializer(AssetSerializer):
class Meta(AssetSerializer.Meta):
model = Networking

View File

@ -1,10 +1,7 @@
# coding:utf-8
from django.urls import path, re_path
from rest_framework_nested import routers
from django.urls import path
from rest_framework_bulk.routes import BulkRouter
from common import api as capi
from .. import api
app_name = 'assets'
@ -13,6 +10,9 @@ router = BulkRouter()
router.register(r'assets', api.AssetViewSet, 'asset')
router.register(r'hosts', api.HostViewSet, 'host')
router.register(r'databases', api.DatabaseViewSet, 'database')
router.register(r'webs', api.WebViewSet, 'web')
router.register(r'clouds', api.CloudViewSet, 'cloud')
router.register(r'networks', api.NetworkViewSet, 'network')
router.register(r'accounts', api.AccountViewSet, 'account')
router.register(r'account-templates', api.AccountTemplateViewSet, 'account-template')
router.register(r'account-secrets', api.AccountSecretsViewSet, 'account-secret')