diff options
Diffstat (limited to 'modules/opnfv/deployment/manager.py')
-rw-r--r-- | modules/opnfv/deployment/manager.py | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/modules/opnfv/deployment/manager.py b/modules/opnfv/deployment/manager.py index e1fd9497f..7047a4dd3 100644 --- a/modules/opnfv/deployment/manager.py +++ b/modules/opnfv/deployment/manager.py @@ -174,13 +174,15 @@ class Node(object): Run command remotely on a node ''' if self.status is not NodeStatus.STATUS_OK: - logger.error("The node %s is not active" % self.ip) + logger.error( + "Error running command %s. The node %s is not active" + % (cmd, self.ip)) return None _, stdout, stderr = (self.ssh_client.exec_command(cmd)) error = stderr.readlines() if len(error) > 0: logger.error("error %s" % ''.join(error)) - return error + return None output = ''.join(stdout.readlines()).rstrip() return output @@ -200,28 +202,40 @@ class Node(object): 'info': self.info } - def is_controller(self): + def is_active(self): ''' - Returns if the node is a controller + Returns if the node is active ''' - if 'controller' in self.roles: + if self.status == NodeStatus.STATUS_OK: return True return False + def is_controller(self): + ''' + Returns if the node is a controller + ''' + 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 get_ovs_info(self): ''' Returns the ovs version installed ''' - cmd = "ovs-vsctl --version|head -1| sed 's/^.*) //'" - return self.run_cmd(cmd) + if self.is_active(): + cmd = "ovs-vsctl --version|head -1| sed 's/^.*) //'" + return self.run_cmd(cmd) + return None def get_system_info(self): ''' @@ -345,6 +359,18 @@ class DeploymentHandler(object): ''' 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 |