diff --git a/README.rst b/README.rst index b60f1e5..5d265ad 100644 --- a/README.rst +++ b/README.rst @@ -60,6 +60,9 @@ Usage servers = await nova.servers.list(name='testvm') vm = await nova.servers.get(server_id) + action_spec = {'os-stop': None} + await nova.servers.run_action(server_id, **action_spec) + specs = { "name": 'some_name', @@ -87,6 +90,7 @@ Available functions - servers.get(id) - servers.create(server=server_spec) - servers.force_delete(id) + - servers.run_action(id, action=action_spec) - flavors.list() - metadata.get(server_id) - metadata.set(server_id, meta=meta_spec) diff --git a/src/asyncopenstackclient/nova.py b/src/asyncopenstackclient/nova.py index 28e694e..665dd9a 100644 --- a/src/asyncopenstackclient/nova.py +++ b/src/asyncopenstackclient/nova.py @@ -10,8 +10,10 @@ async def init_api(self, timeout=60): self.api.servers.actions["force_delete"] = {"method": "DELETE", "url": "servers/{}"} self.api.servers.actions["get"] = {"method": "GET", "url": "servers/{}"} self.api.servers.actions["list"] = {"method": "GET", "url": "servers/detail"} + self.api.servers.actions["run_action"] = {"method": "POST", "url": "servers/{}/action"} self.api.servers.add_action("force_delete") self.api.servers.add_action("get") + self.api.servers.add_action("run_action") self.api.flavors.actions["list"] = {"method": "GET", "url": "flavors/detail"} self.api.metadata.actions['get'] = {"method": "GET", "url": "servers/{}/metadata"} self.api.metadata.actions['set'] = {"method": "POST", "url": "servers/{}/metadata"}