当前位置: 首页>>代码示例>>Python>>正文


Python ServerProxy.query方法代码示例

本文整理汇总了Python中xmlrpc.client.ServerProxy.query方法的典型用法代码示例。如果您正苦于以下问题:Python ServerProxy.query方法的具体用法?Python ServerProxy.query怎么用?Python ServerProxy.query使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在xmlrpc.client.ServerProxy的用法示例。


在下文中一共展示了ServerProxy.query方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _do_update

# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import query [as 别名]
    def _do_update(self, hwids):
        '''Query remote server for driver updates for a set of HardwareIDs.'''

        logging.debug('Querying XML-RPC driver database %s...', self.url)
        client = ServerProxy(self.url)
        # TODO: error handling; pass kernel_version, architecture
        (res_proto_ver, res_proto_subver, drivers) = client.query(
            '20080407', '0', { 
            'os_name': OSLib.inst.os_vendor,
            'os_version': OSLib.inst.os_version, 
            'system_vendor': self.sys_vendor,
            'system_product': self.sys_product,
            'components': ['%s:%s' % (h.type, h.id) for h in hwids]
            })
        logging.debug('  -> protocol: %s/%s, drivers: %s', res_proto_ver,
            res_proto_subver, str(drivers))

        self.cache = {}
        if res_proto_ver != '20080407':
            logging.warning('   unknown protocol version, not updating')
            return

        for hwid in hwids:
            for drv in drivers.get('%s:%s' % (hwid.type, hwid.id), []):
                if 'driver_type' not in drv:
                    continue
                self.cache.setdefault(hwid, []).append(DriverID(**drv))
开发者ID:Alberto-Beralix,项目名称:Beralix,代码行数:29,代码来源:detection.py

示例2: _do_update

# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import query [as 别名]
    def _do_update(self, hwids):
        """Query remote server for driver updates for a set of HardwareIDs."""

        logging.debug("Querying XML-RPC driver database %s...", self.url)
        client = ServerProxy(self.url)
        # TODO: error handling; pass kernel_version, architecture
        (res_proto_ver, res_proto_subver, drivers) = client.query(
            "20080407",
            "0",
            {
                "os_name": OSLib.inst.os_vendor,
                "os_version": OSLib.inst.os_version,
                "system_vendor": self.sys_vendor,
                "system_product": self.sys_product,
                "components": ["%s:%s" % (h.type, h.id) for h in hwids],
            },
        )
        logging.debug("  -> protocol: %s/%s, drivers: %s", res_proto_ver, res_proto_subver, str(drivers))

        self.cache = {}
        if res_proto_ver != "20080407":
            logging.warning("   unknown protocol version, not updating")
            return

        for hwid in hwids:
            for drv in drivers.get("%s:%s" % (hwid.type, hwid.id), []):
                if "driver_type" not in drv:
                    continue
                self.cache.setdefault(hwid, []).append(DriverID(**drv))
开发者ID:Fabioamd87,项目名称:nfs-manager,代码行数:31,代码来源:detection.py

示例3: _broadcast

# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import query [as 别名]
 def _broadcast(self, query, history):
     for other in self.known.copy():
         if other in history: continue
         try:
             s = ServerProxy(other)
             #print(other)
             code, data = s.query(query, history)
             if code == OK:
                 return code, data
         except: self.known.remove(other)
     return FAIL, EMPTY
开发者ID:zlhou001,项目名称:XMLRPC,代码行数:13,代码来源:simple_node.py

示例4: _broadcast

# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import query [as 别名]
 def _broadcast(self, query, history):
     for other in self.known.copy():
         if other in history: continue
         try:
             s = ServerProxy(other)
             return s.query(query, history)
         except Fault as f:
             if f.faultCode == UNHADLED:pass
             else: self.known.remove(other)
         except:
             self.known.remove(other)
     raise UnhandledQuery
开发者ID:zlhou001,项目名称:XMLRPC,代码行数:14,代码来源:server.py

示例5: start_driverdb_server

# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import query [as 别名]
def start_driverdb_server(correct_protocol=True):
    '''Create XML-RPC driver db server.

    This will listen on localhost:8080 and serve fake_db. This must be
    terminated with stop_driverdb_server().

    If correct_protocol is False, this will answer with a bogus protocol
    version.
    '''

    start_driverdb_server.pid = os.fork()
    if start_driverdb_server.pid == 0:
        try:
            s = SimpleXMLRPCServer(('localhost', 8080), logRequests=False)
            s.register_introspection_functions()
            if correct_protocol:
                s.register_function(xmlrpc_driverdb_query, 'query')
            else:
                s.register_function(xmlrpc_driverdb_query_bogus, 'query')
            s.serve_forever()
        except:
            sys.stderr.write('********** DEMO XML-RPC server failed: ***********\n')
            traceback.print_exc()
            os._exit(1)

    # wait until it is ready
    c = ServerProxy('http://localhost:8080')
    timeout = 100
    while timeout > 0:
        time.sleep(0.1)
        try:
            c.query('0', '0', {})
        except socket.error:
            timeout -= 1
            continue
        break
    if timeout == 0:
        raise SystemError('XML-RPC demo server did not start')
开发者ID:csmart,项目名称:jockey-yum,代码行数:40,代码来源:sandbox.py

示例6: _broadcast

# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import query [as 别名]
 def _broadcast(self, query, history):
     """
     Used internally to broadcast a query to all known Nodes.
     """
     for other in self.known.copy():
         if other in history: continue
         try:
             s = ServerProxy(other)
             code, data = s.query(query, history)
             if code == OK:
                 return code, data
         except:
             self.known.remove(other)
     return FAIL, EMPTY
开发者ID:quietcoolwu,项目名称:Beginning_Python,代码行数:16,代码来源:listing27-1.py

示例7: _broadcast

# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import query [as 别名]
    def _broadcast(self, query, history):
        """
        Used internally to broadcast a query to all known Nodes.
        """
        for other in self.known.copy():
            if other in history: continue
            try:
                s = ServerProxy(other)
                return s.query(query, history)

            except Fault as f:
                if f.faultCode == UNHANDLED: pass
                else: self.known.remove(other)
            except:
                self.known.remove(other)
        raise UnhandledQuery
开发者ID:quietcoolwu,项目名称:Beginning_Python,代码行数:18,代码来源:listing27-2.py

示例8: TestXMLRPCDriverDBConsistency

# 需要导入模块: from xmlrpc.client import ServerProxy [as 别名]
# 或者: from xmlrpc.client.ServerProxy import query [as 别名]
class TestXMLRPCDriverDBConsistency(unittest.TestCase):
    def setUp(self):
        start_driverdb_server()
        self.xmlrpc_client = ServerProxy('http://localhost:8080')

    def tearDown(self):
        stop_driverdb_server()

    def test_consistency(self):
        '''XML-RPC driver DB server answers are consistent with fake_db'''

        # TODO: kernel_ver, and architecture specific tests
        self.assertEqual(self.xmlrpc_client.query('20080407', '0', {
            'os_name': 'Foonux', 'os_version': '42', 'system_vendor': '',
            'system_product': '', 'components': [
                'modalias:pci:v00001001d00003D11sv01sd02bc03sc00i00',
                'modalias:dmi:123456']}),
            ['20080407', '0', {
                'modalias:pci:v00001001d00003D11sv01sd02bc03sc00i00': [
                    {'driver_type': 'kernel_module', 'jockey_handler':
                     'VanillaGfxHandler', 'description': {'C': 'desc'}}, 
                    {'driver_type': 'kernel_module', 'foobar':
                    'IHaveNoHandler', 'description': {'C': 'desc'}}],
                'modalias:dmi:123456': []}
            ]
        )

        self.assertEqual(self.xmlrpc_client.query('20080407', '0', {
            'os_name': 'RedSock', 'os_version': '2.0', 'system_vendor': '',
            'system_product': '', 'components': [
                'modalias:pci:v00001001d00003D11sv01sd02bc03sc00i00']}),
            ['20080407', '0', {
                'modalias:pci:v00001001d00003D11sv01sd02bc03sc00i00': [
                    {'driver_type': 'kernel_module', 'jockey_handler':
                     'Vanilla3DHandler', 'description': {'C': 'desc'},
                     'repository': 'http://nonfree.redsock.com/addons'}]
            }]
        )

        self.assertEqual(self.xmlrpc_client.query('20080407', '0', {
            'os_name': 'Foonux', 'os_version': '40', 'system_vendor': '',
            'system_product': '', 'components': [
                'modalias:pci:v00001001d00003D11sv01sd02bc03sc00i00',
                'modalias:othertype:foobar12']}),
            ['20080407', '0', {
                'modalias:pci:v00001001d00003D11sv01sd02bc03sc00i00': [],
                'modalias:othertype:foobar12': []}
            ]
        )

        self.assertEqual(self.xmlrpc_client.query('20080407', '0', {
            'os_name': 'Foonux', 'os_version': '42', 'system_vendor':
            'VaporTech Inc.', 'system_product': 'Virtualtop X-1', 
            'components': ['modalias:pci:v0000FFF0d00000001sv01sd01bc06sc01i00']}),
            ['20080407', '0', {
                'modalias:pci:v0000FFF0d00000001sv01sd01bc06sc01i00': [
                    {'driver_type': 'kernel_module', 'kernel_module':
                     'chocolate', 'description': {'C': 'VaporTech choc handler', 'de_DE':
                         'German description', 'cs': 'Czech description'},
                     'long_description': {'C': 'Multi\nline'},
                     'driver_vendor': 'VaporTech', 'package': 'spam-x1', 'repository':
                     'http://vaportech.com/x1', 'version': '1.1-foo42-vt3',
                     'fingerprint': '0000 FFFF 1111 EEEE 2222  DDDD 3333 CCCC 4444 BBBB'},
                    {'driver_type': 'kernel_module', 'jockey_handler':
                     'NoDetectMod', 'driver_vendor': 'White Hat',
                     'description': {'C': 'WhiteHat ndmod'}},
                    {'driver_type': 'kernel_module', 'jockey_handler':
                     'NoDetectMod', 'driver_vendor': 'Black Hat',
                     'description': {'C': 'BlackHat ndmod'}},
                    {'driver_type': 'kernel_module', 'kernel_module':
                     'mint', 'driver_vendor': 'UbuOne',
                     'description': {'C': 'UbuOne mintmod'}},
                    {'driver_type': 'kernel_module', 'kernel_module':
                     'mint', 'driver_vendor': 'UbunTwo',
                     'description': {'C': 'UbunTwo mintmod'},
                     'recommended': True},
                    {'driver_type': 'kernel_module', 'kernel_module':
                     'apple', 'driver_vendor': 'Apple', 'description':
                     {'C': 'Unknown local kmod'}, 'free': False, 
                     'license': 'Kills kittens', 'package': 'pretzel'},
                ]}
            ]
        )

    def test_invalid_query(self):
        '''XML-RPC driver DB server/client survive incomplete queries'''

        self.assertEqual(self.xmlrpc_client.query('20080407', '0', {}), 
            ['20080407', '0', {}])
        self.assertEqual(self.xmlrpc_client.query('20080407', '0', {
            'components': ['modalias:pci:foo']}),
            ['20080407', '0', {}])
        self.assertEqual(self.xmlrpc_client.query('20080407', '0', {
            'os_name': 'Foonux', 'components': ['modalias:pci:foo']}),
            ['20080407', '0', {}])

    def test_introspection(self):
        '''XML-RPC driver DB server supports expected methods'''

        self.assert_('query' in self.xmlrpc_client.system.listMethods())
开发者ID:csmart,项目名称:jockey-yum,代码行数:102,代码来源:sandbox.py


注:本文中的xmlrpc.client.ServerProxy.query方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。