Esempio n. 1
0
 def GROUP_LIST(server, request):
     """Return list of known groups."""
     logger.debug('GROUP_LIST')
     try:
         res = protocol.Response_DUMP()
         res.data = node.group_list()
         return res
     except node.NodeError as e:
         raise CommandError('GROUP_LIST', e)
Esempio n. 2
0
 def STORAGE_VOLUME_USEDBY(server, request):
     '''Return list of domains using the given volume.'''
     if not isinstance(request.volume, basestring):
         raise CommandError('STORAGE_VOLUME_USEDBY',
                            _('volume != string: %(volume)s'),
                            volume=request.volume)
     logger.debug('STORAGE_VOLUME_USEDBY %s]' % request.volume)
     res = protocol.Response_DUMP()
     res.data = storage.storage_volume_usedby(node.nodes, request.volume)
     return res
Esempio n. 3
0
 def L_CLOUD_LIST(server, request):
     """ List connected clouds """
     logger.debug('L_CLOUD_LIST')
     if not isinstance(request.pattern, basestring):
         raise CommandError('L_CLOUD_LIST',
                            _('pattern != string: %(pattern)s'),
                            pattern=request.pattern)
     try:
         res = protocol.Response_DUMP()
         res.data = cloudnode.cloudconnections.list(request.pattern)
         return res
     except cloudnode.CloudConnectionError as e:
         raise CommandError('L_CLOUD_LIST', e)
Esempio n. 4
0
 def L_CLOUD_SUBNET_LIST(server, request):
     """List available cloud subnets of cloud connections"""
     logger.debug('L_CLOUD_SUBNET_LIST')
     if not isinstance(request.conn_name, basestring):
         raise CommandError('L_CLOUD_SUBNET_LIST',
                            _('conn_name != string: %(conn_name)s'),
                            conn_name=request.conn_name)
     try:
         res = protocol.Response_DUMP()
         res.data = cloudnode.cloudconnections.list_conn_subnets(
             request.conn_name)
         return res
     except cloudnode.CloudConnectionError as e:
         raise CommandError('L_CLOUD_SUBNET_LIST', e)
Esempio n. 5
0
 def STORAGE_POOLS(server, request):
     """List all pools."""
     if not isinstance(request.uri, basestring):
         raise CommandError('STORAGE_POOLS',
                            _('uri != string: %(uri)s'),
                            uri=request.uri)
     logger.debug('STORAGE_POOLS %s' % (request.uri, ))
     try:
         node_stat = node.node_query(request.uri)
         pools = storage.storage_pools(node_stat)
         res = protocol.Response_DUMP()
         res.data = pools
         return res
     except node.NodeError as e:
         raise CommandError('STORAGE_POOLS', e)
Esempio n. 6
0
 def STORAGE_VOLUMES(server, request):
     '''List all volumes in a pool.'''
     if not isinstance(request.uri, basestring):
         raise CommandError('STORAGE_VOLUMES',
                            _('uri != string: %(uri)s'),
                            uri=request.uri)
     logger.debug('STORAGE_VOLUMES %s]' % request.uri)
     try:
         node_stat = node.node_query(request.uri)
         volumes = storage.get_storage_volumes(node_stat, request.pool,
                                               request.type)
         res = protocol.Response_DUMP()
         res.data = volumes
         return res
     except node.NodeError, e:
         raise CommandError('STORAGE_VOLUMES', e)
Esempio n. 7
0
 def NODE_LIST(server, request):
     """Return list of nodes in group."""
     if not isinstance(request.group, basestring):
         raise CommandError('NODE_LIST',
                            _('group != string: %(group)s'),
                            group=request.group)
     if not isinstance(request.pattern, basestring):
         raise CommandError('NODE_LIST',
                            _('pattern != string: %(pattern)s'),
                            pattern=request.pattern)
     logger.debug('NODE_LIST')
     try:
         res = protocol.Response_DUMP()
         res.data = node.node_list(request.group, request.pattern)
         return res
     except node.NodeError as e:
         raise CommandError('NODE_LIST', e)
Esempio n. 8
0
 def DOMAIN_DEFINE(server, request):
     """Define new domain on node."""
     if not isinstance(request.uri, basestring):
         raise CommandError('DOMAIN_DEFINE',
                            _('uri != string: %(uri)s'),
                            uri=request.uri)
     if not isinstance(request.domain, protocol.Data_Domain):
         raise CommandError('DOMAIN_DEFINE',
                            _('definition != Domain: %(domain)s'),
                            domain=request.domain)
     logger.debug('DOMAIN_DEFINE %s %s' % (request.uri, request.domain))
     try:
         uuid, warnings = node.domain_define(request.uri, request.domain)
         res = protocol.Response_DUMP()
         res.data = uuid
         res.messages = warnings
         return res
     except node.NodeError as e:
         raise CommandError('DOMAIN_DEFINE', e)
Esempio n. 9
0
    def DOMAIN_INFO(server, request):
        """Return detailed information about a domain."""
        if not isinstance(request.uri, basestring):
            raise CommandError('DOMAIN_INFO',
                               _('uri != string: %(uri)s'),
                               uri=request.uri)
        if not isinstance(request.domain, basestring):
            raise CommandError('DOMAIN_INFO',
                               _('domain != string: %(domain)s'),
                               domain=request.domain)

        logger.debug('DOMAIN_INFO %s %s' % (request.uri, request.domain))
        try:
            domain_info = node.domain_info(request.uri, request.domain)
            res = protocol.Response_DUMP()
            res.data = domain_info
            return res
        except node.NodeError as e:
            raise CommandError('DOMAIN_INFO', e)
Esempio n. 10
0
    def DOMAIN_LIST(server, request):
        """Return a list of available domains of a given node."""
        if not isinstance(request.uri, basestring):
            raise CommandError('DOMAIN_LIST',
                               _('uri != string: %(uri)s'),
                               uri=request.uri)
        if not isinstance(request.pattern, basestring):
            raise CommandError('DOMAIN_LIST',
                               _('pattern != string: %(pattern)s'),
                               pattern=request.pattern)

        logger.debug('DOMAIN_LIST %s %s' % (request.uri, request.pattern))
        try:
            domains = node.domain_list(request.uri, request.pattern)
            res = protocol.Response_DUMP()
            res.data = domains
            return res
        except node.NodeError as e:
            raise CommandError('DOMAIN_LIST', e)
Esempio n. 11
0
 def DOMAIN_CLONE(server, request):
     """Clone a domain."""
     if not isinstance(request.uri, basestring):
         raise CommandError('DOMAIN_CLONE',
                            _('uri != string: %(uri)s'),
                            uri=request.uri)
     if not isinstance(request.domain, basestring):
         raise CommandError('DOMAIN_CLONE',
                            _('domain != string: %(domain)s'),
                            domain=request.domain)
     if not isinstance(request.name, basestring):
         raise CommandError('DOMAIN_CLONE',
                            _('name != string: %(name)s'),
                            name=request.name)
     if not isinstance(request.subst, dict):
         raise CommandError('DOMAIN_CLONE',
                            _('subst != dict: %(subst)s'),
                            subst=request.subst)
     for key, value in request.subst.items():
         if not isinstance(key, basestring):
             raise CommandError('DOMAIN_CLONE',
                                _('subst[] != string: %(subst)s'),
                                subst=key)
         if not (value is None or isinstance(value, basestring)):
             raise CommandError('DOMAIN_CLONE',
                                _('subst[] != string: %(subst)s'),
                                subst=value)
     logger.debug(
         'DOMAIN_CLONE %s#%s %s %r' %
         (request.uri, request.domain, request.name, request.subst))
     try:
         uuid, warnings = node.domain_clone(request.uri, request.domain,
                                            request.name, request.subst)
         res = protocol.Response_DUMP()
         res.data = uuid
         res.messages = warnings
         return res
     except node.NodeError as e:
         raise CommandError('DOMAIN_CLONE', e)
Esempio n. 12
0
    def NODE_QUERY(server, request):
        """Get domain and storage-pool information from node."""
        if not isinstance(request.uri, basestring):
            raise CommandError('NODE_QUERY',
                               _('uri != string: %(uri)s'),
                               uri=request.uri)
        logger.debug('NODE_QUERY %s' % (request.uri, ))

        try:
            local_data = node.node_query(request.uri)
            if local_data is None:
                raise CommandError('NODE_QUERY',
                                   _('unknown node %(uri)s'),
                                   uri=request.uri)

            pkg_data = copy.copy(local_data.pd)
            pkg_data.domains = [d.pd for d in local_data.domains.values()]

            res = protocol.Response_DUMP()
            res.data = pkg_data
            return res
        except node.NodeError as e:
            raise CommandError('NODE_QUERY', e)