X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplanetlab%2Fplxrn.py;h=8c146aac307956404f57ef8ca7121070dc18892f;hb=1abccc4d5ae79956b7cb53fd3cf1da45b282a1d7;hp=a8461b53cf5fbfa8225c8f52104702691461ac76;hpb=74fb9f2ea12d7e5aee2f158e3a18139918298efc;p=sfa.git diff --git a/sfa/planetlab/plxrn.py b/sfa/planetlab/plxrn.py index a8461b53..8c146aac 100644 --- a/sfa/planetlab/plxrn.py +++ b/sfa/planetlab/plxrn.py @@ -22,21 +22,21 @@ def xrn_to_hostname(hrn): return Xrn.unescape(PlXrn(xrn=hrn, type='node').get_leaf()) # helpers to handle external objects created via fedaration -def xrn_to_ext_slicename (xrn): - slice_hrn=PlXrn(xrn=xrn,type='slice').get_hrn() - site_hrn = get_authority(slice_hrn) - login_base = '8'.join(site_hrn.split('.')) - slice_name = '_'.join([login_base, slice_hrn.split('.')[-1]]) - return slice_name - -def hrn_to_ext_loginbase (hrn): - site_hrn = get_authority(hrn) - login_base = '8'.join(site_hrn.split('.'))[:20] - return login_base - def top_auth (hrn): return hrn.split('.')[0] +def hash_loginbase(site_hrn): + if len(site_hrn) <= 12: + return site_hrn.replace('.','8') + ratio = float(12) / len(site_hrn) + auths_tab = site_hrn.split('.') + auths_tab2 = [] + for auth in auths_tab: + auth2 = auth[:int(len(auth)*ratio)] + auths_tab2.append(auth2) + + return '8'.join(auths_tab2) + class PlXrn (Xrn): @staticmethod