blob: d7cae4015f4c66eb2cfa54abea5d9af4c6837d73 [file] [log] [blame]
Yulia Portnova21289b22015-03-18 15:21:43 +02001class 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 kdanilove06762a2015-03-22 23:32:09 +020011 self.connection = None
12
13 def __str__(self):
14 return "<Node: url={0!r} roles={1} >".format(self.ip,
15 ", ".join(self.roles))
Yulia Portnova21289b22015-03-18 15:21:43 +020016
Yulia Portnova0e64ea22015-03-20 17:27:22 +020017 def __repr__(self):
koder aka kdanilove06762a2015-03-22 23:32:09 +020018 return str(self)
Yulia Portnova0e64ea22015-03-20 17:27:22 +020019
Yulia Portnova21289b22015-03-18 15:21:43 +020020 def set_conn_attr(self, name, value):
21 setattr(self, name, value)
22
23 @property
Yulia Portnova0e64ea22015-03-20 17:27:22 +020024 def connection_url(self):
Yulia Portnova21289b22015-03-18 15:21:43 +020025 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)