nutella_framework 0.4.13 → 0.4.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/VERSION +1 -1
- data/framework_components/order.json +2 -1
- data/framework_components/roomcast-bot/data/default/channels-data.json +1 -0
- data/framework_components/roomcast-bot/data/default/channels.json +1 -0
- data/framework_components/roomcast-bot/data/default/configs.json +1 -0
- data/framework_components/roomcast-bot/data/default/mapping.json +1 -0
- data/framework_components/roomcast-bot/roomcast_bot.rb +178 -0
- data/framework_components/roomcast-bot/startup +5 -0
- data/framework_components/roomcast-channel-creator/.gitignore +2 -0
- data/framework_components/roomcast-channel-creator/README.md +9 -0
- data/framework_components/roomcast-channel-creator/dist/app.js +29607 -0
- data/framework_components/roomcast-channel-creator/dist/css/font-awesome.min.css +4 -0
- data/framework_components/roomcast-channel-creator/dist/css/ionicons.min.css +11 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/FontAwesome.otf +0 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.eot +0 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.svg +565 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.ttf +0 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.woff +0 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/fontawesome-webfont.woff2 +0 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/ionicons.eot +0 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/ionicons.svg +2230 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/ionicons.ttf +0 -0
- data/framework_components/roomcast-channel-creator/dist/fonts/ionicons.woff +0 -0
- data/framework_components/roomcast-channel-creator/dist/main.css +3304 -0
- data/framework_components/roomcast-channel-creator/dist/nutella_lib.js +5068 -0
- data/framework_components/roomcast-channel-creator/gulp/config.js +51 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/browserify.js +77 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/build.js +3 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/css.js +7 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/default.js +3 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/fonts.js +7 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/less.js +16 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/mui-fonts.js +7 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/nutella.js +7 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/setWatch.js +5 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/svgs.js +7 -0
- data/framework_components/roomcast-channel-creator/gulp/tasks/watch.js +12 -0
- data/framework_components/roomcast-channel-creator/gulp/util/bundleLogger.js +21 -0
- data/framework_components/roomcast-channel-creator/gulp/util/handleErrors.js +15 -0
- data/framework_components/roomcast-channel-creator/gulpfile.js +16 -0
- data/framework_components/roomcast-channel-creator/index.html +52 -0
- data/framework_components/roomcast-channel-creator/nutella.json +6 -0
- data/framework_components/roomcast-channel-creator/package.json +37 -0
- data/framework_components/roomcast-channel-creator/src/app/app.js +22 -0
- data/framework_components/roomcast-channel-creator/src/app/components/AnimationMixin.js +44 -0
- data/framework_components/roomcast-channel-creator/src/app/components/CataloguePage.js +130 -0
- data/framework_components/roomcast-channel-creator/src/app/components/Channel.js +378 -0
- data/framework_components/roomcast-channel-creator/src/app/components/ColorCell.js +28 -0
- data/framework_components/roomcast-channel-creator/src/app/components/ColorPicker.js +53 -0
- data/framework_components/roomcast-channel-creator/src/app/components/DetailPage.js +66 -0
- data/framework_components/roomcast-channel-creator/src/app/components/NutellaMixin.js +40 -0
- data/framework_components/roomcast-channel-creator/src/app/components/PageSliderMixin.js +68 -0
- data/framework_components/roomcast-channel-creator/src/app/components/Router.js +52 -0
- data/framework_components/roomcast-channel-creator/src/app/components/TopBar.js +86 -0
- data/framework_components/roomcast-channel-creator/src/app/components/main.js +333 -0
- data/framework_components/roomcast-channel-creator/src/css/font-awesome.min.css +4 -0
- data/framework_components/roomcast-channel-creator/src/css/ionicons.min.css +11 -0
- data/framework_components/roomcast-channel-creator/src/fonts/FontAwesome.otf +0 -0
- data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.eot +0 -0
- data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.svg +565 -0
- data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.ttf +0 -0
- data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.woff +0 -0
- data/framework_components/roomcast-channel-creator/src/fonts/fontawesome-webfont.woff2 +0 -0
- data/framework_components/roomcast-channel-creator/src/fonts/ionicons.eot +0 -0
- data/framework_components/roomcast-channel-creator/src/fonts/ionicons.svg +2230 -0
- data/framework_components/roomcast-channel-creator/src/fonts/ionicons.ttf +0 -0
- data/framework_components/roomcast-channel-creator/src/fonts/ionicons.woff +0 -0
- data/framework_components/roomcast-channel-creator/src/less/main.less +500 -0
- data/framework_components/roomcast-channel-creator/src/less/my_overrides.less +14 -0
- data/framework_components/roomcast-package-creator/.gitignore +2 -0
- data/framework_components/roomcast-package-creator/README.md +9 -0
- data/framework_components/roomcast-package-creator/dist/app.js +36624 -0
- data/framework_components/roomcast-package-creator/dist/css/font-awesome.min.css +4 -0
- data/framework_components/roomcast-package-creator/dist/css/ionicons.min.css +11 -0
- data/framework_components/roomcast-package-creator/dist/fonts/FontAwesome.otf +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.eot +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.svg +565 -0
- data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.ttf +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.woff +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/fontawesome-webfont.woff2 +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/ionicons.eot +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/ionicons.svg +2230 -0
- data/framework_components/roomcast-package-creator/dist/fonts/ionicons.ttf +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/ionicons.woff +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/material-ui-icons.eot +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/material-ui-icons.svg +14 -0
- data/framework_components/roomcast-package-creator/dist/fonts/material-ui-icons.ttf +0 -0
- data/framework_components/roomcast-package-creator/dist/fonts/material-ui-icons.woff +0 -0
- data/framework_components/roomcast-package-creator/dist/main.css +5932 -0
- data/framework_components/roomcast-package-creator/dist/nutella_lib.js +5068 -0
- data/framework_components/roomcast-package-creator/gulp/config.js +51 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/browserify.js +77 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/build.js +3 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/css.js +7 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/default.js +3 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/fonts.js +7 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/less.js +16 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/mui-fonts.js +7 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/nutella.js +7 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/setWatch.js +5 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/svgs.js +7 -0
- data/framework_components/roomcast-package-creator/gulp/tasks/watch.js +12 -0
- data/framework_components/roomcast-package-creator/gulp/util/bundleLogger.js +21 -0
- data/framework_components/roomcast-package-creator/gulp/util/handleErrors.js +15 -0
- data/framework_components/roomcast-package-creator/gulpfile.js +16 -0
- data/framework_components/roomcast-package-creator/index.html +51 -0
- data/framework_components/roomcast-package-creator/nutella.json +6 -0
- data/framework_components/roomcast-package-creator/package.json +38 -0
- data/framework_components/roomcast-package-creator/src/app/app.js +19 -0
- data/framework_components/roomcast-package-creator/src/app/components/ButtonInteractionsMixin.js +45 -0
- data/framework_components/roomcast-package-creator/src/app/components/ChannelCard.js +87 -0
- data/framework_components/roomcast-package-creator/src/app/components/ChannelItem.js +71 -0
- data/framework_components/roomcast-package-creator/src/app/components/ChannelsCatalogue.js +64 -0
- data/framework_components/roomcast-package-creator/src/app/components/ChannelsPanel.js +127 -0
- data/framework_components/roomcast-package-creator/src/app/components/ConfigField.js +50 -0
- data/framework_components/roomcast-package-creator/src/app/components/ConfigurationsPanel.js +114 -0
- data/framework_components/roomcast-package-creator/src/app/components/ContextButton.js +37 -0
- data/framework_components/roomcast-package-creator/src/app/components/GlobalButton.js +26 -0
- data/framework_components/roomcast-package-creator/src/app/components/NutellaMixin.js +23 -0
- data/framework_components/roomcast-package-creator/src/app/components/PoolHeader.js +67 -0
- data/framework_components/roomcast-package-creator/src/app/components/PoolRow.js +160 -0
- data/framework_components/roomcast-package-creator/src/app/components/ResourceFamilyPool.js +168 -0
- data/framework_components/roomcast-package-creator/src/app/components/ResourcesPanel.js +76 -0
- data/framework_components/roomcast-package-creator/src/app/components/main.js +222 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/dialog_.jsx +66 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/drop-down-menu.jsx +163 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/enhanced-textarea.jsx +113 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/floating-action-button_.jsx +73 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/menu-item.jsx +100 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/menu.jsx +209 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/overlay.jsx +21 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/raised-button_.jsx +72 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/right-nav.jsx +108 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/drop-down-arrow.jsx +17 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/navigation-chevron-left.jsx +16 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/navigation-chevron-right.jsx +17 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/navigation-menu.jsx +16 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/svg-icon.jsx +23 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/toggle-check-box-checked.jsx +16 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/toggle-check-box-outline-blank.jsx +16 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/toggle-radio-button-off.jsx +16 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/svg-icons/toggle-radio-button-on.jsx +16 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/text-field.jsx +215 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/css-event.js +52 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/date-time.js +132 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/dom.js +71 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/events.js +34 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/key-code.js +10 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/key-line.js +13 -0
- data/framework_components/roomcast-package-creator/src/app/components/material-ui/utils/unique-id.js +7 -0
- data/framework_components/roomcast-package-creator/src/css/font-awesome.min.css +4 -0
- data/framework_components/roomcast-package-creator/src/css/ionicons.min.css +11 -0
- data/framework_components/roomcast-package-creator/src/fonts/FontAwesome.otf +0 -0
- data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.eot +0 -0
- data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.svg +565 -0
- data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.ttf +0 -0
- data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.woff +0 -0
- data/framework_components/roomcast-package-creator/src/fonts/fontawesome-webfont.woff2 +0 -0
- data/framework_components/roomcast-package-creator/src/fonts/ionicons.eot +0 -0
- data/framework_components/roomcast-package-creator/src/fonts/ionicons.svg +2230 -0
- data/framework_components/roomcast-package-creator/src/fonts/ionicons.ttf +0 -0
- data/framework_components/roomcast-package-creator/src/fonts/ionicons.woff +0 -0
- data/framework_components/roomcast-package-creator/src/less/drop-down-icon.less +43 -0
- data/framework_components/roomcast-package-creator/src/less/drop-down-menu.less +77 -0
- data/framework_components/roomcast-package-creator/src/less/enhanced-textarea.less +16 -0
- data/framework_components/roomcast-package-creator/src/less/main.less +491 -0
- data/framework_components/roomcast-package-creator/src/less/menu-item.less +69 -0
- data/framework_components/roomcast-package-creator/src/less/menu.less +50 -0
- data/framework_components/roomcast-package-creator/src/less/my_overrides.less +15 -0
- data/framework_components/roomcast-package-creator/src/less/svg-icon.less +11 -0
- data/framework_components/roomcast-package-creator/src/less/text-field.less +168 -0
- data/lib/commands/checkup.rb +1 -1
- data/nutella_lib/framework_net.rb +0 -1
- metadata +173 -4
@@ -0,0 +1 @@
|
|
1
|
+
{"channels":{"1":{"name":"Admin","icon":"#fde0ef","screenshot":"Admin.png","description":"description: first channel","url":"http://matteopalvarini.com/viz/Project3","type":"web"},"2":{"name":"AggregateView","icon":"#e7d4e8","screenshot":"AggregateView.png","description":"","url":"http://google.it","type":"web"},"3":{"name":"Seismograph1","icon":"#e6f5d0","screenshot":"Seismograph1.png","description":"","url":"roomquake.seismometer://","type":"iOS"},"4":{"name":"Seismograph2","icon":"#f6e8c3","screenshot":"Seismograph2.png","description":"Descr","url":"http://d3js.org","type":"iOS"},"5":{"name":"Seismograph3","icon":"#f46d43","screenshot":"Seismograph3.png","description":"Description","url":"roomquake.seismometer://","type":"iOS"},"6":{"name":"Seismograph4","icon":"#c7eae5","screenshot":"Seismograph4.png","description":"","url":"roomquake.seismometer://","type":"iOS"},"7":{"name":"Student Forms","icon":"#fee0b6","screenshot":"StudentsForms.png","description":"","url":"http://uic.edu","type":"web"},"8":{"name":" New channel","icon":"#e7d4e8","screenshot":"IMG_0020.JPG","description":"Description - new","url":"iOS custom url","type":"iOS"}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"configs":{"1":{"name":"Very old","mapping":[{"family":"iPad","items":[{"name":"Very old","channels":["01","07"]},{"name":"group3","channels":["01","02","04","07"]},{"name":"group4","channels":["01","02","03","04","05","06","07"]},{"name":"Predators","channels":["01","02"]}]},{"family":"Mac","items":[{"name":"mac1","channels":["01"]},{"name":"mac2","channels":["01"]},{"name":"mac3","channels":["01","02"]},{"name":"","channels":[]},{"name":"","channels":[]},{"name":"mac","channels":[]},{"name":"","channels":[]}]}]},"2":{"name":"Old","mapping":[{"family":"iPad","items":[{"name":"Old","channels":["01","07"]},{"name":"Prey","channels":["01","02","04","07"]}]},{"family":"Mac","items":[{"name":"mac1","channels":["01","02"]},{"name":"mac2","channels":["03"]}]}]},"3":{"name":"New","mapping":[{"family":"iPad","items":[{"name":"New","channels":["01","07"]},{"name":"Girls","channels":[]},{"name":"","channels":[]}]},{"family":"Mac","items":[{"name":"mac1","channels":["01","02"]},{"name":"mac2","channels":["03"]},{"name":"","channels":[]},{"name":"","channels":[]},{"name":"","channels":[]},{"name":"","channels":[]},{"name":"","channels":[]},{"name":"","channels":[]}]}]},"4":{"name":"Newest","mapping":[{"family":"iPad","items":[{"name":"Newest","channels":["01"]},{"name":"Group 2","channels":["01"]}]},{"family":"Mac","items":[{"name":"","channels":[]}]}]},"5":{"name":"Next week","mapping":[{"family":"iPad","items":[{"name":"1","channels":[]},{"name":"5","channels":[]}]},{"family":"Mac","items":[{"name":"2","channels":[]},{"name":"3","channels":[]},{"name":"4","channels":[]}]}]},"6":{"name":"RoomQuake","mapping":[{"family":"iPad","items":[{"name":"","channels":[]}]},{"family":"Mac","items":[{"name":"","channels":[]}]}]},"7":{"name":"","mapping":[{"family":"iPad","items":[{"name":"","channels":[]}]},{"family":"Mac","items":[{"name":"","channels":[]}]}]},"8":{"name":"","mapping":[{"family":"iPad","items":[{"name":"","channels":[]}]},{"family":"Mac","items":[{"name":"","channels":[]}]}]}},"currentConfig":5}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"mapping":[{"family":"iPad","items":[{"name":"iPad1","channels":["01","07"]},{"name":"group3","channels":["01","02","04","07"]},{"name":"group4","channels":["01","02","03","04","05","06","07"]},{"name":"Predators","channels":["02"]}]},{"family":"Mac","items":[{"name":"mac1","channels":["01","02"]},{"name":"mac2","channels":["01"]},{"name":"mac3","channels":["01","02"]}]}]}
|
@@ -0,0 +1,178 @@
|
|
1
|
+
require_relative '../../lib/config/runlist'
|
2
|
+
require_relative '../../lib/config/config'
|
3
|
+
require_relative '../../nutella_lib/framework_core'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
nutella.f.init(Nutella.config['broker'], 'roomcast-bot')
|
7
|
+
|
8
|
+
puts 'Initializing RoomCast...'
|
9
|
+
|
10
|
+
# Open the database
|
11
|
+
#configs_db = nutella.persist.get_json_object_store('configs')
|
12
|
+
#channels_db = nutella.persist.get_json_object_store('channels')
|
13
|
+
#channelsData_db = nutella.persist.get_json_object_store('channels-data')
|
14
|
+
|
15
|
+
nutella.f.net.subscribe_to_all_runs('configs/update', lambda do |message, app_id, run_id, from|
|
16
|
+
|
17
|
+
new_configs = message
|
18
|
+
|
19
|
+
puts 'configs/update:'
|
20
|
+
puts new_configs
|
21
|
+
|
22
|
+
# Update
|
23
|
+
configs_db = nutella.f.persist.get_run_json_object_store(app_id, run_id, 'configs')
|
24
|
+
if new_configs != nil
|
25
|
+
configs_db[:configs] = new_configs
|
26
|
+
end
|
27
|
+
|
28
|
+
puts 'Updated DB'
|
29
|
+
|
30
|
+
# Notify Update
|
31
|
+
|
32
|
+
# Notify change of all configs
|
33
|
+
publish_configs_update(new_configs)
|
34
|
+
|
35
|
+
# Notify possible change of current config
|
36
|
+
configs = configs_db['configs']
|
37
|
+
id = '%d' % configs_db['currentConfig']
|
38
|
+
config = configs[id]
|
39
|
+
publish_mapping_update(config['mapping'])
|
40
|
+
|
41
|
+
end)
|
42
|
+
|
43
|
+
nutella.f.net.handle_requests_on_all_runs('configs/retrieve', lambda do |request, app_id, run_id, from|
|
44
|
+
puts 'request: ' + request
|
45
|
+
reply = {}
|
46
|
+
if request == {}
|
47
|
+
reply
|
48
|
+
elsif request == 'all'
|
49
|
+
configs_db = nutella.f.persist.get_run_json_object_store(app_id, run_id, 'configs')
|
50
|
+
reply = configs_db['configs']
|
51
|
+
puts reply
|
52
|
+
reply
|
53
|
+
end
|
54
|
+
end)
|
55
|
+
|
56
|
+
# 'mapping' is the current running configuration
|
57
|
+
nutella.f.net.handle_requests_on_all_runs('mapping/retrieve', lambda do |request, app_id, run_id, from|
|
58
|
+
puts 'request: ' + request
|
59
|
+
reply = {}
|
60
|
+
if request == {}
|
61
|
+
reply
|
62
|
+
elsif request == 'all'
|
63
|
+
configs_db = nutella.f.persist.get_run_json_object_store(app_id, run_id, 'configs')
|
64
|
+
configs = configs_db['configs']
|
65
|
+
id = '%d' % configs_db['currentConfig']
|
66
|
+
config = configs[id]
|
67
|
+
reply = config['mapping']
|
68
|
+
puts reply
|
69
|
+
reply
|
70
|
+
end
|
71
|
+
end)
|
72
|
+
|
73
|
+
nutella.f.net.subscribe_to_all_runs('currentConfig/update', lambda do |message, app_id, run_id, from|
|
74
|
+
|
75
|
+
new_config = message
|
76
|
+
|
77
|
+
puts 'currentConfig/update:'
|
78
|
+
puts new_config
|
79
|
+
|
80
|
+
# Update
|
81
|
+
if new_config != nil
|
82
|
+
configs_db = nutella.f.persist.get_run_json_object_store(app_id, run_id, 'configs')
|
83
|
+
configs_db['currentConfig'] = new_config
|
84
|
+
end
|
85
|
+
|
86
|
+
puts 'Updated DB'
|
87
|
+
|
88
|
+
# Notify Update
|
89
|
+
publish_current_config_update(new_config)
|
90
|
+
|
91
|
+
end)
|
92
|
+
|
93
|
+
# Reacts to updates to config id by publishing the updated mapping
|
94
|
+
nutella.f.net.subscribe_to_all_runs('currentConfig/updated', lambda do |message, app_id, run_id, from|
|
95
|
+
|
96
|
+
begin
|
97
|
+
configs_db = nutella.f.persist.get_run_json_object_store(app_id, run_id, 'configs')
|
98
|
+
configs = configs_db['configs']
|
99
|
+
id = '%d' % configs_db['currentConfig']
|
100
|
+
config = configs[id]
|
101
|
+
publish_switch_config(config['mapping'])
|
102
|
+
rescue => exception
|
103
|
+
puts exception
|
104
|
+
puts exception.backtrace
|
105
|
+
raise exception
|
106
|
+
end
|
107
|
+
|
108
|
+
end)
|
109
|
+
|
110
|
+
nutella.f.net.handle_requests_on_all_runs('currentConfig/retrieve', lambda do |request, app_id, run_id, from|
|
111
|
+
puts 'request: ' + request
|
112
|
+
reply = {}
|
113
|
+
configs_db = nutella.f.persist.get_run_json_object_store(app_id, run_id, 'configs')
|
114
|
+
reply = configs_db['currentConfig']
|
115
|
+
puts reply
|
116
|
+
reply
|
117
|
+
end)
|
118
|
+
|
119
|
+
nutella.f.net.subscribe_to_all_runs('channels/update', lambda do |message, app_id, run_id, from|
|
120
|
+
|
121
|
+
new_channels = message
|
122
|
+
|
123
|
+
# Update
|
124
|
+
if new_channels != nil
|
125
|
+
channels_db = nutella.f.persist.get_run_json_object_store(app_id, run_id, 'channels')
|
126
|
+
channels_db['channels'] = new_channels
|
127
|
+
end
|
128
|
+
|
129
|
+
# Notify Update
|
130
|
+
publish_channels_update(new_channels)
|
131
|
+
|
132
|
+
end)
|
133
|
+
|
134
|
+
nutella.f.net.handle_requests_on_all_runs('channels/retrieve', lambda do |request, app_id, run_id, from|
|
135
|
+
reply = {}
|
136
|
+
if request == {}
|
137
|
+
reply
|
138
|
+
elsif request == 'all'
|
139
|
+
puts 'requesting channels'
|
140
|
+
channels_db = nutella.f.persist.get_run_json_object_store(app_id, run_id, 'channels')
|
141
|
+
reply = channels_db['channels']
|
142
|
+
puts reply
|
143
|
+
reply
|
144
|
+
end
|
145
|
+
end)
|
146
|
+
|
147
|
+
def publish_configs_update(configs)
|
148
|
+
nutella.net.publish('configs/updated', configs)
|
149
|
+
puts 'Sent configs/updated'
|
150
|
+
end
|
151
|
+
|
152
|
+
# Sends the update config id
|
153
|
+
def publish_current_config_update(config_id)
|
154
|
+
nutella.net.publish('currentConfig/updated', config_id)
|
155
|
+
puts 'Sent currentConfig/updated'
|
156
|
+
end
|
157
|
+
|
158
|
+
# Sends the whole new current configuration
|
159
|
+
def publish_switch_config(mapping)
|
160
|
+
nutella.net.publish('currentConfig/switched', mapping)
|
161
|
+
puts 'Sent currentConfig/switched'
|
162
|
+
end
|
163
|
+
|
164
|
+
# Sends the current config (mapping), which might have been updated
|
165
|
+
def publish_mapping_update(mapping)
|
166
|
+
nutella.net.publish('mapping/updated', mapping)
|
167
|
+
puts 'Sent mapping/updated'
|
168
|
+
end
|
169
|
+
|
170
|
+
def publish_channels_update(channels)
|
171
|
+
nutella.net.publish('channels/updated', channels)
|
172
|
+
puts 'Sent channels/updated'
|
173
|
+
end
|
174
|
+
|
175
|
+
puts 'Initialization complete.'
|
176
|
+
|
177
|
+
# Just sit there waiting for messages to come
|
178
|
+
nutella.net.listen
|