Reservation Methods¶
-
class
netlab.api.
ReservationApiMixin
¶ -
reservation_cancel
(*, res_id, **kwargs)¶ Cancel a reservation in NETLAB+ prior to reservation being started.
NOTE - if you wish to end a reservation that is already started use reservation_post.
- Parameters
res_id (int) – Reservation unique identifier.
- Returns
The change succeeded.
- Return type
‘OK’
-
reservation_extend
(*, res_id, **kwargs)¶ Request a 30 minute lab reservation extension.
- Parameters
res_id (int) – Reservation identifier.
- Returns
Returns an object with the following properties:
- Return type
Properties
- status
Status code.
- reason
Textual message that is suitable for display (English).
Status Codes
- OK
The reservation was extended.
- CLASS_LIMIT_EXCEEDED
Reservation cannot be extended because of cls_ext_slots_per_res setting limit.
- COMMUNITY_LIMIT_EXCEEDED
Reservation cannot be extended because of com_ext_slots_per_res setting limit.
- TIME_SLOT_UNAVAILABLE
The next time slot is occupied by another reservation.
- POD_ACTIVE_MAX
Maximum number of pods in use.
- RESERVATION_ALREADY_COMPLETED
The reservation has already completed and cannot be extended.
- E_ACCESS_DENIED
Student/learner cannot extend ILT reservation.
- STATE_NOT_ACTIVE_LAB
Reservation is not in the active lab state.
- TOO_EARLY
Cannot extend before T-00:15:59 minutes/seconds.
- TOO_LATE
Cannot extend after T-00:00:10 seconds.
Restrictions For All Users
An extension cannot be made before T-00:15:59 from the reservation post time. This is about 26 minutes from the blocked end time and 16 minutes of the usable time remaining.
The next 30 minute time slot must not be already scheduled by another reservation.
The extension cannot exceed maximum pods in use limit and/or proactive resource awareness settings.
Restrictions for Students and Teams
The number of extensions that a student or team can request are limited by community and class settings.
For backward setting compatibility, communities and classes do not allow extensions to be made by students or teams by default.
The administrator must specifically allow extensions for students and teams per community via the com_ext_slots_per_res setting.
The instructor must specifically allow extensions for students and teams per class via the cls_ext_slots_per_res setting.
The number of extensions that a student or team can request in a single reservation will be the more restrictive of the two settings.
A student (or instructor learner) may not extend an ILT reservation. Only a lead instructor can do that.
-
reservation_get
(*, res_id, **kwargs)¶ Get parameters of a reservation.
- Parameters
res_id (int) – Reservation identifier.
- Returns
On success, returns an object with the following properties:
- Return type
Properties
- acc_com_id
Community identifier.
- acc_full_name
Account display name.
- acc_id
Account identifier.
- cls_div_id
Community identifier.
- cls_id
Class identifier.
- cls_name
Class name.
- ex_id
Lab exercise identifier.
- ex_name
Lab exercise name.
- pod_desc
Pod description.
- pod_id
Unique pod identifier.
- pod_name
Pod name.
- pt_desc
Pod type description.
- pt_id
Pod type identifier.
- pt_name
Account email.
- res_acc_id
Account ID.
- res_active_time
Active reservation timestamp.
- res_asm_data
???
- res_attend_time
Time reservation was attended.
- res_cls_id
Class identifier.
- res_com_id
Community identifier.
- res_config
Initial configuration.
- res_done
Reservation is done.
- res_end
Timestamp scheduled end of reservation.
- res_ex_id
Reservation lab exercise identifier.
- res_flags
???
- res_id
Reservation identifier.
- res_init_fail
Count of failures during initialization.
- res_is_active
Reservation is active.
- res_minutes
Count of minutes for reservation.
- res_pod_id
Reservation pod identifier.
- res_post_time
Timestamp of actual end of reservation.
- res_preload_time
Timestamp UTC lab will preload.
- res_pt_id
Reservation pod type identifier.
- res_remaining_dhms
Days, hours, min, sec remaining if pod is in ACTIVE_LOAD or ACTIVE_INIT state.
- res_remaining_sec
Seconds remaining if pod is in ACTIVE_LOAD or ACTIVE_LAB state.
- res_start
Timestamp to start reservation.
- res_team
Reservation team setting.
- res_type
Reservation type.
netlab.enums.ReservationType
- res_uuid
Reservation unique identifier.
- sched_image
Location of the scheduler image.
-
reservation_make
(*, type, pod_id, cls_id=None, end_time, start_time=None, acc_id=None, reserver_id=None, tz_id=None, tz_olson=None, pt_id=None, ex_id, init_config=<InitConfig.NONE: 'N'>, **kwargs)¶ - Parameters
type (ReservationType) – Type of reservation.
pod_id (int) – Pod identifier.
cls_id (int) – Class identifier. Not required where type is ‘INSTRUCTOR’.
end_time (datetime.datetime) – Local time end of reservation. This must be on a half hour slot boundary.
start_time (datetime.datetime) – Local time start of reservation. If not specified it will use the current datetime.
tz_id (int) – Timezone identifier.
tz_olson (str) – IANA timezone name. If not specified, the timezone of the user identified by acc_id will be used.
pt_id (int) – Pod type identifier.
ex_id (int) – Exercise identifier (required).
acc_id (int) – Account identifier for the reservation. Defaults to reserver_id.
init_config (InitConfig) – Initial configuration.
reserver_id (int) – Reserver identifier. Defaults to the request user. An admin can use a reserver_id to make reservations for others.
- Returns
On success, returns an object with the following properties:
- Return type
Properties
- res_id
Reservation identifier.
- res_start_utc
Reservation start in UTC.
- res_end_utc
Reservation end in UTC.
- res_minutes
Reservation time in minutes
-
reservation_post
(*, res_id, **kwargs)¶ Ends a reservation that has already started.
- Parameters
res_id (int) – Reservation identifier.
- Returns
The change succeeded.
- Return type
‘OK’
-
reservation_query
(*, scope=<ReservationScope.ALL: 'ALL'>, min_time=None, max_time=None, com_id=None, cls_id=None, pod_id=None, active=None, **kwargs)¶ Return a list of reservations filtered on criteria.
- Parameters
scope (ReservationScope) – Reservation scope.
active (bool) – Filter active reservations.
cls_id (int) – Class identifier.
com_id (int) – Community identifier.
max_time (datetime.datetime) – Maximum time range.
min_time (datetime.datetime) – Minimum time range.
pod_id (int) – Pod identifier.
- Returns
On success, returns an object with the following properties:
- Return type
Properties
- acc_com_id
Community identifier.
- acc_full_name
Account display name.
- acc_id
Account identifier.
- cls_div_id
Community identifier.
- cls_id
Class identifier.
- cls_name
Class name.
- ex_id
Lab exercise identifier.
- ex_name
Lab exercise name.
- pod_desc
Pod description.
- pod_id
Unique pod identifier.
- pod_name
Pod name.
- pt_desc
Pod type description.
- pt_id
Pod type identifier.
- pt_name
Account email.
- res_acc_id
Account identifier.
- res_active_time
Active reservation timestamp.
- res_attend_time
Time reservation was attended.
- res_cls_id
Class identifier.
- res_com_id
Community identifier.
- res_config
Initial configuration.
- res_done
Reservation is done.
- res_end
Timestamp scheduled end of reservation.
- res_ex_id
Reservation lab exercise identifier.
- res_flags
Reservation hex code for pod state.
- res_id
Reservation identifier.
- res_init_fail
Count of failures during initialization.
- res_is_active
Reservation is active.
- res_minutes
Count of minutes for reservation.
- res_pod_id
Reservation pod identifier.
- res_post_time
Timestamp of actual end of reservation.
- res_pt_id
Reservation pod type identifier.
- res_start
Timestamp to start reservation.
- res_team
Reservation team setting.
- res_type
Type of reservation.
netlab.enums.ReservationType
- res_uuid
Reservation unique identifier.
- sched_image
Location of the scheduler image.
-
reservation_summary
(**kwargs)¶ This method allows you to retrieve a summary of all reservations.
- Returns
On success, returns an object with the following properties:
- Return type
Properties
- active_reservations
Count of active reservations.
- completed_reservations
Count of completed reservations.
- future_reservations
Count of future reservations.
- pods_in_use
Count of pods in use.
- total_reservations
Count of total reservations.
-
reservation_time_delta
(*, end, start=None, tz_id=None, tz_olson=None, **kwargs)¶ This method returns time between two timestamps with optional timezone offset.
- Parameters
end (datetime.datetime) – End time. This must be on a half hour increment.
start (datetime.datetime) – Start time. Defaults to now if not specified.
tz_id (int) – Timezone identifier.
tz_olson (str) – Timezone olson.
- Returns
On success, returns an object with the following properties:
- Return type
Properties
- days
Number of days to increase/decrease.
- hours
Number of hours to increase/decrease.
- minutes
Number of minutes to increase/decrease.
- months
Number of months to increase/decrease.
-
reservation_time_now
(*, tz_id=None, tz_olson=None, **kwargs)¶ This method returns the current NETLAB time.
- Parameters
- Returns
On success, returns an object with the following properties:
- Return type
Properties
- local
Local date time.
- local_am_pm
AM/PM indicator.
- local_day
Local day of the month.
- local_day_of_week
Local day of the week.
- local_hmap
Local time and am/pm.
- local_hms
Local time.
- local_hour_12
Local 12 Hour time.
- local_hour_24
Local 24 Hour time.
- local_minute
Local minute time.
- local_second
Local second time.
- local_year
Local year.
- local_ymd
Local YYYY-MM-DD.
- tz_id
Timezone identifier.
- tz_is_dst
Timezone is in Daylight Savings Time.
- tz_name
Name of the timezone.
- tz_olson
Timezone olson.
- utc
Coordinated Universal Time.
-
reservation_time_offset
(*, time=None, op=None, tz_id_in=None, tz_olson_in=None, tz_id_out=None, tz_olson_out=None, slot_roundup=False, years=None, months=None, weeks=None, days=None, hours=None, minutes=None, seconds=None, **kwargs)¶ This method returns the current time with a timezone offset.
- Parameters
time (datetime) – Time input.
op (str) – Operator. “+” rounds up. “-” rounds down.
tz_id_in (int) – Timezone identifier input.
tz_olson_in (str) – Timezone olson input.
tz_id_out (int) – Timezone identifier output.
tz_olson_out (str) – Timezone olson output.
slot_roundup (bool) – Round up to nearest slot. i.e. 30 min interval. Defaults to False.
years (int) – Number of years to increase/decrease.
months (int) – Number of months to increase/decrease.
weeks (int) – Number of weeks to increase/decrease.
days (int) – Number of days to increase/decrease.
hours (int) – Number of hours to increase/decrease.
minutes (int) – Number of minutes to increase/decrease.
seconds (int) – Number of seconds to increase/decrease.
- Returns
On success, returns an object with the following properties:
- Return type
Properties
- days
int
- hours
int
- minutes
int
- months
int
- time_in_local
datetime
- time_in_utc
datetime
- time_out_local
datetime
- time_out_utc
datetime
- tz_id_in
int
- tz_id_out
int
- tz_olson_in
str
- tz_olson_out
str
-
static
reservation_timeslot_adjuster
(*, user_time, round_low=False)¶ Round a datetime to the nearest half hour, which is required for some times in netlab.
- Parameters
user_time (datetime.datetime) – Must be a datetime object. Adjusted for fulfilling time slot if not already time slot acceptable.
round_low (bool) – True: rounds time in minutes down to the low timeslot. False: rounds time up to next timeslot.
- Returns
Datetime rounded to half hour.
- Return type
-