Completed
Pull Request — master (#332)
by James
01:58
created

ListVMsAction   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 23
Duplicated Lines 0 %
Metric Value
dl 0
loc 23
rs 10
wmc 5

1 Method

Rating   Name   Duplication   Size   Complexity  
B run() 0 22 5
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