- # 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')
- else:
- kept_leases.append(int(lease['lease_id']))
- if requested_lease.get('hostname'):
- requested_leases.append(requested_lease)
-
- leases = slices.verify_slice_leases(slice, requested_leases, kept_leases, peer)
+ # 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)
+ else:
+ lease.pop('type', None)
+ rspec_requested_channels.append(lease)