code: def nova_services_up(self):
          
          required = set(['nova-conductor', 'nova-cert', 'nova-scheduler',
                         'nova-compute'])
          try:
              services = self._nclient.services.list()
          # There are several individual Nova client exceptions but they have
          # no other common base than Exception, hence the long list.
          except Exception as e:
              LOG.error('Failure determining running Nova services: %s', e)
              return False
          return not bool(required.difference(
              [service.binary for service in services
               if service.status == 'enabled' and service.state == 'up']))
docs: Checks if required Nova services are up and running.
  
          returns: True if all needed Nova services are up, False otherwise