class Role():
+ INSTALLER = 'installer'
CONTROLLER = 'controller'
COMPUTE = 'compute'
ODL = 'opendaylight'
STATUS_OFFLINE = 'offline'
STATUS_ERROR = 'error'
STATUS_UNUSED = 'unused'
+ STATUS_UNKNOWN = 'unknown'
class Node(object):
self.memory = 'unknown'
self.ovs = 'unknown'
- if ssh_client:
+ if ssh_client and Role.INSTALLER not in self.roles:
sys_info = self.get_system_info()
self.cpu_info = sys_info['cpu_info']
self.memory = sys_info['memory']
'''
Returns if the node is a controller
'''
- if 'controller' in self.roles:
- return True
- return False
+ return Role.CONTROLLER in self.roles
def is_compute(self):
'''
Returns if the node is a compute
'''
- if 'compute' in self.roles:
- return True
- return False
+ return Role.COMPUTE in self.roles
+
+ def is_odl(self):
+ '''
+ Returns if the node is an opendaylight
+ '''
+ return Role.ODL in self.roles
+
+ def is_onos(self):
+ '''
+ Returns if the node is an ONOS
+ '''
+ return Role.ONOS in self.roles
def get_ovs_info(self):
'''
Returns the ovs version installed
'''
if self.is_active():
- cmd = "ovs-vsctl --version|head -1| sed 's/^.*) //'"
- return self.run_cmd(cmd)
+ cmd = "ovs-vsctl --version 2>/dev/null|head -1| sed 's/^.*) //'"
+ return self.run_cmd(cmd) or None
return None
def get_system_info(self):
'''
- Returns the ovs version installed
+ Returns system information
'''
cmd = 'grep MemTotal /proc/meminfo'
memory = self.run_cmd(cmd).partition('MemTotal:')[-1].strip().encode()
name=installer,
status=NodeStatus.STATUS_OK,
ssh_client=self.installer_connection,
- roles='installer node')
+ roles=Role.INSTALLER)
else:
raise Exception(
'Cannot establish connection to the installer node!')
'''
return self.installer_node
+ def get_arch(self):
+ '''
+ Returns the architecture of the first compute node found
+ '''
+ arch = None
+ for node in self.nodes:
+ if node.is_compute():
+ arch = node.cpu_info.get('arch', None)
+ if arch:
+ break
+ return arch
+
def get_deployment_info(self):
'''
Returns an object of type Deployment
pod=os.getenv('NODE_NAME', 'Unknown'),
openstack_version=self.get_openstack_version(),
sdn_controller=self.get_sdn_version(),
- nodes=self.get_nodes())
+ nodes=self.nodes)