本文整理汇总了Python中treeherder.client.TreeherderClient.post_collection方法的典型用法代码示例。如果您正苦于以下问题:Python TreeherderClient.post_collection方法的具体用法?Python TreeherderClient.post_collection怎么用?Python TreeherderClient.post_collection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类treeherder.client.TreeherderClient
的用法示例。
在下文中一共展示了TreeherderClient.post_collection方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_send_artifact_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_send_artifact_collection(self, mock_post):
"""Can add a artifact collections to a TreeherderRequest."""
mock_post.return_value = self._expected_response_return_object()
tac = TreeherderArtifactCollection()
for artifact in self.artifact_data:
tac.add(tac.get_artifact(artifact))
client = TreeherderClient(
protocol='http',
host='host',
client_id='client-abc',
secret='secret123',
)
client.post_collection('project', tac)
path, resp = mock_post.call_args
self.assertEqual(mock_post.call_count, 1)
self.assertEqual(
tac.get_collection_data(),
resp['json']
)
示例2: test_send_with_oauth
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_send_with_oauth(self, mock_post, mock_time,
mock_generate_nonce):
"""Tests that oauth data is sent to server"""
mock_time.return_value = 1342229050
mock_generate_nonce.return_value = "46810593"
mock_post.return_value = self._expected_response_return_object()
client = TreeherderClient(
protocol='http',
host='host',
)
tjc = TreeherderJobCollection()
for job in self.job_data:
tjc.add(tjc.get_job(job))
break
client.post_collection('project', 'key', 'secret', tjc)
self.assertEqual(mock_post.call_count, 1)
path, resp = mock_post.call_args
self.assertEqual(path[0], "http://host/api/project/project/objectstore/?oauth_body_hash=IKbDoi5GvTRaqjRTCDyKIN5wWiY%3D&oauth_nonce=46810593&oauth_timestamp=1342229050&oauth_consumer_key=key&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=&user=project&oauth_signature=uq%2BrkJCRPyPUdXExSasm25ab8m4%3D")
示例3: post_treeherder_collections
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def post_treeherder_collections(th_collections, chunk_size=1):
errors = []
credentials = Credentials.objects.get(client_id=settings.ETL_CLIENT_ID)
cli = TreeherderClient(
protocol=settings.TREEHERDER_REQUEST_PROTOCOL,
host=settings.TREEHERDER_REQUEST_HOST,
client_id=credentials.client_id,
secret=str(credentials.secret),
)
for project in th_collections:
logger.info(
"collection loading request for project {0}: {1}".format(
project,
th_collections[project].endpoint_base))
collection_chunks = th_collections[project].get_chunks(chunk_size)
for collection in collection_chunks:
try:
cli.post_collection(project, collection)
except Exception:
errors.append({
"project": project,
"url": th_collections[project].endpoint_base,
"message": traceback.format_exc()
})
if errors:
raise CollectionNotLoadedException(errors)
示例4: test_post_job_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_post_job_collection(self, mock_post):
"""Can add a treeherder collections to a TreeherderRequest."""
mock_post.return_value = self._expected_response_return_object()
tjc = TreeherderJobCollection()
for job in self.job_data:
tjc.add(tjc.get_job(job))
client = TreeherderClient(
protocol='http',
host='host',
client_id='client-abc',
secret='secret123',
)
client.post_collection('project', tjc)
path, resp = mock_post.call_args
self.assertEqual(mock_post.call_count, 1)
self.assertEqual(
tjc.get_collection_data(),
resp['json']
)
示例5: test_send_result_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_send_result_collection(self, mock_post):
"""Can add a treeherder collections to a TreeherderRequest."""
mock_post.return_value = self._expected_response_return_object()
trc = TreeherderResultSetCollection()
for resultset in self.resultset_data:
trc.add(trc.get_resultset(resultset))
client = TreeherderClient(
protocol='http',
host='host',
)
auth = TreeherderAuth('key', 'secret', 'project')
client.post_collection('project', trc, auth=auth)
path, resp = mock_post.call_args
self.assertEqual(mock_post.call_count, 1)
self.assertEqual(
trc.get_collection_data(),
resp['json']
)
示例6: post_treeherder_collections
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def post_treeherder_collections(th_collections, chunk_size=1):
errors = []
cli = TreeherderClient(
protocol=settings.TREEHERDER_REQUEST_PROTOCOL,
host=settings.TREEHERDER_REQUEST_HOST,
)
for project in th_collections:
credentials = OAuthCredentials.get_credentials(project)
auth = TreeherderAuth(credentials.get('consumer_key'),
credentials.get('consumer_secret'),
project)
logger.info(
"collection loading request for project {0}: {1}".format(
project,
th_collections[project].endpoint_base))
collection_chunks = th_collections[project].get_chunks(chunk_size)
for collection in collection_chunks:
try:
cli.post_collection(project, collection, auth=auth)
except Exception:
errors.append({
"project": project,
"url": th_collections[project].endpoint_base,
"message": traceback.format_exc()
})
if errors:
raise CollectionNotLoadedException(errors)
示例7: post_log_artifacts
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def post_log_artifacts(project, job_guid, job_log_url, retry_task, extract_artifacts_cb):
"""Post a list of artifacts to a job."""
def _retry(e):
# Initially retry after 1 minute, then for each subsequent retry
# lengthen the retry time by another minute.
retry_task.retry(exc=e, countdown=(1 + retry_task.request.retries) * 60)
# .retry() raises a RetryTaskError exception,
# so nothing after this function will be executed
log_description = "%s %s (%s)" % (project, job_guid, job_log_url)
logger.debug("Downloading/parsing log for %s", log_description)
job_log = JobLog.objects.get(job__guid=job_guid, url=job_log_url)
credentials = Credentials.objects.get(client_id=settings.ETL_CLIENT_ID)
client = TreeherderClient(
protocol=settings.TREEHERDER_REQUEST_PROTOCOL,
host=settings.TREEHERDER_REQUEST_HOST,
client_id=credentials.client_id,
secret=str(credentials.secret),
)
try:
artifact_list = extract_artifacts_cb(project, job_log_url, job_guid)
except Exception as e:
job_log.update_status(JobLog.FAILED)
# unrecoverable http error (doesn't exist or permission denied)
# (apparently this can happen somewhat often with taskcluster if
# the job fails, so just warn about it -- see
# https://bugzilla.mozilla.org/show_bug.cgi?id=1154248)
if isinstance(e, urllib2.HTTPError) and e.code in (403, 404):
logger.warning("Unable to retrieve log for %s: %s", log_description, e)
return
# possibly recoverable http error (e.g. problems on our end)
elif isinstance(e, urllib2.URLError):
logger.error("Failed to download log for %s: %s", log_description, e)
_retry(e)
# parse error or other unrecoverable error
else:
logger.error("Failed to download/parse log for %s: %s", log_description, e)
# re-raise exception if we're not retrying, so new relic sees the
# error
raise
# store the artifacts generated
tac = TreeherderArtifactCollection()
for artifact in artifact_list:
ta = tac.get_artifact(artifact)
tac.add(ta)
try:
client.post_collection(project, tac)
job_log.update_status(JobLog.PARSED)
logger.debug("Finished posting artifact for %s %s", project, job_guid)
except Exception as e:
logger.error("Failed to upload parsed artifact for %s: %s", log_description, e)
_retry(e)
示例8: post_log_artifacts
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def post_log_artifacts(project,
job_guid,
job_log_url,
retry_task,
extract_artifacts_cb,
check_errors=False):
"""Post a list of artifacts to a job."""
def _retry(e):
# Initially retry after 1 minute, then for each subsequent retry
# lengthen the retry time by another minute.
retry_task.retry(exc=e, countdown=(1 + retry_task.request.retries) * 60)
# .retry() raises a RetryTaskError exception,
# so nothing after this function will be executed
log_description = "%s %s (%s)" % (project, job_guid, job_log_url['url'])
logger.debug("Downloading/parsing log for %s", log_description)
credentials = OAuthCredentials.get_credentials(project)
client = TreeherderClient(
protocol=settings.TREEHERDER_REQUEST_PROTOCOL,
host=settings.TREEHERDER_REQUEST_HOST
)
try:
artifact_list = extract_artifacts_cb(job_log_url['url'],
job_guid, check_errors)
except Exception as e:
client.update_parse_status(project, credentials.get('consumer_key'),
credentials.get('consumer_secret'),
job_log_url['id'], 'failed')
if isinstance(e, urllib2.HTTPError) and e.code in (403, 404):
logger.debug("Unable to retrieve log for %s: %s", log_description, e)
return
logger.error("Failed to download/parse log for %s: %s", log_description, e)
_retry(e)
# store the artifacts generated
tac = TreeherderArtifactCollection()
for artifact in artifact_list:
ta = tac.get_artifact(artifact)
tac.add(ta)
try:
client.post_collection(project, credentials.get('consumer_key'),
credentials.get('consumer_secret'),
tac)
client.update_parse_status(project, credentials.get('consumer_key'),
credentials.get('consumer_secret'),
job_log_url['id'], 'parsed')
logger.debug("Finished posting artifact for %s %s", project, job_guid)
except Exception as e:
logger.error("Failed to upload parsed artifact for %s: %s", log_description, e)
_retry(e)
示例9: test_send_artifact_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_send_artifact_collection(self, mock_post):
"""Can add a artifact collections to a TreeherderRequest."""
mock_post.return_value = self._expected_response_return_object()
tac = TreeherderArtifactCollection()
for artifact in self.artifact_data:
tac.add(tac.get_artifact(artifact))
client = TreeherderClient(protocol="http", host="host")
auth = TreeherderAuth("key", "secret", "project")
client.post_collection("project", tac, auth=auth)
path, resp = mock_post.call_args
self.assertEqual(mock_post.call_count, 1)
self.assertEqual(tac.get_collection_data(), resp["json"])
示例10: test_post_job_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_post_job_collection(self, mock_post):
"""Can add a treeherder collections to a TreeherderRequest."""
mock_post.return_value = self._expected_response_return_object()
tjc = TreeherderJobCollection()
for job in self.job_data:
tjc.add(tjc.get_job(job))
client = TreeherderClient(protocol="http", host="host")
auth = TreeherderAuth("key", "secret", "project")
client.post_collection("project", tjc, auth=auth)
path, resp = mock_post.call_args
self.assertEqual(mock_post.call_count, 1)
self.assertEqual(tjc.get_collection_data(), resp["json"])
示例11: test_send_artifact_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_send_artifact_collection(self):
"""Can add a artifact collections to a TreeherderRequest."""
tac = TreeherderArtifactCollection()
for artifact in self.artifact_data:
tac.add(tac.get_artifact(artifact))
client = TreeherderClient(protocol="http", host="host", client_id="client-abc", secret="secret123")
def request_callback(request):
# Check that the expected content was POSTed.
posted_json = json.loads(request.body)
self.assertEqual(posted_json, tac.get_collection_data())
return (200, {}, '{"message": "Artifacts stored successfully"}')
url = client._get_project_uri("project", tac.endpoint_base)
responses.add_callback(
responses.POST, url, match_querystring=True, callback=request_callback, content_type="application/json"
)
client.post_collection("project", tac)
示例12: test_send_result_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_send_result_collection(self):
"""Can add a treeherder collections to a TreeherderRequest."""
trc = TreeherderResultSetCollection()
for resultset in self.resultset_data:
trc.add(trc.get_resultset(resultset))
client = TreeherderClient(protocol="http", host="host", client_id="client-abc", secret="secret123")
def request_callback(request):
# Check that the expected content was POSTed.
posted_json = json.loads(request.body)
self.assertEqual(posted_json, trc.get_collection_data())
return (200, {}, '{"message": "well-formed JSON stored", "resultsets": [123, 456]}')
url = client._get_project_uri("project", trc.endpoint_base)
responses.add_callback(
responses.POST, url, match_querystring=True, callback=request_callback, content_type="application/json"
)
client.post_collection("project", trc)
示例13: test_post_job_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_post_job_collection(self):
"""Can add a treeherder collections to a TreeherderRequest."""
tjc = TreeherderJobCollection()
for job in self.job_data:
tjc.add(tjc.get_job(job))
client = TreeherderClient(protocol="http", host="host", client_id="client-abc", secret="secret123")
def request_callback(request):
# Check that the expected content was POSTed.
posted_json = json.loads(request.body)
self.assertEqual(posted_json, tjc.get_collection_data())
return (200, {}, '{"message": "Job successfully updated"}')
url = client._get_project_uri("project", tjc.endpoint_base)
responses.add_callback(
responses.POST, url, match_querystring=True, callback=request_callback, content_type="application/json"
)
client.post_collection("project", tjc)
示例14: test_send_artifact_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_send_artifact_collection(self):
"""Can add a artifact collections to a TreeherderRequest."""
tac = TreeherderArtifactCollection()
for artifact in self.artifact_data:
tac.add(tac.get_artifact(artifact))
client = TreeherderClient(
server_url='http://host',
client_id='client-abc',
secret='secret123',
)
def request_callback(request):
# Check that the expected content was POSTed.
posted_json = json.loads(request.body)
self.assertEqual(posted_json, tac.get_collection_data())
return (200, {}, '{"message": "Artifacts stored successfully"}')
url = client._get_endpoint_url(tac.endpoint_base, project='project')
responses.add_callback(responses.POST, url, match_querystring=True,
callback=request_callback, content_type='application/json')
client.post_collection('project', tac)
示例15: test_post_job_collection
# 需要导入模块: from treeherder.client import TreeherderClient [as 别名]
# 或者: from treeherder.client.TreeherderClient import post_collection [as 别名]
def test_post_job_collection(self):
"""Can add a treeherder collections to a TreeherderRequest."""
tjc = TreeherderJobCollection()
for job in self.job_data:
tjc.add(tjc.get_job(job))
client = TreeherderClient(
server_url='http://host',
client_id='client-abc',
secret='secret123',
)
def request_callback(request):
# Check that the expected content was POSTed.
posted_json = json.loads(request.body)
self.assertEqual(posted_json, tjc.get_collection_data())
return (200, {}, '{"message": "Job successfully updated"}')
url = client._get_endpoint_url(tjc.endpoint_base, project='project')
responses.add_callback(responses.POST, url, match_querystring=True,
callback=request_callback, content_type='application/json')
client.post_collection('project', tjc)