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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)