From: Sandrine Avakian Date: Thu, 6 Sep 2012 12:29:15 +0000 (+0200) Subject: First modification integration. X-Git-Tag: sfa-2.1-24~3^2~90 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=8d14077fe21d1e78dba172962f9f0d003974ec29;p=sfa.git First modification integration. --- diff --git a/sfa/methods/CreateSliver.py b/sfa/methods/CreateSliver.py index b898c9d7..334f3b75 100644 --- a/sfa/methods/CreateSliver.py +++ b/sfa/methods/CreateSliver.py @@ -34,7 +34,6 @@ class CreateSliver(Method): hrn, type = urn_to_hrn(slice_xrn) self.api.logger.info("interface: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, hrn, self.name)) - print >>sys.stderr, " \r\n \r\n Createsliver.py call %s\ttarget-hrn: %s\tmethod-name: %s "%(self.api.interface, hrn, self.name) # Find the valid credentials valid_creds = self.api.auth.checkCredentials(creds, 'createsliver', hrn) origin_hrn = Credential(string=valid_creds[0]).get_gid_caller().get_hrn() diff --git a/sfa/senslab/TestSuite.py b/sfa/senslab/TestSuite.py index 42094094..3e09faad 100644 --- a/sfa/senslab/TestSuite.py +++ b/sfa/senslab/TestSuite.py @@ -192,7 +192,7 @@ def TestOAR(job_id = None): job_id = job_id[0] oar = OARrestapi() - jobs = oar.parser.SendRequest("GET_reserved_nodes") + jobs = oar.parser.SendRequest("GET_reserved_nodes", username = 'avakian') print "\r\n OAR GET_reserved_nodes ",jobs @@ -227,17 +227,25 @@ def TestOAR(job_id = None): raw_json = get_stuff(oar,uri) print "\r\n OAR ",uri, raw_json, "\r\n KKK \t",raw_json.keys() - + uri = '/oarapi/jobs.json?user=avakian' + raw_json = get_stuff(oar,uri) + print "\r\nOAR ", uri, raw_json, "\r\n KKK \t",raw_json.keys() return def TestSlabDriver(job_id): if isinstance(job_id,list) and len(job_id) == 1: job_id = job_id[0] slabdriver = SlabDriver(Config()) - l = slabdriver.GetSlices(slice_filter = 'senslab2.avakian_slice', slice_filter_type = 'slice_hrn') - print l + nodes = slabdriver.GetReservedNodes(username='avakian') + print "\r\n \r\n" ,nodes + l = slabdriver.GetSlices(slice_filter = '29', slice_filter_type = 'record_id_user') - print l + + + print "\r\n \r\nGetSlices" ,l + + persons = slabdriver.GetPersons() + print "\r\n \r\n GetPersons" ,persons #slabdriver.DeleteJobs(job_id,'senslab2.avakian_slice') def RunAll(): diff --git a/sfa/senslab/config/bash_nukem b/sfa/senslab/config/bash_nukem index b1a56d52..8bcbf3fc 100755 --- a/sfa/senslab/config/bash_nukem +++ b/sfa/senslab/config/bash_nukem @@ -60,9 +60,12 @@ sudo python setup.py install # and /etc/sfa/configs/site.xml # into /etc/sfa/sfa_config.xml # sudo sfa-config-tty -sudo cp $git_local_repo/sfa/senslab/config/$vm/sfa_config /etc/sfa/sfa_config +# +#sudo cp $git_local_repo/sfa/senslab/config/$vm/sfa_config /etc/sfa/sfa_config sudo cp $git_local_repo/sfa/senslab/config/$vm/sfa_config.xml /etc/sfa/sfa_config.xml -sudo cp $git_local_repo/sfa/senslab/config/$vm/site.xml /etc/sfa/site.xml +sudo cp $git_local_repo/sfa/senslab/config/$vm/default_config.xml /etc/sfa/default_config.xml +# sudo cp $git_local_repo/sfa/senslab/config/$vm/site.xml /etc/sfa/site.xml +sudo cp $git_local_repo/sfa/senslab/config/$vm/site_config /etc/sfa/configs/site_config # sudo ln -s ldap_config.py /etc/sfa/ldap_config.py sudo cp $git_local_repo/sfa/senslab/config/ldap_config.py /etc/sfa/ldap_config.py sudo service sfa restart diff --git a/sfa/senslab/config/senslab2/default_config.xml b/sfa/senslab/config/senslab2/default_config.xml index b08f738e..d5c6b150 100644 --- a/sfa/senslab/config/senslab2/default_config.xml +++ b/sfa/senslab/config/senslab2/default_config.xml @@ -20,7 +20,7 @@ Thierry Parmentelat Generic Flavour - pl + slab This string refers to a class located in sfa.generic that describes which specific implementation needs to be used for api, manager and driver objects. PlanetLab users do not need to change this setting. @@ -29,7 +29,7 @@ Thierry Parmentelat Human readable name - plc + senslab2 The human readable name for this interface. @@ -41,7 +41,7 @@ Thierry Parmentelat Debug - 0 + 2 Logging level; 0=minimum, 1=info, 2=debug @@ -62,6 +62,13 @@ Thierry Parmentelat + + Data Directory + /var/lib/sfa/ + Directory where cached certficiates and other data is stored. + + + @@ -89,13 +96,13 @@ Thierry Parmentelat Port number - 12345 + 52345 The port where the registry is to be found. Root Authority - plc + senslab2 The hrn of the registry's root auth. @@ -125,7 +132,7 @@ Thierry Parmentelat Port number - 12347 + 52347 The port where the slice manager is to be found. @@ -162,7 +169,7 @@ Thierry Parmentelat Port number - 12346 + 52346 The port where the aggregate is to be found. @@ -203,13 +210,13 @@ Thierry Parmentelat Database user - sfadbuser + sfa When SFA gets co-hosted with a myplc, this should match the PLC config. Database password - + sfa When SFA gets co-hosted with a myplc, this should match the PLC config. @@ -312,6 +319,11 @@ Thierry Parmentelat 8773 The Nova/EC2 API port. + + novarc + /root/novarc + Path to novarc client config file + diff --git a/sfa/senslab/slabaggregate.py b/sfa/senslab/slabaggregate.py index 7298a334..0ec8ddea 100644 --- a/sfa/senslab/slabaggregate.py +++ b/sfa/senslab/slabaggregate.py @@ -1,9 +1,6 @@ -#import httplib -#import json import time -#from sfa.util.config import Config from sfa.util.xrn import hrn_to_urn, urn_to_hrn, urn_to_sliver_id from sfa.rspecs.rspec import RSpec @@ -17,7 +14,6 @@ from sfa.rspecs.elements.lease import Lease from sfa.rspecs.elements.granularity import Granularity from sfa.rspecs.version_manager import VersionManager -#from sfa.util.sfatime import datetime_to_epoch from sfa.rspecs.elements.versions.slabv1Node import SlabNode from sfa.util.sfalogging import logger @@ -77,16 +73,14 @@ class SlabAggregate: #and therfore, node allocated to this slice for sfa_slice in slices: try: - + for node in sfa_slice['node_ids']: #node_id = self.driver.root_auth + '.' + node_id - sliver = Sliver({'sliver_id': urn_to_sliver_id(slice_urn, \ - sfa_slice['record_id_slice'], node['hostname']), + sliver = Sliver({'sliver_id': Xrn(slice_urn, type='slice', id=node['hostname'], authority=self.driver.hrn).urn, 'name': sfa_slice['slice_hrn'], 'type': 'slab-node', 'tags': []}) - logger.log_exc("SLABAGGREGATE \t \ - get_slice_and_slivers node_id %s "%(node)) + slivers[node['hostname']] = sliver except KeyError: logger.log_exc("SLABAGGREGATE \t \ @@ -157,9 +151,7 @@ class SlabAggregate: #tag_ids = [] nodes_dict = {} for node in nodes: - #site_ids.append(node['site_id']) - #interface_ids.extend(node['interface_ids']) - #tag_ids.extend(node['node_tag_ids']) + nodes_dict[node['node_id']] = node # get sites diff --git a/sfa/senslab/slabdriver.py b/sfa/senslab/slabdriver.py index f009aa40..5ef99c8e 100644 --- a/sfa/senslab/slabdriver.py +++ b/sfa/senslab/slabdriver.py @@ -134,8 +134,10 @@ class SlabDriver(Driver): res['pl_boot_state'] = nodeall_byhostname[node['hostname']]['boot_state'] #res['pl_last_contact'] = strftime(self.time_format, \ #gmtime(float(timestamp))) - sliver_id = urn_to_sliver_id(slice_urn, sl['record_id_slice'], \ - nodeall_byhostname[node['hostname']]['node_id']) + sliver_id = Xrn(slice_urn, type='slice', \ + id=nodeall_byhostname[node['hostname']]['node_id'], \ + authority=self.hrn).urn + res['geni_urn'] = sliver_id if nodeall_byhostname[node['hostname']]['boot_state'] == 'Alive': @@ -364,57 +366,18 @@ class SlabDriver(Driver): return slice_urns - #No site or node register supported + def register (self, sfa_record, hrn, pub_key): - record_type = sfa_record['type'] - slab_record = self.sfa_fields_to_slab_fields(record_type, hrn, \ - sfa_record) - - - if record_type == 'slice': - acceptable_fields = ['url', 'instantiation', 'name', 'description'] - for key in slab_record.keys(): - if key not in acceptable_fields: - slab_record.pop(key) - logger.debug("SLABDRIVER.PY register") - slices = self.GetSlices(slice_filter=slab_record['hrn'], \ - slice_filter_type = 'slice_hrn') - if not slices: - pointer = self.AddSlice(slab_record) - else: - pointer = slices[0]['slice_id'] - - elif record_type == 'user': - persons = self.GetPersons([sfa_record]) - #persons = self.GetPersons([sfa_record['hrn']]) - if not persons: - sfa_record['enabled'] = False - #For Senslab LDAP, if the user is a new one, disable the - #account so that admins have to acknowledge the user first. - pointer = self.AddPerson(dict(sfa_record)) - #add in LDAP - else: - pointer = persons[0]['person_id'] - - #Does this make sense to senslab ? - #if 'enabled' in sfa_record and sfa_record['enabled']: - #self.UpdatePerson(pointer, \ - #{'enabled': sfa_record['enabled']}) - - #TODO register Change this AddPersonToSite stuff 05/07/2012 SA - #No site in senslab 28/08/12 SA - - - # What roles should this user have? - #No user roles in Slab/SFA 28/08/12 SA: roles are handled in LDAP - # Add the user's key - if pub_key: - self.AddPersonKey(pointer, {'key_type' : 'ssh', \ - 'key' : pub_key}) - - #No node adding outside OAR - - return pointer + """ + Adding new user, slice, node or site should not be handled + by SFA. + + Adding nodes = OAR + Adding users = LDAP Senslab + Adding slice = Import from LDAP users + Adding site = OAR + """ + return -1 #No site or node record update allowed def update (self, old_sfa_record, new_sfa_record, hrn, new_key):