cloudfoundry/vcap — Issue #145: Application Collaborator implementation
Author: yssk22r
Created: 2011-11-22 08:12:23+00:00
State: open

Hi,

We are now building our private PaaS in our company using Cloud Foundry. And we have an issue to be shared with you.
It is a team developing feature. I know AppCollaborator model and some implementations are already developed in data model, but no functional features are implemented yet.

I share the summary of the draft design in this issue record. Would you please review it?
If it can be acceptable for core development team, i will make a pull request for the implementation(both vcap and vmc).

# Feature VMC interface.

This is similar to 'vmc env' command.

$ vmc collab appname
$ vmc collab-add appname email
$ vmc collab-del appname email

# Collaborators Operation

'vmc apps' displays all applications like as follows

collab@ubuntu:~$ vmc apps

============== My Applications ==============

+-------------+----+---------+----------------+----------+
| Application | # | Health | URLS | Services |
+-------------+----+---------+----------------+----------+
| sample | 1 | RUNNING | sample.vcap.me | |
+-------------+----+---------+----------------+----------+

============== Joined Applications ==============

+-------------+----+---------+----------------+----------+
| Application | # | Health | URLS | Services |
+-------------+----+---------+----------------+----------+
| shared | 1 | RUNNING | shared.vcap.me | |
+-------------+----+---------+----------------+----------+

And the collaborator can:

- vmc [start|stop|restart|update] appname
- vmc [mem|map|unmap|instances] appname
- vmc [crashes|crashlogs|logs|files|stats|instances] appname
- vmc [env|env-add|env-del] appname
- vmc [collab] appname
- vmc [bind-service|unbind-service] service appname # (*1)
- vmc tunnel service (*1)

the collaborator cannot:

- vmc [rename|delete] appname
- vmc [collab-add|collab-del] appname

(*1) This is the first step implementation and available only if is owned by the collaborator. It should be another discussions how should we collaborate on services.

# Changes in Cloud Controller.

As for vmc collab-*, the corresponding API endpoint (/apps/:name for update) should be modified. As for other vmc commands, collaborator filters should be added to each endpont.