foreman_datacenter 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +619 -0
  3. data/README.md +38 -0
  4. data/Rakefile +47 -0
  5. data/app/assets/javascripts/foreman_datacenter/ajax.js +18 -0
  6. data/app/assets/javascripts/foreman_datacenter/console_ports.js +2 -0
  7. data/app/assets/javascripts/foreman_datacenter/device_interface_connections.js +16 -0
  8. data/app/assets/javascripts/foreman_datacenter/devices.js +33 -0
  9. data/app/assets/javascripts/foreman_datacenter/racks.js +16 -0
  10. data/app/assets/javascripts/foreman_datacenter/shared.js +19 -0
  11. data/app/assets/stylesheets/foreman_datacenter/device_interface_connections.css +3 -0
  12. data/app/controllers/foreman_datacenter/console_port_templates_controller.rb +41 -0
  13. data/app/controllers/foreman_datacenter/console_ports_controller.rb +94 -0
  14. data/app/controllers/foreman_datacenter/console_server_port_templates_controller.rb +41 -0
  15. data/app/controllers/foreman_datacenter/console_server_ports_controller.rb +78 -0
  16. data/app/controllers/foreman_datacenter/device_bay_templates_controller.rb +41 -0
  17. data/app/controllers/foreman_datacenter/device_bays_controller.rb +74 -0
  18. data/app/controllers/foreman_datacenter/device_interface_connections_controller.rb +65 -0
  19. data/app/controllers/foreman_datacenter/device_interfaces_controller.rb +65 -0
  20. data/app/controllers/foreman_datacenter/device_modules_controller.rb +53 -0
  21. data/app/controllers/foreman_datacenter/device_roles_controller.rb +55 -0
  22. data/app/controllers/foreman_datacenter/device_types_controller.rb +60 -0
  23. data/app/controllers/foreman_datacenter/devices_controller.rb +82 -0
  24. data/app/controllers/foreman_datacenter/interface_templates_controller.rb +52 -0
  25. data/app/controllers/foreman_datacenter/manufacturers_controller.rb +55 -0
  26. data/app/controllers/foreman_datacenter/platforms_controller.rb +55 -0
  27. data/app/controllers/foreman_datacenter/power_outlet_templates_controller.rb +41 -0
  28. data/app/controllers/foreman_datacenter/power_outlets_controller.rb +77 -0
  29. data/app/controllers/foreman_datacenter/power_port_templates_controller.rb +41 -0
  30. data/app/controllers/foreman_datacenter/power_ports_controller.rb +94 -0
  31. data/app/controllers/foreman_datacenter/rack_groups_controller.rb +55 -0
  32. data/app/controllers/foreman_datacenter/racks_controller.rb +63 -0
  33. data/app/controllers/foreman_datacenter/sites_controller.rb +56 -0
  34. data/app/helpers/foreman_datacenter/console_ports_helper.rb +11 -0
  35. data/app/helpers/foreman_datacenter/console_server_ports_helper.rb +11 -0
  36. data/app/helpers/foreman_datacenter/device_bays_helper.rb +12 -0
  37. data/app/helpers/foreman_datacenter/device_interface_connections_helper.rb +10 -0
  38. data/app/helpers/foreman_datacenter/device_interfaces_helper.rb +4 -0
  39. data/app/helpers/foreman_datacenter/device_roles_helper.rb +7 -0
  40. data/app/helpers/foreman_datacenter/device_types_helper.rb +7 -0
  41. data/app/helpers/foreman_datacenter/devices_helper.rb +54 -0
  42. data/app/helpers/foreman_datacenter/interface_templates_helper.rb +7 -0
  43. data/app/helpers/foreman_datacenter/platforms_helper.rb +7 -0
  44. data/app/helpers/foreman_datacenter/power_outlets_helper.rb +11 -0
  45. data/app/helpers/foreman_datacenter/power_ports_helper.rb +11 -0
  46. data/app/helpers/foreman_datacenter/racks_helper.rb +8 -0
  47. data/app/helpers/foreman_datacenter/shared_helper.rb +29 -0
  48. data/app/models/foreman_datacenter/console_port.rb +19 -0
  49. data/app/models/foreman_datacenter/console_port_template.rb +12 -0
  50. data/app/models/foreman_datacenter/console_server_port.rb +9 -0
  51. data/app/models/foreman_datacenter/console_server_port_template.rb +12 -0
  52. data/app/models/foreman_datacenter/device.rb +136 -0
  53. data/app/models/foreman_datacenter/device_bay.rb +15 -0
  54. data/app/models/foreman_datacenter/device_bay_template.rb +12 -0
  55. data/app/models/foreman_datacenter/device_interface.rb +36 -0
  56. data/app/models/foreman_datacenter/device_interface_connection.rb +43 -0
  57. data/app/models/foreman_datacenter/device_module.rb +10 -0
  58. data/app/models/foreman_datacenter/device_role.rb +14 -0
  59. data/app/models/foreman_datacenter/device_type.rb +43 -0
  60. data/app/models/foreman_datacenter/interface_template.rb +17 -0
  61. data/app/models/foreman_datacenter/manufacturer.rb +7 -0
  62. data/app/models/foreman_datacenter/platform.rb +16 -0
  63. data/app/models/foreman_datacenter/power_outlet.rb +9 -0
  64. data/app/models/foreman_datacenter/power_outlet_template.rb +12 -0
  65. data/app/models/foreman_datacenter/power_port.rb +19 -0
  66. data/app/models/foreman_datacenter/power_port_template.rb +12 -0
  67. data/app/models/foreman_datacenter/rack.rb +13 -0
  68. data/app/models/foreman_datacenter/rack_group.rb +9 -0
  69. data/app/models/foreman_datacenter/site.rb +22 -0
  70. data/app/views/foreman_datacenter/console_port_templates/_form.html.erb +15 -0
  71. data/app/views/foreman_datacenter/console_port_templates/new.html.erb +3 -0
  72. data/app/views/foreman_datacenter/console_ports/_for_device.html.erb +5 -0
  73. data/app/views/foreman_datacenter/console_ports/_form.html.erb +15 -0
  74. data/app/views/foreman_datacenter/console_ports/edit.html.erb +3 -0
  75. data/app/views/foreman_datacenter/console_ports/index.html.erb +29 -0
  76. data/app/views/foreman_datacenter/console_ports/new.html.erb +3 -0
  77. data/app/views/foreman_datacenter/console_ports/new_connection.html.erb +22 -0
  78. data/app/views/foreman_datacenter/console_server_port_templates/_form.html.erb +15 -0
  79. data/app/views/foreman_datacenter/console_server_port_templates/new.html.erb +3 -0
  80. data/app/views/foreman_datacenter/console_server_ports/_for_device.html.erb +5 -0
  81. data/app/views/foreman_datacenter/console_server_ports/_form.html.erb +15 -0
  82. data/app/views/foreman_datacenter/console_server_ports/edit.html.erb +3 -0
  83. data/app/views/foreman_datacenter/console_server_ports/new.html.erb +3 -0
  84. data/app/views/foreman_datacenter/console_server_ports/new_connection.html.erb +22 -0
  85. data/app/views/foreman_datacenter/device_bay_templates/_form.html.erb +15 -0
  86. data/app/views/foreman_datacenter/device_bay_templates/new.html.erb +3 -0
  87. data/app/views/foreman_datacenter/device_bays/_form.html.erb +15 -0
  88. data/app/views/foreman_datacenter/device_bays/edit.html.erb +3 -0
  89. data/app/views/foreman_datacenter/device_bays/new.html.erb +3 -0
  90. data/app/views/foreman_datacenter/device_bays/populate_new.html.erb +21 -0
  91. data/app/views/foreman_datacenter/device_interface_connections/_form.html.erb +72 -0
  92. data/app/views/foreman_datacenter/device_interface_connections/_interfaces.html.erb +5 -0
  93. data/app/views/foreman_datacenter/device_interface_connections/index.html.erb +32 -0
  94. data/app/views/foreman_datacenter/device_interface_connections/new.html.erb +7 -0
  95. data/app/views/foreman_datacenter/device_interfaces/_form.html.erb +22 -0
  96. data/app/views/foreman_datacenter/device_interfaces/edit.html.erb +3 -0
  97. data/app/views/foreman_datacenter/device_interfaces/new.html.erb +3 -0
  98. data/app/views/foreman_datacenter/device_modules/_form.html.erb +17 -0
  99. data/app/views/foreman_datacenter/device_modules/edit.html.erb +3 -0
  100. data/app/views/foreman_datacenter/device_modules/new.html.erb +3 -0
  101. data/app/views/foreman_datacenter/device_roles/_form.html.erb +11 -0
  102. data/app/views/foreman_datacenter/device_roles/edit.html.erb +3 -0
  103. data/app/views/foreman_datacenter/device_roles/index.html.erb +36 -0
  104. data/app/views/foreman_datacenter/device_roles/new.html.erb +3 -0
  105. data/app/views/foreman_datacenter/device_roles/show.html.erb +56 -0
  106. data/app/views/foreman_datacenter/device_types/_form.html.erb +26 -0
  107. data/app/views/foreman_datacenter/device_types/edit.html.erb +3 -0
  108. data/app/views/foreman_datacenter/device_types/index.html.erb +36 -0
  109. data/app/views/foreman_datacenter/device_types/new.html.erb +3 -0
  110. data/app/views/foreman_datacenter/device_types/show.html.erb +357 -0
  111. data/app/views/foreman_datacenter/devices/_console_port.html.erb +60 -0
  112. data/app/views/foreman_datacenter/devices/_console_server_port.html.erb +64 -0
  113. data/app/views/foreman_datacenter/devices/_device_bay.html.erb +46 -0
  114. data/app/views/foreman_datacenter/devices/_device_module.html.erb +16 -0
  115. data/app/views/foreman_datacenter/devices/_device_types.html.erb +5 -0
  116. data/app/views/foreman_datacenter/devices/_for_rack.html.erb +9 -0
  117. data/app/views/foreman_datacenter/devices/_form.html.erb +80 -0
  118. data/app/views/foreman_datacenter/devices/_interface.html.erb +67 -0
  119. data/app/views/foreman_datacenter/devices/_management_interface.html.erb +67 -0
  120. data/app/views/foreman_datacenter/devices/_power_outlet.html.erb +60 -0
  121. data/app/views/foreman_datacenter/devices/_power_port.html.erb +60 -0
  122. data/app/views/foreman_datacenter/devices/_racks.html.erb +5 -0
  123. data/app/views/foreman_datacenter/devices/edit.html.erb +5 -0
  124. data/app/views/foreman_datacenter/devices/index.html.erb +51 -0
  125. data/app/views/foreman_datacenter/devices/inventory.html.erb +66 -0
  126. data/app/views/foreman_datacenter/devices/new.html.erb +5 -0
  127. data/app/views/foreman_datacenter/devices/show.html.erb +303 -0
  128. data/app/views/foreman_datacenter/hosts/hosts/new_action.html.erb +1 -0
  129. data/app/views/foreman_datacenter/hosts/new_action.html.erb +1 -0
  130. data/app/views/foreman_datacenter/interface_templates/_form.html.erb +19 -0
  131. data/app/views/foreman_datacenter/interface_templates/new.html.erb +3 -0
  132. data/app/views/foreman_datacenter/layouts/layouts/new_layout.html.erb +0 -0
  133. data/app/views/foreman_datacenter/layouts/new_layout.html.erb +0 -0
  134. data/app/views/foreman_datacenter/manufacturers/_form.html.erb +7 -0
  135. data/app/views/foreman_datacenter/manufacturers/edit.html.erb +3 -0
  136. data/app/views/foreman_datacenter/manufacturers/index.html.erb +34 -0
  137. data/app/views/foreman_datacenter/manufacturers/new.html.erb +3 -0
  138. data/app/views/foreman_datacenter/manufacturers/show.html.erb +52 -0
  139. data/app/views/foreman_datacenter/platforms/_form.html.erb +11 -0
  140. data/app/views/foreman_datacenter/platforms/edit.html.erb +3 -0
  141. data/app/views/foreman_datacenter/platforms/index.html.erb +34 -0
  142. data/app/views/foreman_datacenter/platforms/new.html.erb +3 -0
  143. data/app/views/foreman_datacenter/platforms/show.html.erb +56 -0
  144. data/app/views/foreman_datacenter/power_outlet_templates/_form.html.erb +15 -0
  145. data/app/views/foreman_datacenter/power_outlet_templates/new.html.erb +3 -0
  146. data/app/views/foreman_datacenter/power_outlets/_for_device.html.erb +5 -0
  147. data/app/views/foreman_datacenter/power_outlets/_form.html.erb +15 -0
  148. data/app/views/foreman_datacenter/power_outlets/edit.html.erb +3 -0
  149. data/app/views/foreman_datacenter/power_outlets/new.html.erb +3 -0
  150. data/app/views/foreman_datacenter/power_outlets/new_connection.html.erb +22 -0
  151. data/app/views/foreman_datacenter/power_port_templates/_form.html.erb +15 -0
  152. data/app/views/foreman_datacenter/power_port_templates/new.html.erb +3 -0
  153. data/app/views/foreman_datacenter/power_ports/_for_device.html.erb +5 -0
  154. data/app/views/foreman_datacenter/power_ports/_form.html.erb +15 -0
  155. data/app/views/foreman_datacenter/power_ports/edit.html.erb +3 -0
  156. data/app/views/foreman_datacenter/power_ports/index.html.erb +29 -0
  157. data/app/views/foreman_datacenter/power_ports/new.html.erb +3 -0
  158. data/app/views/foreman_datacenter/power_ports/new_connection.html.erb +22 -0
  159. data/app/views/foreman_datacenter/rack_groups/_form.html.erb +11 -0
  160. data/app/views/foreman_datacenter/rack_groups/edit.html.erb +3 -0
  161. data/app/views/foreman_datacenter/rack_groups/index.html.erb +36 -0
  162. data/app/views/foreman_datacenter/rack_groups/new.html.erb +3 -0
  163. data/app/views/foreman_datacenter/rack_groups/show.html.erb +56 -0
  164. data/app/views/foreman_datacenter/racks/_form.html.erb +25 -0
  165. data/app/views/foreman_datacenter/racks/_rack_groups.html.erb +8 -0
  166. data/app/views/foreman_datacenter/racks/edit.html.erb +5 -0
  167. data/app/views/foreman_datacenter/racks/index.html.erb +50 -0
  168. data/app/views/foreman_datacenter/racks/new.html.erb +5 -0
  169. data/app/views/foreman_datacenter/racks/show.html.erb +67 -0
  170. data/app/views/foreman_datacenter/shared/_rack_device_select.html.erb +22 -0
  171. data/app/views/foreman_datacenter/sites/_form.html.erb +12 -0
  172. data/app/views/foreman_datacenter/sites/edit.html.erb +3 -0
  173. data/app/views/foreman_datacenter/sites/index.html.erb +40 -0
  174. data/app/views/foreman_datacenter/sites/new.html.erb +3 -0
  175. data/app/views/foreman_datacenter/sites/show.html.erb +98 -0
  176. data/config/routes.rb +92 -0
  177. data/db/migrate/20160727161914_create_sites.rb +16 -0
  178. data/db/migrate/20160728123353_create_rack_groups.rb +12 -0
  179. data/db/migrate/20160728143149_create_racks.rb +16 -0
  180. data/db/migrate/20160728161636_create_platforms.rb +12 -0
  181. data/db/migrate/20160728162635_create_device_roles.rb +12 -0
  182. data/db/migrate/20160728163815_create_manufacturers.rb +12 -0
  183. data/db/migrate/20160728164858_create_device_types.rb +18 -0
  184. data/db/migrate/20160728171422_create_devices.rb +31 -0
  185. data/db/migrate/20160728194401_create_device_interfaces.rb +17 -0
  186. data/db/migrate/20160728195242_create_device_interface_connections.rb +18 -0
  187. data/db/migrate/20160804104103_create_interface_templates.rb +15 -0
  188. data/db/migrate/20160804142618_create_console_port_templates.rb +13 -0
  189. data/db/migrate/20160804164301_create_power_port_templates.rb +13 -0
  190. data/db/migrate/20160805080626_create_console_server_port_templates.rb +13 -0
  191. data/db/migrate/20160805084726_create_power_outlet_templates.rb +13 -0
  192. data/db/migrate/20160805100411_create_device_bay_templates.rb +13 -0
  193. data/db/migrate/20160809091611_create_device_bays.rb +16 -0
  194. data/db/migrate/20160809103211_create_power_outlets.rb +13 -0
  195. data/db/migrate/20160809104325_create_power_ports.rb +17 -0
  196. data/db/migrate/20160809112815_create_console_server_ports.rb +13 -0
  197. data/db/migrate/20160809113846_create_console_ports.rb +17 -0
  198. data/db/migrate/20160816224805_create_device_modules.rb +15 -0
  199. data/lib/foreman_datacenter.rb +4 -0
  200. data/lib/foreman_datacenter/engine.rb +70 -0
  201. data/lib/foreman_datacenter/version.rb +3 -0
  202. data/lib/tasks/foreman_datacenter_tasks.rake +45 -0
  203. data/locale/Makefile +60 -0
  204. data/locale/en/foreman_datacenter.po +19 -0
  205. data/locale/foreman_datacenter.pot +19 -0
  206. data/locale/gemspec.rb +2 -0
  207. data/test/factories/foreman_datacenter_factories.rb +5 -0
  208. data/test/test_plugin_helper.rb +6 -0
  209. data/test/unit/foreman_datacenter_test.rb +11 -0
  210. metadata +310 -0
data/config/routes.rb ADDED
@@ -0,0 +1,92 @@
1
+ Foreman::Application.routes.draw do
2
+ scope 'datacenter', module: :foreman_datacenter do
3
+ resources :sites
4
+ resources :racks do
5
+ get :rack_groups, on: :collection
6
+ end
7
+ resources :rack_groups
8
+ resources :platforms
9
+ resources :device_roles
10
+ resources :manufacturers
11
+ resources :device_types do
12
+ resources :interface_templates, only: [:new, :create, :destroy],
13
+ path: 'interfaces' do
14
+ get :new_management, on: :collection
15
+ end
16
+ resources :console_port_templates, only: [:new, :create, :destroy],
17
+ path: 'console_ports'
18
+ resources :power_port_templates, only: [:new, :create, :destroy],
19
+ path: 'power_ports'
20
+ resources :console_server_port_templates, only: [:new, :create, :destroy],
21
+ path: 'console_server_ports'
22
+ resources :power_outlet_templates, only: [:new, :create, :destroy],
23
+ path: 'power_outlets'
24
+ resources :device_bay_templates, only: [:new, :create, :destroy],
25
+ path: 'device_bays'
26
+ end
27
+ resources :devices do
28
+ collection do
29
+ get :device_types, :racks, :for_rack
30
+ end
31
+ member do
32
+ get :inventory
33
+ end
34
+ resources :device_bays, except: [:show, :index], shallow: true do
35
+ member do
36
+ get :populate_new
37
+ patch :populate
38
+ delete :depopulate
39
+ end
40
+ end
41
+ resources :device_interfaces, except: [:show, :index], shallow: true do
42
+ get :new_management, on: :collection
43
+ resources :device_interface_connections, except: [:show, :edit, :update, :index],
44
+ shallow: true do
45
+ member do
46
+ patch :planned, :connected
47
+ end
48
+ end
49
+ end
50
+ resources :console_server_ports, except: [:show, :index], shallow: true do
51
+ member do
52
+ get :new_connection
53
+ patch :connect, :disconnect
54
+ end
55
+ end
56
+ resources :console_ports, except: [:show, :index], shallow: true do
57
+ member do
58
+ get :new_connection
59
+ patch :connect, :disconnect, :connected, :planned
60
+ end
61
+ end
62
+ resources :power_outlets, except: [:show, :index], shallow: true do
63
+ member do
64
+ get :new_connection
65
+ patch :connect, :disconnect
66
+ end
67
+ end
68
+ resources :power_ports, except: [:show, :index], shallow: true do
69
+ member do
70
+ get :new_connection
71
+ patch :connected, :planned, :connect, :disconnect
72
+ end
73
+ end
74
+ resources :device_modules, except: [:show, :index], shallow: true
75
+ end
76
+ resources :device_interface_connections, only: [:index], path: 'connections' do
77
+ get :interfaces, on: :collection
78
+ end
79
+ resources :console_ports, only: [:index] do
80
+ get :for_device, on: :collection
81
+ end
82
+ resources :power_ports, only: [:index] do
83
+ get :for_device, on: :collection
84
+ end
85
+ resources :console_server_ports, only: [] do
86
+ get :for_device, on: :collection
87
+ end
88
+ resources :power_outlets, only: [] do
89
+ get :for_device, on: :collection
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,16 @@
1
+ class CreateSites < ActiveRecord::Migration
2
+ def change
3
+ create_table :sites do |t|
4
+ t.string :name, limit: 50
5
+ t.string :facility, limit: 50, default: ''
6
+ t.integer :asn, length: 4, null: true
7
+ t.string :physical_address, length: 200, default: ''
8
+ t.string :shipping_address, length: 200, default: ''
9
+ t.text :comments
10
+
11
+ t.timestamps null: false
12
+ end
13
+
14
+ add_index :sites, :name, unique: true
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ class CreateRackGroups < ActiveRecord::Migration
2
+ def change
3
+ create_table :rack_groups do |t|
4
+ t.string :name, limit: 50
5
+ t.integer :site_id
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_foreign_key :rack_groups, :sites, column: :site_id
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ class CreateRacks < ActiveRecord::Migration
2
+ def change
3
+ create_table :racks do |t|
4
+ t.integer :site_id
5
+ t.integer :rack_group_id, null: true
6
+ t.string :name, limit: 50
7
+ t.string :facility_id, limit: 30, null: true
8
+ t.integer :height, limit: 2
9
+ t.text :comments
10
+
11
+ t.timestamps null: false
12
+ end
13
+
14
+ add_foreign_key :racks, :sites, column: :site_id
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ class CreatePlatforms < ActiveRecord::Migration
2
+ def change
3
+ create_table :platforms do |t|
4
+ t.string :name, limit: 50, null: false
5
+ t.string :rpc_client, limit: 30, default: ''
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_index :platforms, :name, unique: true
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateDeviceRoles < ActiveRecord::Migration
2
+ def change
3
+ create_table :device_roles do |t|
4
+ t.string :name, limit: 50, null: false
5
+ t.string :color, limit: 30, null: false
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_index :device_roles, :name, unique: true
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateManufacturers < ActiveRecord::Migration
2
+ def change
3
+ create_table :manufacturers do |t|
4
+ t.string :name, limit: 50, null: false
5
+
6
+ t.timestamps null: false
7
+ end
8
+
9
+
10
+ add_index :manufacturers, :name, unique: true
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ class CreateDeviceTypes < ActiveRecord::Migration
2
+ def change
3
+ create_table :device_types do |t|
4
+ t.integer :manufacturer_id
5
+ t.string :model, limit: 50, null: false
6
+ t.integer :u_height, limit: 2, default: 1
7
+ t.boolean :is_full_depth, default: true
8
+ t.boolean :is_console_server, default: false
9
+ t.boolean :is_pdu, default: false
10
+ t.boolean :is_network_device, default: true
11
+ t.string :subdevice_role, limit: 10, default: 'None'
12
+
13
+ t.timestamps null: false
14
+ end
15
+
16
+ add_foreign_key :device_types, :manufacturers, column: :manufacturer_id
17
+ end
18
+ end
@@ -0,0 +1,31 @@
1
+ class CreateDevices < ActiveRecord::Migration
2
+ def change
3
+ create_table :devices do |t|
4
+ t.integer :device_type_id
5
+ t.integer :device_role_id
6
+ t.integer :platform_id
7
+ t.string :name, limit: 50, null: false
8
+ t.string :serial, limit: 50, default: ''
9
+ t.integer :rack_id
10
+ t.integer :position, limit: 2, null: true
11
+ t.integer :face, null: true
12
+ t.integer :status, default: 0
13
+ t.string :primary_ip4, default: ''
14
+ t.string :primary_ip6, default: ''
15
+ t.text :comments
16
+
17
+ t.timestamps null: false
18
+ end
19
+
20
+ add_foreign_key :devices, :device_types, column: :device_type_id,
21
+ on_delete: :restrict
22
+ add_foreign_key :devices, :device_roles, column: :device_role_id,
23
+ on_delete: :restrict
24
+ add_foreign_key :devices, :platforms, column: :platform_id,
25
+ on_delete: :nullify
26
+ add_foreign_key :devices, :racks, column: :rack_id,
27
+ on_delete: :restrict
28
+
29
+ add_index :devices, :name, unique: true
30
+ end
31
+ end
@@ -0,0 +1,17 @@
1
+ class CreateDeviceInterfaces < ActiveRecord::Migration
2
+ def change
3
+ create_table :device_interfaces do |t|
4
+ t.integer :device_id
5
+ t.string :name, limit: 30
6
+ t.string :form_factor
7
+ t.string :mac_address, limit: 128, default: ''
8
+ t.boolean :mgmt_only, default: false
9
+ t.string :description, limit: 100
10
+
11
+ t.timestamps null: false
12
+ end
13
+
14
+ add_foreign_key :device_interfaces, :devices, column: :device_id,
15
+ on_delete: :cascade
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ class CreateDeviceInterfaceConnections < ActiveRecord::Migration
2
+ def change
3
+ create_table :device_interface_connections do |t|
4
+ t.integer :interface_a
5
+ t.integer :interface_b
6
+ t.integer :connection_status, default: 0
7
+
8
+ t.timestamps null: false
9
+ end
10
+
11
+ add_index :device_interface_connections, [:interface_a, :interface_b],
12
+ unique: true, name: 'uniq_connection'
13
+ add_foreign_key :device_interface_connections, :device_interfaces,
14
+ column: :interface_a, on_delete: :cascade
15
+ add_foreign_key :device_interface_connections, :device_interfaces,
16
+ column: :interface_b, on_delete: :cascade
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ class CreateInterfaceTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :interface_templates do |t|
4
+ t.integer :device_type_id
5
+ t.string :name, limit: 30
6
+ t.string :form_factor, default: '10GE (SFP+)'
7
+ t.boolean :mgmt_only, default: false
8
+
9
+ t.timestamps null: false
10
+ end
11
+
12
+ add_foreign_key :interface_templates, :device_types,
13
+ column: :device_type_id, on_delete: :cascade
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ class CreateConsolePortTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :console_port_templates do |t|
4
+ t.integer :device_type_id
5
+ t.string :name, limit: 30
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_foreign_key :console_port_templates, :device_types,
11
+ column: :device_type_id, on_delete: :cascade
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreatePowerPortTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :power_port_templates do |t|
4
+ t.integer :device_type_id
5
+ t.string :name, limit: 30
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_foreign_key :power_port_templates, :device_types,
11
+ column: :device_type_id, on_delete: :cascade
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateConsoleServerPortTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :console_server_port_templates do |t|
4
+ t.integer :device_type_id
5
+ t.string :name, limit: 30
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_foreign_key :console_server_port_templates, :device_types,
11
+ column: :device_type_id, on_delete: :cascade
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreatePowerOutletTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :power_outlet_templates do |t|
4
+ t.integer :device_type_id
5
+ t.string :name, limit: 30
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_foreign_key :power_outlet_templates, :device_types,
11
+ column: :device_type_id, on_delete: :cascade
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateDeviceBayTemplates < ActiveRecord::Migration
2
+ def change
3
+ create_table :device_bay_templates do |t|
4
+ t.integer :device_type_id
5
+ t.string :name, limit: 30
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_foreign_key :device_bay_templates, :device_types,
11
+ column: :device_type_id, on_delete: :cascade
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ class CreateDeviceBays < ActiveRecord::Migration
2
+ def change
3
+ create_table :device_bays do |t|
4
+ t.integer :device_id
5
+ t.string :name, limit: 50
6
+ t.integer :installed_device_id, null: true
7
+
8
+ t.timestamps null: false
9
+ end
10
+
11
+ add_foreign_key :device_bays, :devices, column: :device_id,
12
+ on_delete: :cascade
13
+ add_foreign_key :device_bays, :devices, column: :installed_device_id,
14
+ on_delete: :nullify
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ class CreatePowerOutlets < ActiveRecord::Migration
2
+ def change
3
+ create_table :power_outlets do |t|
4
+ t.integer :device_id
5
+ t.string :name, limit: 30
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_foreign_key :power_outlets, :devices, column: :device_id,
11
+ on_delete: :cascade
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ class CreatePowerPorts < ActiveRecord::Migration
2
+ def change
3
+ create_table :power_ports do |t|
4
+ t.integer :device_id
5
+ t.string :name, limit: 30
6
+ t.integer :power_outlet_id, null: true
7
+ t.integer :connection_status, default: 0
8
+
9
+ t.timestamps null: false
10
+ end
11
+
12
+ add_foreign_key :power_ports, :devices, column: :device_id,
13
+ on_delete: :cascade
14
+ add_foreign_key :power_ports, :power_outlets, column: :power_outlet_id,
15
+ on_delete: :nullify
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ class CreateConsoleServerPorts < ActiveRecord::Migration
2
+ def change
3
+ create_table :console_server_ports do |t|
4
+ t.integer :device_id
5
+ t.string :name, limit: 30
6
+
7
+ t.timestamps null: false
8
+ end
9
+
10
+ add_foreign_key :console_server_ports, :devices, column: :device_id,
11
+ on_delete: :cascade
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ class CreateConsolePorts < ActiveRecord::Migration
2
+ def change
3
+ create_table :console_ports do |t|
4
+ t.integer :device_id
5
+ t.string :name, limit: 30
6
+ t.integer :console_server_port_id, null: true
7
+ t.integer :connection_status, default: 0
8
+
9
+ t.timestamps null: false
10
+ end
11
+
12
+ add_foreign_key :console_ports, :devices, column: :device_id,
13
+ on_delete: :cascade
14
+ add_foreign_key :console_ports, :console_server_ports,
15
+ column: :console_server_port_id, on_delete: :nullify
16
+ end
17
+ end