0001_initial.py 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. # -*- coding: utf-8 -*-
  2. # Generated by Django 1.9.7 on 2016-06-22 18:21
  3. import django.core.validators
  4. from django.db import migrations, models
  5. import django.db.models.deletion
  6. import utilities.fields
  7. class Migration(migrations.Migration):
  8. initial = True
  9. dependencies = [
  10. ]
  11. operations = [
  12. migrations.CreateModel(
  13. name='ConsolePort',
  14. fields=[
  15. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  16. ('name', models.CharField(max_length=30)),
  17. ('connection_status', models.NullBooleanField(choices=[[False, b'Planned'], [True, b'Connected']], default=True)),
  18. ],
  19. options={
  20. 'ordering': ['device', 'name'],
  21. },
  22. ),
  23. migrations.CreateModel(
  24. name='ConsolePortTemplate',
  25. fields=[
  26. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  27. ('name', models.CharField(max_length=30)),
  28. ],
  29. options={
  30. 'ordering': ['device_type', 'name'],
  31. },
  32. ),
  33. migrations.CreateModel(
  34. name='ConsoleServerPort',
  35. fields=[
  36. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  37. ('name', models.CharField(max_length=30)),
  38. ],
  39. ),
  40. migrations.CreateModel(
  41. name='ConsoleServerPortTemplate',
  42. fields=[
  43. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  44. ('name', models.CharField(max_length=30)),
  45. ],
  46. options={
  47. 'ordering': ['device_type', 'name'],
  48. },
  49. ),
  50. migrations.CreateModel(
  51. name='Device',
  52. fields=[
  53. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  54. ('created', models.DateField(auto_now_add=True)),
  55. ('last_updated', models.DateTimeField(auto_now=True)),
  56. ('name', utilities.fields.NullableCharField(blank=True, max_length=50, null=True, unique=True)),
  57. ('serial', models.CharField(blank=True, max_length=50, verbose_name=b'Serial number')),
  58. ('position', models.PositiveSmallIntegerField(blank=True, help_text=b'Number of the lowest U position occupied by the device', null=True, validators=[django.core.validators.MinValueValidator(1)], verbose_name=b'Position (U)')),
  59. ('face', models.PositiveSmallIntegerField(blank=True, choices=[[0, b'Front'], [1, b'Rear']], null=True, verbose_name=b'Rack face')),
  60. ('status', models.BooleanField(choices=[[True, b'Active'], [False, b'Offline']], default=True, verbose_name=b'Status')),
  61. ('comments', models.TextField(blank=True)),
  62. ],
  63. options={
  64. 'ordering': ['name'],
  65. },
  66. ),
  67. migrations.CreateModel(
  68. name='DeviceRole',
  69. fields=[
  70. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  71. ('name', models.CharField(max_length=50, unique=True)),
  72. ('slug', models.SlugField(unique=True)),
  73. ('color', models.CharField(choices=[[b'teal', b'Teal'], [b'green', b'Green'], [b'blue', b'Blue'], [b'purple', b'Purple'], [b'yellow', b'Yellow'], [b'orange', b'Orange'], [b'red', b'Red'], [b'light_gray', b'Light Gray'], [b'medium_gray', b'Medium Gray'], [b'dark_gray', b'Dark Gray']], max_length=30)),
  74. ],
  75. options={
  76. 'ordering': ['name'],
  77. },
  78. ),
  79. migrations.CreateModel(
  80. name='DeviceType',
  81. fields=[
  82. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  83. ('model', models.CharField(max_length=50)),
  84. ('slug', models.SlugField()),
  85. ('u_height', models.PositiveSmallIntegerField(default=1, verbose_name=b'Height (U)')),
  86. ('is_full_depth', models.BooleanField(default=True, help_text=b'Device consumes both front and rear rack faces', verbose_name=b'Is full depth')),
  87. ('is_console_server', models.BooleanField(default=False, help_text=b'This type of device has console server ports', verbose_name=b'Is a console server')),
  88. ('is_pdu', models.BooleanField(default=False, help_text=b'This type of device has power outlets', verbose_name=b'Is a PDU')),
  89. ('is_network_device', models.BooleanField(default=True, help_text=b'This type of device has network interfaces', verbose_name=b'Is a network device')),
  90. ],
  91. options={
  92. 'ordering': ['manufacturer', 'model'],
  93. },
  94. ),
  95. migrations.CreateModel(
  96. name='Interface',
  97. fields=[
  98. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  99. ('name', models.CharField(max_length=30)),
  100. ('form_factor', models.PositiveSmallIntegerField(choices=[[0, b'Virtual'], [800, b'10/100M (Copper)'], [1000, b'1GE (Copper)'], [1100, b'1GE (SFP)'], [1200, b'10GE (SFP+)'], [1300, b'10GE (XFP)'], [1400, b'40GE (QSFP+)']], default=1200)),
  101. ('mgmt_only', models.BooleanField(default=False, help_text=b'This interface is used only for out-of-band management', verbose_name=b'OOB Management')),
  102. ('description', models.CharField(blank=True, max_length=100)),
  103. ('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='interfaces', to='dcim.Device')),
  104. ],
  105. options={
  106. 'ordering': ['device', 'name'],
  107. },
  108. ),
  109. migrations.CreateModel(
  110. name='InterfaceConnection',
  111. fields=[
  112. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  113. ('connection_status', models.BooleanField(choices=[[False, b'Planned'], [True, b'Connected']], default=True, verbose_name=b'Status')),
  114. ('interface_a', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='connected_as_a', to='dcim.Interface')),
  115. ('interface_b', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='connected_as_b', to='dcim.Interface')),
  116. ],
  117. ),
  118. migrations.CreateModel(
  119. name='InterfaceTemplate',
  120. fields=[
  121. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  122. ('name', models.CharField(max_length=30)),
  123. ('form_factor', models.PositiveSmallIntegerField(choices=[[0, b'Virtual'], [800, b'10/100M (Copper)'], [1000, b'1GE (Copper)'], [1100, b'1GE (SFP)'], [1200, b'10GE (SFP+)'], [1300, b'10GE (XFP)'], [1400, b'40GE (QSFP+)']], default=1200)),
  124. ('mgmt_only', models.BooleanField(default=False, verbose_name=b'Management only')),
  125. ('device_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='interface_templates', to='dcim.DeviceType')),
  126. ],
  127. options={
  128. 'ordering': ['device_type', 'name'],
  129. },
  130. ),
  131. migrations.CreateModel(
  132. name='Manufacturer',
  133. fields=[
  134. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  135. ('name', models.CharField(max_length=50, unique=True)),
  136. ('slug', models.SlugField(unique=True)),
  137. ],
  138. options={
  139. 'ordering': ['name'],
  140. },
  141. ),
  142. migrations.CreateModel(
  143. name='Module',
  144. fields=[
  145. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  146. ('name', models.CharField(max_length=50, verbose_name=b'Name')),
  147. ('part_id', models.CharField(blank=True, max_length=50, verbose_name=b'Part ID')),
  148. ('serial', models.CharField(blank=True, max_length=50, verbose_name=b'Serial number')),
  149. ('discovered', models.BooleanField(default=False, verbose_name=b'Discovered')),
  150. ('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='modules', to='dcim.Device')),
  151. ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='submodules', to='dcim.Module')),
  152. ],
  153. options={
  154. 'ordering': ['device__id', 'parent__id', 'name'],
  155. },
  156. ),
  157. migrations.CreateModel(
  158. name='Platform',
  159. fields=[
  160. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  161. ('name', models.CharField(max_length=50, unique=True)),
  162. ('slug', models.SlugField(unique=True)),
  163. ('rpc_client', models.CharField(blank=True, choices=[[b'juniper-junos', b'Juniper Junos (NETCONF)'], [b'cisco-ios', b'Cisco IOS (SSH)'], [b'opengear', b'Opengear (SSH)']], max_length=30, verbose_name=b'RPC client')),
  164. ],
  165. options={
  166. 'ordering': ['name'],
  167. },
  168. ),
  169. migrations.CreateModel(
  170. name='PowerOutlet',
  171. fields=[
  172. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  173. ('name', models.CharField(max_length=30)),
  174. ('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='power_outlets', to='dcim.Device')),
  175. ],
  176. ),
  177. migrations.CreateModel(
  178. name='PowerOutletTemplate',
  179. fields=[
  180. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  181. ('name', models.CharField(max_length=30)),
  182. ('device_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='power_outlet_templates', to='dcim.DeviceType')),
  183. ],
  184. options={
  185. 'ordering': ['device_type', 'name'],
  186. },
  187. ),
  188. migrations.CreateModel(
  189. name='PowerPort',
  190. fields=[
  191. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  192. ('name', models.CharField(max_length=30)),
  193. ('connection_status', models.NullBooleanField(choices=[[False, b'Planned'], [True, b'Connected']], default=True)),
  194. ('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='power_ports', to='dcim.Device')),
  195. ('power_outlet', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='connected_port', to='dcim.PowerOutlet')),
  196. ],
  197. options={
  198. 'ordering': ['device', 'name'],
  199. },
  200. ),
  201. migrations.CreateModel(
  202. name='PowerPortTemplate',
  203. fields=[
  204. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  205. ('name', models.CharField(max_length=30)),
  206. ('device_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='power_port_templates', to='dcim.DeviceType')),
  207. ],
  208. options={
  209. 'ordering': ['device_type', 'name'],
  210. },
  211. ),
  212. migrations.CreateModel(
  213. name='Rack',
  214. fields=[
  215. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  216. ('created', models.DateField(auto_now_add=True)),
  217. ('last_updated', models.DateTimeField(auto_now=True)),
  218. ('name', models.CharField(max_length=50)),
  219. ('facility_id', utilities.fields.NullableCharField(blank=True, max_length=30, null=True, verbose_name=b'Facility ID')),
  220. ('u_height', models.PositiveSmallIntegerField(default=42, verbose_name=b'Height (U)')),
  221. ('comments', models.TextField(blank=True)),
  222. ],
  223. options={
  224. 'ordering': ['site', 'name'],
  225. },
  226. ),
  227. migrations.CreateModel(
  228. name='RackGroup',
  229. fields=[
  230. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  231. ('name', models.CharField(max_length=50)),
  232. ('slug', models.SlugField()),
  233. ],
  234. options={
  235. 'ordering': ['site', 'name'],
  236. },
  237. ),
  238. migrations.CreateModel(
  239. name='Site',
  240. fields=[
  241. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  242. ('created', models.DateField(auto_now_add=True)),
  243. ('last_updated', models.DateTimeField(auto_now=True)),
  244. ('name', models.CharField(max_length=50, unique=True)),
  245. ('slug', models.SlugField(unique=True)),
  246. ('facility', models.CharField(blank=True, max_length=50)),
  247. ('asn', models.PositiveIntegerField(blank=True, null=True, verbose_name=b'ASN')),
  248. ('physical_address', models.CharField(blank=True, max_length=200)),
  249. ('shipping_address', models.CharField(blank=True, max_length=200)),
  250. ('comments', models.TextField(blank=True)),
  251. ],
  252. options={
  253. 'ordering': ['name'],
  254. },
  255. ),
  256. migrations.AddField(
  257. model_name='rackgroup',
  258. name='site',
  259. field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rack_groups', to='dcim.Site'),
  260. ),
  261. migrations.AddField(
  262. model_name='rack',
  263. name='group',
  264. field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='racks', to='dcim.RackGroup'),
  265. ),
  266. migrations.AddField(
  267. model_name='rack',
  268. name='site',
  269. field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='racks', to='dcim.Site'),
  270. ),
  271. migrations.AddField(
  272. model_name='devicetype',
  273. name='manufacturer',
  274. field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='device_types', to='dcim.Manufacturer'),
  275. ),
  276. migrations.AddField(
  277. model_name='device',
  278. name='device_role',
  279. field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='devices', to='dcim.DeviceRole'),
  280. ),
  281. migrations.AddField(
  282. model_name='device',
  283. name='device_type',
  284. field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='instances', to='dcim.DeviceType'),
  285. ),
  286. migrations.AddField(
  287. model_name='device',
  288. name='platform',
  289. field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='devices', to='dcim.Platform'),
  290. ),
  291. ]