this.recount = function(query_uuid)
{
var query_ext;
- var is_reserved, is_pending, in_set, is_unconfigured;
+ var is_reserved, is_pending, in_set, is_unconfigured, is_unavailable, is_available;
query_ext = manifold.query_store.find_analyzed_query_ext(query_uuid);
query_ext.num_pending = 0;
this.iter_records(query_uuid, function(record_key, record) {
var record_state = manifold.query_store.get_record_state(query_uuid, record_key, STATE_SET);
var record_warnings = manifold.query_store.get_record_state(query_uuid, record_key, STATE_WARNINGS);
+ is_unavailable = (record.available == 'false');
+ is_available = (record.available == 'true');
is_reserved = (record_state == STATE_SET_IN)
|| (record_state == STATE_SET_OUT_PENDING)
// Adapted from querytable._querytable_filter()
this.iter_records(query_uuid, function(record_key, record) {
- var is_reserved, is_pending, in_set, is_unconfigured;
+ var is_reserved, is_pending, in_set, is_unconfigured, is_unavailable, is_available;
/* By default, a record is visible unless a filter says the opposite */
var visible = true;
var record_state = manifold.query_store.get_record_state(query_uuid, record_key, STATE_SET);
var record_warnings = manifold.query_store.get_record_state(query_uuid, record_key, STATE_WARNINGS);
+ is_unavailable = (record.available == 'false');
+ is_available = (record.available == 'true');
+
is_reserved = (record_state == STATE_SET_IN)
|| (record_state == STATE_SET_OUT_PENDING)
|| (record_state == STATE_SET_IN_SUCCESS)
// false => ~ break
visible = is_reserved;
return visible;
+ case 'available':
+ visible = is_available;
+ return visible;
+ case 'unavailable':
+ visible = is_unavailable;
+ return visible;
case 'unconfigured':
visible = is_unconfigured;
return visible;
manifold.raise_event(self.options.query_uuid, FILTER_REMOVED, filter);
}
// XXX The datatables will be refreshed twice !
- if (filter_status != 'all') {
- // No filter for 'all'
- var filter = ['manifold:status', '==', filter_status];
- manifold.raise_event(self.options.query_uuid, FILTER_ADDED, filter);
- }
+ //if (filter_status != 'all') {
+ // No filter for 'all'
+ // Changed since we have available/unavailable status
+ var filter = ['manifold:status', '==', filter_status];
+ manifold.raise_event(self.options.query_uuid, FILTER_ADDED, filter);
+ //}
self.prev_filter_status = filter_status;
},
style='display: inline-block !important; font-size: inherit;'
id="{{ domid }}__all"
data-status="all"
+ title="View all resources."
+ rel='tooltip'>
+ All
+ </a>
+ <a href="#"
+ class="list-group-item sl-resources"
+ style='display: inline-block !important; font-size: inherit;'
+ id="{{ domid }}__available"
+ data-status="available"
title="View resources that are available to be reserved."
rel='tooltip'>
Available
</a>
-
- <a href="#"
+ <a href="#"
class="list-group-item sl-resources"
style='display: inline-block !important; font-size: inherit;'
- id="{{ domid }}__reserved"
- data-status="reserved"
- title="View resources that you have previously reserved for the slice."
+ id="{{ domid }}__unavailable"
+ data-status="unavailable"
+ title="View resources that are NOT available to be reserved."
rel='tooltip'>
- Reserved
+ Unavailable
</a>
<a href="#" class="list-group-item sl-resources"
Pending
<span class="badge" id="badge-pending" style="display:none;"></span>
</a>
+
+ <a href="#"
+ class="list-group-item sl-resources"
+ style='display: inline-block !important; font-size: inherit;'
+ id="{{ domid }}__reserved"
+ data-status="reserved"
+ title="View resources that you have previously reserved for the slice."
+ rel='tooltip'>
+ Reserved
+ </a>
+
</div>
index['hostname'] = self.getColIndex('hostname',cols);
index['urn'] = self.getColIndex('urn',cols);
index['type'] = self.getColIndex('type',cols);
- index['status'] = self.getColIndex('boot_state',cols);
+ //index['status'] = self.getColIndex('boot_state',cols);
+ index['available'] = self.getColIndex('available',cols);
index['testbed'] = self.getColIndex('testbed_name',cols);
index['facility'] = self.getColIndex('facility_name',cols);
var resourceData = {
'hostname' : strip(aData[index['hostname']]),
'urn' : aData[index['urn']],
'type' : aData[index['type']],
- 'status' : aData[index['status']],
+ //'status' : aData[index['status']],
+ 'available' : aData[index['available']],
'testbed' : aData[index['testbed']],
'facility' : aData[index['facility']],
};
main_query.select(slice_fields)
# Columns shown by default in Query_table plugin
- page.expose_js_var("QUERYTABLE_MAP","{'Resource name': 'hostname', 'Type': 'type', 'Facility': 'facility_name','Testbed': 'testbed_name', 'Status':'boot_state'}")
+ page.expose_js_var("QUERYTABLE_MAP","{'Resource name': 'hostname', 'Type': 'type', 'Facility': 'facility_name','Testbed': 'testbed_name', 'Available':'available'}")
# Columns checked by default in Columns_selector plugin
- query_default_fields = ['hostname', 'type', 'facility_name', 'testbed_name', 'boot_state']
+ query_default_fields = ['hostname', 'type', 'facility_name', 'testbed_name', 'available']
QUERYTABLE_MAP = {
'hostname' : 'Resource name',
'type' : 'Type',
'facility_name' : 'Facility',
'testbed_name' : 'Testbed',
- 'boot_state' : 'Status',
+ 'available' : 'Available',
}
</div>
<div class="row">
- <div class="col-md-6">
+ <div class="col-md-8">
{{ filter_status }}
</div>
<div class="col-md-1">
</div>
<div class="row">
- <div class="col-md-6">
+ <div class="col-md-8">
{{ filter_status }}
</div>
<div class="col-md-1">
elif 'user_credential' in user_config:
user_cred = user_config['user_credential']
else:
+ logger.error("no user credentials for user = ", user_email)
user_cred = {}
if object_type:
for obj_name, cred in user_config['%s_credentials'%object_type].items():
if obj_name == hrn:
object_cred = cred
+ else:
+ logger.error("no credentials for object")
+ logger.error(object_type)
+ logger.error(object_name)
+ object_cred = {}
# Both AM & Registry
if method == "GetVersion":