Import of sampletracker.bzr revno 42! What a great revision number to migrate to...
[htsworkflow.git] / samplebc / samples / util.py
1 import uuid
2 import random
3
4 from samplebc.samples import models
5 from samplebc.samples import errors
6
7 def get_uuid():
8     """
9     Returns hex version of uuid
10     """
11     return uuid.uuid1().hex
12
13
14 def get_sampleid():
15     """
16     Returns a sample id
17     """
18     return "%06d" % (random.randint(1,9999))
19
20
21 def assign_to_container(sample):
22     """
23     Choose a container to place sample into.
24     """
25     container_list = sample.sample_type.container_set.all()
26     available_list = [ container for container in container_list if container.space_available() > 0 ]
27     
28     if len(available_list) == 0:
29         raise errors.NoSpaceAvaliable("No container with available space for sample type (%s)" \
30                                       % (sample.sample_type.name))
31     
32     #FIXME: Need to choose a container in a more logical way... for now, take the first one.
33     container = available_list[0]
34     sample.container = container
35     
36     return