Yulia Portnova | 21289b2 | 2015-03-18 15:21:43 +0200 | [diff] [blame] | 1 | class Node(object): |
| 2 | |
| 3 | def __init__(self, ip, roles, username=None, |
| 4 | password=None, key_path=None, port=None): |
| 5 | self.roles = roles |
| 6 | self.ip = ip |
| 7 | self.username = username |
| 8 | self.password = password |
| 9 | self.port = port |
| 10 | self.key_path = key_path |
koder aka kdanilov | e06762a | 2015-03-22 23:32:09 +0200 | [diff] [blame] | 11 | self.connection = None |
| 12 | |
| 13 | def __str__(self): |
| 14 | return "<Node: url={0!r} roles={1} >".format(self.ip, |
| 15 | ", ".join(self.roles)) |
Yulia Portnova | 21289b2 | 2015-03-18 15:21:43 +0200 | [diff] [blame] | 16 | |
Yulia Portnova | 0e64ea2 | 2015-03-20 17:27:22 +0200 | [diff] [blame] | 17 | def __repr__(self): |
koder aka kdanilov | e06762a | 2015-03-22 23:32:09 +0200 | [diff] [blame] | 18 | return str(self) |
Yulia Portnova | 0e64ea2 | 2015-03-20 17:27:22 +0200 | [diff] [blame] | 19 | |
Yulia Portnova | 21289b2 | 2015-03-18 15:21:43 +0200 | [diff] [blame] | 20 | def set_conn_attr(self, name, value): |
| 21 | setattr(self, name, value) |
| 22 | |
| 23 | @property |
Yulia Portnova | 0e64ea2 | 2015-03-20 17:27:22 +0200 | [diff] [blame] | 24 | def connection_url(self): |
Yulia Portnova | 21289b2 | 2015-03-18 15:21:43 +0200 | [diff] [blame] | 25 | connection = [] |
| 26 | |
| 27 | if self.username: |
| 28 | connection.append(self.username) |
| 29 | if self.password: |
| 30 | connection.extend([":", self.password, "@"]) |
| 31 | connection.append("@") |
| 32 | |
| 33 | connection.append(self.ip) |
| 34 | if self.port: |
| 35 | connection.extend([":", self.port]) |
| 36 | if self.key_path: |
| 37 | connection.extend([":", self.key_path]) |
| 38 | else: |
| 39 | if self.key_path: |
| 40 | connection.extend([":", ":", self.key_path]) |
| 41 | return "".join(connection) |