diff --git a/src/rockstor/storageadmin/static/storageadmin/js/views/rockons.js b/src/rockstor/storageadmin/static/storageadmin/js/views/rockons.js index cd1a6c779..f91a5d69f 100644 --- a/src/rockstor/storageadmin/static/storageadmin/js/views/rockons.js +++ b/src/rockstor/storageadmin/static/storageadmin/js/views/rockons.js @@ -712,7 +712,11 @@ RockonEnvironment = RockonCustomChoice.extend({ } var env_map = {}; var envars = this.custom_config.filter(function(cvar) { - env_map[cvar.get('key')] = this.$('#' + cvar.id).val(); + co_id = cvar.get('container'); + if(env_map[co_id] == undefined) { + env_map[co_id] = {}; + } + env_map[co_id][cvar.get('key')] = this.$('#' + cvar.id).val(); return cvar; }, this); this.model.set('env_map', env_map); diff --git a/src/rockstor/storageadmin/views/rockon_id.py b/src/rockstor/storageadmin/views/rockon_id.py index 7934cca39..024c9b95f 100644 --- a/src/rockstor/storageadmin/views/rockon_id.py +++ b/src/rockstor/storageadmin/views/rockon_id.py @@ -94,6 +94,7 @@ def post(self, request, rid, command): env_map = request.data.get('environment', {}) containers = DContainer.objects.filter(rockon=rockon) for co in containers: + co_id = str(co.id) for sname in share_map.keys(): dest_dir = share_map[sname] if (not Share.objects.filter(name=sname).exists()): @@ -144,14 +145,15 @@ def post(self, request, rid, command): cco = DCustomConfig.objects.get(rockon=rockon, key=c) cco.val = cc_map[c] cco.save() - for e in env_map.keys(): - if (not DContainerEnv.objects.filter( - container=co, key=e).exists()): - e_msg = ('Invalid environment variabled(%s)' % e) - handle_exception(Exception(e_msg), request) - ceo = DContainerEnv.objects.get(container=co, key=e) - ceo.val = env_map[e] - ceo.save() + if (co_id in env_map): + for e in env_map[co_id].keys(): + if (not DContainerEnv.objects.filter( + container=co, key=e).exists()): + e_msg = ('Invalid environment variable(%s)' % e) + handle_exception(Exception(e_msg), request) + ceo = DContainerEnv.objects.get(container=co, key=e) + ceo.val = env_map[co_id][e] + ceo.save() install.async(rockon.id) rockon.state = 'pending_install' rockon.save()