Scheduled Content Management¶
Pulp has the ability to schedule content unit installs, updates, and uninstalls on a given consumer. The schedules can be created, manipulated, and queried with with the following APIs.
Note that all schedule resources are in the format described in Scheduled Tasks.
For each request, <action> should be one of install, update, or uninstall.
Listing Schedules¶
/pulp/api/v2/consumers/<consumer id>/schedules/content/<action>/- 200 - if the consumer exists 
- 404 - if the consumer does not exist 
Sample 200 Response Body:
[
 {
   "next_run": "2014-01-28T16:33:26Z",
   "task": "pulp.server.tasks.consumer.update_content",
   "last_updated": 1390926003.828128,
   "first_run": "2014-01-28T10:35:08Z",
   "schedule": "2014-01-28T10:35:08Z/P1D",
   "args": [
     "me"
   ],
   "enabled": true,
   "last_run_at": null,
   "_id": "52e7d8b3dd01fb0c8428b8c2",
   "total_run_count": 0,
   "failure_threshold": null,
   "kwargs": {
     "units": [
       {
         "unit_key": {
           "name": "pulp-server"
         },
         "type_id": "rpm"
       }
     ],
     "options": {}
   },
   "units": [
     {
       "unit_key": {
         "name": "pulp-server"
       },
       "type_id": "rpm"
     }
   ],
   "resource": "pulp:consumer:me",
   "remaining_runs": null,
   "consecutive_failures": 0,
   "options": {},
   "_href": "/pulp/api/v2/consumers/me/schedules/content/update/52e7d8b3dd01fb0c8428b8c2/"
 }
]
Creating a Schedule¶
/pulp/api/v2/consumers/<consumer id>/schedules/content/<action>/- schedule (string) - schedule in iso8601 interval format 
- failure_threshold (integer) - (optional) number of consecutive failures allowed before automatically disabling 
- enabled (boolean) - (optional) whether or not the schedule is enabled (enabled by default) 
- options (object) - (optional) key - value options to pass to the install agent 
- units (array) - array of units to install 
- 201 - if the schedule was successfully created 
- 400 - if any of the required params are missing or any params are invalid 
- 404 - if the consumer does not exist 
Sample Request:
{"schedule": "R1/P1DT",
 "units": [{"type_id": "rpm", "unit_keys": {"name": "gofer"}}]
}
Sample 201 Response Body:
{
 "next_run": "2012-09-22T14:15:00Z",
 "task": "pulp.server.tasks.consumer.update_content",
 "last_updated": 1390926003.828128,
 "first_run": "2012-09-22T14:15:00Z",
 "schedule": "R1/P1DT",
 "args": [
   "me"
 ],
 "enabled": true,
 "last_run_at": null,
 "_id": "52e7d8b3dd01fb0c8428b8c2",
 "total_run_count": 0,
 "failure_threshold": null,
 "kwargs": {
   "units": [
     {
       "unit_key": {
         "name": "gofer"
       },
       "type_id": "rpm"
     }
   ],
   "options": {}
 },
 "units": [
   {
     "unit_key": {
       "name": "gofer"
     },
     "type_id": "rpm"
   }
 ],
 "resource": "pulp:consumer:me",
 "remaining_runs": 1,
 "consecutive_failures": 0,
 "options": {},
 "_href": "/pulp/api/v2/consumers/me/schedules/content/update/52e7d8b3dd01fb0c8428b8c2/"
}
Retrieving a Schedule¶
/pulp/api/v2/consumers/<consumer id>/schedules/content/<action>/<schedule id>/- 200 - if both the consumer and the scheduled install exist 
- 404 - if either the consumer or scheduled install does not exist 
Sample 200 Response Body:
{
   "_href": "/pulp/api/v2/consumers/me/schedules/content/update/52e7d8b3dd01fb0c8428b8c2/",
   "_id": "52e7d8b3dd01fb0c8428b8c2",
   "args": [
       "consumer1"
   ],
   "consecutive_failures": 0,
   "enabled": true,
   "failure_threshold": null,
   "first_run": "2014-01-28T10:35:08Z",
   "kwargs": {
       "options": {},
       "units": [
           {
               "type_id": "rpm",
               "unit_key": {
                   "name": "pulp-server"
               }
           }
       ]
   },
   "last_run_at": null,
   "last_updated": 1390926003.828128,
   "next_run": "2014-01-28T16:50:47Z",
   "options": {},
   "remaining_runs": null,
   "resource": "pulp:consumer:me",
   "schedule": "2014-01-28T10:35:08Z/P1D",
   "task": "pulp.server.tasks.consumer.update_content",
   "total_run_count": 0,
   "units": [
       {
           "type_id": "rpm",
           "unit_key": {
               "name": "pulp-server"
           }
       }
   ]
}
Updating a Schedule¶
/pulp/api/v2/consumers/<consumer id>/schedules/content/<action>/<schedule id>/- schedule (string) - (optional) schedule as an iso8601 interval (specifying a recurrence will affect remaining_runs) 
- failure_threshold (integer) - (optional) number of allowed consecutive failures before the schedule is disabled 
- remaining_runs (integer) - (optional) number of remaining runs for schedule 
- enabled (boolean) - (optional) whether or not the schedule is enabled 
- options (object) - (optional) key - value options to pass to the install agent 
- units (array) - (optional) array of units to install 
- 200 - if the schedule was successfully updated 
- 400 - if any of the params are invalid 
- 404 - if the consumer or schedule does not exist 
Sample Request:
{
 "units": [{"type_id": "rpm", "unit_keys": {"name": "grinder"}},
           {"type_id": "rpm", "unit_keys": {"name": "gofer"}}]
}
Sample 200 Response Body:
{
 "next_run": "2014-01-28T16:54:26Z",
 "task": "pulp.server.tasks.consumer.update_content",
 "last_updated": 1390928066.995197,
 "first_run": "2014-01-28T10:35:08Z",
 "schedule": "2014-01-28T10:35:08Z/P1D",
 "args": [
   "me"
 ],
 "enabled": false,
 "last_run_at": null,
 "_id": "52e7d8b3dd01fb0c8428b8c2",
 "total_run_count": 0,
 "failure_threshold": null,
 "kwargs": {
   "units": [
     {
       "unit_key": {
         "name": "grinder"
       },
       "type_id": "rpm"
     },
     {
       "unit_key": {
         "name": "gofer"
       },
       "type_id": "rpm"
     }
   ],
   "options": {}
 },
 "units": [
   {
     "unit_key": {
       "name": "grinder"
     },
     "type_id": "rpm"
   },
   {
     "unit_key": {
       "name": "gofer"
     },
     "type_id": "rpm"
   }
 ],
 "resource": "pulp:consumer:me",
 "remaining_runs": null,
 "consecutive_failures": 0,
 "options": {},
 "_href": "/pulp/api/v2/consumers/me/schedules/content/update/52e7d8b3dd01fb0c8428b8c2/"
}
Deleting a Schedule¶
/pulp/api/v2/consumers/<consumer id>/schedules/content/<action>/<schedule id>/- 200 - if the schedule was deleted successfully 
- 404 - if the consumer or schedule does not exist