Last post talked about the process of adding a v2.0 plugin to a Pulp server. This post will provide an overview of the currently available APIs. These APIs were developed with the focus of a sprint demo, so there are some holes in functionality. There is a story this sprint to revisit these and flush them out (along with correcting some conventions), but for now I wanted to provide a quick list for those interested in playing around with the plugin model.
The APIs can be found after the jump.
Create Repository
Method
|
POST
|
Path
|
/v2/repositories/[id]/
|
Parameters
|
-
id – uniquely identifies the repository (specified in the URL)
-
display_name – (optional) user-friendly name of the repository
-
description – (optional) user-friendly description of the repository
|
Return
|
True if the repository was created
|
Sample Request Body
|
{"display_name": "Demo 1 Repository"}
|
|
Sample Response
|
|
Delete Repository
Method
|
DELETE
|
Path
|
/v2/repositories/[id]/
|
Parameters
|
-
id – identifies the repository (specified in the URL)
|
Return
|
True if the repository was deleted
|
Sample Request Body
|
None
|
Sample Response
|
|
List Repositories
Method
|
GET
|
Path
|
/v2/repositories/
|
Parameters
|
None
|
Return
|
List of repositories and their details
|
Sample Request Body
|
None
|
Sample Response
|
[{'content_unit_count': 0,
'description': None,
'display_name': 'Demo 1 Repository',
'id': 'demo-1-repo',
'notes': {}}]
|
|
Add an Importer to a Repository
Method
|
POST
|
Path
|
/v2/repositories/[id]/importers/
|
Parameters
|
-
id – identifies the repository (specified in the URL)
-
importer_type_id – identifies the type of importer being added; corresponds to the ID of the importer plugin
-
importer_config – dictionary of configuration values to pass to the importer that will be used only for the given repository; the contents will vary depending on the type of importer being added
|
Return
|
True if the importer was added
|
Sample Request Body
|
{"importer_type_id": "local-rpm",
"importer_config": {"rpm_dir": "/pulp-gc-demo/rpms"}
}
|
|
Sample Response
|
|
Add an Distributor to a Repository
Method
|
POST
|
Path
|
/v2/repositories/[id]/distributors/
|
Parameters
|
-
id – identifies the repository (specified in the URL)
-
distributor_type_id – identifies the type of distributor being added; corresponds to the ID of the distributor plugin
-
distributor_config – dictionary of configuration values to pass to the distributor that will be used only for the given repository; the contents will vary depending on the type of distributor being added
-
auto_publish – boolean; if true, this distributor will be published at the end of every successful sync; if false, the only way to publish this distributor is through an explicit call
-
distributor_id – (optional) since more than one distributor may be added to a repository, this is used to uniquely identify the distributor being added; if not specified Pulp will automatically generate one
|
Return
|
True if the distributor was added
|
Sample Request Body
|
{"distributor_id": "http",
"distributor_type_id": "http-rpm",
"distributor_config": {},
"auto_publish": true
}
|
|
Sample Response
|
|
Repository Actions
Synchronize Repository
Method
|
POST
|
Path
|
/v2/repositories/[id]/sync/
|
Parameters
|
-
id – identifies the repository (specified in the URL)
-
override_config – (optional) if specified, values within will override the importer_config specified when it was added to the repository; these values will take effect only for this sync operation
|
Return
|
None
|
Sample Request Body
|
{"override_config": {"rpm_dir": "/pulp-gc-demo/override"}}
|
|
Sample Response
|
None
|
Publish Repository
Method
|
POST
|
Path
|
/v2/repositories/[id]/publish/[distributor_id]/
|
Parameters
|
-
id – identifies the repository (specified in the URL)
-
distributor_id – identifies which distributor assigned to the repository should be published
-
override_config – (optional) if specified, values within will override the distributor_config specified when it was added to the repository; these values will take effect only for this publish operation
|
Return
|
None
|
Sample Request Body
|
{"override_config": {"publish_option_1": "override_value"}}
|
|
Sample Response
|
|