mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
745 B
25 lines
745 B
from rest_framework.decorators import action
|
|
from rest_framework.response import Response
|
|
|
|
from assets.models import Host, Asset
|
|
from assets.serializers import HostSerializer, HostInfoSerializer
|
|
from .asset import AssetViewSet
|
|
|
|
__all__ = ['HostViewSet']
|
|
|
|
|
|
class HostViewSet(AssetViewSet):
|
|
model = Host
|
|
perm_model = Asset
|
|
|
|
def get_serializer_classes(self):
|
|
serializer_classes = super().get_serializer_classes()
|
|
serializer_classes['default'] = HostSerializer
|
|
serializer_classes['info'] = HostInfoSerializer
|
|
return serializer_classes
|
|
|
|
@action(methods=["GET"], detail=True, url_path="info")
|
|
def info(self, *args, **kwargs):
|
|
asset = super().get_object()
|
|
return Response(asset.info)
|