Addided basic API docs. Updated readme with contribution instrucitons.
Change-Id: I384a4dbfe9966dc8d07b748df9906aa95012a659
This commit is contained in:
parent
7476fffe84
commit
a0e6643a1d
70
README.md
70
README.md
@ -26,14 +26,82 @@ More information go to https://wiki.openstack.org/wiki/Milk
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
## Current Requirements
|
||||||
|
|
||||||
|
[git](http://git-scm.com)
|
||||||
|
[Python3](http://www.python.org)
|
||||||
|
[pip](https://pypi.python.org/pypi/pip)
|
||||||
|
[git-review](http://www.mediawiki.org/wiki/Gerrit/git-review)
|
||||||
|
[Django](https://www.djangoproject.com)
|
||||||
|
[virtualenv](http://www.virtualenv.org)
|
||||||
|
[freshen](https://github.com/rlisagor/freshen)
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
[GitHub](https://github.com/stackforge/milk)
|
||||||
|
[Wiki](https://wiki.openstack.org/wiki/Milk)
|
||||||
|
|
||||||
|
## To Contribute
|
||||||
|
|
||||||
|
1. Create a Launchpad account
|
||||||
|
https://login.launchpad.net/+new_account
|
||||||
|
|
||||||
|
2. Join the OpenStack Foundation free
|
||||||
|
https://www.openstack.org/join
|
||||||
|
(Use the email address you plan to use with git for code contributions)
|
||||||
|
|
||||||
|
3. Agree to the the Individual Contributor License agreement:
|
||||||
|
https://review.openstack.org/#/settings/
|
||||||
|
Look under "Agreements" on the left menu.
|
||||||
|
|
||||||
|
4. Add an SSH public key to your launchpad account
|
||||||
|
https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair
|
||||||
|
|
||||||
|
5. Add the same SSH key to your OpenStack Foundation / Gerrit Identity as well
|
||||||
|
https://review.openstack.org/#/settings/
|
||||||
|
Look under "SSH Public Keys" on the left menu.
|
||||||
|
|
||||||
|
6. Add the same SSH keys to your GitHub account
|
||||||
|
Be sure to configure git on your development machine as well if you haven't already.
|
||||||
|
|
||||||
|
$ git config --global user.name "Firstname Lastname"
|
||||||
|
$ git config --global user.email "your_email@youremail.com"
|
||||||
|
|
||||||
|
7. Install git-review. (In addition to python3, and pip3 )
|
||||||
|
|
||||||
|
$ sudo pip install git-review
|
||||||
|
|
||||||
|
8. Clone the GitHub project
|
||||||
|
|
||||||
|
$ git clone https://github.com/stackforge/milk
|
||||||
|
|
||||||
|
9. Create a branch with a descriptive branch name to make your changes.
|
||||||
|
|
||||||
|
$ git co -b add_tests
|
||||||
|
|
||||||
|
10. Without merging your branch with master, submit it for review with git-review.
|
||||||
|
|
||||||
|
$ git review
|
||||||
|
|
||||||
|
11. Track your contributions
|
||||||
|
https://review.openstack.org/#/
|
||||||
|
|
||||||
|
12. If necessary manually add a reviewer
|
||||||
|
Click on your patch listed from #10 above enter one of the following names or emails in the "Add Reviewer" field, and click add.
|
||||||
|
"Sean Robers" <seanrob@yahoo-inc.com>
|
||||||
|
"Joshua Kolden" <joshua@studiopyxis.com>
|
||||||
|
|
||||||
|
|
||||||
## Development Spin Up...
|
## Development Spin Up...
|
||||||
|
|
||||||
###Tasks
|
###Tasks
|
||||||
|
|
||||||
- [X] Initialize the project in OpenStack and Gerrit.
|
- [X] Initialize the project in OpenStack and Gerrit.
|
||||||
- [X] Create a git project on GitHub.
|
- [X] Create a git project on GitHub.
|
||||||
|
- [X] Create first draft Apiary blueprint for ETC ID system API.
|
||||||
- [ ] Establish BDD system, and create initial acceptance tests.
|
- [ ] Establish BDD system, and create initial acceptance tests.
|
||||||
- [ ] Create first draft Apiary blueprint for ETC ID system API.
|
|
||||||
- [ ] Build basic Django server to implement blueprint.
|
- [ ] Build basic Django server to implement blueprint.
|
||||||
- [ ] Create command line tool to generate asset ID, and publish to server, via API.
|
- [ ] Create command line tool to generate asset ID, and publish to server, via API.
|
||||||
|
|
||||||
|
262
apiary.apib
Normal file
262
apiary.apib
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
FORMAT: 1A
|
||||||
|
|
||||||
|
# ETC Cound Framework Milk
|
||||||
|
This is an initial template for the ETC Milk Cloud Production Framework API.
|
||||||
|
In this form it is setup to define multiple experimental apis for live testing.
|
||||||
|
|
||||||
|
|
||||||
|
# API Dev Root [/]
|
||||||
|
Milk-Dev entry point. This entry point list all test APIs provided.
|
||||||
|
|
||||||
|
## Retrieve Entry Point [GET]
|
||||||
|
|
||||||
|
+ Response 200 (application/json)
|
||||||
|
|
||||||
|
{interfaces: [
|
||||||
|
{
|
||||||
|
type: "registery",
|
||||||
|
name: "String API",
|
||||||
|
version "1.0",
|
||||||
|
description: "String API - Draft 1",
|
||||||
|
path: "/string/v1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "reference",
|
||||||
|
name: "C4 Referece",
|
||||||
|
version "1",
|
||||||
|
description: "Parts of the public C4 API",
|
||||||
|
path: "/c4"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
|
||||||
|
# String API [/string/v1]
|
||||||
|
Data Model (For Phase 1)
|
||||||
|
|
||||||
|
The following is a basic set of services to call the String metadata API. While
|
||||||
|
the HTTP call will most likely use a JSON POST, this remains to be architected.
|
||||||
|
We have included an example of the HTTP calli in the login API call. In addition,
|
||||||
|
the return format will need to be determined as well.
|
||||||
|
|
||||||
|
# Group Users
|
||||||
|
|
||||||
|
| userID | password | userGUID | email |
|
||||||
|
|--------|-------------|--------------------------------------|----------------|
|
||||||
|
| dax | Password123 | 550e8400-e29b-41d4-a716-446655440000 | chris@daxcloud |
|
||||||
|
|
||||||
|
## User Login [/login]
|
||||||
|
This is used to login to the String API for the first time. After Phase 1, we
|
||||||
|
will use the Keystone authentication API. It returns a session token to be used
|
||||||
|
for the remaining calls.
|
||||||
|
|
||||||
|
### Login [POST]
|
||||||
|
|
||||||
|
+ Request
|
||||||
|
|
||||||
|
{username: "dax", password: "Password123"}
|
||||||
|
|
||||||
|
+ Response 200 (application/json)
|
||||||
|
|
||||||
|
{
|
||||||
|
userGUID: "550e8400-e29b-41d4-a716-446655440000",
|
||||||
|
session_token: "12345678901234567890"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Group Assets and Services
|
||||||
|
The primary registration method to associate an asset ID with a service type and
|
||||||
|
a URI for more information. The call takes an optional description for this
|
||||||
|
association to be retrieved as part of the lookup. In addition, publicly
|
||||||
|
available metadata key-value pairs can be registered through the optional
|
||||||
|
metadataPairs structure, which is a JSON-encoded, square-bracketed, quoted list
|
||||||
|
of data.
|
||||||
|
|
||||||
|
`success = associateAsset(assetHash, serviceToken, URI, description, metadataPairs)`
|
||||||
|
|
||||||
|
| assetHash | service | URI | description | metadata |
|
||||||
|
|---------------------------------|---------|------------------------------------------------------|--------------------------------|-----------------------------------------------------|
|
||||||
|
| 0d6dce44a124443d845af191c3d1b64 | 5 | https://my.service.com/lookup/blah?asset=%assetHash% | The parent owner of this asset | [“Original”, “True”], [“Color-corrected”, “False”], |
|
||||||
|
| | | | and all of its derivatives is | [“Copyright”, “2014 USC ETC”] |
|
||||||
|
| | | | the USC ETC. | |
|
||||||
|
|
||||||
|
|
||||||
|
## Assets and Services Collection [/AssetsServices]
|
||||||
|
### List [GET]
|
||||||
|
|
||||||
|
+ Response 200 (applicaiton/json)
|
||||||
|
|
||||||
|
[
|
||||||
|
{
|
||||||
|
assetHash: "0d6dce44a124443d845af191c3d1b64"
|
||||||
|
service: 5
|
||||||
|
URI: "https://my.service.com/lookup/blah?asset=%assetHash%"
|
||||||
|
description: "The parent owner of this asset and all of its derivatives is the USC ETC."
|
||||||
|
metadata: {
|
||||||
|
Original: true,
|
||||||
|
Color-corrected: false,
|
||||||
|
Copyright: 2014 USC ETC
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
## Create [POST]
|
||||||
|
|
||||||
|
+ Request
|
||||||
|
|
||||||
|
+ Headers
|
||||||
|
|
||||||
|
Authorization: Token token="12345678901234567890"
|
||||||
|
|
||||||
|
+ Body
|
||||||
|
|
||||||
|
{
|
||||||
|
assetHash: "0d6dce44a124443d845af191c3d1b64"
|
||||||
|
service: 5
|
||||||
|
URI: "https://my.service.com/lookup/blah?asset=%assetHash%"
|
||||||
|
description: "The parent owner of this asset and all of its derivatives is the USC ETC."
|
||||||
|
metadata: {
|
||||||
|
Original: true,
|
||||||
|
Color-corrected: false,
|
||||||
|
Copyright: 2014 USC ETC
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ Response 201
|
||||||
|
|
||||||
|
## Assets and Services Member [/AssetsServices/{assetHash}]
|
||||||
|
### Retrieve [GET]
|
||||||
|
|
||||||
|
+ Response 200 (application/json)
|
||||||
|
|
||||||
|
{
|
||||||
|
assetHash: "0d6dce44a124443d845af191c3d1b64"
|
||||||
|
service: 5
|
||||||
|
URI: "https://my.service.com/lookup/blah?asset=%assetHash%"
|
||||||
|
description: "The parent owner of this asset and all of its derivatives is the USC ETC."
|
||||||
|
metadata: {
|
||||||
|
Original: true,
|
||||||
|
Color-corrected: false,
|
||||||
|
Copyright: 2014 USC ETC
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## Update [PUT]
|
||||||
|
|
||||||
|
+ Request
|
||||||
|
|
||||||
|
+ Headers
|
||||||
|
|
||||||
|
Authorization: Token token="12345678901234567890"
|
||||||
|
|
||||||
|
+ Body
|
||||||
|
|
||||||
|
{
|
||||||
|
description: "Update description."
|
||||||
|
}
|
||||||
|
|
||||||
|
+ Response 200
|
||||||
|
|
||||||
|
|
||||||
|
## Destroy [DELETE]
|
||||||
|
|
||||||
|
+ Request
|
||||||
|
|
||||||
|
+ Headers
|
||||||
|
|
||||||
|
Authorization: Token token="12345678901234567890"
|
||||||
|
|
||||||
|
+ Response 200
|
||||||
|
|
||||||
|
|
||||||
|
# Group Service Registry
|
||||||
|
|
||||||
|
| service | serviceName | serviceToken | serviceDescription |
|
||||||
|
|---------|-----------------------|--------------|--------------------------------------------------|
|
||||||
|
| 5 | Ownership Information | OWNER | This service type provides ownership information |
|
||||||
|
| | | | about the asset. A non-parameter call to the URI |
|
||||||
|
| | | | will provide more information on how to access |
|
||||||
|
| | | | this service. |
|
||||||
|
|
||||||
|
## Assets and Services Collection [/ServiceRegistry]
|
||||||
|
### List [GET]
|
||||||
|
|
||||||
|
+ Response 200 (applicaiton/json)
|
||||||
|
|
||||||
|
[
|
||||||
|
{
|
||||||
|
service: 5
|
||||||
|
serviceName: "Ownership Information"
|
||||||
|
serviceToken: "OWNER"
|
||||||
|
serviceDescription: "
|
||||||
|
This service type provides ownership information about the
|
||||||
|
asset. A non-parameter call to the URI will provide more
|
||||||
|
information on how to access this service.
|
||||||
|
"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
## Create [POST]
|
||||||
|
|
||||||
|
+ Request
|
||||||
|
|
||||||
|
+ Headers
|
||||||
|
|
||||||
|
Authorization: Token token="12345678901234567890"
|
||||||
|
|
||||||
|
+ Body
|
||||||
|
|
||||||
|
{
|
||||||
|
service: 5
|
||||||
|
serviceName: "Ownership Information"
|
||||||
|
serviceToken: "OWNER"
|
||||||
|
serviceDescription: "
|
||||||
|
This service type provides ownership information about the
|
||||||
|
asset. A non-parameter call to the URI will provide more
|
||||||
|
information on how to access this service.
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
+ Response 201
|
||||||
|
|
||||||
|
## Assets and Services Member [/ServiceRegistry/{service}]
|
||||||
|
### Retrieve [GET]
|
||||||
|
|
||||||
|
+ Response 200 (application/json)
|
||||||
|
|
||||||
|
{
|
||||||
|
service: 5
|
||||||
|
serviceName: "Ownership Information"
|
||||||
|
serviceToken: "OWNER"
|
||||||
|
serviceDescription: "
|
||||||
|
This service type provides ownership information about the
|
||||||
|
asset. A non-parameter call to the URI will provide more
|
||||||
|
information on how to access this service.
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
## Update [PUT]
|
||||||
|
|
||||||
|
+ Request
|
||||||
|
|
||||||
|
+ Headers
|
||||||
|
|
||||||
|
Authorization: Token token="12345678901234567890"
|
||||||
|
|
||||||
|
+ Body
|
||||||
|
|
||||||
|
{
|
||||||
|
serviceDescription: "Update serviceDescription."
|
||||||
|
}
|
||||||
|
|
||||||
|
+ Response 200
|
||||||
|
|
||||||
|
|
||||||
|
## Destroy [DELETE]
|
||||||
|
|
||||||
|
+ Request
|
||||||
|
|
||||||
|
+ Headers
|
||||||
|
|
||||||
|
Authorization: Token token="12345678901234567890"
|
||||||
|
|
||||||
|
+ Response 200
|
Loading…
Reference in New Issue
Block a user