- slice = slices.verify_slice(slice_hrn, slice_record, peer, sfa_peer, options=options)
- # ensure person records exists
- persons = slices.verify_persons(slice_hrn, slice, users, peer, sfa_peer, options=options)
- # ensure slice attributes exists
- slices.verify_slice_attributes(slice, requested_attributes, options=options)
-
- # add/remove slice from nodes
- requested_slivers = []
- for node in rspec.version.get_nodes_with_slivers():
- hostname = None
- if node.get('component_name'):
- hostname = node.get('component_name').strip()
- elif node.get('component_id'):
- hostname = xrn_to_hostname(node.get('component_id').strip())
- if hostname:
- requested_slivers.append(hostname)
- nodes = slices.verify_slice_nodes(slice, requested_slivers, peer)
-
- # add/remove links links
- slices.verify_slice_links(slice, rspec.version.get_link_requests(), nodes)
-
- # add/remove leases
- requested_leases = []
- kept_leases = []
- for lease in rspec.version.get_leases():
- requested_lease = {}
- if not lease.get('lease_id'):
- requested_lease['hostname'] = xrn_to_hostname(lease.get('component_id').strip())
- requested_lease['start_time'] = lease.get('start_time')
- requested_lease['duration'] = lease.get('duration')
+ slice = slices.verify_slice(
+ slice_hrn, slice_record, sfa_peer, options=options)
+ # ensure user records exists
+ users = slices.verify_users(
+ slice_hrn, slice, users, sfa_peer, options=options)
+
+ # add/remove leases (nodes and channels)
+ # a lease in Nitos RSpec case is a reservation of nodes and channels
+ # grouped by (slice,timeslot)
+ rspec_requested_leases = rspec.version.get_leases()
+ rspec_requested_nodes = []
+ rspec_requested_channels = []
+ for lease in rspec_requested_leases:
+ if lease['type'] == 'node':
+ lease.pop('type', None)
+ rspec_requested_nodes.append(lease)