diff --git a/libcloud/compute/drivers/joyent.py b/libcloud/compute/drivers/joyent.py index 4a48044..cb902bf 100644 --- a/libcloud/compute/drivers/joyent.py +++ b/libcloud/compute/drivers/joyent.py @@ -186,6 +186,20 @@ class JoyentNodeDriver(NodeDriver): data=data, method='POST') return result.status == httplib.ACCEPTED + def start_node(self, node): + """ + Start node + + @param node: The node to be stopped + @type node: L{Node} + + @rtype: C{bool} + """ + data = json.dumps({'action': 'start'}) + result = self.connection.request('/my/machines/%s' % (node.id), + data=data, method='POST') + return result.status == httplib.ACCEPTED + def _to_node(self, data): state = NODE_STATE_MAP[data['state']] public_ips = [] diff --git a/libcloud/test/compute/test_joyent.py b/libcloud/test/compute/test_joyent.py index 4e40789..77c5df5 100644 --- a/libcloud/test/compute/test_joyent.py +++ b/libcloud/test/compute/test_joyent.py @@ -76,6 +76,10 @@ class JoyentTestCase(unittest.TestCase): node = self.driver.list_nodes()[0] self.assertTrue(self.driver.ex_stop_node(node)) + def test_start_node(self): + node = self.driver.list_nodes()[0] + self.assertTrue(self.driver.start_node(node)) + class JoyentHttp(MockHttp): fixtures = ComputeFileFixtures('joyent')