[Planetlab-devel] Re: API merge between planetlab & onelab

Tony Mack tmack at CS.Princeton.EDU
Wed Aug 29 16:41:08 EDT 2007


Hi Thierry,

Some comments and questions:

========== Only in CVS:
PLC/Cache.py 
PLC/Methods/AdmGenerateNodeConfFile.py
./util.py		Is this useful ? 
./views.sql		Is this useful ?



Ill go ahead and get rid of Cache since it isn't necessary anymore.  
Keeping AdmGenerateNodeConfFile.py for the time being. util.py may be 
used to test the build, but not completely sure. views.sql isn't in our 
branch.

========== Only in subversion:
PLC/Methods/AddNodeNetworkSetting.py
PLC/Methods/AddNodeNetworkSettingType.py
PLC/Methods/DeleteNodeNetworkSetting.py
PLC/Methods/DeleteNodeNetworkSettingType.py
PLC/Methods/GetNodeNetworkSettingTypes.py
PLC/Methods/GetNodeNetworkSettings.py
PLC/Methods/GetPlcRelease.py - provides info on myplc revision and build
PLC/Methods/NotifySupport.py - same as NotifyPersons but for the support
PLC/Methods/UpdateNodeNetworkSetting.py
PLC/Methods/UpdateNodeNetworkSettingType.py
PLC/NodeNetworkSettingTypes.py
PLC/NodeNetworkSetting.py
migrations/*.sql


I plan on adding the db migration scripts functionality you've developed 
as a means to verify current and future db schema upgrades, but will 
keep planetlab4.sql schema up to with the changes as well. I will add 
your GetPlcRelease to the api. We dont really need NotifySupport. Im not 
familiar with the NodeNetworkSettings object. Can you give me more info 
on what you are using it for.

========== Changed location;
a few test scripts moved under tests/ -- see above - should be totally harmless


========== Most problematic:

PLC/EventObjects.py
	To REVIEW
	see also the corresponding view in planetlab4.sql

PLC/NodeNetworks.py
	TO REVIEW
	same kind of difference


I will use your EventObjects.py implementation. Let me know how you feel 
out NodeNetworks

doc/PLCAPI.xml
	our version slightly different - added a custom note on OneLab changes

========== File by file
Makefile:
	make index : __init__.py has one item per line for easier diffs
	make sync : for easily push a working dir onto a running myplc
	make +foo : prints the value of $(foo)

----------
PLC/Methods/BootUpdateNode.py
	attach event to node - not sure that's still useful


No need to explicitly attach an event to this call because the node_id 
of the node making the call is stored in Events.node_id (this is true 
for all the Boot... calls). BTW until all boot called were logged in the 
api even when api call logging (debug mode) was turned off. Now, these 
boot calls are
only logged if they produce an error (just like every other call).

PLC/Methods/GetNodeNetworks.py
	accepts call(int)
PLC/Methods/GetNodes.py
PLC/Methods/GetSites.py
	accepts call (int) or call(string)
PLC/Methods/GetPCUs.py
PLC/Methods/GetSliceAttributes.py
PLC/Methods/UpdateSite.py
	protects del foo['bar'] with if 'bar' in foo
PLC/Methods/GetPersons.py
PLC/Methods/GetSlices.py
	accepts call (int) or call(string)
	protects del foo['bar'] with if 'bar' in foo
PLC/Methods/GetSlivers.py
	searches enabled persons only
PLC/Methods/UpdateNode.py	
	protects del foo['bar'] with if 'bar' in foo
	exception message altered 
PLC/Methods/VerifyPerson.py
	review exception messages to include the email in question
PLC/Nodes.py
	changes in garbage collecting due to NodeNetworkSettingTypes:
	- nodenetworks not in join_tables anymore
	- but instead, related nodenetworks are subject to explicit delete
	  so related nodenetwork settings get deleted
	accepts a single int or single string as argument (see GetNodes)
	xxx 
	last_contact : I have commented this out - cannot remember why 
	I should probably have re-enabled it, your feedback is appreciated


I vaguely remember there was some perfomance problems around the time 
when we first added the 'last_contact' feature. We were yet sure if this 
was the root cause so we suggested you comment it out until we figured 
things out. It turns out that the fault was somewhere else, so we 
re-enabled the last_contact updated. It is ok re-enable  this feature.

PLC/Persons.py
	accepts a single int or single string as argument (see GetPersons)
	patch about email and federation : only formatting
PLC/PyCurl.py
	exception message altered 
PLC/Slices.py
PLC/Sites.py
	accepts a single int or single string as argument (see GetSites)
PLC/Test.py
	protects del foo['bar'] with if 'bar' in foo
PLCAPI.spec
	extracted name, version and subversion (used by external shell scripts)
	performs doc installation (recomputes html and pdf doc)
doc/Makefile
	miscell changes for refreshing doc on each build

php/header.php
	sneaky bug fix -- see comment



planetlab4.sql
	integrates all changes - subversion is 8
	in some cases (see above - 'TO REVIEW') the onelab implementation
	relies on a view while Princeton's implem. only uses the table


See comment/question about regarding nodenetworks/nodenetwork_settings

./setup.py
	for some reason I don't have Test.py in the files to install
	cannot remember why I would have removed it, maybe Tony added it ?


I dont think we intended on releasing the Test.py script in myplc 
installs. We were just using it to test development.

I have some other minor questions/comments. Ill catch you sometime online

Thierry Parmentelat wrote:
> Hi Tony
>
> As we had agreed previously, I've been doing a tentative merge between 
> our variants of the API
> You'll find our first candidate for this merge here
> http://svn.one-lab.org/new_plc_api/tags/new_plc_api-4.0.8/
> This version seems to work fine as far as 1lab is concerned
>
> I've written a few notes on this merge in the attached memo
> but you'll probably have more questions..
>
> -- Thierry
>



More information about the Devel mailing list