Merge pull request #37 from stephanerobert/executor

Taking executor out of the context
This commit is contained in:
Mathieu Mitchell 2016-11-09 16:46:59 -05:00 committed by GitHub
commit ca48a93048
3 changed files with 10 additions and 6 deletions

View File

@ -26,6 +26,7 @@ class Core(object):
self.store = store self.store = store
self.default_state = default_state self.default_state = default_state
self.logger = logging.getLogger(__name__) self.logger = logging.getLogger(__name__)
self.executor = ThreadPoolExecutor(max_workers=1)
def pdu_outlet_state_changed(self, pdu, outlet, state): def pdu_outlet_state_changed(self, pdu, outlet, state):
self.store[(pdu, outlet)] = state self.store[(pdu, outlet)] = state
@ -60,8 +61,7 @@ class Core(object):
self.logger.error("Unknown power state: {}".format(state)) self.logger.error("Unknown power state: {}".format(state))
return return
with ThreadPoolExecutor(max_workers=1) as executor: self.executor.submit(switch_power)
executor.submit(switch_power)
def get_pdu_outlet_state(self, pdu, outlet): def get_pdu_outlet_state(self, pdu, outlet):
try: try:

View File

@ -13,9 +13,9 @@
# limitations under the License. # limitations under the License.
import random import random
import time
from pysnmp.entity.rfc3413.oneliner import cmdgen from pysnmp.entity.rfc3413.oneliner import cmdgen
from virtualpdu import core from virtualpdu import core
from virtualpdu import drivers from virtualpdu import drivers
from virtualpdu.drivers import libvirt_driver from virtualpdu.drivers import libvirt_driver
@ -67,12 +67,16 @@ class TestCoreIntegration(base.TestCase):
snmp_client_.set( snmp_client_.set(
self.outlet_oid, self.outlet_oid,
apc_rackpdu.APCRackPDUOutletControl.states.IMMEDIATE_OFF) apc_rackpdu.APCRackPDUOutletControl.states.IMMEDIATE_OFF)
time.sleep(0.1)
self.assertEqual(drivers.POWER_OFF, self.assertEqual(drivers.POWER_OFF,
self.driver.get_power_state('test')) self.driver.get_power_state('test'))
snmp_client_.set( snmp_client_.set(
self.outlet_oid, self.outlet_oid,
apc_rackpdu.APCRackPDUOutletControl.states.IMMEDIATE_ON) apc_rackpdu.APCRackPDUOutletControl.states.IMMEDIATE_ON)
time.sleep(0.1)
self.assertEqual(drivers.POWER_ON, self.assertEqual(drivers.POWER_ON,
self.driver.get_power_state('test')) self.driver.get_power_state('test'))

View File

@ -36,7 +36,7 @@ class TestCore(base.TestCase):
self.core.pdu_outlet_state_changed(pdu='my_pdu', self.core.pdu_outlet_state_changed(pdu='my_pdu',
outlet=1, outlet=1,
state=core.POWER_OFF) state=core.POWER_OFF)
time.sleep(0) time.sleep(0.1)
self.driver_mock.power_off.assert_called_with('server_one') self.driver_mock.power_off.assert_called_with('server_one')
def test_pdu_outlet_state_changed_machine_not_in_mapping_noop(self): def test_pdu_outlet_state_changed_machine_not_in_mapping_noop(self):
@ -51,14 +51,14 @@ class TestCore(base.TestCase):
self.core.pdu_outlet_state_changed(pdu='my_pdu', self.core.pdu_outlet_state_changed(pdu='my_pdu',
outlet=1, outlet=1,
state=core.POWER_ON) state=core.POWER_ON)
time.sleep(0) time.sleep(0.1)
self.driver_mock.power_on.assert_called_with('server_one') self.driver_mock.power_on.assert_called_with('server_one')
def test_pdu_outlet_state_changed_on_reboot(self): def test_pdu_outlet_state_changed_on_reboot(self):
self.core.pdu_outlet_state_changed(pdu='my_pdu', self.core.pdu_outlet_state_changed(pdu='my_pdu',
outlet=1, outlet=1,
state=core.REBOOT) state=core.REBOOT)
time.sleep(0) time.sleep(0.1)
self.driver_mock.assert_has_calls([mock.call.power_off('server_one'), self.driver_mock.assert_has_calls([mock.call.power_off('server_one'),
mock.call.power_on('server_one')]) mock.call.power_on('server_one')])