constants.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. from django.db.models import Q
  2. # Models which support custom fields
  3. CUSTOMFIELD_MODELS = Q(
  4. Q(app_label='circuits', model__in=[
  5. 'circuit',
  6. 'provider',
  7. ]) |
  8. Q(app_label='dcim', model__in=[
  9. 'device',
  10. 'devicetype',
  11. 'powerfeed',
  12. 'rack',
  13. 'site',
  14. ]) |
  15. Q(app_label='ipam', model__in=[
  16. 'aggregate',
  17. 'ipaddress',
  18. 'prefix',
  19. 'service',
  20. 'vlan',
  21. 'vrf',
  22. ]) |
  23. Q(app_label='secrets', model__in=[
  24. 'secret',
  25. ]) |
  26. Q(app_label='tenancy', model__in=[
  27. 'tenant',
  28. ]) |
  29. Q(app_label='virtualization', model__in=[
  30. 'cluster',
  31. 'virtualmachine',
  32. ])
  33. )
  34. # Custom links
  35. CUSTOMLINK_MODELS = Q(
  36. Q(app_label='circuits', model__in=[
  37. 'circuit',
  38. 'provider',
  39. ]) |
  40. Q(app_label='dcim', model__in=[
  41. 'cable',
  42. 'device',
  43. 'devicetype',
  44. 'powerpanel',
  45. 'powerfeed',
  46. 'rack',
  47. 'site',
  48. ]) |
  49. Q(app_label='ipam', model__in=[
  50. 'aggregate',
  51. 'ipaddress',
  52. 'prefix',
  53. 'service',
  54. 'vlan',
  55. 'vrf',
  56. ]) |
  57. Q(app_label='secrets', model__in=[
  58. 'secret',
  59. ]) |
  60. Q(app_label='tenancy', model__in=[
  61. 'tenant',
  62. ]) |
  63. Q(app_label='virtualization', model__in=[
  64. 'cluster',
  65. 'virtualmachine',
  66. ])
  67. )
  68. # Models which can have Graphs associated with them
  69. GRAPH_MODELS = Q(
  70. Q(app_label='circuits', model__in=[
  71. 'provider',
  72. ]) |
  73. Q(app_label='dcim', model__in=[
  74. 'device',
  75. 'interface',
  76. 'site',
  77. ])
  78. )
  79. # Models which support export templates
  80. EXPORTTEMPLATE_MODELS = Q(
  81. Q(app_label='circuits', model__in=[
  82. 'circuit',
  83. 'provider',
  84. ]) |
  85. Q(app_label='dcim', model__in=[
  86. 'cable',
  87. 'consoleport',
  88. 'device',
  89. 'devicetype',
  90. 'interface',
  91. 'inventoryitem',
  92. 'manufacturer',
  93. 'powerpanel',
  94. 'powerport',
  95. 'powerfeed',
  96. 'rack',
  97. 'rackgroup',
  98. 'region',
  99. 'site',
  100. 'virtualchassis',
  101. ]) |
  102. Q(app_label='ipam', model__in=[
  103. 'aggregate',
  104. 'ipaddress',
  105. 'prefix',
  106. 'service',
  107. 'vlan',
  108. 'vrf',
  109. ]) |
  110. Q(app_label='secrets', model__in=[
  111. 'secret',
  112. ]) |
  113. Q(app_label='tenancy', model__in=[
  114. 'tenant',
  115. ]) |
  116. Q(app_label='virtualization', model__in=[
  117. 'cluster',
  118. 'virtualmachine',
  119. ])
  120. )
  121. # Report logging levels
  122. LOG_DEFAULT = 0
  123. LOG_SUCCESS = 10
  124. LOG_INFO = 20
  125. LOG_WARNING = 30
  126. LOG_FAILURE = 40
  127. LOG_LEVEL_CODES = {
  128. LOG_DEFAULT: 'default',
  129. LOG_SUCCESS: 'success',
  130. LOG_INFO: 'info',
  131. LOG_WARNING: 'warning',
  132. LOG_FAILURE: 'failure',
  133. }
  134. # Models which support registered webhooks
  135. WEBHOOK_MODELS = Q(
  136. Q(app_label='circuits', model__in=[
  137. 'circuit',
  138. 'provider',
  139. ]) |
  140. Q(app_label='dcim', model__in=[
  141. 'cable',
  142. 'consoleport',
  143. 'consoleserverport',
  144. 'device',
  145. 'devicebay',
  146. 'devicetype',
  147. 'frontport',
  148. 'interface',
  149. 'inventoryitem',
  150. 'manufacturer',
  151. 'poweroutlet',
  152. 'powerpanel',
  153. 'powerport',
  154. 'powerfeed',
  155. 'rack',
  156. 'rearport',
  157. 'region',
  158. 'site',
  159. 'virtualchassis',
  160. ]) |
  161. Q(app_label='ipam', model__in=[
  162. 'aggregate',
  163. 'ipaddress',
  164. 'prefix',
  165. 'service',
  166. 'vlan',
  167. 'vrf',
  168. ]) |
  169. Q(app_label='secrets', model__in=[
  170. 'secret',
  171. ]) |
  172. Q(app_label='tenancy', model__in=[
  173. 'tenant',
  174. ]) |
  175. Q(app_label='virtualization', model__in=[
  176. 'cluster',
  177. 'virtualmachine',
  178. ])
  179. )