Implement CLI for python-savannaclient
Requirements -
. MUST accept --os-username/
. MUST accept --service-type & --endpoint-type and perform keystone catalog lookup
https:/
==Plugins==
plugin-list
-> GET /v1.0/{
plugin-show --name <plugin> [--version <version>]
-> GET /v1.0/{
==Image Registry==
image-list [--tag <tag>]*
-> GET /v1.0/{
image-show --name <image>|--id <image_id>
-> GET /v1.0/{
image-register --name <image>|--id <image_id> [--username <name>] [--description <desc>]
-> POST /v1.0/{
image-unregister --name <image>|--id <image_id>
-> DELETE /v1.0/{
image-add-tag --name <image>|--id <image_id> --tag <tag>+
-> POST /v1.0/{
image-remove-tag --name <image>|--id <image_id> --tag <tag>+
-> POST /v1.0/{
==Node Group Templates==
node-group-
-> GET /v1.0/{
node-group-
-> GET /v1.0/{
node-group-
node-group-
-> DELETE /v1.0/{
==Cluster Templates==
cluster-
-> GET /v1.0/{
cluster-
-> GET /v1.0/{
cluster-
cluster-
-> DELETED /v1.0/{
==Clusters==
cluster-list
-> GET /v1.0/{
cluster-show --name <cluster>|--id <cluster_id> [--json]
-> GET /v1.0/{
cluster-create [--json <file>]
cluster-scale
* two operations, resize and add
* resize existing group w/ new size
* add new group
cluster-delete --name <cluster>|--id <cluster_id>
-> DELETE /v1.0/{
https:/
==Data Sources==
data-source-list
-> GET /data-sources
data-source-show --name <name>|--id <id>
-> GET /data-sources/{id}
data-source-create --name <name> --type <type> --url <url> [--user <user> --password <password>] [--description <desc>]
NB: user & password if type is swift
-> POST /data-sources
data-source-delete --name <name>|--id <id>
-> DELETE /data-sources/{id}
==Job Binary Internals==
job-binary-
-> GET /job-binary-
job-binary-
job-binary-
NB: name param is required
-> PUT_FILE /job-binary-
job-binary-
-> DELETE /job-binary-
==Job Binaries==
job-binary-list
-> GET /job-binaries
job-binary-show --name <name>|--id <id>
-> GET /job-binaries/{id}
job-binary-create --name <name> --url <url> [--user <user> --password <password>] [--description <desc>]
NB: user & password if url proto is swift-internal
NB: param for credentials should be "credentials" (like data-source) not "extra"
-> POST /job-binaries
job-binary-delete --name <name>|--id <id>
-> DELETE /job-binaries/{id}
==Jobs==
job-template-list
-> GET /jobs
job-template-show --name <name>|--id <id>
-> GET /jobs/{id}
job-template-create --name <name> --type <Pig|Hive|
-> POST /jobs
job-template-delete --name <name>|--id <id>
-> DELETE /jobs/{id}
==Job Executions==
job-list
-> GET /job-executions
job-show --id <id>
-> GET /job-executions
job-create --job-template <id> --cluster <id> --input-data <id> --output-data <id> [--param <name=value>] [--arg <arg>] [--config <name=value>]
-> POST /jobs/{
job-update -- skip
job-delete --id <id>
-> DELETE /job-executions
NOTES -
. Do we provide a 'run' command that can create a template, create a job, wait for completion? -> bp cli-edp-run-cmd
. Given the complexity of the templates, we likely want a way to dump/load them. 9 Jan 2014 meeting, this was agreed.
. Consistency says to use -delete instead of -destroy. Agreed in 9 Jan 2014 meeting.
. All the cmd roots be singular (plugin-list over plugins-list)
. -I'm flexible on dash vs space, i.e. images-list vs images list- Not flexible on this anymore, dash is the way forward
. We should enable tab completion instead of providing short arguments -> bp cli-tab-completion
. Typo in rest_api_v1.0 3.4 should not have {image_id}? No, the image_id is a param passed via url instead of data.
. Why does Cluster template create need node group name and id? -> https:/
. Can POST cluster-templates really take a node-group-template spec? If so, I'm don't think we should expose that functionality in the CLI.
. Can POST clusters really take a full cluster-template spec? If so, I'm don't think we should expose that functionality in the CLI.
. We have complexity in the node-group-template name w/i the cluster-template, might not match
Blueprint information
- Status:
- Complete
- Approver:
- Sergey Lukjanov
- Priority:
- Medium
- Drafter:
- Matthew Farrellee
- Direction:
- Approved
- Assignee:
- Matthew Farrellee
- Definition:
- Approved
- Series goal:
- Accepted for 0.5.x
- Implementation:
- Implemented
- Milestone target:
- 0.5.0
- Started by
- Matthew Farrellee
- Completed by
- Matthew Farrellee
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Add initial Savanna CLI
Addressed by: https:/
Add initial image-* commands to CLI
Addressed by: https:/
Add initial cluster-* commands to CLI
Addressed by: https:/
Add initial node-group-
Addressed by: https:/
Add initial cluster-template-* commands to CLI
Addressed by: https:/
Make plugin commands singular
Addressed by: https:/
Add node-group-
Addressed by: https:/
Add cluster-
Addressed by: https:/
Refactor display of node group template
Addressed by: https:/
Refactor display of cluster template
Addressed by: https:/
Refactor display of cluster
Addressed by: https:/
Add --json option to node-group-
Addressed by: https:/
Add --json option to cluster-
Addressed by: https:/
Add --json option to cluster-show
Addressed by: https:/
Add node-group-
Addressed by: https:/
Add cluster-
Addressed by: https:/
Add cluster-create to CLI
Addressed by: https:/
Add data-source-list to CLI
Addressed by: https:/
Add data-source-show to CLI
Addressed by: https:/
Add data-source-delete to CLI
Addressed by: https:/
Add job-binary-
Addressed by: https:/
Add job-binary-
Addressed by: https:/
Add job-binary-list to CLI
Addressed by: https:/
Add job-binary-show to CLI
Addressed by: https:/
Add job-binary-delete to CLI
Addressed by: https:/
Add job-template-list to CLI
Addressed by: https:/
Add job-template-show to CLI
Addressed by: https:/
Add job-template-delete to CLI
Addressed by: https:/
Add job-list to CLI
Addressed by: https:/
Add job-show to CLI
Addressed by: https:/
Add job-delete to CLI
Addressed by: https:/
Refactor display of job-binary-data elements
Addressed by: https:/
Add job-binary-
Addressed by: https:/
Refactor display of a single data-source
Addressed by: https:/
Add data-source-create to CLI
Gerrit topic: https:/
Addressed by: https:/
Refactor display of a job binary
Addressed by: https:/
Add job-binary-create to CLI
Addressed by: https:/
Add job-create to CLI
Work Items
Dependency tree
* Blueprints in grey have been implemented.