Skip to content

Commit c1e60ee

Browse files
committed
Added docstrings for the decorated api.tasks module.
1 parent 75674ac commit c1e60ee

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

api/tasks.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
"""
2+
Core Deis API functions that interact with providers and
3+
configuration management.
4+
5+
This module orchestrates the real "heavy lifting" of Deis, and as such these
6+
functions are decorated to run as asynchronous celery tasks.
7+
"""
18

29
from __future__ import unicode_literals
310
import importlib
@@ -8,25 +15,41 @@
815
from provider import import_provider_module
916
from .exceptions import BuildNodeError
1017

18+
1119
# import user-defined config management module
1220
CM = importlib.import_module(settings.CM_MODULE)
1321

1422

1523
@task
1624
def build_layer(layer):
25+
"""
26+
Build a layer using its cloud provider.
27+
28+
:param layer: a :class:`~api.models.Layer` to build
29+
"""
1730
provider = import_provider_module(layer.flavor.provider.type)
1831
provider.build_layer(layer.flat())
1932

2033

2134
@task
2235
def destroy_layer(layer):
36+
"""
37+
Destroy a layer.
38+
39+
:param layer: a :class:`~api.models.Layer` to destroy
40+
"""
2341
provider = import_provider_module(layer.flavor.provider.type)
2442
provider.destroy_layer(layer.flat())
2543
layer.delete()
2644

2745

2846
@task
2947
def build_node(node):
48+
"""
49+
Build a node using its cloud provider.
50+
51+
:param node: a :class:`~api.models.Node` to build
52+
"""
3053
provider = import_provider_module(node.layer.flavor.provider.type)
3154
provider_id, fqdn, metadata = provider.build_node(node.flat())
3255
node.provider_id = provider_id
@@ -41,6 +64,11 @@ def build_node(node):
4164

4265
@task
4366
def destroy_node(node):
67+
"""
68+
Destroy a node.
69+
70+
:param node: a :class:`~api.models.Node` to destroy
71+
"""
4472
provider = import_provider_module(node.layer.flavor.provider.type)
4573
provider.destroy_node(node.flat())
4674
CM.purge_node(node.flat())
@@ -49,12 +77,24 @@ def destroy_node(node):
4977

5078
@task
5179
def converge_node(node):
80+
"""
81+
Converge a node, aligning it with an intended configuration.
82+
83+
:param node: a :class:`~api.models.Node` to converge
84+
"""
5285
output, rc = CM.converge_node(node.flat())
5386
return output, rc
5487

5588

5689
@task
5790
def run_node(node, command):
91+
"""
92+
Run a single shell command on a container on a node.
93+
94+
Does not support interactive commands.
95+
96+
:param node: a :class:`~api.models.Node` on which to run a command
97+
"""
5898
output, rc = CM.run_node(node.flat(), command)
5999
if rc != 0 and 'failed to setup the container' in output:
60100
output = '\033[35mPlease run `git push deis master` first.\033[0m\n' + output
@@ -63,5 +103,8 @@ def run_node(node, command):
63103

64104
@task
65105
def converge_controller():
106+
"""
107+
Converge a the controller node, aligning it with an intended configuration.
108+
"""
66109
CM.converge_controller()
67110
return None

0 commit comments

Comments
 (0)