本文整理汇总了Python中rhn.UserDictCase.UserDictCase类的典型用法代码示例。如果您正苦于以下问题:Python UserDictCase类的具体用法?Python UserDictCase怎么用?Python UserDictCase使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UserDictCase类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: __merge
def __merge(self, component = None):
"""
merge the config options between the default comp dictionaries
and the file we're parsing now
"""
# Caches this component's configuration options
if component is None:
component = self.__component
opts = UserDictCase()
comps = parse_comps(component)
for comp in comps:
if not self.__defaults.has_key(comp):
warn('key not found in config default dict', comp)
continue
opts.update(self.__defaults[comp])
# Now load the specific stuff, and perform syntax checking too
for comp in comps:
if not self.__parsedConfig.has_key(comp):
# No such entry in the config file
continue
for key, (values, _lineno_) in self.__parsedConfig[comp].items():
## we don't really want to force every item in the
## config file to have a default value first. If we do,
## uncomment this section
#if not opts.has_key(key): # Unknown keyword
# warn("Warning: in file %s, line %s: unknown "
# "option name `%s'" % (self.filename, lineno, key))
# continue
opts[key] = values
# and now save it
self.__configs[component] = opts
开发者ID:Kilian-Petsch,项目名称:spacewalk,代码行数:33,代码来源:rhnConfig.py
示例2: _execute_
def _execute_(self, args, kwargs):
"""
Oracle specific execution of the query.
"""
# TODO: args appears unused, raise exception if we see any?
# Only copy the arguments we're interested in
_p = UserDictCase(kwargs)
params = {}
# Check that all required parameters were provided:
# NOTE: bindnames() is Oracle specific:
for k in self._real_cursor.bindnames():
if not _p.has_key(k):
# Raise the fault ourselves
raise sql_base.SQLError(1008, 'Not all variables bound', k)
params[k] = to_string(_p[k])
# cx_Oracle expects the first arg to be the statement and no
# positional args:
try:
self._real_cursor.execute(*(None, ), **params)
except cx_Oracle.OperationalError:
e = sys.exc_info()[1]
raise sql_base.SQLError("Cannot execute SQL statement: %s" % str(e))
self.description = self._real_cursor.description
return self._real_cursor.rowcount
开发者ID:jdobes,项目名称:spacewalk,代码行数:28,代码来源:driver_cx_Oracle.py
示例3: Device
class Device(GenericDevice):
""" This is the base Device class that supports instantiation from a
dictionarry. the __init__ takes the dictionary as its argument,
together with a list of valid fields to recognize and with a mapping
for dictionary keys into valid field names for self.data
The fields are required to know what fields we have in the
table. The mapping allows transformation from whatever comes in to
valid fields in the table Looks complicated but it isn't -- gafton
"""
def __init__(self, fields, dict=None, mapping=None):
GenericDevice.__init__(self)
x = {}
for k in fields:
x[k] = None
self.data = UserDictCase(x)
if not dict:
return
# make sure we get a UserDictCase to work with
if type(dict) == type({}):
dict = UserDictCase(dict)
if mapping is None or type(mapping) == type({}):
mapping = UserDictCase(mapping)
if not isinstance(dict, UserDictCase) or not isinstance(mapping, UserDictCase):
log_error("Argument passed is not a dictionary", dict, mapping)
raise TypeError("Argument passed is not a dictionary", dict, mapping)
# make sure we have a platform
for k in dict.keys():
if dict[k] == "":
dict[k] = None
if self.data.has_key(k):
self.data[k] = dict[k]
continue
if mapping.has_key(k):
# the mapping dict might tell us to lose some fields
if mapping[k] is not None:
self.data[mapping[k]] = dict[k]
else:
log_error("Unknown HW key =`%s'" % k, dict.dict(), mapping.dict())
# The try-except is added just so that we can send e-mails
try:
raise KeyError("Don't know how to parse key `%s''" % k, dict.dict())
except:
Traceback(mail=1)
# Ignore this key
continue
# clean up this data
try:
for k in self.data.keys():
if type(self.data[k]) == type("") and len(self.data[k]):
self.data[k] = string.strip(self.data[k])
if not len(self.data[k]):
continue
if self.data[k][0] == '"' and self.data[k][-1] == '"':
self.data[k] = self.data[k][1:-1]
except IndexError:
raise_with_tb(IndexError("Can not process data = %s, key = %s" % (repr(self.data), k)), sys.exc_info()[2])
开发者ID:shastah,项目名称:spacewalk,代码行数:59,代码来源:server_hardware.py
示例4: __init__
def __init__(self, dict, db, sql, rowid, cache=None):
UserDictCase.__init__(self, dict)
if not isinstance(db, sql_base.Database):
raise TypeError("Second argument needs to be a database handle")
self.__db = db
self.__sql = sql
self.__rowid = rowid
self.__cache = cache
开发者ID:cliffy94,项目名称:spacewalk,代码行数:8,代码来源:sql_table.py
示例5: add_hardware
def add_hardware(self, hardware):
""" add new hardware """
log_debug(4, hardware)
if not hardware:
return -1
if type(hardware) == type({}):
hardware = UserDictCase(hardware)
if not isinstance(hardware, UserDictCase):
log_error("argument type is not hash: %s" % hardware)
raise TypeError, "This function requires a hash as an argument"
# validation is important
hw_class = hardware.get("class")
if hw_class is None:
return -1
hw_class = string.lower(hw_class)
class_type = None
if hw_class in ["video", "audio", "audio_hd", "usb", "other", "hd", "floppy",
"mouse", "modem", "network", "cdrom", "scsi",
"unspec", "scanner", "tape", "capture", "raid",
"socket", "keyboard", "printer", "firewire", "ide"]:
class_type = HardwareDevice
elif hw_class == "cpu":
class_type = CPUDevice
elif hw_class == "netinfo":
class_type = NetworkInformation
elif hw_class == "memory":
class_type = MemoryInformation
elif hw_class == "dmi":
class_type = DMIInformation
elif hw_class == "installinfo":
class_type = InstallInformation
elif hw_class == "netinterfaces":
class_type = NetIfaceInformation
else:
log_error("UNKNOWN CLASS TYPE `%s'" % hw_class)
# Same trick: try-except and raise the exception so that Traceback
# can send the e-mail
try:
raise KeyError, "Unknwon class type `%s' for hardware '%s'" % (
hw_class, hardware)
except:
Traceback(mail=1)
return
# create the new device
new_dev = class_type(hardware)
if self.__hardware.has_key(class_type):
_l = self.__hardware[class_type]
else:
_l = self.__hardware[class_type] = []
_l.append(new_dev)
self.__changed = 1
return 0
开发者ID:TJM,项目名称:spacewalk,代码行数:56,代码来源:server_hardware.py
示例6: __init__
def __init__(self, db, table, hashname, hashval=None):
UserDictCase.__init__(self)
if not isinstance(db, sql_base.Database):
raise rhnException("Argument db is not a database instance", db)
self.db = db
self.table = table
self.hashname = string.lower(hashname)
# and the data dictionary
self.data = {}
# is this a real entry (ie, use insert or update)
self.real = 0
if hashval is not None: # if we have to load an entry already...
self.load(hashval)
开发者ID:dewayneHat,项目名称:spacewalk,代码行数:14,代码来源:sql_row.py
示例7: __init__
def __init__(self, req):
rhnHandler.__init__(self)
dumper.XML_Dumper.__init__(self)
self.headers_out = UserDictCase()
self._raw_stream = req
self._raw_stream.content_type = 'application/octet-stream'
self.compress_level = 0
# State machine
self._headers_sent = 0
self._is_closed = 0
self._compressed_stream = None
self.functions = [
'arches',
'arches_extra',
'channel_families',
'channels',
'get_comps',
'get_modules',
'channel_packages_short',
'packages_short',
'packages',
'source_packages',
'errata',
'blacklist_obsoletes',
'product_names',
'get_rpm',
'kickstartable_trees',
'get_ks_file',
'orgs',
]
self.system_id = None
self._channel_family_query_template = """
select cfm.channel_family_id, 0 quantity
from rhnChannelFamilyMembers cfm,
rhnChannel c, rhnChannelFamily cf
where cfm.channel_id = c.id
and c.label in (%s)
and cfm.channel_family_id = cf.id
and cf.label != 'rh-public'
and (cf.org_id in (%s)
or cf.org_id is null)
union
select id channel_family_id, NULL quantity
from rhnChannelFamily
where label = 'rh-public'
"""
self._channel_family_query_public = """
select id channel_family_id, 0 quantity
from rhnChannelFamily
where org_id in (%s)
or org_id is null
"""
self._channel_family_query = None
开发者ID:mcalmer,项目名称:spacewalk,代码行数:55,代码来源:non_auth_dumper.py
示例8: __init__
def __init__(self, fields, dict=None, mapping=None):
GenericDevice.__init__(self)
x = {}
for k in fields:
x[k] = None
self.data = UserDictCase(x)
if not dict:
return
# make sure we get a UserDictCase to work with
if type(dict) == type({}):
dict = UserDictCase(dict)
if mapping is None or type(mapping) == type({}):
mapping = UserDictCase(mapping)
if not isinstance(dict, UserDictCase) or \
not isinstance(mapping, UserDictCase):
log_error("Argument passed is not a dictionary", dict, mapping)
raise TypeError("Argument passed is not a dictionary",
dict, mapping)
# make sure we have a platform
for k in dict.keys():
if dict[k] == '':
dict[k] = None
if self.data.has_key(k):
self.data[k] = dict[k]
continue
if mapping.has_key(k):
# the mapping dict might tell us to lose some fields
if mapping[k] is not None:
self.data[mapping[k]] = dict[k]
else:
log_error("Unknown HW key =`%s'" % k,
dict.dict(), mapping.dict())
# The try-except is added just so that we can send e-mails
try:
raise KeyError("Don't know how to parse key `%s''" % k,
dict.dict())
except:
Traceback(mail=1)
# Ignore this key
continue
# clean up this data
try:
for k in self.data.keys():
if type(self.data[k]) == type("") and len(self.data[k]):
self.data[k] = string.strip(self.data[k])
if not len(self.data[k]):
continue
if self.data[k][0] == '"' and self.data[k][-1] == '"':
self.data[k] = self.data[k][1:-1]
except IndexError:
raise IndexError, "Can not process data = %s, key = %s" % (
repr(self.data), k), sys.exc_info()[2]
开发者ID:TJM,项目名称:spacewalk,代码行数:52,代码来源:server_hardware.py
示例9: _executemany
def _executemany(self, *args, **kwargs):
if not kwargs:
return 0
params = UserDictCase(kwargs)
# First break all the incoming keyword arg lists into individual
# hashes:
all_kwargs = []
for key in params.keys():
if len(all_kwargs) < len(params[key]):
for i in range(len(params[key])):
all_kwargs.append({})
i = 0
for val in params[key]:
all_kwargs[i][key] = val
i = i + 1
self._real_cursor.executemany(self.sql, all_kwargs)
self.description = self._real_cursor.description
rowcount = self._real_cursor.rowcount
return rowcount
开发者ID:BlackSmith,项目名称:spacewalk,代码行数:23,代码来源:driver_postgresql.py
示例10: __init__
def __init__(self, transfer=0, encoding=0, refreshCallback=None,
progressCallback=None, use_datetime=None, timeout=None):
self._use_builtin_types = False
self._transport_flags = {'transfer' : 0, 'encoding' : 0}
self.set_transport_flags(transfer=transfer, encoding=encoding)
self._headers = UserDictCase()
self.verbose = 0
self.connection = None
self.method = "POST"
self._lang = None
self.refreshCallback = refreshCallback
self.progressCallback = progressCallback
self.bufferSize = 16384
self.headers_in = None
self.response_status = None
self.response_reason = None
self._redirected = None
self._use_datetime = use_datetime
self.timeout = timeout
开发者ID:BlackSmith,项目名称:spacewalk,代码行数:19,代码来源:transports.py
示例11: set_info
def set_info(self, name, value):
""" set a certain value for the userinfo field. This is BUTT ugly. """
log_debug(3, name, value)
# translation from what the client send us to real names of the fields
# in the tables.
mapping = {
"first_name": "first_names",
"position": "title",
"title": "prefix"
}
if not name:
return -1
name = name.lower()
if type(value) == type(""):
value = value.strip()
# We have to watch over carefully for different field names
# being sent from rhn_register
changed = 0
# translation
if name in mapping.keys():
name = mapping[name]
# Some fields can not have null string values
if name in ["first_names", "last_name", "prefix", # personal_info
"address1", "city", "country"]: # site_info
# we require something of it
if len(str(value)) == 0:
return -1
# fields in personal_info (and some in site)
if name in ["last_name", "first_names",
"company", "phone", "fax", "email", "title"]:
self.info[name] = value[:128]
changed = 1
elif name == "prefix":
values = ["Mr.", "Mrs.", "Ms.", "Dr.", "Hr.", "Sr.", " "]
# Now populate a dictinary of valid values
valids = UserDictCase()
for v in values: # initialize from good values, with and w/o the dot
valids[v] = v
valids[v[:-1]] = v
# commonly encountered values
valids["Miss"] = "Miss"
valids["Herr"] = "Hr."
valids["Sig."] = "Sr."
valids["Sir"] = "Mr."
# Now check it out
if valids.has_key(value):
self.info["prefix"] = valids[value]
changed = 1
else:
log_error("Unknown prefix value `%s'. Assumed `Mr.' instead"
% value)
self.info["prefix"] = "Mr."
changed = 1
# fields in site
if name in ["phone", "fax", "zip"]:
self.site[name] = value[:32]
changed = 1
elif name in ["city", "country", "alt_first_names", "alt_last_name",
"address1", "address2", "email",
"last_name", "first_names"]:
if name == "last_name":
self.site["alt_last_name"] = value
changed = 1
elif name == "first_names":
self.site["alt_first_names"] = value
changed = 1
else:
self.site[name] = value[:128]
changed = 1
elif name in ["state"]: # stupid people put stupid things in here too
self.site[name] = value[:60]
changed = 1
if not changed:
log_error("SET_INFO: Unknown info `%s' = `%s'" % (name, value))
return 0
开发者ID:TJM,项目名称:spacewalk,代码行数:77,代码来源:rhnUser.py
示例12: NonAuthenticatedDumper
class NonAuthenticatedDumper(rhnHandler, dumper.XML_Dumper):
# pylint: disable=E1101,W0102,W0613,R0902,R0904
def __init__(self, req):
rhnHandler.__init__(self)
dumper.XML_Dumper.__init__(self)
self.headers_out = UserDictCase()
self._raw_stream = req
self._raw_stream.content_type = 'application/octet-stream'
self.compress_level = 0
# State machine
self._headers_sent = 0
self._is_closed = 0
self._compressed_stream = None
self.functions = [
'arches',
'arches_extra',
'channel_families',
'channels',
'get_comps',
'channel_packages_short',
'packages_short',
'packages',
'source_packages',
'errata',
'blacklist_obsoletes',
'product_names',
'get_rpm',
'kickstartable_trees',
'get_ks_file',
'orgs',
]
self.system_id = None
self._channel_family_query_template = """
select cfm.channel_family_id, 0 quantity
from rhnChannelFamilyMembers cfm,
rhnChannel c, rhnChannelFamily cf
where cfm.channel_id = c.id
and c.label in (%s)
and cfm.channel_family_id = cf.id
and cf.label != 'rh-public'
and (cf.org_id in (%s)
or cf.org_id is null)
union
select id channel_family_id, NULL quantity
from rhnChannelFamily
where label = 'rh-public'
"""
self._channel_family_query_public = """
select id channel_family_id, 0 quantity
from rhnChannelFamily
where org_id in (%s)
or org_id is null
"""
self._channel_family_query = None
def _send_headers(self, error=0, init_compressed_stream=1):
log_debug(4, "is_closed", self._is_closed)
if self._is_closed:
raise Exception("Trying to write to a closed connection")
if self._headers_sent:
return
self._headers_sent = 1
if self.compress_level:
self.headers_out['Content-Encoding'] = 'gzip'
# Send the headers
if error:
# No compression
self.compress_level = 0
self._raw_stream.content_type = 'text/xml'
for h, v in self.headers_out.items():
self._raw_stream.headers_out[h] = str(v)
self._raw_stream.send_http_header()
# If need be, start gzipping
if self.compress_level and init_compressed_stream:
log_debug(4, "Compressing with factor %s" % self.compress_level)
self._compressed_stream = gzip.GzipFile(None, "wb",
self.compress_level, self._raw_stream)
def send(self, data):
log_debug(3, "Sending %d bytes" % len(data))
try:
self._send_headers()
if self._compressed_stream:
log_debug(4, "Sending through a compressed stream")
self._compressed_stream.write(data)
else:
self._raw_stream.write(data)
except IOError:
log_error("Client appears to have closed connection")
self.close()
raise_with_tb(dumper.ClosedConnectionError, sys.exc_info()[2])
log_debug(5, "Bytes sent", len(data))
write = send
def close(self):
log_debug(2, "Closing")
#.........这里部分代码省略.........
开发者ID:BlackSmith,项目名称:spacewalk,代码行数:101,代码来源:non_auth_dumper.py
示例13: __init__
def __init__(self):
self.server = UserDictCase()
Packages.__init__(self)
History.__init__(self)
Hardware.__init__(self)
开发者ID:flavio,项目名称:spacewalk,代码行数:5,代码来源:server_wrapper.py
示例14: ServerWrapper
class ServerWrapper(Packages, Hardware, History):
""" This is a middle class that ties all the subclasses together, plus it
provides a cleaner way to keep all the wrapper functions in one place.
The main Server class is based on this one and it looks a little bit
cleaner that way.
"""
def __init__(self):
self.server = UserDictCase()
Packages.__init__(self)
History.__init__(self)
Hardware.__init__(self)
def __repr__(self):
return "<%s instance>" % (self.__class__,)
def set_value(self, name, value):
""" update a value in self.server """
if name is None or value is None:
return -1
self.server[name] = value
return 0
###
# PACKAGES
###
def add_package(self, entry):
""" Wrappers for the similar functions from Packages class that supplementaly
require a valid sysid.
"""
return Packages.add_package(self, self.server.get("id"), entry)
def delete_package(self, entry):
return Packages.delete_package(self, self.server.get("id"), entry)
def dispose_packages(self):
return Packages.dispose_packages(self, self.server["id"])
def save_packages(self, schedule=1):
""" wrapper for the Packages.save_packages_byid() which requires the sysid """
ret = self.save_packages_byid(self.server["id"], schedule=schedule)
# this function is primarily called from outside
# so we have to commit here
rhnSQL.commit()
return ret
###
# HARDWARE
###
def delete_hardware(self):
""" Wrappers for the similar functions from Hardware class """
return Hardware.delete_hardware(self, self.server.get("id"))
def save_hardware(self):
""" wrapper for the Hardware.save_hardware_byid() which requires the sysid """
ret = self.save_hardware_byid(self.server["id"])
# this function is primarily called from outside
# so we have to commit here
rhnSQL.commit()
return ret
def reload_hardware(self):
""" wrapper for the Hardware.reload_hardware_byid() which requires the sysid """
ret = self.reload_hardware_byid(self.server["id"])
return ret
###
# HISTORY
###
def save_history(self):
ret = self.save_history_byid(self.server["id"])
# this function is primarily called from outside
# so we have to commit here
rhnSQL.commit()
return ret
开发者ID:flavio,项目名称:spacewalk,代码行数:78,代码来源:server_wrapper.py
示例15: Transport
class Transport(xmlrpclib.Transport):
user_agent = "rhn.rpclib.py/%s" % __version__
def __init__(self, transfer=0, encoding=0, refreshCallback=None,
progressCallback=None, use_datetime=None, timeout=None):
self._use_builtin_types = False
self._transport_flags = {'transfer' : 0, 'encoding' : 0}
self.set_transport_flags(transfer=transfer, encoding=encoding)
self._headers = UserDictCase()
self.verbose = 0
self.connection = None
self.method = "POST"
self._lang = None
self.refreshCallback = refreshCallback
self.progressCallback = progressCallback
self.bufferSize = 16384
self.headers_in = None
self.response_status = None
self.response_reason = None
self._redirected = None
self._use_datetime = use_datetime
self.timeout = timeout
# set the progress callback
def set_progress_callback(self, progressCallback, bufferSize=16384):
self.progressCallback = progressCallback
self.bufferSize = bufferSize
# set the refresh callback
def set_refresh_callback(self, refreshCallback):
self.refreshCallback = refreshCallback
# set the buffer size
# The bigger this is, the faster the read is, but the more seldom is the
# progress callback called
def set_buffer_size(self, bufferSize):
if bufferSize is None:
# No buffer size specified; go with 16k
bufferSize = 16384
self.bufferSize = bufferSize
# set the request method
def set_method(self, method):
if method not in ("GET", "POST"):
raise IOError("Unknown request method %s" % method)
self.method = method
# reset the transport options
def set_transport_flags(self, transfer=None, encoding=None, **kwargs):
# For backwards compatibility, we keep transfer and encoding as
# positional parameters (they could come in as kwargs easily)
self._transport_flags.update(kwargs)
if transfer is not None:
self._transport_flags['transfer'] = transfer
if encoding is not None:
self._transport_flags['encoding'] = encoding
self.validate_transport_flags()
def get_transport_flags(self):
return self._transport_flags.copy()
def validate_transport_flags(self):
# Transfer and encoding are guaranteed to be there
transfer = self._transport_flags.get('transfer')
transfer = lookupTransfer(transfer, strict=1)
self._transport_flags['transfer'] = transfer
encoding = self._transport_flags.get('encoding')
encoding = lookupEncoding(encoding, strict=1)
self._transport_flags['encoding'] = encoding
# Add arbitrary additional headers.
def set_header(self, name, arg):
if type(arg) in [ type([]), type(()) ]:
# Multivalued header
self._headers[name] = [str(a) for a in arg]
else:
self._headers[name] = str(arg)
def add_header(self, name, arg):
if name in self._headers:
vlist = self._headers[name]
if not isinstance(vlist, ListType):
vlist = [ vlist ]
else:
vlist = self._headers[name] = []
vlist.append(str(arg))
def clear_headers(self):
self._headers.clear()
def get_connection(self, host):
if self.verbose:
print("Connecting via http to %s" % (host, ))
if self.timeout:
return connections.HTTPConnection(host, timeout=self.timeout)
else:
return connections.HTTPConnection(host)
#.........这里部分代码省略.........
开发者ID:BlackSmith,项目名称:spacewalk,代码行数:101,代码来源:transports.py
示例16: NonAuthenticatedDumper
class NonAuthenticatedDumper(rhnHandler, dumper.XML_Dumper):
# pylint: disable=E1101,W0102,W0613,R0902,R0904
def __init__(self, req):
rhnHandler.__init__(self)
dumper.XML_Dumper.__init__(self)
self.headers_out = UserDictCase()
self._raw_stream = req
self._raw_stream.content_type = 'application/octet-stream'
self.compress_level = 0
# State machine
self._headers_sent = 0
self._is_closed = 0
self._compressed_stream = None
self.functions = [
'arches',
'arches_extra',
'channel_families',
'channels',
'get_comps',
'channel_packages_short',
'packages_short',
'packages',
'source_packages',
'errata',
'blacklist_obsoletes',
'product_names',
'get_rpm',
'kickstartable_trees',
'get_ks_file',
'orgs',
]
self.system_id = None
self._channel_family_query_template = """
select cfm.channel_family_id, 0 quantity
from rhnChannelFamilyMembers cfm,
rhnChannel c, rhnChannelFamily cf
where cfm.channel_id = c.id
and c.label in (%s)
and cfm.channel_family_id = cf.id
and cf.label != 'rh-public'
and (cf.org_id in (%s)
or cf.org_id is null)
union
select id channel_family_id, NULL quantity
from rhnChannelFamily
where label = 'rh-public'
"""
self._channel_family_query_public = """
select id channel_family_id, 0 quantity
from rhnChannelFamily
where org_id in (%s)
or org_id is null
"""
self._channel_family_query = None
def _send_headers(self, error=0, init_compressed_stream=1):
log_debug(4, "is_closed", self._is_closed)
if self._is_closed:
raise Exception, "Trying to write to a closed connection"
if self._headers_sent:
return
self._headers_sent = 1
if self.compress_level:
self.headers_out['Content-Encoding'] = 'gzip'
# Send the headers
if error:
# No compression
self.compress_level = 0
self._raw_stream.content_type = 'text/xml'
for h, v in self.headers_out.items():
self._raw_stream.headers_out[h] = str(v)
self._raw_stream.send_http_header()
# If need be, start gzipping
if self.compress_level and init_compressed_stream:
log_debug(4, "Compressing with factor %s" % self.compress_level)
self._compressed_stream = gzip.GzipFile(None, "wb",
self.compress_level, self._raw_stream)
def send(self, data):
log_debug(3, "Sending %d bytes" % len(data))
try:
self._send_headers()
if self._compressed_stream:
log_debug(4, "Sending through a compressed stream")
self._compressed_stream.write(data)
else:
self._raw_stream.write(data)
except IOError:
log_error("Client appears to have closed connection")
self.close()
raise dumper.ClosedConnectionError, None, sys.exc_info()[2]
log_debug(5, "Bytes sent", len(data))
write = send
def close(self):
log_debug(2, "Closing")
#.........这里部分代码省略.........
开发者ID:flavio,项目名称:spacewalk,代码行数:101,代码来源:non_auth_dumper.py
示例17: __init__
def __init__(self, uri, transport=None, encoding=None, verbose=0,
proxy=None, username=None, password=None, refreshCallback=None,
progressCallback=None, timeout=None):
# establish a "logical" server connection
#
# First parse the proxy information if available
#
if proxy != None:
(ph, pp, pu, pw) = get_proxy_info(proxy)
if pp is not None:
proxy = "%s:%s" % (ph, pp)
else:
proxy = ph
# username and password will override whatever was passed in the
# URL
if pu is not None and username is None:
username = pu
if pw is not None and password is None:
password = pw
self._uri = sstr(uri)
self._refreshCallback = None
self._progressCallback = None
self._bufferSize = None
self._proxy = proxy
self._username = username
self._password = password
self._timeout = timeout
if len(__version__.split()) > 1:
self.rpc_version = __version__.split()[1]
else:
self.rpc_version = __version__
self._reset_host_handler_and_type()
if transport is None:
self._allow_redirect = 1
transport = self.default_transport(self._type, proxy, username,
password, timeout)
else:
#
# dont allow redirect on unknow transports, that should be
# set up independantly
#
self._allow_redirect = 0
self._redirected = None
self.use_handler_path = 1
self._transport = transport
self._trusted_cert_files = []
self._lang = None
self._encoding = encoding
self._verbose = verbose
self.set_refresh_callback(refreshCallback)
self.set_progress_callback(progressCallback)
# referer, which redirect us to new handler
self.send_handler=None
self._headers = UserDictCase()
开发者ID:m47ik,项目名称:uyuni,代码行数:68,代码来源:rpclib.py
示例18: available
class Server:
"""uri [,options] -> a logical connection to an XML-RPC server
uri is the connection point on the server, given as
scheme://host/target.
The standard implementation always supports the "http" scheme. If
SSL socket support is available (Python 2.0), it also supports
"https".
If the target part and the slash preceding it are both omitted,
"/RPC2" is assumed.
The following options can be given as keyword arguments:
transport: a transport factory
encoding: the request encoding (default is UTF-8)
verbose: verbosity level
proxy: use an HTTP proxy
username: username for authenticated HTTP proxy
password: password for authenticated HTTP proxy
All 8-bit strings passed to the server proxy are assumed to use
the given encoding.
"""
# Default factories
_transport_class = transports.Transport
_transport_class_https = transports.SafeTransport
_transport_class_proxy = transports.ProxyTransport
_transport_class_https_proxy = transports.SafeProxyTransport
def __init__(self, uri, transport=None, encoding=None, verbose=0,
proxy=None, username=None, password=None, refreshCallback=None,
progressCallback=None, timeout=None):
# establish a "logical" server connection
#
# First parse the proxy information if available
#
if proxy != None:
(ph, pp, pu, pw) = get_proxy_info(proxy)
if pp is not None:
proxy = "%s:%s" % (ph, pp)
else:
proxy = ph
# username and password will override whatever was passed in the
# URL
if pu is not None and username is None:
username = pu
if pw is not None and password is None:
password = pw
self._uri = sstr(uri)
self._refreshCallback = None
self._progressCallback = None
self._bufferSize = None
self._proxy = proxy
self._username = username
self._password = password
self._timeout = timeout
if len(__version__.split()) > 1:
self.rpc_version = __version__.split()[1]
else:
self.rpc_version = __version__
self._reset_host_handler_and_type()
if transport is None:
self._allow_redirect = 1
transport = self.default_transport(self._type, proxy, username,
password, timeout)
else:
#
# dont allow redirect on unknow transports, that should be
# set up independantly
#
self._allow_redirect = 0
self._redirected = None
self.use_handler_path = 1
self._transport = transport
self._trusted_cert_files = []
self._lang = None
self._encoding = encoding
self._verbose = verbose
self.set_refresh_callback(refreshCallback)
self.set_progress_callback(progressCallback)
# referer, which redirect us to new handler
self.send_handler=None
self._headers = UserDictCase()
#.........这里部分代码省略.........
开发者ID:m47ik,项目名称:uyuni,代码行数:101,代码来源:rpclib.py
注:本文中的rhn.UserDictCase.UserDictCase类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论