def post(self):

        #get data from form.
        lab_name = self.request.get('lab-name')
        project_id = self.request.get('project-id')
        lab_zone = self.request.get('lab-zone')
        instance_image = self.request.get('instance-image')
        machine_type = self.request.get('machine-type')
        number_students = int(self.request.get('total-students'))

        #get credentials stored in datastore
        user_id = users.get_current_user().user_id()
        credentials = oauth2client.StorageByKeyName(
        oauth2client.CredentialsModel, user_id, 'credentials').get()

        #configure project object
        gce_project = gce.GceProject(credentials, project_id=project_id, zone_name=lab_zone)

        #create lab entity in datastore
        lab = Lab(name=lab_name,
                  project_id=project_id,
                  lab_zone=lab_zone,
                  machine_type=machine_type,
                  instance_image=instance_image)
        lab.put()

        #create instance objects
        instances = []
        for n in range(number_students):

            # set the username to the name of the instance
            username = '******' % (lab_name, n)
            pass_phrase = security.generate_random_string(length=8)
            if not memcache.add(username, pass_phrase):
                  logging.error('Failed to set memcache')

            metadata_items = [
            {
                'key': 'user',
                'value': username
            },
            {
                'key': 'pass',
                'value': pass_phrase
            },
            {
                'key': 'startup-script-url',
                'value': 'gs://startup-scripts-compute/startup.sh'
            }
            ]

            instance = Instance(name="%s-%s" % (lab_name, n),
                                lab=lab.key,
                                metadata=metadata_items,
                                desired_state="RUNNING",
                                request_timestamp=datetime.now())
            instance.put()

            instances.append(instance)

        start_instances(gce_project, lab, instances)

        self.redirect('/lab/%s' % lab.key.id())