source: OpenRLabs-Git/web2py/applications/rlabs/models/m4_reserves.py

main
Last change on this file was 8406aaa, checked in by David Fuertes <dfuertes@…>, 4 years ago

arreglado gitignore

  • Property mode set to 100644
File size: 2.9 KB
Line 
1# -*- coding: utf-8 -*-
2from datetime import datetime
3
4db.define_table('pre_reserves',
5                Field('lab_id', 'integer', required = True, readable = False),               
6                Field('ou_id', required=True, readable = False),
7                Field('lab_name', required = True),
8                Field('image_id', required=True, readable = False),
9                Field('image_name', required=True),
10                Field('protocol', 'reference services', required=True,
11                                requires = IS_IN_DB(db, db.services.id, '%(name)s', zero=None),         
12                                represent=lambda id, result: db.services[id].name
13                                                   ),
14                Field('init_time', 'datetime', required=True, widget=SQLFORM.widgets.string.widget),
15                Field('finish_time', 'datetime', required=True, widget=SQLFORM.widgets.string.widget),
16                Field('last_decreased_time', 'datetime', readable=False, writable=False),
17                Field('attempted_boots', 'integer', required=True, default=0, readable=False, writable=False),
18                Field('num_reserves', 'integer', required=True, label="Hosts en espera")
19            )
20
21
22def set_last_decreased(row, id):
23    db(db.pre_reserves.id == id).update(last_decreased_time=datetime.now())
24
25db.pre_reserves._after_insert.append(lambda row, id: set_last_decreased(row, id))
26
27db.define_table('reserves',
28                Field('user_id', 'reference auth_user', required=True,
29                      requires = IS_IN_DB(db, db.auth_user.id, '%(first_name)s'),
30                      represent=lambda id, result: db.auth_user[id].first_name + " " +
31                                                   db.auth_user[id].last_name
32                                                   ),
33                Field('ou_id', required=True),
34                Field('lab_id', required=True),
35                Field('pc_id', required=True),
36                Field('pc_name', required=True),
37                Field('image_id', required=True),               
38                Field('expiration_time', 'datetime', required=True),
39                Field('ip', required=True, unique=True),
40                Field('mac', required=True, unique=True),
41                Field('protocol', required=True),
42                Field('port', required=True),
43                Field('is_running', 'boolean', default=False),
44                Field('is_assigned', 'boolean', default=True),
45                Field('prereserve_id', 'reference pre_reserves', default=None),
46                Field('assigned_init_time', 'datetime'),
47                Field('reserved_init_time', 'datetime', required=True),
48                )
49
50# Remove all expired reserves
51#db(db.reserves.expiration_time < datetime.now()).delete()
52
53rs = db(db.reserves.expiration_time < datetime.now()).select()
54for r in rs:
55    if r['prereserve_id'] == None:
56        r.delete_record()
Note: See TracBrowser for help on using the repository browser.