Bundle Support

Registered by Marco Ceppi

Charm bundles

Blueprint information

Status:
Complete
Approver:
None
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
Marco Ceppi
Definition:
Approved
Series goal:
Accepted for 1.1
Implementation:
Implemented
Milestone target:
milestone icon 1.1.0
Started by
Marco Ceppi
Completed by
Marco Ceppi

Whiteboard

# General

To keep commands sane and promote a positive user experience, when possible a "bundle" command should be created as a juju plugin to alias any command that requires a --bundle flag. At the current time, only `juju charm create` requires a --bundle flag to distinguish between a charm template and a bundle template.

# Proofing

## Critical (E):
- JSON and YAML support (bundle.yaml or bundle.json)
- Proof against "bundle" directory
- If networking
 - Verify configuration options against charm store API
 - Verify relation data via charm store API
 - Charm verification, in store, if using shortned or CS URL, verify if lp branch exists otherwise. No local files

## Warning (W):
- if no X/Y cords in annotations per service
- No README.md

# Promulgation
- No promulgation bundles for WARNIGS (W), like charms, unless forced (like charms)
- Promulgate to `lp:~charmers/charms/bundles/<NAME>/bundle
 - Example: lp:~charmers/charms/bundles/wiki/bundle
 - Live example: http://bazaar.launchpad.net/~benji/charms/bundles/wiki/bundle/files

# Create
- no icon.svg, README should have directions on how to use GUI, README should be in markdown format
- Possibly defer until later, opting to place "creating a bundle" in either the docs, the GUI help system, or both. This will remove the need to have a bundle juju plugin

# Network proofing response

The response object can be wrapped if it fits with the API, just need to be able to easily determine the (E)rror, (W)arning, and (I)nformation messages.

http://paste.mitechie.com/show/1048/

```
{
  "error": [
    <String OR Objects, not both>
  ],
  "warning": [
    <Strings OR Objects, not both>
  ],
  "Information": [
    <Strings OR Objects, not both>
  ]
}
```

(?)

Work Items

Work items:
[marcoceppi] Create code to determine if directory is a bundle or charm: DONE
[marcoceppi] Create charmworld API abstraction library, package as python-charmworldlib?: TODO
[marcoceppi] Implement proof logic: DONE
[marcoceppi] Implement promulgation logic: INPROGRESS
[marcoceppi] Implement create method: POSTPONED
[rharding] Create "online" bundle proof API in charmworld: DONE

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.