Jump to: navigation, search

Difference between revisions of "TricircleHowToReadCode"

(Step 8: Create pod instances)
(Step 8: Create pod instances)
Line 13: Line 13:
 
   tricircle/tricircle/api/controllers/root.py
 
   tricircle/tricircle/api/controllers/root.py
  
<code>
+
  class RootController(object):
class RootController(object):
+
      ....
    ....
+
      @expose()
    @expose()
+
      def _lookup(self, version, *remainder):
    def _lookup(self, version, *remainder):
+
          if version == 'v1.0':
        if version == 'v1.0':
+
              return V1Controller(), remainder
            return V1Controller(), remainder
 
</code>
 
  
 
* In V1Controller, because the request is to create pod, so the request will be forwarded to PodsController: https://github.com/openstack/tricircle/blob/master/tricircle/api/controllers/root.py#L76
 
* In V1Controller, because the request is to create pod, so the request will be forwarded to PodsController: https://github.com/openstack/tricircle/blob/master/tricircle/api/controllers/root.py#L76
 
* The pod creation will be handled in the post function: https://github.com/openstack/tricircle/blob/master/tricircle/api/controllers/pod.py#L44~#L116
 
* The pod creation will be handled in the post function: https://github.com/openstack/tricircle/blob/master/tricircle/api/controllers/pod.py#L44~#L116

Revision as of 13:50, 19 February 2017

How to read the source code of Tricircle

Experience the single node Tricircle networking first

Follow the single node installation guide: https://docs.openstack.org/developer/tricircle/installation-guide.html#single-pod-installation-with-devstack

Learn the source code step by step

Step 1 ~ Step 7: no code of Tricircle will be involved

Step 8: Create pod instances

  • The restful API request will be routed to V1Controller from RootController for the version is 'v1.0':
 tricircle/tricircle/api/controllers/root.py
 class RootController(object):
      ....
     @expose()
     def _lookup(self, version, *remainder):
         if version == 'v1.0':
             return V1Controller(), remainder