git://git.onelab.eu
/
sfa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4bb9167
)
Nitos: channels now have component_id (urn), which is used to address them into Lease...
author
Mohamed Larabi
<mohamed.larabi@inria.fr>
Mon, 16 Sep 2013 13:42:41 +0000
(15:42 +0200)
committer
Mohamed Larabi
<mohamed.larabi@inria.fr>
Mon, 16 Sep 2013 13:56:13 +0000
(15:56 +0200)
sfa/nitos/nitosaggregate.py
patch
|
blob
|
history
sfa/nitos/nitosslices.py
patch
|
blob
|
history
sfa/nitos/nitosxrn.py
patch
|
blob
|
history
sfa/rspecs/elements/channel.py
patch
|
blob
|
history
sfa/rspecs/elements/versions/nitosv1Channel.py
patch
|
blob
|
history
sfa/rspecs/elements/versions/nitosv1Lease.py
patch
|
blob
|
history
diff --git
a/sfa/nitos/nitosaggregate.py
b/sfa/nitos/nitosaggregate.py
index
2e59d2e
..
edf3d93
100644
(file)
--- a/
sfa/nitos/nitosaggregate.py
+++ b/
sfa/nitos/nitosaggregate.py
@@
-18,7
+18,7
@@
from sfa.rspecs.elements.granularity import Granularity
from sfa.rspecs.elements.channel import Channel
from sfa.rspecs.version_manager import VersionManager
from sfa.rspecs.elements.channel import Channel
from sfa.rspecs.version_manager import VersionManager
-from sfa.nitos.nitosxrn import NitosXrn, hostname_to_urn, hrn_to_nitos_slicename, slicename_to_hrn
+from sfa.nitos.nitosxrn import NitosXrn, hostname_to_urn, hrn_to_nitos_slicename, slicename_to_hrn
, channel_to_urn
from sfa.planetlab.vlink import get_tc_rate
from sfa.planetlab.topology import Topology
from sfa.planetlab.vlink import get_tc_rate
from sfa.planetlab.topology import Topology
@@
-163,6
+163,7
@@
class NitosAggregate:
rspec_channel['channel_num'] = channel_number
rspec_channel['start_time'] = channel['start_time']
rspec_channel['duration'] = (int(channel['end_time']) - int(channel['start_time'])) / int(grain)
rspec_channel['channel_num'] = channel_number
rspec_channel['start_time'] = channel['start_time']
rspec_channel['duration'] = (int(channel['end_time']) - int(channel['start_time'])) / int(grain)
+ rspec_channel['component_id'] = channel_to_urn(self.driver.hrn, self.driver.testbedInfo['name'], channel_number)
# retreive slicename
for slc in slices:
# retreive slicename
for slc in slices:
@@
-238,6
+239,7
@@
class NitosAggregate:
rspec_channel['channel_num'] = channel['channel']
rspec_channel['frequency'] = channel['frequency']
rspec_channel['standard'] = channel['modulation']
rspec_channel['channel_num'] = channel['channel']
rspec_channel['frequency'] = channel['frequency']
rspec_channel['standard'] = channel['modulation']
+ rspec_channel['component_id'] = channel_to_urn(self.driver.hrn, self.driver.testbedInfo['name'], channel['channel'])
rspec_channels.append(rspec_channel)
return rspec_channels
rspec_channels.append(rspec_channel)
return rspec_channels
diff --git
a/sfa/nitos/nitosslices.py
b/sfa/nitos/nitosslices.py
index
2edd209
..
3eac8aa
100644
(file)
--- a/
sfa/nitos/nitosslices.py
+++ b/
sfa/nitos/nitosslices.py
@@
-7,7
+7,7
@@
from sfa.util.xrn import Xrn, get_leaf, get_authority, urn_to_hrn
from sfa.rspecs.rspec import RSpec
from sfa.rspecs.rspec import RSpec
-from sfa.nitos.nitosxrn import NitosXrn, hrn_to_nitos_slicename, xrn_to_hostname
+from sfa.nitos.nitosxrn import NitosXrn, hrn_to_nitos_slicename, xrn_to_hostname
, xrn_to_channel
MAXINT = 2L**31-1
MAXINT = 2L**31-1
@@
-96,7
+96,7
@@
class NitosSlices:
slice_name = hrn_to_nitos_slicename(channel['slice_id'])
if slice_name != slice['slice_name']:
continue
slice_name = hrn_to_nitos_slicename(channel['slice_id'])
if slice_name != slice['slice_name']:
continue
- channel_num =
channel['channel_num']
+ channel_num =
xrn_to_channel(channel['component_id'])
nitos_channel = self.driver.filter_nitos_results(nitos_channels, {'channel': channel_num})[0]
# fill the requested channel with nitos ids
requested_channel['slice_id'] = slice['slice_id']
nitos_channel = self.driver.filter_nitos_results(nitos_channels, {'channel': channel_num})[0]
# fill the requested channel with nitos ids
requested_channel['slice_id'] = slice['slice_id']
diff --git
a/sfa/nitos/nitosxrn.py
b/sfa/nitos/nitosxrn.py
index
442e48b
..
47d8aad
100644
(file)
--- a/
sfa/nitos/nitosxrn.py
+++ b/
sfa/nitos/nitosxrn.py
@@
-23,6
+23,12
@@
def hrn_to_nitos_authname (hrn):
return NitosXrn(xrn=hrn,type='any').nitos_authname()
def xrn_to_hostname(hrn):
return Xrn.unescape(NitosXrn(xrn=hrn, type='node').get_leaf())
return NitosXrn(xrn=hrn,type='any').nitos_authname()
def xrn_to_hostname(hrn):
return Xrn.unescape(NitosXrn(xrn=hrn, type='node').get_leaf())
+def channel_to_hrn (auth, login_base, channel):
+ return NitosXrn(auth=auth+'.'+login_base, channel=channel).get_hrn()
+def channel_to_urn (auth, login_base, channel):
+ return NitosXrn(auth=auth+'.'+login_base, channel=channel).get_urn()
+def xrn_to_channel(hrn):
+ return Xrn.unescape(NitosXrn(xrn=hrn, type='channel').get_leaf())
class NitosXrn (Xrn):
class NitosXrn (Xrn):
@@
-30,7
+36,7
@@
class NitosXrn (Xrn):
def site_hrn (auth, login_base):
return '.'.join([auth,login_base])
def site_hrn (auth, login_base):
return '.'.join([auth,login_base])
- def __init__ (self, auth=None, hostname=None, slicename=None, email=None, interface=None, **kwargs):
+ def __init__ (self, auth=None, hostname=None, slicename=None, email=None, interface=None,
channel=None,
**kwargs):
#def hostname_to_hrn(auth_hrn, login_base, hostname):
if hostname is not None:
self.type='node'
#def hostname_to_hrn(auth_hrn, login_base, hostname):
if hostname is not None:
self.type='node'
@@
-54,6
+60,10
@@
class NitosXrn (Xrn):
self.type = 'interface'
self.hrn = auth + '.' + interface
self.hrn_to_urn()
self.type = 'interface'
self.hrn = auth + '.' + interface
self.hrn_to_urn()
+ elif channel is not None:
+ self.type='channel'
+ self.hrn=".".join([auth] + [channel])
+ self.hrn_to_urn()
else:
Xrn.__init__ (self,**kwargs)
else:
Xrn.__init__ (self,**kwargs)
diff --git
a/sfa/rspecs/elements/channel.py
b/sfa/rspecs/elements/channel.py
index
6ed328e
..
9668054
100644
(file)
--- a/
sfa/rspecs/elements/channel.py
+++ b/
sfa/rspecs/elements/channel.py
@@
-10,4
+10,5
@@
class Channel(Element):
'slice_id',
'start_time',
'duration',
'slice_id',
'start_time',
'duration',
+ 'component_id',
]
]
diff --git
a/sfa/rspecs/elements/versions/nitosv1Channel.py
b/sfa/rspecs/elements/versions/nitosv1Channel.py
index
1ebf7ab
..
60582e3
100644
(file)
--- a/
sfa/rspecs/elements/versions/nitosv1Channel.py
+++ b/
sfa/rspecs/elements/versions/nitosv1Channel.py
@@
-48,7
+48,7
@@
class NITOSv1Channel:
channel_elems = []
for channel in channels:
channel_elems = []
for channel in channels:
- channel_fields = ['channel_num', 'frequency', 'standard']
+ channel_fields = ['channel_num', 'frequency', 'standard'
, 'component_id'
]
channel_elem = spectrum_elem.add_instance('channel', channel, channel_fields)
channel_elems.append(channel_elem)
channel_elem = spectrum_elem.add_instance('channel', channel, channel_fields)
channel_elems.append(channel_elem)
@@
-67,6
+67,7
@@
class NITOSv1Channel:
channel['channel_num'] = channel_elem.attrib['channel_num']
channel['frequency'] = channel_elem.attrib['frequency']
channel['standard'] = channel_elem.attrib['standard']
channel['channel_num'] = channel_elem.attrib['channel_num']
channel['frequency'] = channel_elem.attrib['frequency']
channel['standard'] = channel_elem.attrib['standard']
+ channel['component_id'] = channel_elem.attrib['component_id']
channels.append(channel)
return channels
channels.append(channel)
return channels
diff --git
a/sfa/rspecs/elements/versions/nitosv1Lease.py
b/sfa/rspecs/elements/versions/nitosv1Lease.py
index
f5334a7
..
9b2e803
100644
(file)
--- a/
sfa/rspecs/elements/versions/nitosv1Lease.py
+++ b/
sfa/rspecs/elements/versions/nitosv1Lease.py
@@
-69,7
+69,7
@@
class NITOSv1Lease:
for channel in channels:
channel['start_time'] = datetime_to_string(utcparse(channel['start_time']))
if channel['slice_id'] == lease[0]['slice_id'] and channel['start_time'] == lease[0]['start_time'] and channel['duration'] == lease[0]['duration']:
for channel in channels:
channel['start_time'] = datetime_to_string(utcparse(channel['start_time']))
if channel['slice_id'] == lease[0]['slice_id'] and channel['start_time'] == lease[0]['start_time'] and channel['duration'] == lease[0]['duration']:
- lease_elem.add_instance('channel', channel, ['c
hannel_num
'])
+ lease_elem.add_instance('channel', channel, ['c
omponent_id
'])
@staticmethod
@staticmethod
@@
-99,7
+99,8
@@
class NITOSv1Lease:
channel['slice_id'] = lease_elem.attrib['slice_id']
channel['start_time'] = datetime_to_epoch(utcparse(lease_elem.attrib['start_time']))
channel['duration'] = lease_elem.attrib['duration']
channel['slice_id'] = lease_elem.attrib['slice_id']
channel['start_time'] = datetime_to_epoch(utcparse(lease_elem.attrib['start_time']))
channel['duration'] = lease_elem.attrib['duration']
- channel['channel_num'] = channel_elem.attrib['channel_num']
+ channel['component_id'] = channel_elem.attrib['component_id']
+
channels.append(channel)
return (leases, channels)
channels.append(channel)
return (leases, channels)