types.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from dcim.graphql.types import ComponentObjectType
  2. from extras.graphql.mixins import ConfigContextMixin
  3. from ipam.graphql.mixins import IPAddressesMixin, VLANGroupsMixin
  4. from netbox.graphql.types import OrganizationalObjectType, NetBoxObjectType
  5. from virtualization import filtersets, models
  6. __all__ = (
  7. 'ClusterType',
  8. 'ClusterGroupType',
  9. 'ClusterTypeType',
  10. 'VirtualMachineType',
  11. 'VMInterfaceType',
  12. )
  13. class ClusterType(VLANGroupsMixin, NetBoxObjectType):
  14. class Meta:
  15. model = models.Cluster
  16. fields = '__all__'
  17. filterset_class = filtersets.ClusterFilterSet
  18. class ClusterGroupType(VLANGroupsMixin, OrganizationalObjectType):
  19. class Meta:
  20. model = models.ClusterGroup
  21. fields = '__all__'
  22. filterset_class = filtersets.ClusterGroupFilterSet
  23. class ClusterTypeType(OrganizationalObjectType):
  24. class Meta:
  25. model = models.ClusterType
  26. fields = '__all__'
  27. filterset_class = filtersets.ClusterTypeFilterSet
  28. class VirtualMachineType(ConfigContextMixin, NetBoxObjectType):
  29. class Meta:
  30. model = models.VirtualMachine
  31. fields = '__all__'
  32. filterset_class = filtersets.VirtualMachineFilterSet
  33. class VMInterfaceType(IPAddressesMixin, ComponentObjectType):
  34. class Meta:
  35. model = models.VMInterface
  36. fields = '__all__'
  37. filterset_class = filtersets.VMInterfaceFilterSet
  38. def resolve_mode(self, info):
  39. return self.mode or None