class ContainerManager(models.Manager):
def delete(self, *args, **kwargs):
c = get_docker_client()
c.stop(self.container_id)
c.remove(self.container_id)
super(ContainerManager, self).delete(*args, **kwargs)
def create(self, *args, **kwargs):
c = get_docker_client()
docker_cont = c.create_container()
self.container_id = docker_cont['Id']
super(ContainerManager, self).create(*args, **kwargs)
def sync(self, *args, **kwargs):
c = get_docker_client()
data = c.inspect(self.container_id)
self.metadata = data
... # Other things to sync here?
super(ContainerManager, self).save(*args, **kwargs)
class Container(models.Model):
image = models.ForeignKey(Image)
assigned_to = models.EmailField(null=True, blank=True)
container_id = models.CharField(max_length=64, unique=True)
...
objects = ContainerManager
Pretty