本文整理汇总了Python中turbolift.utils.report_utils.reporter函数的典型用法代码示例。如果您正苦于以下问题:Python reporter函数的具体用法?Python reporter怎么用?Python reporter使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了reporter函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: object_lister
def object_lister(self, url, container, object_count=None, last_obj=None):
"""Builds a long list of objects found in a container.
NOTE: This could be millions of Objects.
:param url:
:param container:
:param object_count:
:param last_obj:
:return None | list:
"""
for retry in basic.retryloop(attempts=ARGS.get("error_retry"), obj="Object List"):
fheaders = self.payload["headers"]
fpath = http.quoter(url=url.path, cont=container)
with meth.operation(retry, obj="%s %s" % (fheaders, fpath)):
resp = self._header_getter(url=url, rpath=fpath, fheaders=fheaders)
if resp.status_code == 404:
report.reporter(msg="Not found. %s | %s" % (resp.status_code, resp.request))
return None, None, None
else:
if object_count is None:
object_count = resp.headers.get("x-container-object-count")
if object_count:
object_count = int(object_count)
if not object_count > 0:
return None, None, None
else:
return None, None, None
# Set the number of loops that we are going to do
return self._list_getter(url=url, filepath=fpath, fheaders=fheaders, last_obj=last_obj)
开发者ID:remezcla,项目名称:turbolift,代码行数:32,代码来源:actions.py
示例2: authenticate
def authenticate():
"""Authentication For Openstack API.
Pulls the full Openstack Service Catalog Credentials are the Users API
Username and Key/Password "osauth" has a Built in Rackspace Method for
Authentication
Set a DC Endpoint and Authentication URL for the OpenStack environment
"""
# Setup the request variables
url = auth.parse_region()
a_url = http.parse_url(url=url, auth=True)
auth_json = auth.parse_reqtype()
# remove the prefix for the Authentication URL if Found
LOG.debug("POST == REQUEST DICT > JSON DUMP %s", auth_json)
auth_json_req = json.dumps(auth_json)
headers = {"Content-Type": "application/json"}
# Send Request
request = ("POST", a_url.path, auth_json_req, headers)
resp_read = auth.request_process(aurl=a_url, req=request)
LOG.debug("POST Authentication Response %s", resp_read)
try:
auth_resp = json.loads(resp_read)
except ValueError as exp:
LOG.error("Authentication Failure %s\n%s", exp, traceback.format_exc())
raise turbo.SystemProblem("JSON Decode Failure. ERROR: %s - RESP %s" % (exp, resp_read))
else:
auth_info = auth.parse_auth_response(auth_resp)
token, tenant, user, inet, enet, cnet, acfep = auth_info
report.reporter(msg=("API Access Granted. TenantID: %s Username: %s" % (tenant, user)), prt=False, log=True)
return token, tenant, user, inet, enet, cnet, a_url, acfep
开发者ID:jeffrangel,项目名称:turbolift,代码行数:34,代码来源:authentication.py
示例3: start
def start(self):
"""Retrieve a long list of all files in a container."""
# Package up the Payload
payload = http.prep_payload(auth=self.auth, container=None, source=None, args=ARGS)
# Prep Actions.
self.go = actions.CloudActions(payload=payload)
report.reporter(msg='PAYLOAD\t: "%s"' % payload, log=True, lvl="debug", prt=False)
with multi.spinner():
if ARGS.get("cdn_info"):
url = payload["cnet"]
else:
url = payload["url"]
message = self.go.detail_show(url=url)
try:
if message.status_code != 404:
report.reporter(msg="Object Found...")
report.reporter(msg=report.print_virt_table(dict(message.headers)))
else:
report.reporter(msg="Nothing Found...")
except ValueError as exp:
report.reporter(msg=("Non-hashable Type, Likley Item is not found." " Additional Data: %s" % exp))
开发者ID:jcourtois,项目名称:turbolift,代码行数:26,代码来源:show.py
示例4: job_processer
def job_processer(num_jobs, objects, job_action, concur, kwargs=None,
opt=None):
"""Process all jobs in batches.
:param num_jobs:
:param objects:
:param job_action:
:param concur:
:param payload:
"""
count = 0
batch_size = basic.batcher(num_files=num_jobs)
for work in basic.batch_gen(data=objects,
batch_size=batch_size,
count=num_jobs):
count += 1
report.reporter(msg='Job Count %s' % count)
work_q = basic_queue(work)
with spinner(work_q=work_q):
worker_proc(job_action=job_action,
concurrency=concur,
queue=work_q,
opt=opt,
kwargs=kwargs)
basic.stupid_hack(wait=1)
work_q.close()
开发者ID:alexandru-iacob,项目名称:turbolift,代码行数:27,代码来源:multi_utils.py
示例5: set_concurrency
def set_concurrency(args, file_count):
"""Concurrency is a user specified variable when the arguments parsed.
:param args:
However if the number of things Turbo lift has to do is less than the
desired concurency, then turbolift will lower the concurency rate to
the number of operations.
"""
def verbose(ccr):
report.reporter(
msg='MESSAGE: We are creating %s Processes' % ccr,
prt=False
)
return ccr
_cc = args.get('cc')
if _cc > file_count:
report.reporter(
msg=('MESSAGE: There are less things to do than the number of'
' concurrent processes specified by either an override'
' or the system defaults. I am leveling the number of'
' concurrent processes to the number of jobs to perform.'),
lvl='warn'
)
return verbose(ccr=file_count)
else:
return verbose(ccr=_cc)
开发者ID:alexandru-iacob,项目名称:turbolift,代码行数:30,代码来源:multi_utils.py
示例6: job_processer
def job_processer(num_jobs, objects, job_action, concur, kwargs=None,
opt=None):
"""Process all jobs in batches.
:param num_jobs:
:param objects:
:param job_action:
:param concur:
:param payload:
"""
count = 0
batch_size = basic.batcher(num_files=num_jobs)
while objects:
count += 1
report.reporter(msg='Job Count %s' % count)
work = [
objects.pop(objects.index(obj)) for obj in objects[0:batch_size]
]
work_q = basic_queue(work)
with spinner(work_q=work_q):
worker_proc(
job_action=job_action,
concurrency=concur,
queue=work_q,
opt=opt,
kwargs=kwargs
)
basic.stupid_hack(wait=.2)
work_q.close()
开发者ID:aig-,项目名称:turbolift,代码行数:30,代码来源:multi_utils.py
示例7: _putter
def _putter(self, conn, fpath, rpath, fheaders, retry, skip=False):
"""Place object into the container.
:param conn:
:param fpath:
:param rpath:
:param fheaders:
:param retry:
"""
if self._checker(conn, rpath, fpath, fheaders, retry, skip) is True:
report.reporter(
msg='OBJECT ORIGIN %s RPATH %s' % (fpath, rpath),
prt=False,
lvl='debug'
)
if basic.file_exists(fpath) is False:
return None
else:
with open(fpath, 'rb') as f_open:
conn.request('PUT', rpath, body=f_open, headers=fheaders)
resp, read = http.response_get(conn=conn, retry=retry)
self.resp_exception(resp=resp, rty=retry)
report.reporter(
msg=('MESSAGE %s %s %s'
% (resp.status, resp.reason, resp.msg)),
prt=False,
lvl='debug'
)
开发者ID:knabar,项目名称:turbolift,代码行数:31,代码来源:actions.py
示例8: container_cdn_command
def container_cdn_command(self, url, container, sfile=None):
"""Command your CDN enabled Container.
:param url:
:param container:
"""
rty_count = ARGS.get('error_retry')
for retry in basic.retryloop(attempts=rty_count, delay=2, obj=sfile):
# Open Connection
conn = http.open_connection(url=url)
with meth.operation(retry, conn):
cheaders = self.payload['headers']
if sfile is not None:
rpath = http.quoter(url=url.path,
cont=container,
ufile=sfile)
# perform CDN Object DELETE
conn.request('DELETE', rpath, headers=cheaders)
resp, read = http.response_get(conn=conn, retry=retry)
self.resp_exception(resp=resp, rty=retry)
else:
rpath = http.quoter(url=url.path,
cont=container)
http.cdn_toggle(headers=cheaders)
# perform CDN Enable POST
conn.request('PUT', rpath, headers=cheaders)
resp, read = http.response_get(conn=conn, retry=retry)
self.resp_exception(resp=resp, rty=retry)
report.reporter(
msg=('OBJECT %s MESSAGE %s %s %s'
% (rpath, resp.status, resp.reason, resp.msg)),
prt=False,
lvl='debug'
)
开发者ID:knabar,项目名称:turbolift,代码行数:35,代码来源:actions.py
示例9: _putter
def _putter(self, url, fpath, rpath, fheaders, skip=False):
"""Place object into the container.
:param url:
:param fpath:
:param rpath:
:param fheaders:
"""
if self._checker(url, rpath, fpath, fheaders, skip) is True:
report.reporter(
msg='OBJECT ORIGIN %s RPATH %s' % (fpath, rpath),
prt=False,
lvl='debug'
)
if basic.file_exists(fpath) is False:
return None
else:
with open(fpath, 'rb') as f_open:
resp = http.put_request(
url=url, rpath=rpath, body=f_open, headers=fheaders
)
self.resp_exception(resp=resp)
report.reporter(
msg=('MESSAGE %s %s %s'
% (resp.status_code, resp.reason, resp.request)),
prt=False,
lvl='debug'
)
开发者ID:jimmynapkins,项目名称:turbolift,代码行数:31,代码来源:actions.py
示例10: _downloader
def _downloader(self, url, rpath, fheaders, lfile, source,
skip=False):
"""Download a specified object in the container.
:param url:
:param rpath:
:param fheaders:
:param lfile:
:param skip:
"""
resp = None
if source is None:
local_f = lfile
else:
local_f = basic.jpath(root=source, inode=lfile)
if self._checker(url, rpath, local_f, fheaders, skip) is True:
report.reporter(
msg='Downloading remote %s to local file %s' % (rpath, lfile),
prt=False,
lvl='debug',
)
# Perform Object GET
resp = http.get_request(
url=url, rpath=rpath, headers=fheaders, stream=True
)
self.resp_exception(resp=resp)
local_f = basic.collision_rename(file_name=local_f)
# Open our source file and write it
with open(local_f, 'wb') as f_name:
for chunk in resp.iter_content(chunk_size=2048):
if chunk:
f_name.write(chunk)
f_name.flush()
resp.close()
if ARGS.get('restore_perms') is not None:
# Make a connection
if resp is None:
resp = self._header_getter(
url=url, rpath=rpath, fheaders=fheaders
)
all_headers = resp.headers
if all(['x-object-meta-group' in all_headers,
'x-object-meta-owner' in all_headers,
'x-object-meta-perms' in all_headers]):
basic.restor_perms(local_file=local_f, headers=all_headers)
else:
report.reporter(
msg=('No Permissions were restored, because none were'
' saved on the object "%s"' % rpath),
lvl='warn',
log=True
)
开发者ID:jimmynapkins,项目名称:turbolift,代码行数:60,代码来源:actions.py
示例11: container_cdn_command
def container_cdn_command(self, url, container, sfile=None):
"""Command your CDN enabled Container.
:param url:
:param container:
"""
rty_count = ARGS.get("error_retry")
for retry in basic.retryloop(attempts=rty_count, delay=2, obj=sfile):
cheaders = self.payload["headers"]
if sfile is not None:
rpath = http.quoter(url=url.path, cont=container, ufile=sfile)
# perform CDN Object DELETE
adddata = "%s %s" % (cheaders, container)
with meth.operation(retry, obj=adddata):
resp = http.delete_request(url=url, rpath=rpath, headers=cheaders)
self.resp_exception(resp=resp)
else:
rpath = http.quoter(url=url.path, cont=container)
http.cdn_toggle(headers=cheaders)
# perform CDN Enable PUT
adddata = "%s %s" % (cheaders, container)
with meth.operation(retry, obj=adddata):
resp = http.put_request(url=url, rpath=rpath, headers=cheaders)
self.resp_exception(resp=resp)
report.reporter(
msg="OBJECT %s MESSAGE %s %s %s" % (rpath, resp.status_code, resp.reason, resp.request),
prt=False,
lvl="debug",
)
开发者ID:remezcla,项目名称:turbolift,代码行数:32,代码来源:actions.py
示例12: _deleterator
def _deleterator(payload):
"""Multipass Object Delete."""
report.reporter(msg='Getting file list')
with multi.spinner():
# Get all objects in a Container
objects, list_count, last_obj = self.action(
url=payload['url'],
container=payload['c_name']
)
if ARGS.get('pattern_match'):
objects = basic.match_filter(
idx_list=objects,
pattern=ARGS['pattern_match'],
dict_type=True
)
# Count the number of objects returned.
if objects is False:
report.reporter(msg='No Container found.')
return
elif objects is not None:
# Load the queue
obj_list = [obj['name'] for obj in objects]
num_files = len(obj_list)
if num_files < 1:
report.reporter(msg='No Objects found.')
return
else:
report.reporter(msg='Nothing found.')
return
# Get The rate of concurrency
concurrency = multi.set_concurrency(args=ARGS,
file_count=num_files)
if ARGS.get('object'):
obj_names = ARGS.get('object')
obj_list = [obj for obj in obj_list if obj in obj_names]
if not obj_list:
return 'Nothing Found to Delete.'
num_files = len(obj_list)
report.reporter(
msg=('Performing Object Delete for "%s" object(s)...'
% num_files)
)
kwargs = {'url': payload['url'],
'container': payload['c_name'],
'cf_job': getattr(self.go, 'object_deleter')}
multi.job_processer(
num_jobs=num_files,
objects=obj_list,
job_action=multi.doerator,
concur=concurrency,
kwargs=kwargs
)
_deleterator(payload=payload)
开发者ID:alexandru-iacob,项目名称:turbolift,代码行数:58,代码来源:delete.py
示例13: authenticate
def authenticate():
"""Authentication For Openstack API.
Pulls the full Openstack Service Catalog Credentials are the Users API
Username and Key/Password "osauth" has a Built in Rackspace Method for
Authentication
Set a DC Endpoint and Authentication URL for the OpenStack environment
"""
# Setup the request variables
a_url = "https://zebra.zerovm.org/auth/v1.0"
#a_url = http.parse_url(url=url, auth=True)
auth_json = auth.parse_reqtype()
print auth_json
# remove the prefix for the Authentication URL if Found
# LOG.debug('POST == REQUEST DICT > JSON DUMP %s', auth_json)
# auth_json_req = json.dumps(auth_json)
headers = {
'Content-Type': 'application/json',
"X-Auth-User": auth_json['auth']['passwordCredentials']['username'],
"X-Auth-Key": auth_json['auth']['passwordCredentials']['password']}
# Send Request
try:
auth_resp = requests.get(
url=a_url, headers=headers
)
if auth_resp.status_code >= 300:
raise SystemExit(
'Authentication Failure, %s %s' % (auth_resp.status_code,
auth_resp.reason)
)
except ValueError as exp:
LOG.error('Authentication Failure %s\n%s', exp, traceback.format_exc())
raise turbo.SystemProblem('JSON Decode Failure. ERROR: %s' % exp)
else:
LOG.debug('POST Authentication Response %s', auth_resp.json())
#auth_info = auth.parse_auth_response(auth_resp.json())
#token, tenant, user, inet, enet, cnet, acfep = auth_info
token = auth_resp.headers['x-auth-token']
tenant, user = auth_json['auth']['passwordCredentials']['username'].split(":")
inet = urlparse.urlparse(auth_resp.headers['x-storage-url'])
enet = inet
cnet = None
acfep = inet
report.reporter(
msg=('API Access Granted. TenantID: %s Username: %s'
% (tenant, user)),
prt=False,
log=True
)
return token, tenant, user, inet, enet, cnet, urlparse.urlparse(a_url), acfep
开发者ID:willkelly,项目名称:turbolift,代码行数:53,代码来源:authentication.py
示例14: batcher
def batcher(num_files):
"""Check the batch size and return it.
:param num_files:
:return int:
"""
batch_size = turbo.ARGS.get("batch_size")
report.reporter(msg='Job process MAX Batch Size is "%s"' % batch_size, lvl="debug", log=True, prt=False)
if num_files > batch_size:
ops = num_files / batch_size + 1
report.reporter(msg='This will take "%s" operations to complete.' % ops, lvl="warn", log=True, prt=True)
return batch_size
开发者ID:knabar,项目名称:turbolift,代码行数:13,代码来源:basic_utils.py
示例15: object_lister
def object_lister(self, url, container, object_count=None, last_obj=None):
"""Builds a long list of objects found in a container.
NOTE: This could be millions of Objects.
:param url:
:param container:
:param object_count:
:param last_obj:
:return None | list:
"""
for retry in basic.retryloop(attempts=ARGS.get('error_retry'),
obj='Object List'):
# Open Connection
conn = http.open_connection(url=url)
# Open connection and perform operation
with meth.operation(retry, conn):
# Determine how many files are in the container
fpath = http.quoter(url=url.path,
cont=container)
# Make a connection
resp = self._header_getter(conn=conn,
rpath=fpath,
fheaders=self.payload['headers'],
retry=retry)
if resp.status == 404:
report.reporter(
msg='Not found. %s | %s' % (resp.status, resp.msg)
)
return None, None, None
else:
if object_count is None:
head_check = dict(resp.getheaders())
object_count = head_check.get(
'x-container-object-count'
)
if object_count:
object_count = int(object_count)
if not object_count > 0:
return None, None, None
else:
return None, None, None
# Set the number of loops that we are going to do
return self._list_getter(conn=conn,
count=object_count,
filepath=fpath,
fheaders=self.payload['headers'],
last_obj=last_obj)
开发者ID:knabar,项目名称:turbolift,代码行数:51,代码来源:actions.py
示例16: get_request
def get_request(url, headers, rpath, stream=False):
try:
_url = urlparse.urljoin(urlparse.urlunparse(url), rpath)
resp = requests.get(_url, headers=headers, stream=stream)
report.reporter(
msg='INFO: %s %s %s' % (resp.status_code,
resp.reason,
resp.request),
prt=False
)
except Exception as exp:
LOG.error('Not able to perform Request ERROR: %s', exp)
else:
return resp
开发者ID:jimmynapkins,项目名称:turbolift,代码行数:14,代码来源:http_utils.py
示例17: start
def start(self):
"""Retrieve a long list of all files in a container."""
# Package up the Payload
payload = http.prep_payload(
auth=self.auth,
container=None,
source=None,
args=ARGS
)
# Prep Actions.
self.go = actions.CloudActions(payload=payload)
report.reporter(
msg='PAYLOAD\t: "%s"' % payload,
log=True,
lvl='debug',
prt=False
)
with multi.spinner():
if ARGS.get('cdn_info'):
url = payload['cnet']
else:
url = payload['url']
message = self.go.detail_show(url=url)
if isinstance(message, list):
report.reporter(msg='Item Found...')
report.reporter(msg=report.print_virt_table(dict(message)))
else:
report.reporter(msg=message)
开发者ID:sohonet,项目名称:turbolift,代码行数:34,代码来源:show.py
示例18: get_local_files
def get_local_files():
"""Find all files specified in the "source" path.
This creates a list for all of files using the full path.
"""
def not_list(item):
"""Exclude items.
:param item:
:return True|False:
"""
if all([not os.path.islink(item), not os.path.ismount(item)]):
if not os.path.getsize(item) > 4831838208:
return True
else:
return False
def indexer(location):
"""Return a list of indexed files.
:param location:
:return:
"""
_location = basic.real_full_path(location.encode("utf8"))
if os.path.isdir(_location):
r_walk = os.walk(_location)
indexes = [(root, fls) for root, sfs, fls in r_walk]
return [basic.jpath(root=inx[0], inode=inode) for inx in indexes for inode in inx[1]]
elif os.path.isfile(_location):
return [_location]
else:
raise turbo.NoFileProvided("No Path was Found for %s" % _location)
try:
d_paths = ARGS.get("source")
if not isinstance(d_paths, list):
d_paths = [d_paths]
# Local Index Path
c_index = [indexer(location=d_path) for d_path in d_paths]
# make sure my files are only files, and compare it with the not_list
f_index = [item for subl in c_index for item in subl if not_list(item=item)]
except Exception as exp:
raise turbo.SystemProblem("Died for some reason. MESSAGE:\t%s" % exp)
else:
report.reporter(msg="FILE LIST:\t%s" % f_index, lvl="debug", prt=False)
return f_index
开发者ID:knabar,项目名称:turbolift,代码行数:50,代码来源:__init__.py
示例19: authenticate
def authenticate():
"""Authentication For Openstack API.
Pulls the full Openstack Service Catalog Credentials are the Users API
Username and Key/Password "osauth" has a Built in Rackspace Method for
Authentication
Set a DC Endpoint and Authentication URL for the OpenStack environment
"""
# Setup the request variables
url = auth.parse_region()
LOG.debug('Raw Auth URL: [ %s ]', url)
a_url = http.parse_url(url=url, auth=True)
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
headers.update(auth.get_headers() or {})
auth_json = auth.parse_reqtype() or {}
LOG.debug('Parsed Auth URL: [ %s ]', a_url)
# remove the prefix for the Authentication URL if Found
auth_json_req = json.dumps(auth_json)
LOG.debug('Request JSON: [ %s ]', auth_json_req)
LOG.debug('Request Headers: [ %s ]', headers)
# Send Request
try:
auth_resp = auth.auth_request(a_url, headers=headers,
body=auth_json_req)
if auth_resp.status_code >= 300:
raise SystemExit(
'Authentication Failure, %s %s' % (auth_resp.status_code,
auth_resp.reason)
)
except ValueError as exp:
LOG.error('Authentication Failure %s\n%s', exp, traceback.format_exc())
raise turbo.SystemProblem('JSON Decode Failure. ERROR: %s' % exp)
else:
auth_info = auth.parse_auth_response(auth_resp)
token, tenant, user, inet, enet, cnet, acfep = auth_info
report.reporter(
msg=('API Access Granted. TenantID: %s Username: %s'
% (tenant, user)),
prt=False,
log=True
)
return token, tenant, user, inet, enet, cnet, a_url, acfep
开发者ID:jacobwagner,项目名称:turbolift,代码行数:49,代码来源:authentication.py
示例20: start
def start(self):
"""This is the upload method.
Uses file_upload is to simply upload all files and folders to a
specified container.
"""
f_indexed = self._index_local_files()
num_files = len(f_indexed)
# Get The rate of concurrency
concurrency = multi.set_concurrency(args=ARGS, file_count=num_files)
# Package up the Payload
payload = multi.manager_dict(
http.prep_payload(
auth=self.auth,
container=ARGS.get('container', basic.rand_string()),
source=basic.get_local_source(),
args=ARGS
)
)
report.reporter(msg='MESSAGE : "%s" Files found.' % num_files)
report.reporter(
msg='PAYLOAD : [ %s ]' % payload,
prt=False,
lvl='debug'
)
# Set the actions class up
self.go = actions.CloudActions(payload=payload)
kwargs = {'url': payload['url'], 'container': payload['c_name']}
# get that the container exists if not create it.
self.go.container_create(**kwargs)
kwargs['source'] = payload['source']
kwargs['cf_job'] = getattr(self.go, 'object_putter')
multi.job_processer(
num_jobs=num_files,
objects=f_indexed,
job_action=multi.doerator,
concur=concurrency,
kwargs=kwargs
)
if ARGS.get('delete_remote') is True:
self.remote_delete(payload=payload)
开发者ID:aig-,项目名称:turbolift,代码行数:48,代码来源:upload.py
注:本文中的turbolift.utils.report_utils.reporter函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论