gfk_mixins.py 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. import graphene
  2. from circuits.graphql.types import CircuitTerminationType, ProviderNetworkType
  3. from circuits.models import CircuitTermination, ProviderNetwork
  4. from dcim.graphql.types import (
  5. ConsolePortTemplateType,
  6. ConsolePortType,
  7. ConsoleServerPortTemplateType,
  8. ConsoleServerPortType,
  9. FrontPortTemplateType,
  10. FrontPortType,
  11. InterfaceTemplateType,
  12. InterfaceType,
  13. PowerFeedType,
  14. PowerOutletTemplateType,
  15. PowerOutletType,
  16. PowerPortTemplateType,
  17. PowerPortType,
  18. RearPortTemplateType,
  19. RearPortType,
  20. )
  21. from dcim.models import (
  22. ConsolePort,
  23. ConsolePortTemplate,
  24. ConsoleServerPort,
  25. ConsoleServerPortTemplate,
  26. FrontPort,
  27. FrontPortTemplate,
  28. Interface,
  29. InterfaceTemplate,
  30. PowerFeed,
  31. PowerOutlet,
  32. PowerOutletTemplate,
  33. PowerPort,
  34. PowerPortTemplate,
  35. RearPort,
  36. RearPortTemplate,
  37. )
  38. class LinkPeerType(graphene.Union):
  39. class Meta:
  40. types = (
  41. CircuitTerminationType,
  42. ConsolePortType,
  43. ConsoleServerPortType,
  44. FrontPortType,
  45. InterfaceType,
  46. PowerFeedType,
  47. PowerOutletType,
  48. PowerPortType,
  49. RearPortType,
  50. )
  51. @classmethod
  52. def resolve_type(cls, instance, info):
  53. if type(instance) is CircuitTermination:
  54. return CircuitTerminationType
  55. if type(instance) is ConsolePortType:
  56. return ConsolePortType
  57. if type(instance) is ConsoleServerPort:
  58. return ConsoleServerPortType
  59. if type(instance) is FrontPort:
  60. return FrontPortType
  61. if type(instance) is Interface:
  62. return InterfaceType
  63. if type(instance) is PowerFeed:
  64. return PowerFeedType
  65. if type(instance) is PowerOutlet:
  66. return PowerOutletType
  67. if type(instance) is PowerPort:
  68. return PowerPortType
  69. if type(instance) is RearPort:
  70. return RearPortType
  71. class CableTerminationTerminationType(graphene.Union):
  72. class Meta:
  73. types = (
  74. CircuitTerminationType,
  75. ConsolePortType,
  76. ConsoleServerPortType,
  77. FrontPortType,
  78. InterfaceType,
  79. PowerFeedType,
  80. PowerOutletType,
  81. PowerPortType,
  82. RearPortType,
  83. )
  84. @classmethod
  85. def resolve_type(cls, instance, info):
  86. if type(instance) is CircuitTermination:
  87. return CircuitTerminationType
  88. if type(instance) is ConsolePortType:
  89. return ConsolePortType
  90. if type(instance) is ConsoleServerPort:
  91. return ConsoleServerPortType
  92. if type(instance) is FrontPort:
  93. return FrontPortType
  94. if type(instance) is Interface:
  95. return InterfaceType
  96. if type(instance) is PowerFeed:
  97. return PowerFeedType
  98. if type(instance) is PowerOutlet:
  99. return PowerOutletType
  100. if type(instance) is PowerPort:
  101. return PowerPortType
  102. if type(instance) is RearPort:
  103. return RearPortType
  104. class InventoryItemTemplateComponentType(graphene.Union):
  105. class Meta:
  106. types = (
  107. ConsolePortTemplateType,
  108. ConsoleServerPortTemplateType,
  109. FrontPortTemplateType,
  110. InterfaceTemplateType,
  111. PowerOutletTemplateType,
  112. PowerPortTemplateType,
  113. RearPortTemplateType,
  114. )
  115. @classmethod
  116. def resolve_type(cls, instance, info):
  117. if type(instance) is ConsolePortTemplate:
  118. return ConsolePortTemplateType
  119. if type(instance) is ConsoleServerPortTemplate:
  120. return ConsoleServerPortTemplateType
  121. if type(instance) is FrontPortTemplate:
  122. return FrontPortTemplateType
  123. if type(instance) is InterfaceTemplate:
  124. return InterfaceTemplateType
  125. if type(instance) is PowerOutletTemplate:
  126. return PowerOutletTemplateType
  127. if type(instance) is PowerPortTemplate:
  128. return PowerPortTemplateType
  129. if type(instance) is RearPortTemplate:
  130. return RearPortTemplateType
  131. class InventoryItemComponentType(graphene.Union):
  132. class Meta:
  133. types = (
  134. ConsolePortType,
  135. ConsoleServerPortType,
  136. FrontPortType,
  137. InterfaceType,
  138. PowerOutletType,
  139. PowerPortType,
  140. RearPortType,
  141. )
  142. @classmethod
  143. def resolve_type(cls, instance, info):
  144. if type(instance) is ConsolePort:
  145. return ConsolePortType
  146. if type(instance) is ConsoleServerPort:
  147. return ConsoleServerPortType
  148. if type(instance) is FrontPort:
  149. return FrontPortType
  150. if type(instance) is Interface:
  151. return InterfaceType
  152. if type(instance) is PowerOutlet:
  153. return PowerOutletType
  154. if type(instance) is PowerPort:
  155. return PowerPortType
  156. if type(instance) is RearPort:
  157. return RearPortType
  158. class ConnectedEndpointType(graphene.Union):
  159. class Meta:
  160. types = (
  161. CircuitTerminationType,
  162. ConsolePortType,
  163. ConsoleServerPortType,
  164. FrontPortType,
  165. InterfaceType,
  166. PowerFeedType,
  167. PowerOutletType,
  168. PowerPortType,
  169. ProviderNetworkType,
  170. RearPortType,
  171. )
  172. @classmethod
  173. def resolve_type(cls, instance, info):
  174. if type(instance) is CircuitTermination:
  175. return CircuitTerminationType
  176. if type(instance) is ConsolePortType:
  177. return ConsolePortType
  178. if type(instance) is ConsoleServerPort:
  179. return ConsoleServerPortType
  180. if type(instance) is FrontPort:
  181. return FrontPortType
  182. if type(instance) is Interface:
  183. return InterfaceType
  184. if type(instance) is PowerFeed:
  185. return PowerFeedType
  186. if type(instance) is PowerOutlet:
  187. return PowerOutletType
  188. if type(instance) is PowerPort:
  189. return PowerPortType
  190. if type(instance) is ProviderNetwork:
  191. return ProviderNetworkType
  192. if type(instance) is RearPort:
  193. return RearPortType