nutella_framework 0.7.3 → 0.8.0

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 (506) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +1 -1
  3. data/VERSION +1 -1
  4. data/framework_components/order.json +1 -6
  5. data/nutella_framework.gemspec +7 -507
  6. metadata +5 -505
  7. data/framework_components/beacon-cloud-bot/README.md +0 -27
  8. data/framework_components/beacon-cloud-bot/beacon_cloud_bot.rb +0 -150
  9. data/framework_components/beacon-cloud-bot/beacons.json +0 -1
  10. data/framework_components/beacon-cloud-bot/startup +0 -5
  11. data/framework_components/logging_bot/logging_bot.rb +0 -42
  12. data/framework_components/logging_bot/startup +0 -5
  13. data/framework_components/logging_bot/utils.rb +0 -8
  14. data/framework_components/monitoring-bot/.gitignore +0 -34
  15. data/framework_components/monitoring-bot/README.md +0 -1
  16. data/framework_components/monitoring-bot/monitoring-bot.rb +0 -472
  17. data/framework_components/monitoring-bot/nutella.json +0 -6
  18. data/framework_components/monitoring-bot/startup +0 -6
  19. data/framework_components/monitoring-interface/.gitignore +0 -2
  20. data/framework_components/monitoring-interface/README.md +0 -1
  21. data/framework_components/monitoring-interface/bower.json +0 -29
  22. data/framework_components/monitoring-interface/bower_components/bower-mqttws/.bower.json +0 -23
  23. data/framework_components/monitoring-interface/bower_components/bower-mqttws/bower.json +0 -14
  24. data/framework_components/monitoring-interface/bower_components/bower-mqttws/mqttws31.js +0 -2081
  25. data/framework_components/monitoring-interface/bower_components/bower-mqttws/readme.md +0 -4
  26. data/framework_components/monitoring-interface/bower_components/nutella_lib/.bower.json +0 -37
  27. data/framework_components/monitoring-interface/bower_components/nutella_lib/LICENSE +0 -21
  28. data/framework_components/monitoring-interface/bower_components/nutella_lib/README.md +0 -15
  29. data/framework_components/monitoring-interface/bower_components/nutella_lib/bower.json +0 -28
  30. data/framework_components/monitoring-interface/bower_components/nutella_lib/examples/browser/mqtt_client_hello_world.html +0 -23
  31. data/framework_components/monitoring-interface/bower_components/nutella_lib/examples/browser/nutella_hello_world.html +0 -52
  32. data/framework_components/monitoring-interface/bower_components/nutella_lib/examples/node/mqtt_client_hello_world.js +0 -14
  33. data/framework_components/monitoring-interface/bower_components/nutella_lib/examples/node/nutella_hello_world.js +0 -38
  34. data/framework_components/monitoring-interface/bower_components/nutella_lib/nutella_lib.js +0 -789
  35. data/framework_components/monitoring-interface/bower_components/nutella_lib/package.json +0 -30
  36. data/framework_components/monitoring-interface/css/Monitoring Interface.html +0 -215
  37. data/framework_components/monitoring-interface/css/Monitoring Interface_files/animations.js +0 -27
  38. data/framework_components/monitoring-interface/css/Monitoring Interface_files/application-view-controller.js +0 -232
  39. data/framework_components/monitoring-interface/css/Monitoring Interface_files/applications-model.js +0 -61
  40. data/framework_components/monitoring-interface/css/Monitoring Interface_files/bootstrap.min.js +0 -7
  41. data/framework_components/monitoring-interface/css/Monitoring Interface_files/cursor.css +0 -7
  42. data/framework_components/monitoring-interface/css/Monitoring Interface_files/d3.v3.min.js +0 -5
  43. data/framework_components/monitoring-interface/css/Monitoring Interface_files/graphics.js +0 -156
  44. data/framework_components/monitoring-interface/css/Monitoring Interface_files/grid-layout.js +0 -103
  45. data/framework_components/monitoring-interface/css/Monitoring Interface_files/highlight.min.js +0 -2
  46. data/framework_components/monitoring-interface/css/Monitoring Interface_files/instance-view-controller.js +0 -104
  47. data/framework_components/monitoring-interface/css/Monitoring Interface_files/jquery-1.10.0.min.js +0 -6
  48. data/framework_components/monitoring-interface/css/Monitoring Interface_files/notification-center.js +0 -63
  49. data/framework_components/monitoring-interface/css/Monitoring Interface_files/notifications.js +0 -14
  50. data/framework_components/monitoring-interface/css/Monitoring Interface_files/page.css +0 -33
  51. data/framework_components/monitoring-interface/css/Monitoring Interface_files/radial-layout.js +0 -175
  52. data/framework_components/monitoring-interface/css/Monitoring Interface_files/tab-table.js +0 -8
  53. data/framework_components/monitoring-interface/css/Monitoring Interface_files/ui-application.css +0 -0
  54. data/framework_components/monitoring-interface/css/Monitoring Interface_files/ui-application.js +0 -320
  55. data/framework_components/monitoring-interface/css/Monitoring Interface_files/ui-connection-view.css +0 -10
  56. data/framework_components/monitoring-interface/css/Monitoring Interface_files/ui-connection-view.js +0 -426
  57. data/framework_components/monitoring-interface/css/Monitoring Interface_files/ui-element.js +0 -205
  58. data/framework_components/monitoring-interface/css/Monitoring Interface_files/ui-notification.js +0 -94
  59. data/framework_components/monitoring-interface/css/Monitoring Interface_files/ui-tab.js +0 -229
  60. data/framework_components/monitoring-interface/css/Monitoring Interface_files/underscore-min.js +0 -5
  61. data/framework_components/monitoring-interface/css/Monitoring Interface_files/view-controller.js +0 -68
  62. data/framework_components/monitoring-interface/css/Monitoring Interface_files/window-view-controller.js +0 -169
  63. data/framework_components/monitoring-interface/css/alerts.css +0 -3
  64. data/framework_components/monitoring-interface/css/bootstrap.min.css +0 -5
  65. data/framework_components/monitoring-interface/css/cursor.css +0 -7
  66. data/framework_components/monitoring-interface/css/highlight.default.min.css +0 -1
  67. data/framework_components/monitoring-interface/css/page.css +0 -41
  68. data/framework_components/monitoring-interface/css/ui-application.css +0 -0
  69. data/framework_components/monitoring-interface/css/ui-connection-view.css +0 -10
  70. data/framework_components/monitoring-interface/css/ui-legend-view.css +0 -7
  71. data/framework_components/monitoring-interface/data/alert.json +0 -8
  72. data/framework_components/monitoring-interface/data/data.json +0 -2118
  73. data/framework_components/monitoring-interface/data/data2.json +0 -814
  74. data/framework_components/monitoring-interface/data/data3.json +0 -823
  75. data/framework_components/monitoring-interface/data/data4.json +0 -848
  76. data/framework_components/monitoring-interface/data/message.json +0 -999
  77. data/framework_components/monitoring-interface/gulpfile.js +0 -29
  78. data/framework_components/monitoring-interface/img/arrow_white.svg +0 -120
  79. data/framework_components/monitoring-interface/img/arrow_white_right.svg +0 -104
  80. data/framework_components/monitoring-interface/img/back.svg +0 -164
  81. data/framework_components/monitoring-interface/img/cross_red_border_white.svg +0 -143
  82. data/framework_components/monitoring-interface/img/cross_red_border_white_mouseover.svg +0 -143
  83. data/framework_components/monitoring-interface/img/email.svg +0 -89
  84. data/framework_components/monitoring-interface/img/email_highlighted.svg +0 -89
  85. data/framework_components/monitoring-interface/index.html +0 -144
  86. data/framework_components/monitoring-interface/js/d3/layout/grid-layout.js +0 -103
  87. data/framework_components/monitoring-interface/js/d3/layout/radial-layout.js +0 -184
  88. data/framework_components/monitoring-interface/js/d3/plugin/graphics.js +0 -156
  89. data/framework_components/monitoring-interface/js/d3/plugin/tab-table.js +0 -8
  90. data/framework_components/monitoring-interface/js/d3/ui/animations.js +0 -27
  91. data/framework_components/monitoring-interface/js/d3/ui/ui-application.js +0 -471
  92. data/framework_components/monitoring-interface/js/d3/ui/ui-connection-view.js +0 -861
  93. data/framework_components/monitoring-interface/js/d3/ui/ui-element.js +0 -245
  94. data/framework_components/monitoring-interface/js/d3/ui/ui-legend.js +0 -174
  95. data/framework_components/monitoring-interface/js/d3/ui/ui-notification.js +0 -90
  96. data/framework_components/monitoring-interface/js/d3/ui/ui-tab.js +0 -309
  97. data/framework_components/monitoring-interface/js/lib/JSXTransformer-0.12.2.js +0 -15199
  98. data/framework_components/monitoring-interface/js/lib/bootstrap.min.js +0 -7
  99. data/framework_components/monitoring-interface/js/lib/d3.v3.min.js +0 -5
  100. data/framework_components/monitoring-interface/js/lib/highlight.min.js +0 -2
  101. data/framework_components/monitoring-interface/js/lib/jquery-1.10.0.min.js +0 -6
  102. data/framework_components/monitoring-interface/js/lib/nutella_lib.js +0 -5121
  103. data/framework_components/monitoring-interface/js/lib/react-with-addons-0.12.2.js +0 -19822
  104. data/framework_components/monitoring-interface/js/lib/underscore-min.js +0 -5
  105. data/framework_components/monitoring-interface/js/model/alerts-model.js +0 -74
  106. data/framework_components/monitoring-interface/js/model/applications-model.js +0 -78
  107. data/framework_components/monitoring-interface/js/model/messages-model.js +0 -112
  108. data/framework_components/monitoring-interface/js/notification/notification-center.js +0 -63
  109. data/framework_components/monitoring-interface/js/notification/notifications.js +0 -21
  110. data/framework_components/monitoring-interface/js/react/dist/ui-alerts.js +0 -178
  111. data/framework_components/monitoring-interface/js/react/dist/ui-message-send.js +0 -389
  112. data/framework_components/monitoring-interface/js/react/dist/ui-messages.js +0 -103
  113. data/framework_components/monitoring-interface/js/react/src/ui-alerts.js +0 -178
  114. data/framework_components/monitoring-interface/js/react/src/ui-message-send.js +0 -389
  115. data/framework_components/monitoring-interface/js/react/src/ui-messages.js +0 -103
  116. data/framework_components/monitoring-interface/js/view-controller/application-view-controller.js +0 -259
  117. data/framework_components/monitoring-interface/js/view-controller/instance-view-controller.js +0 -112
  118. data/framework_components/monitoring-interface/js/view-controller/view-controller.js +0 -74
  119. data/framework_components/monitoring-interface/js/view-controller/window-view-controller.js +0 -169
  120. data/framework_components/monitoring-interface/nutella.json +0 -6
  121. data/framework_components/room-places-beacon-cloud-interface/LICENSE +0 -21
  122. data/framework_components/room-places-beacon-cloud-interface/Readme.md +0 -0
  123. data/framework_components/room-places-beacon-cloud-interface/bower.json +0 -29
  124. data/framework_components/room-places-beacon-cloud-interface/bower_components/bower-mqttws/.bower.json +0 -23
  125. data/framework_components/room-places-beacon-cloud-interface/bower_components/bower-mqttws/bower.json +0 -14
  126. data/framework_components/room-places-beacon-cloud-interface/bower_components/bower-mqttws/mqttws31.js +0 -2081
  127. data/framework_components/room-places-beacon-cloud-interface/bower_components/bower-mqttws/readme.md +0 -4
  128. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/.bower.json +0 -37
  129. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/LICENSE +0 -21
  130. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/README.md +0 -15
  131. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/bower.json +0 -28
  132. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/examples/browser/mqtt_client_hello_world.html +0 -23
  133. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/examples/browser/nutella_hello_world.html +0 -52
  134. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/examples/node/mqtt_client_hello_world.js +0 -14
  135. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/examples/node/nutella_hello_world.js +0 -38
  136. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/nutella_lib.js +0 -789
  137. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/package.json +0 -30
  138. data/framework_components/room-places-beacon-cloud-interface/bower_components/nutella_lib/simple-js-mqtt-client.js +0 -428
  139. data/framework_components/room-places-beacon-cloud-interface/css/animation.css +0 -17
  140. data/framework_components/room-places-beacon-cloud-interface/css/cursor.css +0 -16
  141. data/framework_components/room-places-beacon-cloud-interface/css/page_layout.css +0 -73
  142. data/framework_components/room-places-beacon-cloud-interface/index.html +0 -157
  143. data/framework_components/room-places-beacon-cloud-interface/js/lib/nutella_lib.js +0 -5121
  144. data/framework_components/room-places-beacon-cloud-interface/js/react/beacon-add.js +0 -102
  145. data/framework_components/room-places-beacon-cloud-interface/js/react/beacon-table.js +0 -73
  146. data/framework_components/room-places-beacon-cloud-interface/js/react/beacon.js +0 -97
  147. data/framework_components/room-places-beacon-cloud-interface/nutella.json +0 -6
  148. data/framework_components/room-places-bot/.gitignore +0 -4
  149. data/framework_components/room-places-bot/Gemfile +0 -3
  150. data/framework_components/room-places-bot/README.md +0 -66
  151. data/framework_components/room-places-bot/nutella.json +0 -6
  152. data/framework_components/room-places-bot/room_places_bot.rb +0 -766
  153. data/framework_components/room-places-bot/startup +0 -6
  154. data/framework_components/room-places-bot/virtual_beacons.rb +0 -124
  155. data/framework_components/room-places-interface/.gitignore +0 -3
  156. data/framework_components/room-places-interface/LICENSE +0 -21
  157. data/framework_components/room-places-interface/Readme.md +0 -0
  158. data/framework_components/room-places-interface/bower.json +0 -29
  159. data/framework_components/room-places-interface/bower_components/bower-mqttws/.bower.json +0 -23
  160. data/framework_components/room-places-interface/bower_components/bower-mqttws/bower.json +0 -14
  161. data/framework_components/room-places-interface/bower_components/bower-mqttws/mqttws31.js +0 -2081
  162. data/framework_components/room-places-interface/bower_components/bower-mqttws/readme.md +0 -4
  163. data/framework_components/room-places-interface/bower_components/nutella_lib/.bower.json +0 -37
  164. data/framework_components/room-places-interface/bower_components/nutella_lib/LICENSE +0 -21
  165. data/framework_components/room-places-interface/bower_components/nutella_lib/README.md +0 -15
  166. data/framework_components/room-places-interface/bower_components/nutella_lib/bower.json +0 -28
  167. data/framework_components/room-places-interface/bower_components/nutella_lib/examples/browser/mqtt_client_hello_world.html +0 -23
  168. data/framework_components/room-places-interface/bower_components/nutella_lib/examples/browser/nutella_hello_world.html +0 -52
  169. data/framework_components/room-places-interface/bower_components/nutella_lib/examples/node/mqtt_client_hello_world.js +0 -14
  170. data/framework_components/room-places-interface/bower_components/nutella_lib/examples/node/nutella_hello_world.js +0 -38
  171. data/framework_components/room-places-interface/bower_components/nutella_lib/nutella_lib.js +0 -789
  172. data/framework_components/room-places-interface/bower_components/nutella_lib/package.json +0 -30
  173. data/framework_components/room-places-interface/css/animation.css +0 -22
  174. data/framework_components/room-places-interface/css/bootstrap.min.css +0 -5
  175. data/framework_components/room-places-interface/css/cursor.css +0 -22
  176. data/framework_components/room-places-interface/css/font-awesome/css/font-awesome.css +0 -1801
  177. data/framework_components/room-places-interface/css/font-awesome/css/font-awesome.min.css +0 -4
  178. data/framework_components/room-places-interface/css/font-awesome/fonts/FontAwesome.otf +0 -0
  179. data/framework_components/room-places-interface/css/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  180. data/framework_components/room-places-interface/css/font-awesome/fonts/fontawesome-webfont.svg +0 -565
  181. data/framework_components/room-places-interface/css/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  182. data/framework_components/room-places-interface/css/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  183. data/framework_components/room-places-interface/css/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  184. data/framework_components/room-places-interface/css/font-awesome/less/animated.less +0 -34
  185. data/framework_components/room-places-interface/css/font-awesome/less/bordered-pulled.less +0 -16
  186. data/framework_components/room-places-interface/css/font-awesome/less/core.less +0 -13
  187. data/framework_components/room-places-interface/css/font-awesome/less/fixed-width.less +0 -6
  188. data/framework_components/room-places-interface/css/font-awesome/less/font-awesome.less +0 -17
  189. data/framework_components/room-places-interface/css/font-awesome/less/icons.less +0 -596
  190. data/framework_components/room-places-interface/css/font-awesome/less/larger.less +0 -13
  191. data/framework_components/room-places-interface/css/font-awesome/less/list.less +0 -19
  192. data/framework_components/room-places-interface/css/font-awesome/less/mixins.less +0 -27
  193. data/framework_components/room-places-interface/css/font-awesome/less/path.less +0 -15
  194. data/framework_components/room-places-interface/css/font-awesome/less/rotated-flipped.less +0 -20
  195. data/framework_components/room-places-interface/css/font-awesome/less/stacked.less +0 -20
  196. data/framework_components/room-places-interface/css/font-awesome/less/variables.less +0 -606
  197. data/framework_components/room-places-interface/css/font-awesome/scss/_animated.scss +0 -34
  198. data/framework_components/room-places-interface/css/font-awesome/scss/_bordered-pulled.scss +0 -16
  199. data/framework_components/room-places-interface/css/font-awesome/scss/_core.scss +0 -13
  200. data/framework_components/room-places-interface/css/font-awesome/scss/_fixed-width.scss +0 -6
  201. data/framework_components/room-places-interface/css/font-awesome/scss/_icons.scss +0 -596
  202. data/framework_components/room-places-interface/css/font-awesome/scss/_larger.scss +0 -13
  203. data/framework_components/room-places-interface/css/font-awesome/scss/_list.scss +0 -19
  204. data/framework_components/room-places-interface/css/font-awesome/scss/_mixins.scss +0 -27
  205. data/framework_components/room-places-interface/css/font-awesome/scss/_path.scss +0 -15
  206. data/framework_components/room-places-interface/css/font-awesome/scss/_rotated-flipped.scss +0 -20
  207. data/framework_components/room-places-interface/css/font-awesome/scss/_stacked.scss +0 -20
  208. data/framework_components/room-places-interface/css/font-awesome/scss/_variables.scss +0 -606
  209. data/framework_components/room-places-interface/css/font-awesome/scss/font-awesome.scss +0 -17
  210. data/framework_components/room-places-interface/css/icomoon.css +0 -57
  211. data/framework_components/room-places-interface/css/page_layout.css +0 -82
  212. data/framework_components/room-places-interface/fonts/glyphicons-halflings-regular.eot +0 -0
  213. data/framework_components/room-places-interface/fonts/glyphicons-halflings-regular.svg +0 -288
  214. data/framework_components/room-places-interface/fonts/glyphicons-halflings-regular.ttf +0 -0
  215. data/framework_components/room-places-interface/fonts/glyphicons-halflings-regular.woff +0 -0
  216. data/framework_components/room-places-interface/fonts/glyphicons-halflings-regular.woff2 +0 -0
  217. data/framework_components/room-places-interface/fonts/icomoon.eot +0 -0
  218. data/framework_components/room-places-interface/fonts/icomoon.svg +0 -17
  219. data/framework_components/room-places-interface/fonts/icomoon.ttf +0 -0
  220. data/framework_components/room-places-interface/fonts/icomoon.woff +0 -0
  221. data/framework_components/room-places-interface/gulpfile.js +0 -24
  222. data/framework_components/room-places-interface/index.html +0 -73
  223. data/framework_components/room-places-interface/index2.html +0 -1753
  224. data/framework_components/room-places-interface/js/component.js +0 -438
  225. data/framework_components/room-places-interface/js/lib/JSXTransformer-0.12.2.js +0 -15199
  226. data/framework_components/room-places-interface/js/lib/bootstrap.min.js +0 -7
  227. data/framework_components/room-places-interface/js/lib/d3.v3.min.js +0 -5
  228. data/framework_components/room-places-interface/js/lib/jquery-1.10.0.min.js +0 -6
  229. data/framework_components/room-places-interface/js/lib/nutella_lib.js +0 -4145
  230. data/framework_components/room-places-interface/js/lib/react-with-addons-0.12.2.js +0 -19822
  231. data/framework_components/room-places-interface/js/lib/underscore.js +0 -6
  232. data/framework_components/room-places-interface/js/map.js +0 -1593
  233. data/framework_components/room-places-interface/js/position.js +0 -6
  234. data/framework_components/room-places-interface/js/react/dist/beacon.js +0 -30
  235. data/framework_components/room-places-interface/js/react/dist/discrete.js +0 -282
  236. data/framework_components/room-places-interface/js/react/dist/interactive-label.js +0 -54
  237. data/framework_components/room-places-interface/js/react/dist/resource-add.js +0 -203
  238. data/framework_components/room-places-interface/js/react/dist/resource-table.js +0 -227
  239. data/framework_components/room-places-interface/js/react/dist/resource.js +0 -433
  240. data/framework_components/room-places-interface/js/react/src/beacon.js +0 -30
  241. data/framework_components/room-places-interface/js/react/src/discrete.js +0 -282
  242. data/framework_components/room-places-interface/js/react/src/interactive-label.js +0 -54
  243. data/framework_components/room-places-interface/js/react/src/resource-add.js +0 -203
  244. data/framework_components/room-places-interface/js/react/src/resource-table.js +0 -227
  245. data/framework_components/room-places-interface/js/react/src/resource.js +0 -433
  246. data/framework_components/room-places-interface/js/room.js +0 -65
  247. data/framework_components/room-places-interface/nutella.json +0 -6
  248. data/framework_components/roomcast-bot/data/default/channels.json +0 -1
  249. data/framework_components/roomcast-bot/data/default/configs.json +0 -1
  250. data/framework_components/roomcast-bot/roomcast_bot.rb +0 -284
  251. data/framework_components/roomcast-bot/startup +0 -6
  252. data/framework_components/roomcast-channel-creator/.gitignore +0 -2
  253. data/framework_components/roomcast-channel-creator/README.md +0 -9
  254. data/framework_components/roomcast-channel-creator/dist/app.js +0 -44376
  255. data/framework_components/roomcast-channel-creator/dist/css/font-awesome.min.css +0 -4
  256. data/framework_components/roomcast-channel-creator/dist/css/ionicons.min.css +0 -11
  257. data/framework_components/roomcast-channel-creator/dist/fonts/FontAwesome.otf +0 -0
  258. data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.eot +0 -0
  259. data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.svg +0 -565
  260. data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.ttf +0 -0
  261. data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.woff +0 -0
  262. data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.woff2 +0 -0
  263. data/framework_components/roomcast-channel-creator/dist/fonts/ionicons.eot +0 -0
  264. data/framework_components/roomcast-channel-creator/dist/fonts/ionicons.svg +0 -2230
  265. data/framework_components/roomcast-channel-creator/dist/fonts/ionicons.ttf +0 -0
  266. data/framework_components/roomcast-channel-creator/dist/fonts/ionicons.woff +0 -0
  267. data/framework_components/roomcast-channel-creator/dist/main.css +0 -3310
  268. data/framework_components/roomcast-channel-creator/dist/nutella_lib.js +0 -5128
  269. data/framework_components/roomcast-channel-creator/gulp/config.js +0 -51
  270. data/framework_components/roomcast-channel-creator/gulp/tasks/browserify.js +0 -77
  271. data/framework_components/roomcast-channel-creator/gulp/tasks/build.js +0 -3
  272. data/framework_components/roomcast-channel-creator/gulp/tasks/css.js +0 -7
  273. data/framework_components/roomcast-channel-creator/gulp/tasks/default.js +0 -3
  274. data/framework_components/roomcast-channel-creator/gulp/tasks/fonts.js +0 -7
  275. data/framework_components/roomcast-channel-creator/gulp/tasks/less.js +0 -16
  276. data/framework_components/roomcast-channel-creator/gulp/tasks/mui-fonts.js +0 -7
  277. data/framework_components/roomcast-channel-creator/gulp/tasks/nutella.js +0 -7
  278. data/framework_components/roomcast-channel-creator/gulp/tasks/setWatch.js +0 -5
  279. data/framework_components/roomcast-channel-creator/gulp/tasks/svgs.js +0 -7
  280. data/framework_components/roomcast-channel-creator/gulp/tasks/watch.js +0 -12
  281. data/framework_components/roomcast-channel-creator/gulp/util/bundleLogger.js +0 -21
  282. data/framework_components/roomcast-channel-creator/gulp/util/handleErrors.js +0 -15
  283. data/framework_components/roomcast-channel-creator/gulpfile.js +0 -16
  284. data/framework_components/roomcast-channel-creator/index.html +0 -40
  285. data/framework_components/roomcast-channel-creator/nutella.json +0 -6
  286. data/framework_components/roomcast-channel-creator/package.json +0 -38
  287. data/framework_components/roomcast-channel-creator/roomcast-default.png +0 -0
  288. data/framework_components/roomcast-channel-creator/src/app/app.js +0 -28
  289. data/framework_components/roomcast-channel-creator/src/app/components/AnimationMixin.js +0 -44
  290. data/framework_components/roomcast-channel-creator/src/app/components/CataloguePage.js +0 -148
  291. data/framework_components/roomcast-channel-creator/src/app/components/Channel.js +0 -406
  292. data/framework_components/roomcast-channel-creator/src/app/components/ColorCell.js +0 -28
  293. data/framework_components/roomcast-channel-creator/src/app/components/ColorPicker.js +0 -53
  294. data/framework_components/roomcast-channel-creator/src/app/components/DetailPage.js +0 -66
  295. data/framework_components/roomcast-channel-creator/src/app/components/NutellaMixin.js +0 -40
  296. data/framework_components/roomcast-channel-creator/src/app/components/PageSliderMixin.js +0 -68
  297. data/framework_components/roomcast-channel-creator/src/app/components/Router.js +0 -52
  298. data/framework_components/roomcast-channel-creator/src/app/components/TopBar.js +0 -86
  299. data/framework_components/roomcast-channel-creator/src/app/components/UploadingScreen.js +0 -74
  300. data/framework_components/roomcast-channel-creator/src/app/components/main.js +0 -342
  301. data/framework_components/roomcast-channel-creator/src/css/font-awesome.min.css +0 -4
  302. data/framework_components/roomcast-channel-creator/src/css/ionicons.min.css +0 -11
  303. data/framework_components/roomcast-channel-creator/src/fonts/FontAwesome.otf +0 -0
  304. data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.eot +0 -0
  305. data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.svg +0 -565
  306. data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.ttf +0 -0
  307. data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.woff +0 -0
  308. data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.woff2 +0 -0
  309. data/framework_components/roomcast-channel-creator/src/fonts/ionicons.eot +0 -0
  310. data/framework_components/roomcast-channel-creator/src/fonts/ionicons.svg +0 -2230
  311. data/framework_components/roomcast-channel-creator/src/fonts/ionicons.ttf +0 -0
  312. data/framework_components/roomcast-channel-creator/src/fonts/ionicons.woff +0 -0
  313. data/framework_components/roomcast-channel-creator/src/less/main.less +0 -506
  314. data/framework_components/roomcast-channel-creator/src/less/my_overrides.less +0 -14
  315. data/framework_components/roomcast-channel-creator/upload.svg +0 -216
  316. data/framework_components/roomcast-main-app/.gitignore +0 -2
  317. data/framework_components/roomcast-main-app/README.md +0 -9
  318. data/framework_components/roomcast-main-app/dist/LICENSE +0 -21
  319. data/framework_components/roomcast-main-app/dist/app.js +0 -54373
  320. data/framework_components/roomcast-main-app/dist/assets/Logo.png +0 -0
  321. data/framework_components/roomcast-main-app/dist/assets/Logo_alpha.png +0 -0
  322. data/framework_components/roomcast-main-app/dist/assets/Logo_grid.svg +0 -216
  323. data/framework_components/roomcast-main-app/dist/css/ionicons.min.css +0 -11
  324. data/framework_components/roomcast-main-app/dist/fonts/ionicons.eot +0 -0
  325. data/framework_components/roomcast-main-app/dist/fonts/ionicons.svg +0 -2230
  326. data/framework_components/roomcast-main-app/dist/fonts/ionicons.ttf +0 -0
  327. data/framework_components/roomcast-main-app/dist/fonts/ionicons.woff +0 -0
  328. data/framework_components/roomcast-main-app/dist/main.css +0 -3234
  329. data/framework_components/roomcast-main-app/gulp/config.js +0 -47
  330. data/framework_components/roomcast-main-app/gulp/tasks/browserify.js +0 -77
  331. data/framework_components/roomcast-main-app/gulp/tasks/build.js +0 -3
  332. data/framework_components/roomcast-main-app/gulp/tasks/css.js +0 -7
  333. data/framework_components/roomcast-main-app/gulp/tasks/default.js +0 -3
  334. data/framework_components/roomcast-main-app/gulp/tasks/fonts.js +0 -7
  335. data/framework_components/roomcast-main-app/gulp/tasks/less.js +0 -16
  336. data/framework_components/roomcast-main-app/gulp/tasks/markup.js +0 -7
  337. data/framework_components/roomcast-main-app/gulp/tasks/setWatch.js +0 -5
  338. data/framework_components/roomcast-main-app/gulp/tasks/svgs.js +0 -7
  339. data/framework_components/roomcast-main-app/gulp/tasks/watch.js +0 -12
  340. data/framework_components/roomcast-main-app/gulp/util/bundleLogger.js +0 -21
  341. data/framework_components/roomcast-main-app/gulp/util/handleErrors.js +0 -15
  342. data/framework_components/roomcast-main-app/gulpfile.js +0 -16
  343. data/framework_components/roomcast-main-app/index.html +0 -37
  344. data/framework_components/roomcast-main-app/nutella.json +0 -6
  345. data/framework_components/roomcast-main-app/package.json +0 -47
  346. data/framework_components/roomcast-main-app/roomcast-default.png +0 -0
  347. data/framework_components/roomcast-main-app/src/app/app.js +0 -15
  348. data/framework_components/roomcast-main-app/src/app/components/NutellaMixin.js +0 -56
  349. data/framework_components/roomcast-main-app/src/app/components/app/Channel.js +0 -68
  350. data/framework_components/roomcast-main-app/src/app/components/app/Player.js +0 -139
  351. data/framework_components/roomcast-main-app/src/app/components/app/iOSMixin.js +0 -22
  352. data/framework_components/roomcast-main-app/src/app/components/app/main.js +0 -567
  353. data/framework_components/roomcast-main-app/src/app/components/app/material-ui/menu-item.jsx +0 -79
  354. data/framework_components/roomcast-main-app/src/app/components/app/material-ui/menu.jsx +0 -177
  355. data/framework_components/roomcast-main-app/src/app/components/app/material-ui/overlay.jsx +0 -21
  356. data/framework_components/roomcast-main-app/src/app/components/app/material-ui/right-nav.jsx +0 -108
  357. data/framework_components/roomcast-main-app/src/app/components/identity-selector/IdentitiesGrid.js +0 -95
  358. data/framework_components/roomcast-main-app/src/app/components/identity-selector/IdentityCard.js +0 -103
  359. data/framework_components/roomcast-main-app/src/app/components/identity-selector/iOSMixin.js +0 -19
  360. data/framework_components/roomcast-main-app/src/app/components/identity-selector/main.js +0 -109
  361. data/framework_components/roomcast-main-app/src/app/components/login/AppIdPage.js +0 -97
  362. data/framework_components/roomcast-main-app/src/app/components/login/BrokerPage.js +0 -139
  363. data/framework_components/roomcast-main-app/src/app/components/login/IdentitiesGrid.js +0 -93
  364. data/framework_components/roomcast-main-app/src/app/components/login/IdentityCard.js +0 -99
  365. data/framework_components/roomcast-main-app/src/app/components/login/RunIdPage.js +0 -78
  366. data/framework_components/roomcast-main-app/src/app/components/login/iOSMixin.js +0 -23
  367. data/framework_components/roomcast-main-app/src/app/components/login/main.js +0 -125
  368. data/framework_components/roomcast-main-app/src/app/components/main.js +0 -64
  369. data/framework_components/roomcast-main-app/src/less/main.less +0 -365
  370. data/framework_components/roomcast-main-app/src/less/my_overrides.less +0 -53
  371. data/framework_components/roomcast-main-app/src/less/right-nav.less +0 -31
  372. data/framework_components/roomcast-package-creator/.gitignore +0 -2
  373. data/framework_components/roomcast-package-creator/README.md +0 -9
  374. data/framework_components/roomcast-package-creator/dist/app.js +0 -51196
  375. data/framework_components/roomcast-package-creator/dist/css/font-awesome.min.css +0 -4
  376. data/framework_components/roomcast-package-creator/dist/css/ionicons.min.css +0 -11
  377. data/framework_components/roomcast-package-creator/dist/fonts/FontAwesome.otf +0 -0
  378. data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.eot +0 -0
  379. data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.svg +0 -565
  380. data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.ttf +0 -0
  381. data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.woff +0 -0
  382. data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.woff2 +0 -0
  383. data/framework_components/roomcast-package-creator/dist/fonts/ionicons.eot +0 -0
  384. data/framework_components/roomcast-package-creator/dist/fonts/ionicons.svg +0 -2230
  385. data/framework_components/roomcast-package-creator/dist/fonts/ionicons.ttf +0 -0
  386. data/framework_components/roomcast-package-creator/dist/fonts/ionicons.woff +0 -0
  387. data/framework_components/roomcast-package-creator/dist/fonts/material-ui-icons.eot +0 -0
  388. data/framework_components/roomcast-package-creator/dist/fonts/material-ui-icons.svg +0 -14
  389. data/framework_components/roomcast-package-creator/dist/fonts/material-ui-icons.ttf +0 -0
  390. data/framework_components/roomcast-package-creator/dist/fonts/material-ui-icons.woff +0 -0
  391. data/framework_components/roomcast-package-creator/dist/main.css +0 -5682
  392. data/framework_components/roomcast-package-creator/dist/nutella_lib.js +0 -5128
  393. data/framework_components/roomcast-package-creator/gulp/config.js +0 -51
  394. data/framework_components/roomcast-package-creator/gulp/tasks/browserify.js +0 -77
  395. data/framework_components/roomcast-package-creator/gulp/tasks/build.js +0 -3
  396. data/framework_components/roomcast-package-creator/gulp/tasks/css.js +0 -7
  397. data/framework_components/roomcast-package-creator/gulp/tasks/default.js +0 -3
  398. data/framework_components/roomcast-package-creator/gulp/tasks/fonts.js +0 -7
  399. data/framework_components/roomcast-package-creator/gulp/tasks/less.js +0 -16
  400. data/framework_components/roomcast-package-creator/gulp/tasks/mui-fonts.js +0 -7
  401. data/framework_components/roomcast-package-creator/gulp/tasks/nutella.js +0 -7
  402. data/framework_components/roomcast-package-creator/gulp/tasks/setWatch.js +0 -5
  403. data/framework_components/roomcast-package-creator/gulp/tasks/svgs.js +0 -7
  404. data/framework_components/roomcast-package-creator/gulp/tasks/watch.js +0 -12
  405. data/framework_components/roomcast-package-creator/gulp/util/bundleLogger.js +0 -21
  406. data/framework_components/roomcast-package-creator/gulp/util/handleErrors.js +0 -15
  407. data/framework_components/roomcast-package-creator/gulpfile.js +0 -16
  408. data/framework_components/roomcast-package-creator/index.html +0 -38
  409. data/framework_components/roomcast-package-creator/nutella.json +0 -6
  410. data/framework_components/roomcast-package-creator/package.json +0 -39
  411. data/framework_components/roomcast-package-creator/roomcast-default.png +0 -0
  412. data/framework_components/roomcast-package-creator/src/app/app.js +0 -30
  413. data/framework_components/roomcast-package-creator/src/app/components/ButtonInteractionsMixin.js +0 -45
  414. data/framework_components/roomcast-package-creator/src/app/components/ChannelCard.js +0 -100
  415. data/framework_components/roomcast-package-creator/src/app/components/ChannelItem.js +0 -71
  416. data/framework_components/roomcast-package-creator/src/app/components/ChannelsCatalogue.js +0 -51
  417. data/framework_components/roomcast-package-creator/src/app/components/ChannelsPanel.js +0 -127
  418. data/framework_components/roomcast-package-creator/src/app/components/ConfigField.js +0 -50
  419. data/framework_components/roomcast-package-creator/src/app/components/ConfigurationsPanel.js +0 -112
  420. data/framework_components/roomcast-package-creator/src/app/components/ContextButton.js +0 -37
  421. data/framework_components/roomcast-package-creator/src/app/components/GlobalButton.js +0 -28
  422. data/framework_components/roomcast-package-creator/src/app/components/NutellaMixin.js +0 -58
  423. data/framework_components/roomcast-package-creator/src/app/components/PoolHeader.js +0 -67
  424. data/framework_components/roomcast-package-creator/src/app/components/PoolRow.js +0 -160
  425. data/framework_components/roomcast-package-creator/src/app/components/ResourceFamilyPool.js +0 -168
  426. data/framework_components/roomcast-package-creator/src/app/components/ResourcesPanel.js +0 -76
  427. data/framework_components/roomcast-package-creator/src/app/components/main.js +0 -239
  428. data/framework_components/roomcast-package-creator/src/app/components/material-ui/dialog_.jsx +0 -66
  429. data/framework_components/roomcast-package-creator/src/app/components/material-ui/drop-down-menu.jsx +0 -159
  430. data/framework_components/roomcast-package-creator/src/app/components/material-ui/enhanced-textarea.jsx +0 -113
  431. data/framework_components/roomcast-package-creator/src/app/components/material-ui/floating-action-button_.jsx +0 -73
  432. data/framework_components/roomcast-package-creator/src/app/components/material-ui/menu-item.jsx +0 -100
  433. data/framework_components/roomcast-package-creator/src/app/components/material-ui/menu.jsx +0 -211
  434. data/framework_components/roomcast-package-creator/src/app/components/material-ui/overlay.jsx +0 -21
  435. data/framework_components/roomcast-package-creator/src/app/components/material-ui/raised-button_.jsx +0 -72
  436. data/framework_components/roomcast-package-creator/src/app/components/material-ui/right-nav.jsx +0 -108
  437. data/framework_components/roomcast-package-creator/src/app/components/material-ui/ripple.jsx +0 -52
  438. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/drop-down-arrow.jsx +0 -17
  439. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/navigation-chevron-left.jsx +0 -16
  440. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/navigation-chevron-right.jsx +0 -17
  441. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/navigation-menu.jsx +0 -16
  442. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/svg-icon.jsx +0 -23
  443. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/toggle-check-box-checked.jsx +0 -16
  444. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/toggle-check-box-outline-blank.jsx +0 -16
  445. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/toggle-radio-button-off.jsx +0 -16
  446. data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/toggle-radio-button-on.jsx +0 -16
  447. data/framework_components/roomcast-package-creator/src/app/components/material-ui/text-field.jsx +0 -215
  448. data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/css-event.js +0 -52
  449. data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/date-time.js +0 -132
  450. data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/dom.js +0 -71
  451. data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/events.js +0 -34
  452. data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/key-code.js +0 -10
  453. data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/key-line.js +0 -13
  454. data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/unique-id.js +0 -7
  455. data/framework_components/roomcast-package-creator/src/css/font-awesome.min.css +0 -4
  456. data/framework_components/roomcast-package-creator/src/css/ionicons.min.css +0 -11
  457. data/framework_components/roomcast-package-creator/src/fonts/FontAwesome.otf +0 -0
  458. data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.eot +0 -0
  459. data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.svg +0 -565
  460. data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.ttf +0 -0
  461. data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.woff +0 -0
  462. data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.woff2 +0 -0
  463. data/framework_components/roomcast-package-creator/src/fonts/ionicons.eot +0 -0
  464. data/framework_components/roomcast-package-creator/src/fonts/ionicons.svg +0 -2230
  465. data/framework_components/roomcast-package-creator/src/fonts/ionicons.ttf +0 -0
  466. data/framework_components/roomcast-package-creator/src/fonts/ionicons.woff +0 -0
  467. data/framework_components/roomcast-package-creator/src/less/drop-down-icon.less +0 -43
  468. data/framework_components/roomcast-package-creator/src/less/drop-down-menu.less +0 -77
  469. data/framework_components/roomcast-package-creator/src/less/enhanced-textarea.less +0 -16
  470. data/framework_components/roomcast-package-creator/src/less/main.less +0 -514
  471. data/framework_components/roomcast-package-creator/src/less/menu-item.less +0 -71
  472. data/framework_components/roomcast-package-creator/src/less/menu.less +0 -50
  473. data/framework_components/roomcast-package-creator/src/less/my_overrides.less +0 -15
  474. data/framework_components/roomcast-package-creator/src/less/svg-icon.less +0 -11
  475. data/framework_components/roomcast-package-creator/src/less/text-field.less +0 -168
  476. data/framework_components/roomcast-teacher-controls/.gitignore +0 -2
  477. data/framework_components/roomcast-teacher-controls/README.md +0 -9
  478. data/framework_components/roomcast-teacher-controls/dist/app.js +0 -43614
  479. data/framework_components/roomcast-teacher-controls/dist/main.css +0 -3043
  480. data/framework_components/roomcast-teacher-controls/dist/nutella_lib.js +0 -5128
  481. data/framework_components/roomcast-teacher-controls/gulp/config.js +0 -51
  482. data/framework_components/roomcast-teacher-controls/gulp/tasks/browserify.js +0 -77
  483. data/framework_components/roomcast-teacher-controls/gulp/tasks/build.js +0 -3
  484. data/framework_components/roomcast-teacher-controls/gulp/tasks/css.js +0 -7
  485. data/framework_components/roomcast-teacher-controls/gulp/tasks/default.js +0 -3
  486. data/framework_components/roomcast-teacher-controls/gulp/tasks/fonts.js +0 -7
  487. data/framework_components/roomcast-teacher-controls/gulp/tasks/less.js +0 -16
  488. data/framework_components/roomcast-teacher-controls/gulp/tasks/mui-fonts.js +0 -7
  489. data/framework_components/roomcast-teacher-controls/gulp/tasks/nutella.js +0 -7
  490. data/framework_components/roomcast-teacher-controls/gulp/tasks/setWatch.js +0 -5
  491. data/framework_components/roomcast-teacher-controls/gulp/tasks/svgs.js +0 -7
  492. data/framework_components/roomcast-teacher-controls/gulp/tasks/watch.js +0 -12
  493. data/framework_components/roomcast-teacher-controls/gulp/util/bundleLogger.js +0 -21
  494. data/framework_components/roomcast-teacher-controls/gulp/util/handleErrors.js +0 -15
  495. data/framework_components/roomcast-teacher-controls/gulpfile.js +0 -16
  496. data/framework_components/roomcast-teacher-controls/index.html +0 -37
  497. data/framework_components/roomcast-teacher-controls/nutella.json +0 -6
  498. data/framework_components/roomcast-teacher-controls/package.json +0 -38
  499. data/framework_components/roomcast-teacher-controls/src/app/app.js +0 -28
  500. data/framework_components/roomcast-teacher-controls/src/app/components/ActivitiesGrid.js +0 -87
  501. data/framework_components/roomcast-teacher-controls/src/app/components/ActivityCard.js +0 -183
  502. data/framework_components/roomcast-teacher-controls/src/app/components/Footer.js +0 -37
  503. data/framework_components/roomcast-teacher-controls/src/app/components/NutellaMixin.js +0 -58
  504. data/framework_components/roomcast-teacher-controls/src/app/components/main.js +0 -125
  505. data/framework_components/roomcast-teacher-controls/src/less/main.less +0 -196
  506. data/framework_components/roomcast-teacher-controls/src/less/my_overrides.less +0 -14
@@ -1,27 +0,0 @@
1
- # beacon-cloud-bot
2
- This is a RoomPlaces bot, it keep tracks of information about beacons in order to decouple low level technical details with the resource name needed by RoomPlaces.
3
-
4
- In order to interact with this bot you can use the library Nutella client library using the methods described below:
5
-
6
- ## Publish - Subscribe channels
7
-
8
- | Channel | Function | Direction | Content |
9
- | ------------------------------- | -------------------------- | ----------------- | -------------------------------------------------- |
10
- | /beacon/beacon/add | Add a new beacon | client -> server | \<beacon\> |
11
- | /beacon/beacon/remove | Remove a beacon | client -> server | {rid: ''} |
12
- | /beacon/beacon/added | Remove a beacon | client -> server | {beacons: [\<beacon\>*]} |
13
- | /beacon/beacon/removed | Remove a beacon | client -> server | {beacons: [\<beacon\>*]} |
14
-
15
-
16
-
17
- ## Request - Response channels
18
-
19
- | Channel | Function | Request -> Response | Request | Response |
20
- | -------------------------- | -------------------------- | ------------------- | ----------------- | ------------------------------------- |
21
- | /beacon/beacons | Request all the beacons | client -> server | {} | {beacons: [\<beacon\>*]} |
22
- | /beacon/uuids | Request all the uuids | client -> server | {} | {uuids: [''*]} |
23
- | /beacon/virtual_beacon | Request new iBeacon codes | client -> server | {rid:'\<string\>} | {major: \<int\>, minor: \<int\>} | |
24
-
25
-
26
-
27
- \<beacon\> ::= {rid: '', major: '\<number\>', minor: '\<number\>'}
@@ -1,150 +0,0 @@
1
- require 'nutella_lib'
2
- require 'json'
3
-
4
- require_relative '../../lib/config/runlist'
5
- require_relative '../../lib/config/config'
6
- require_relative '../../nutella_lib/framework_core'
7
-
8
- # Initialize nutella
9
- nutella.f.init(Nutella.config['broker'], 'beacon-cloud-bot')
10
-
11
- puts "Beacon cloud initialization"
12
-
13
- # Open the resources database
14
- beacons = nutella.f.persist.get_json_object_store("beacons")
15
-
16
- # Contains virtual beacon codes that are created for iPads
17
- virtualBeacons = {}
18
- major = 0
19
- minor = 0
20
- uuid = '00000000-0000-0000-0000-000000000000'
21
-
22
- # Create new beacon
23
- nutella.f.net.subscribe("beacon/beacon/add", lambda do |message, from|
24
- puts message
25
- rid = message["rid"]
26
- uuid = message["uuid"]
27
- major = message["major"]
28
- minor = message["minor"]
29
-
30
- if rid != nil && uuid != nil && major != nil && minor != nil
31
-
32
- if beacons[rid] == nil
33
- beacons[rid] = {
34
- :rid => rid,
35
- :uuid => uuid,
36
- :major => major,
37
- :minor => minor
38
- }
39
-
40
- publishBeaconAdd(beacons[rid])
41
- puts("Added beacon")
42
- end
43
- end
44
- end)
45
-
46
- # Create new beacon
47
- nutella.f.net.subscribe("beacon/beacon/remove", lambda do |message, from|
48
- puts message
49
- rid = message["rid"]
50
-
51
- if rid != nil
52
- if beacons[rid] != nil
53
- beacon = beacons[rid]
54
-
55
- beacons.delete(rid)
56
-
57
- publishBeaconRemove(beacon)
58
- puts("Removed resource")
59
- end
60
- end
61
- end)
62
-
63
- # Publish an added beacon
64
- def publishBeaconAdd(beacon)
65
- puts beacon
66
- nutella.f.net.publish("beacon/beacons/added", {:beacons => [beacon]})
67
- nutella.f.net.publish_to_all_runs("beacon/beacons/added", {:beacons => [beacon]})
68
- end
69
-
70
- # Publish an remove beacon
71
- def publishBeaconRemove(beacon)
72
- puts beacon
73
- nutella.f.net.publish("beacon/beacons/removed", {:beacons => [beacon]})
74
- nutella.f.net.publish_to_all_runs("beacon/beacons/removed", {:beacons => [beacon]})
75
- end
76
-
77
- # Request all the beacons
78
- nutella.f.net.handle_requests("beacon/beacons", lambda do |request, from|
79
- puts "Send the beacon list"
80
- beaconList = []
81
-
82
- beacons.to_h.each do |key, beacon|
83
- beaconList.push(beacon)
84
- end
85
-
86
- virtualBeacons.each do |key, beacon|
87
- beaconList.push(beacon)
88
- end
89
- {:beacons => beaconList}
90
- end)
91
-
92
- # Request all the beacons
93
- nutella.f.net.handle_requests_on_all_runs("beacon/beacons", lambda do |request, app_id, run_id, from|
94
- puts "Send the beacon list"
95
- beaconList = []
96
-
97
- beacons.to_h.each do |key, beacon|
98
- beaconList.push(beacon)
99
- end
100
-
101
- virtualBeacons.each do |key, beacon|
102
- beaconList.push(beacon)
103
- end
104
- {:beacons => beaconList}
105
- end)
106
-
107
- # Request all the UUIDs
108
- nutella.f.net.handle_requests_on_all_runs("beacon/uuids", lambda do |request, app_id, run_id, from|
109
- puts "Send the uuid list"
110
- uuidList = []
111
- beacons.to_h.each do |key, beacon|
112
- if !uuidList.include? beacon["uuid"]
113
- uuidList.push(beacon["uuid"])
114
- end
115
- end
116
-
117
- {:uuids => uuidList}
118
- end)
119
-
120
- # Request virtual beacon codes
121
- nutella.f.net.handle_requests_on_all_runs("beacon/virtual_beacon", lambda do |request, app_id, run_id, from|
122
- if request["rid"] != nil
123
- rid = request["rid"]
124
- virtualBeacon = virtualBeacons[rid]
125
- if virtualBeacon == nil
126
- puts "Create new virtual beacon major: #{major}, minor: #{minor}"
127
- virtualBeacons[rid] = {
128
- :rid => rid,
129
- :uuid => uuid,
130
- :major => "#{major}",
131
- :minor => "#{minor}",
132
- :virtual => true
133
- }
134
- minor += 1
135
- if minor != minor % 65536
136
- major += 1
137
- end
138
- minor = minor % 65536
139
- virtualBeacon = virtualBeacons[rid]
140
- publishBeaconAdd(virtualBeacon)
141
- puts("Added virtual-beacon")
142
- end
143
- virtualBeacon
144
- end
145
- end)
146
-
147
- puts "Beacon cloud Initialization completed"
148
-
149
- # Just sit there waiting for messages to come
150
- nutella.f.net.listen
@@ -1 +0,0 @@
1
- {"beacon14":{"rid":"beacon14","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"14"},"beacon8":{"rid":"beacon8","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"8"},"beacon1":{"rid":"beacon1","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"10000","minor":"1"},"beacon5":{"rid":"beacon5","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"20000","minor":"5"},"beacon3":{"rid":"beacon3","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"10000","minor":"3"},"beacon2":{"rid":"beacon2","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"10000","minor":"2"},"beacon15":{"rid":"beacon15","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"15"},"beacon7":{"rid":"beacon7","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"7"},"beacon18":{"rid":"beacon18","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"18"},"beacon16":{"rid":"beacon16","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"16"},"beacon13":{"rid":"beacon13","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"13"},"beacon12":{"rid":"beacon12","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"12"},"beacon10":{"rid":"beacon10","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"12745","minor":"10"},"beacon9":{"rid":"beacon9","uuid":"B9407F30-F5F8-466E-AFF9-25556B57FE6D","major":"30000","minor":"9"}}
@@ -1,5 +0,0 @@
1
- #!/bin/sh
2
-
3
- BASEDIR=$(dirname $0)
4
- ruby $BASEDIR/beacon_cloud_bot.rb > /dev/null 2>&1 &
5
- echo $! > $BASEDIR/.pid
@@ -1,42 +0,0 @@
1
- # Logger bot
2
- # ----------
3
- #
4
- # This bot is in charge of recording all the messages that are sent by
5
- # all components in all runs. It records all info sent to channels:
6
- # - `/nutella/logging`
7
- # - `/nutella/apps/<app_id>/logging`
8
- # - `/nutella/apps/<app_id>/runs/<run_id>/logging`
9
- # All logs are appended to a MongoDB collection called `logs`, inside the
10
- # `nutella` database.
11
- #
12
- # -----------------------------------------------------------------------------
13
-
14
- require_relative '../../lib/config/runlist'
15
- require_relative '../../lib/config/config'
16
- require_relative '../../nutella_lib/framework_core'
17
-
18
- require_relative 'utils'
19
-
20
- # Initialize this bot as framework component
21
- nutella.f.init(Nutella.config['broker'], 'example_framework_bot')
22
-
23
- # Get a mongo persisted collection
24
- logs = nutella.f.persist.get_mongo_collection_store 'logs'
25
-
26
- # Listen for run-level log messages
27
- nutella.f.net.subscribe_to_all_runs('logging', lambda do |payload, app_id, run_id, from|
28
- logs.push assemble_log(payload, from)
29
- end)
30
-
31
- # Listen for app-level log messages
32
- nutella.f.net.subscribe_to_all_apps('logging', lambda do |payload, app_id, from|
33
- logs.push assemble_log(payload, from)
34
- end)
35
-
36
- # Listen for framework-level log messages
37
- nutella.f.net.subscribe('logging', lambda do |payload, from|
38
- logs.push assemble_log(payload, from)
39
- end)
40
-
41
- # Listen and process messages as they come
42
- nutella.f.net.listen
@@ -1,5 +0,0 @@
1
- #!/bin/sh
2
-
3
- BASEDIR=$(dirname $0)
4
- ruby $BASEDIR/logging_bot.rb > /dev/null 2>&1 &
5
- echo $! > $BASEDIR/.pid
@@ -1,8 +0,0 @@
1
- # Utility functions for logging bot
2
-
3
- def assemble_log(payload, from)
4
- h = Hash.new
5
- h.merge! payload
6
- h['from'] = from
7
- h
8
- end
@@ -1,34 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /test/tmp/
9
- /test/version_tmp/
10
- /tmp/
11
-
12
- ## Specific to RubyMotion:
13
- .dat*
14
- .repl_history
15
- build/
16
-
17
- ## Documentation cache and generated files:
18
- /.yardoc/
19
- /_yardoc/
20
- /doc/
21
- /rdoc/
22
-
23
- ## Environment normalisation:
24
- /.bundle/
25
- /lib/bundler/man/
26
-
27
- # for a library or gem, you might want to ignore these files since the code is
28
- # intended to run in multiple environments; otherwise, check them in:
29
- # Gemfile.lock
30
- # .ruby-version
31
- # .ruby-gemset
32
-
33
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
34
- .rvmrc
@@ -1 +0,0 @@
1
- # monitoring-bot
@@ -1,472 +0,0 @@
1
- require_relative '../../lib/config/runlist'
2
- require_relative '../../lib/config/config'
3
- require_relative '../../nutella_lib/framework_core'
4
- require_relative '../../lib/commands/util/components_list'
5
- require 'active_support/core_ext/object/deep_dup'
6
- require 'mongo'
7
- require 'bson'
8
-
9
-
10
- # Initialize this bot as framework component
11
- nutella.f.init(Nutella.config['broker'], 'monitoring_bot')
12
-
13
- # Open the resources database
14
- $messages = nutella.f.persist.get_json_object_store('messages')
15
-
16
- # Application structure
17
- $applications = {}
18
-
19
- # MongoDB client
20
- Mongo::Logger.logger.level = ::Logger::INFO
21
- client = Mongo::Client.new([Nutella.config['broker']], :database => 'nutella')
22
-
23
- puts 'Monitoring bot initialization'
24
-
25
- def send_subscription_mail(mail, application, instance = nil, component = nil)
26
- object = application
27
-
28
- if instance != nil
29
- object = object + ' > ' + instance
30
- if rcomponent != nil
31
- object = object + ' > ' + component
32
- end
33
- end
34
-
35
- puts "Send mail to " + mail + "message: " + object
36
-
37
-
38
- template_name = 'Nutella subscription'
39
- template_content = [
40
- {
41
- :name=> 'main',
42
- :content=> "Congratulation: subscription to component
43
- <b>#{object}</b>
44
- has been succeded."
45
- }
46
- ]
47
- message = {
48
- :subject=> "Subscription to #{object}",
49
- :from_name=> 'Nutella Monitoring Interface',
50
- :to=>[
51
- {
52
- :email=> mail,
53
- # :name=> ""
54
- }
55
- ],
56
- :from_email=>'nutellamonitoring@gmail.com'
57
- }
58
- end
59
-
60
- def send_notification_mail(mail, application, instance = nil, component = nil)
61
- object = application
62
-
63
- if instance != nil
64
- object = object + ' > ' + instance
65
- if component != nil
66
- object = object + ' > ' + component
67
- end
68
- end
69
-
70
- puts "Send mail to " + mail + "message: " + object
71
-
72
- template_name = 'Nutella alert'
73
- template_content = [
74
- {
75
- :name=> 'main',
76
- :content=> "Attention: component
77
- <b>#{object}</b>
78
- had a problem and went down."
79
- }
80
- ]
81
- message = {
82
- :subject=> "Alert: #{object} went down",
83
- :from_name=> 'Nutella Monitoring Interface',
84
- :to=>[
85
- {
86
- :email=> mail,
87
- # :name=> ""
88
- }
89
- ],
90
- :from_email=>'nutellamonitoring@gmail.com'
91
- }
92
- end
93
-
94
- # Add an alert on a specific application/instance/component
95
- nutella.f.net.subscribe_to_all_runs('monitoring/alert/add', lambda do |message, appId, runId, from|
96
- application = message['application']
97
- instance = message['instance']
98
- component = message['component']
99
- mail = message['mail']
100
-
101
- create_if_not_present(application, instance, component)
102
-
103
- if application != nil
104
- puts "Subscribed to #{application} with mail #{mail}";
105
- end
106
-
107
- if application != nil && instance != nil && component != nil
108
- a = $applications[application]
109
- if a['instances'][instance]['components'][component]['alert'] == nil
110
- a['instances'][instance]['components'][component]['alert'] = []
111
- end
112
- if !a['instances'][instance]['components'][component]['alert'].include? mail
113
- a['instances'][instance]['components'][component]['alert'].push(mail)
114
- end
115
- $applications[application] = a
116
- elsif application != nil && instance != nil
117
- a = $applications[application]
118
- if a['instances'][instance]['alert'] == nil
119
- a['instances'][instance]['alert'] = []
120
- end
121
- if !a['instances'][instance]['alert'].include? mail
122
- a['instances'][instance]['alert'].push(mail)
123
- end
124
- $applications[application] = a
125
- elsif application != nil
126
- a = $applications[application]
127
- if a['alert'] == nil
128
- a['alert'] = []
129
- end
130
- emails = a['alert']
131
- if !emails.include? mail
132
- emails.push(mail)
133
- send_subscription_mail(mail, application)
134
- end
135
- $applications[application] = a
136
- end
137
-
138
- end)
139
-
140
- # Listen for published messages
141
- =begin
142
- nutella.net.subscribe('#', lambda do |message, channel, from|
143
- puts message
144
- puts channel
145
- #application = from['app_id']
146
- #instance = from['run_id']
147
- #component = from['component_id']
148
- puts from
149
- #puts application, instance, component
150
-
151
- #create_if_not_present(application, instance, component)
152
-
153
- #if !($applications[application]['instances'][instance]['components'][component]['publish'].include? channel)
154
- # $applications[application]['instances'][instance]['components'][component]['publish'].push(channel)
155
- #end
156
-
157
- end)
158
- =end
159
-
160
- # Add an alert on a specific application/instance/component
161
- nutella.f.net.subscribe_to_all_runs('monitoring/alert/remove', lambda do |message, appId, runId, from|
162
- puts "Delete alert"
163
- puts message
164
- application = message['application']
165
- instance = message['instance']
166
- component = message['component']
167
- mail = message['mail']
168
-
169
- if application != nil && instance != nil && component != nil
170
- a = $applications[application]
171
- a['instances'][instance]['components'][component]['alert'] -=[mail]
172
- $applications[application] = a
173
- elsif application != nil && instance != nil
174
- a = $applications[application]
175
- a['instances'][instance]['alert'] -= [mail]
176
- $applications[application] = a
177
- elsif application != nil
178
- a = $applications[application]
179
- a['alert'] -= [mail]
180
- puts a['alert']
181
- $applications[application] = a
182
- end
183
- end)
184
-
185
- # Listen for subscribe
186
- # Listen for request
187
- # Listen for handle_request
188
-
189
- # Request the list of alert for an application/instance/component
190
- nutella.f.net.handle_requests_on_all_runs('monitoring/alert', lambda do |request, appId, runId, from|
191
- puts 'Sending alert list'
192
- application = request['application']
193
- instance = request['instance']
194
- component = request['component']
195
-
196
- alert = nil
197
-
198
- begin
199
- if application != nil && instance != nil && component != nil
200
- a = $applications[application]
201
- alert = a['instances'][instance]['components'][component]['alert']
202
- elsif application != nil && instance != nil
203
- a = $applications[application]
204
- alert = a['instances'][instance]['alert']
205
- elsif application != nil
206
- a = $applications[application]
207
- alert = a['alert']
208
- end
209
- rescue
210
- end
211
-
212
- if alert == nil
213
- alert = []
214
- end
215
-
216
- {:emails => alert}
217
- end)
218
-
219
- # Create the application structure if it is not present
220
- def create_if_not_present(application, instance=nil, component=nil)
221
-
222
- a = $applications[application]
223
-
224
- if a == nil
225
- a = {
226
- 'name' => application,
227
- 'instances' => {}
228
- }
229
- end
230
-
231
- begin
232
- if instance != nil && a['instances'][instance] == nil
233
- a['instances'][instance] = {
234
- 'name' => instance,
235
- 'components' => {}
236
- }
237
- end
238
- rescue
239
- a['instances'][instance] = {
240
- 'name' => instance,
241
- 'components' => {}
242
- }
243
- end
244
-
245
- begin
246
- if component != nil && instance != nil && a['instances'][instance]['components'][component] == nil
247
- a['instances'][instance]['components'][component] = {
248
- 'name' => component,
249
- 'publish' => [],
250
- 'subscribe' => [],
251
- 'request' => [],
252
- 'handle_request' => []
253
- }
254
- end
255
- rescue
256
- a['instances'][instance]['components'][component] = {
257
- 'name' => component,
258
- 'publish' => [],
259
- 'subscribe' => [],
260
- 'request' => [],
261
- 'handle_request' => []
262
- }
263
- end
264
-
265
- $applications[application] = a
266
-
267
- end
268
-
269
- nutella.f.net.handle_requests_on_all_runs('monitoring/application', lambda do |request, appId, runId, from|
270
- apps = []
271
-
272
- $applications.each do |_, application|
273
- app = application.deep_dup
274
- app['instances'] = []
275
- if application['instances'] != nil
276
- application['instances'].each do |_, instance|
277
- inst = instance.deep_dup
278
-
279
- app['instances'].push(inst)
280
-
281
- inst['components'] = []
282
- if instance['components'] != nil
283
- instance['components'].each do |_, component|
284
- comp = component.deep_dup
285
- inst['components'].push(comp)
286
- end
287
- end
288
- end
289
- end
290
- apps.push(app)
291
- end
292
- {:applications => apps}
293
- end)
294
-
295
- nutella.f.net.handle_requests_on_all_runs('monitoring/message', lambda do |request, appId, runId, from|
296
-
297
- application = request['application']
298
- instance = request['instance']
299
- channel = request['channel']
300
-
301
- collection = client['dump']
302
-
303
- messages = []
304
-
305
- timestamp_low = (Time.now-3600).to_f # Last hour
306
- timestamp_high = Time.now.to_f
307
- object_id_low = BSON::ObjectId.from_string((timestamp_low).floor.to_s(16) + "0000000000000000")
308
- object_id_high = BSON::ObjectId.from_string((timestamp_high).floor.to_s(16) + "0000000000000000")
309
-
310
-
311
- collection .find({ '_id' => { '$gt' => object_id_low, '$lt' => object_id_high }, 'channel' => "/nutella/apps/#{application}/runs/#{instance}/#{channel}"}).sort({'_id' => -1}).limit(50).each do |message|
312
- m = {
313
- 'from' => '',
314
- 'to' => '',
315
- 'from' => '',
316
- 'date' => message['_id'].generation_time.getlocal.to_s,
317
- 'type' => message['message']['type'],
318
- 'payload' => message['message']['payload']
319
- }
320
- messages.push(m)
321
- end
322
-
323
- {:messages => messages}
324
- end)
325
-
326
- # Catch publish messages
327
- nutella.f.net.subscribe_to_all_runs("#", lambda do |channel, payload, app_id, run_id, from|
328
-
329
- component_id = from['component_id']
330
-
331
- if component_id != nil
332
- create_if_not_present(app_id, run_id, component_id)
333
-
334
- publish = $applications[app_id]['instances'][run_id]['components'][component_id]['publish']
335
-
336
- if not publish.include? ({'channel' => channel})
337
- publish.push({'channel' => channel})
338
- end
339
-
340
- $applications[app_id]['instances'][run_id]['components'][component_id]['publish'] = publish
341
-
342
- end
343
-
344
- end)
345
-
346
- # Catch subscribe / handle_request messages
347
- nutella.f.net.subscribe_to_all_runs("subscriptions", lambda do |payload, app_id, run_id, from|
348
-
349
- component_id = from['component_id']
350
- type = payload['type']
351
- channel = nutella.net.un_pad_channel(payload['channel'], app_id, run_id)
352
-
353
- if type == 'subscribe'
354
- create_if_not_present(app_id, run_id, component_id)
355
-
356
- subscribe = $applications[app_id]['instances'][run_id]['components'][component_id]['subscribe']
357
-
358
- if not subscribe.include? ({'channel' => channel})
359
- subscribe.push({'channel' => channel})
360
- end
361
-
362
- $applications[app_id]['instances'][run_id]['components'][component_id]['subscribe'] = subscribe
363
-
364
- end
365
-
366
- if type == 'handle_requests'
367
- create_if_not_present(app_id, run_id, component_id)
368
-
369
- handle_request = $applications[app_id]['instances'][run_id]['components'][component_id]['handle_request']
370
-
371
- if not handle_request.include? ({'channel' => channel})
372
- handle_request.push({'channel' => channel})
373
- end
374
-
375
- $applications[app_id]['instances'][run_id]['components'][component_id]['handle_request'] = handle_request
376
-
377
- end
378
-
379
- end)
380
-
381
- # Catch requests
382
- nutella.f.net.catch_requests_on_all_runs_wildcard(lambda do |channel, payload, app_id, run_id, from|
383
-
384
- component_id = from['component_id']
385
-
386
- if component_id != nil
387
-
388
- create_if_not_present(app_id, run_id, component_id)
389
-
390
- request = $applications[app_id]['instances'][run_id]['components'][component_id]['request']
391
-
392
- unless request.include? ({'channel' => channel})
393
- request.push({'channel' => channel})
394
- end
395
-
396
- $applications[app_id]['instances'][run_id]['components'][component_id]['request'] = request
397
-
398
- end
399
-
400
-
401
- end)
402
-
403
-
404
- nutella.f.net.subscribe_to_all_runs("pings", lambda do |payload, app_id, run_id, from|
405
-
406
- component_id = from['component_id']
407
-
408
- create_if_not_present(app_id, run_id, component_id)
409
-
410
- $applications[app_id]['instances'][run_id]['components'][component_id]['timestamp'] = Time.now.to_f
411
-
412
- end)
413
-
414
- # TODO implement framework pings
415
-
416
- puts 'Initialization completed'
417
-
418
- while sleep 0.25
419
- n = Nutella.runlist.all_runs
420
- Nutella.runlist.all_apps.each do |app_id, _|
421
- Nutella.runlist.runs_for_app(app_id).each do |run_id|
422
- pathBots = "#{Nutella.runlist.app_path(app_id)}/bots"
423
- pathInterfaces = "#{Nutella.runlist.app_path(app_id)}/interfaces"
424
-
425
- create_if_not_present(app_id, run_id)
426
-
427
- ComponentsList.for_each_component_in_dir(pathBots) do |comp_name|
428
- create_if_not_present(app_id, run_id, comp_name)
429
- end
430
-
431
- ComponentsList.for_each_component_in_dir(pathInterfaces) do |comp_name|
432
- create_if_not_present(app_id, run_id, comp_name)
433
- end
434
- end
435
- end
436
-
437
- $applications.each do |_, application|
438
- appProblems = 0
439
- application['instances'].each do |_, instance|
440
- instanceProblems = 0
441
- instance['components'].each do |_, component|
442
- if component['timestamp'] == nil || Time.now.to_f - component['timestamp'] > 16.0
443
- appProblems += 1
444
- instanceProblems += 1
445
- if component['problem'] != true
446
- component['problem'] = true
447
- #puts "Set problem on #{application['name']} > #{instance['name']} > #{component['name']}}"
448
- if component['alert'] != nil
449
- component['alert'].each do |mail|
450
- send_notification_mail(mail, application['name'], instance['name'], component['name'])
451
- end
452
- end
453
- if instance['alert'] != nil
454
- instance['alert'].each do |mail|
455
- send_notification_mail(mail, application['name'], instance['name'], component['name'])
456
- end
457
- end
458
- if application['alert'] != nil
459
- application['alert'].each do |mail|
460
- send_notification_mail(mail, application['name'], instance['name'], component['name'])
461
- end
462
- end
463
- end
464
- else
465
- component['problem'] = false
466
- end
467
- instance['problems'] = instanceProblems
468
- end
469
- application['problems'] = appProblems
470
- end
471
- end
472
- end