Completed
Push — master ( 07f5e9...a9e69b )
by Edward
15s
created

ListVMsAction.run()   B

Complexity

Conditions 5

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 5
dl 0
loc 22
rs 8.3411
1
from lib.action import BaseVMsAction
2
from lib.formatters import to_server_dict
3
4
__all__ = [
5
    'ListVMsAction'
6
]
7
8
9
class ListVMsAction(BaseVMsAction):
10
    def run(self, region=None, metadata=None):
11
        if region:
12
            cs = self.pyrax.connect_to_cloudservers(region=region)
13
        else:
14
            cs = self.pyrax.cloudservers
15
16
        servers = cs.list()
17
18
        result = []
19
        for server in servers:
20
            item = to_server_dict(server=server)
21
22
            if metadata:
23
                include = self._metadata_intersection(server=item,
24
                                                      metadata=metadata)
25
26
                if not include:
27
                    continue
28
29
            result.append(item)
30
31
        return result
32