Development Blog

NodeManager feature request

Marc requested the ability to turn off bwlimits in NM.  Also, since some nodes will have gigE connections to the outside world, moving from byte limits measured in KB to MB would probably be a good idea.

 NM in head is currently broken.  IIRC, dhozac was the last to play with it and I'm not certain what he did and didn't do.  I've been careful to merge changes I've made to the branch into head so, hopefully, the code isnt THAT different.  Regardless, I foresee at least a week of testing a tweaking before i can sign off on it.

Trac is up. Please create a password.

SVN and Trac, running on poppins, uses LDAP for authentication. I've created user accounts for most of PLC, if not all. There are no API calls to grab passwords from the PL API and making a backdoor to sync PL passwords with LDAP passwords doesn't really appeal to me. So, in order for PLC to log in to trac, please do the following:

 $ ssh root@poppins
# passwd <your username>
Changing password for user tmack.
New UNIX password:
Retype new UNIX password:
LDAP password information changed for <your username>
passwd: all authentication tokens updated successfully

You should now be able to log in to http://svn.planet-lab.org/ and create/edit content.

i hate drupal

i hate drupal

SVN cheat sheet

To Check Out:

(over ssh)

$  svn co svn+ssh://svn.planet-lab.org/svn/NodeManager/trunk NodeManager

(over https)

$ svn co https://svn.planet-lab.org/svn/NodeManager/trunk NodeManager

Tagging

Membership Management Tools

This section obviously needs a lot more detail.

Requirements / Assumptions

Because consortium membership management is specific to each particular planetlab instance, it is not part of the MyPLC distribution.  That said, here are some notes that are of use to the Princeton support team.

More Background

 The code is currently under development by Scott and is in beta-production.  Because it is not part of MyPLC, it is hosted on the CS Department website and uses the department MySQL database server.  The code is on the departmental file system at /n/fs/planetlab.

Code and View updates for sites/index.php

This work is in preparation for asking sites to update their PCU information for Monitor.

I've created a better view for sites/index.php. It lists all nodes and allows techs or PIs to associate nodes with a PCU.

Additionally, the organization of the code is split more clearly between a template (standard html with minimal php variables, and loops) and control function.

I believe this will make it easier to integrate with additional ajax code later. I will request OneLab for comments on the code reorganization, using sites/index.php as an example.

 

Scheduling Node Downtime

I've completed a preliminary service for recording node downtimes throught the web.

While users/techs will have to log in twice, since it will not be hosted on the PlanetLab web server, the authentication mechanism uses the PL session key.

This may be kept for just admins. I'm not sure yet.

NodeManager bug

There were some hundred nodes with hung NMs. /var/log/nm<.gz.*> would look like the following:

Sat Sep 15 10:01:50 2007: bwmon:  Found 271 running HTBs
Sat Sep 15 10:01:50 2007: bwmon: Found 1 new slices
Sat Sep 15 10:01:50 2007: bwmon: Found 0 slices that have htbs but not in dat.
Sat Sep 15 10:01:50 2007: bwmon Slice utah_elab_31230 doesn't have xid. Must be delegated. Skipping.
Sat Sep 15 10:01:50 2007: bwmon: Found 1 dead slices
Sat Sep 15 10:01:50 2007: bwmon: removing dead slice 1186
Sat Sep 15 10:01:51 2007: bwmon: now 270 running HTBs
Sat Sep 15 10:02:08 2007: bwmon: Saving 270 slices in /var/lib/misc/bwmon.dat
Sat Sep 15 10:20:19 2007: Traceback (most recent call last):
File "/usr/share/NodeManager/nm.py", line 82, in run
GetSlivers(plc)
File "/usr/share/NodeManager/nm.py", line 36, in GetSlivers
data = plc.GetSlivers()
File "/data/build/tmp/NodeManager-1.5-4.planetlab-root//usr/share/NodeManager/plcapi.py", line 86, in w
rapper
return function(*params)
File "/usr/lib/python2.4/xmlrpclib.py", line 1096, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.4/xmlrpclib.py", line 1383, in __request
verbose=self.__verbose
File "/data/build/tmp/NodeManager-1.5-4.planetlab-root//usr/share/NodeManager/safexmlrpc.py", line 21,
in request
raise xmlrpclib.ProtocolError(host + handler, -1, str(e), '')
ProtocolError: <ProtocolError for boot.planet-lab.org:443//PLCAPI//: -1 >

 

SVN structure

After perusing OneLab's SVN and talking to dhozac on IRC, I like the idea of seperating out modules in our repository from their vanilla upstream versions and what exists in the trunk. So, preliminary structure for modules in SVN will be as follows.

Module/trunk
  /tags
  /imports
  

 

Ajax Optimisations

I have optimized the grid to load much faster and it is reaching a very usable speed.  The problem is I had to remove some good data from the API call in order to get this speed.  For testing, it is working fine.  I will now try to optimize the Grid class further so that I wont have to use such large API calls to retrieve all data and will still be able to display enough relevant information.  This data flaw is only related to the nodes list instantiation of the grid for choosing nodes for association for slices, other uses of the grid should be fine.

Adding sorting is still going to be a problem due to how slow our current sorting function are, relating to the dictionaries returned by API calls.  This is currently the main limitation of the grid and will apply to all future uses of grids anywhere in the GUI.  I will work on making stronger sorting functions in order to optimize this limitation.
Syndicate content