Bug 1019400

Summary: RFE: Easier and quicker way to fetch last/current sync status for a large number of repositories
Product: Red Hat Satellite Reporter: Justin Sherrill <jsherril>
Component: APIAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED NOTABUG QA Contact: Katello QA List <katello-qa-list>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 6.0.0CC: jsherril, mhrivnak, rbarlow, skarmark
Target Milestone: Unspecified   
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-05-05 18:07:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1087998    
Bug Blocks: 950746, 976275    

Description Justin Sherrill 2013-10-15 15:56:00 UTC
Description of problem:

Currently in katello we want to display for a large set of repositories:

a) The current sync status if it is syncing now
b) The status of the last sync if the repository is not syncing

To get this we have to for each repository:

1) search for tasks by tag, for the repo and syncing tag
2) if nothing is returned, look up the repo's sync history

This is very time consuming for a large number of repositories, as worst case we have to go to the server 2x per repo.


Ideally we could pass a list of repo_ids and get all of the tasks we would want to fit this criteria.

Comment 1 Randy Barlow 2014-04-03 15:09:06 UTC
Since the two bugs that are listed here as dependencies as for future Satellite (I assume after 6.0.0), does that mean we can push this RFE off of our upcoming 2.4 release? We are building a beta, and we would like to avoid adding new features after we enter beta.

Comment 2 Justin Sherrill 2014-04-21 15:30:40 UTC
Randy,

sat6-pulp-future is currently designated for items desired for Sat 6.0 GA.  It's my understanding that Pulp 2.4 is the release slated for GA, so we would appreciate this not being pushed off of 2.4's release :)

-Justin

Comment 3 Michael Hrivnak 2014-04-21 16:17:01 UTC
We have a new task search API that might solve this. We have another BZ to document that API, at which point we can look at whether it provides what you need.

I suspect it can be used to search for tasks for a list of repos, which I think is all you need.

Comment 4 Brian Bouterse 2014-05-05 18:07:21 UTC
Here's an example request to get all running and finished tasks for two specific repos with 1 query using the search API.  The search API is located here:

http://pulp-dev-guide.readthedocs.org/en/latest/integration/rest-api/dispatch/task.html#searching-for-tasks


Here is the curl command I used:

curl -H "Accept: application/json" -X POST -k -u admin:admin -d @search.json 'https://localhost/pulp/api/v2/tasks/search/' | python -m json.tool


Here are the contents of search.json

{
 "criteria": {
   "filters": {"tags": {"$in": ["pulp:repository:zoo", "pulp:repository:sat6-tools"]}, "state": {"$in": ["running", "finished"]}},
   "skip": 0,
   "fields": ["id", "task_type", "tags", "state"]}
}