[#2333] [Console] Fix 'set and then get' in config command

* The get method was returning old config information so use correct
 core get callback.
 * Remove redundant deferred in set method
This commit is contained in:
Calum Lind 2015-08-28 16:53:09 +01:00
parent f4e5fb446d
commit 62a144c730
1 changed files with 23 additions and 28 deletions

View File

@ -13,8 +13,6 @@ import logging
import tokenize
from optparse import make_option
from twisted.internet import defer
import deluge.component as component
import deluge.ui.console.colors as colors
from deluge.ui.client import client
@ -82,7 +80,7 @@ class Command(BaseCommand):
return self._get_config(*args, **options)
def _get_config(self, *args, **options):
config = component.get("CoreConfig")
def _on_get_config(config):
keys = config.keys()
keys.sort()
s = ""
@ -104,12 +102,11 @@ class Command(BaseCommand):
value = "\n".join(new_value)
s += " %s: %s%s\n" % (key, color, value)
self.console.write(s)
return config
return client.core.get_config().addCallback(_on_get_config)
def _set_config(self, *args, **options):
deferred = defer.Deferred()
config = component.get("CoreConfig")
key = options["set"][0]
val = simple_eval(options["set"][1] + " " .join(args))
@ -127,11 +124,9 @@ class Command(BaseCommand):
def on_set_config(result):
self.console.write("{!success!}Configuration value successfully updated.")
deferred.callback(True)
self.console.write("Setting %s to %s.." % (key, val))
client.core.set_config({key: val}).addCallback(on_set_config)
return deferred
return client.core.set_config({key: val}).addCallback(on_set_config)
def complete(self, text):
return [k for k in component.get("CoreConfig").keys() if k.startswith(text)]