ListResources now works and compresses properly
authorJosh Karlin <jkarlin@bbn.com>
Thu, 25 Mar 2010 19:18:58 +0000 (19:18 +0000)
committerJosh Karlin <jkarlin@bbn.com>
Thu, 25 Mar 2010 19:18:58 +0000 (19:18 +0000)
Makefile
sfa/client/sfi.py
sfa/managers/geni_am_pl.py
xmlbuilder-0.9/xmlbuilder.egg-info/PKG-INFO
xmlbuilder-0.9/xmlbuilder.egg-info/SOURCES.txt

index 66219b0..b3602ed 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@ keyconvert-clean:
 python: 
 
 xmlbuilder-install:
-       python xmlbuilder-0.9/setup.py install 
+       cd xmlbuilder-0.9 ; python setup.py install ; cd ..
        
 python-install:
        python setup.py install --root=$(DESTDIR)
index 27192df..c6b0a61 100755 (executable)
@@ -19,6 +19,7 @@ from sfa.util.rspec import RSpec
 from sfa.util.xmlrpcprotocol import ServerException
 import sfa.util.xmlrpcprotocol as xmlrpcprotocol
 from sfa.util.config import Config
+import zlib
 
 # utility methods here
 # display methods
@@ -910,9 +911,10 @@ class Sfi:
     def ListResources(self,opts,args):
         user_cred = self.get_user_cred().save_to_string(save_parents=True)
         server = self.geni_am
-        call_options = {}
-        print server.ListResources([user_cred], call_options)
-        
+        call_options = {'geni_compressed': True}
+        rspec = server.ListResources([user_cred], call_options)
+        rspec = zlib.decompress(rspec.decode('base64'))
+        print rspec
     
     #
     # Main: parse arguments and dispatch to command
index bd3951f..afa747a 100644 (file)
@@ -18,6 +18,8 @@ from sfa.plc.slices import Slices
 import sfa.plc.peers as peers
 from sfa.plc.api import SfaAPI
 from sfa.plc.slices import *
+from sfa.util.sfalogging import *
+import zlib
 
 def GetVersion():
     version = {}
@@ -25,5 +27,22 @@ def GetVersion():
     version['geni_stitching'] = False
     return version
 
-def ListResources(creds, options):
-    return "Hello World"
+def ListResources(api, creds, options):
+    manager_base = 'sfa.managers'
+    mgr_type = 'pl'
+    manager_module = manager_base + ".aggregate_manager_%s" % mgr_type
+    manager = __import__(manager_module, fromlist=[manager_base])
+
+    urn = None
+    if options.has_key('geni_slice_urn'):
+        urn = options['geni_slice_urn']
+
+    rspec = manager.get_rspec(api, urn, None)
+    #outgoing_rules = SFATablesRules('OUTGOING')
+    
+    if options.has_key('geni_compressed') and options['geni_compressed'] == True:
+        rspec = zlib.compress(rspec).encode('base64')
+        
+    return rspec
+
+
index d931c15..bb65a9d 100644 (file)
@@ -1,80 +1,80 @@
-Metadata-Version: 1.0\r
-Name: xmlbuilder\r
-Version: 0.9\r
-Summary: Pythonic way to create xml files\r
-Home-page: http://pypi.python.org/pypi/xmlbuilder\r
-Author: koder\r
-Author-email: koder_dot_mail@gmail_dot_com\r
-License: MIT\r
-Download-URL: http://pypi.python.org/pypi/xmlbuilder\r
-Description: Example of usage:\r
-        -----------------\r
-        \r
-        \r
-        from __future__ import with_statement\r
-        from xmlbuilder import XMLBuilder\r
-        x = XMLBuilder(format=True)\r
-        with x.root(a = 1):\r
-        with x.data:\r
-        [x &lt;&lt; ('node',{'val':i}) for i in range(10)]\r
-        \r
-        print str(x)\r
-        \r
-        will print\r
-        \r
-        &lt;root a="1"&gt;\r
-        &lt;data&gt;\r
-        &lt;node val="0" /&gt;\r
-        &lt;node val="1" /&gt;\r
-        &lt;node val="2" /&gt;\r
-        &lt;node val="3" /&gt;\r
-        &lt;node val="4" /&gt;\r
-        &lt;node val="5" /&gt;\r
-        &lt;node val="6" /&gt;\r
-        &lt;node val="7" /&gt;\r
-        &lt;node val="8" /&gt;\r
-        &lt;node val="9" /&gt;\r
-        &lt;/data&gt;\r
-        &lt;/root&gt;\r
-        \r
-        Mercurial repo:http://hg.assembla.com/MyPackages/\r
-        \r
-        Documentations\r
-        --------------\r
-        `XMLBuilder` is simple library build on top of `ElementTree.TreeBuilder` to\r
-        simplify xml files creation as much as possible. Althow it can produce\r
-        structured result with identated child tags. `XMLBuilder` use python `with`\r
-        statement to define xml tag levels and `&lt;&lt;` operator for simple cases -\r
-        text and tag without childs.\r
-        \r
-        First we need to create xmlbuilder\r
-        \r
-        from xmlbuilder import XMLBuilder\r
-        # params - encoding = 'utf8',\r
-        # builder = None, - ElementTree.TreeBuilder\r
-        # tab_level = None, - current tab l;evel - for formatted output only\r
-        # format = False, - create formatted output\r
-        # tab_step = " " * 4 - indentation step\r
-        xml = XMLBuilder()\r
-        \r
-        \r
-        Use `with` statement to make document structure\r
-        #create and open tag 'root_tag' with text 'text' and attributes\r
-        with xml.root_tag(text,attr1=val1,attr2=val2):\r
-        #create and open tag 'sub_tag'\r
-        with xml.sub_tag(text,attr3=val3):\r
-        #create tag which are not valid python identificator\r
-        with xml('one-more-sub-tag',attr7=val37):\r
-        xml &lt;&lt; "Some textual data"\r
-        #here tag 'one-more-sub-tag' are closed\r
-        #Tags without children can be created using `&lt;&lt;` operator\r
-        for val in range(15):\r
-        xml &lt;&lt; ('message',"python rocks!"[:i])\r
-        #create 15 child tag like &lt;message&gt; python r&lt;/message&gt;\r
-        #all tags closed\r
-        node = ~x # get etree.ElementTree object\r
-        xml_data = str(x)\r
-        unicode_xml_data = unicode(x)\r
-        \r
-Keywords: xml\r
-Platform: UNKNOWN\r
+Metadata-Version: 1.0
+Name: xmlbuilder
+Version: 0.9
+Summary: Pythonic way to create xml files
+Home-page: http://pypi.python.org/pypi/xmlbuilder
+Author: koder
+Author-email: koder_dot_mail@gmail_dot_com
+License: MIT
+Download-URL: http://pypi.python.org/pypi/xmlbuilder
+Description: Example of usage:
+        -----------------
+        
+        
+        from __future__ import with_statement
+        from xmlbuilder import XMLBuilder
+        x = XMLBuilder(format=True)
+        with x.root(a = 1):
+        with x.data:
+        [x &lt;&lt; ('node',{'val':i}) for i in range(10)]
+        
+        print str(x)
+        
+        will print
+        
+        &lt;root a="1"&gt;
+        &lt;data&gt;
+        &lt;node val="0" /&gt;
+        &lt;node val="1" /&gt;
+        &lt;node val="2" /&gt;
+        &lt;node val="3" /&gt;
+        &lt;node val="4" /&gt;
+        &lt;node val="5" /&gt;
+        &lt;node val="6" /&gt;
+        &lt;node val="7" /&gt;
+        &lt;node val="8" /&gt;
+        &lt;node val="9" /&gt;
+        &lt;/data&gt;
+        &lt;/root&gt;
+        
+        Mercurial repo:http://hg.assembla.com/MyPackages/
+        
+        Documentations
+        --------------
+        `XMLBuilder` is simple library build on top of `ElementTree.TreeBuilder` to
+        simplify xml files creation as much as possible. Althow it can produce
+        structured result with identated child tags. `XMLBuilder` use python `with`
+        statement to define xml tag levels and `&lt;&lt;` operator for simple cases -
+        text and tag without childs.
+        
+        First we need to create xmlbuilder
+        
+        from xmlbuilder import XMLBuilder
+        # params - encoding = 'utf8',
+        # builder = None, - ElementTree.TreeBuilder
+        # tab_level = None, - current tab l;evel - for formatted output only
+        # format = False, - create formatted output
+        # tab_step = " " * 4 - indentation step
+        xml = XMLBuilder()
+        
+        
+        Use `with` statement to make document structure
+        #create and open tag 'root_tag' with text 'text' and attributes
+        with xml.root_tag(text,attr1=val1,attr2=val2):
+        #create and open tag 'sub_tag'
+        with xml.sub_tag(text,attr3=val3):
+        #create tag which are not valid python identificator
+        with xml('one-more-sub-tag',attr7=val37):
+        xml &lt;&lt; "Some textual data"
+        #here tag 'one-more-sub-tag' are closed
+        #Tags without children can be created using `&lt;&lt;` operator
+        for val in range(15):
+        xml &lt;&lt; ('message',"python rocks!"[:i])
+        #create 15 child tag like &lt;message&gt; python r&lt;/message&gt;
+        #all tags closed
+        node = ~x # get etree.ElementTree object
+        xml_data = str(x)
+        unicode_xml_data = unicode(x)
+        
+Keywords: xml
+Platform: UNKNOWN
index 57272a8..107062c 100644 (file)
@@ -1,6 +1,8 @@
 LICENSE
 MANIFEST.in
+PKG-INFO
 README.txt
+setup.cfg
 setup.py
 xmlbuilder/__init__.py
 xmlbuilder.egg-info/PKG-INFO
@@ -8,4 +10,4 @@ xmlbuilder.egg-info/SOURCES.txt
 xmlbuilder.egg-info/dependency_links.txt
 xmlbuilder.egg-info/top_level.txt
 xmlbuilder/docs/long_descr.rst
-xmlbuilder/tests/__init__.py
\ No newline at end of file
+xmlbuilder/tests/__init__.py