Example #1
0
    def get_context_data(self, **kwargs):
        page = Page(self.request)
        page.add_js_files(["js/common.functions.js"])
        platform_query = Query().get('local:platform').filter_by(
            'disabled', '==', '0').select('platform', 'platform_longname',
                                          'gateway_type')
        #platform_query  = Query().get('local:platform').select('platform','platform_longname','gateway_type')
        page.enqueue_query(platform_query)

        page.expose_js_metadata()
        platformlist = QueryTable(
            page=page,
            title='List',
            domid='checkboxes',
            # this is the query at the core of the slice list
            query=platform_query,
            query_all=platform_query,
            checkboxes=False,
            init_key='platform',
            datatables_options={
                'iDisplayLength': 10,
                'bLengthChange': True,
                'bAutoWidth': True,
            },
        )

        context = super(PlatformsView, self).get_context_data(**kwargs)
        context['person'] = self.request.user
        context['platforms'] = platformlist.render(self.request)

        # XXX This is repeated in all pages
        # more general variables expected in the template
        context['title'] = 'Platforms connected to MySlice'
        # the menu items on the top
        context['topmenu_items'] = topmenu_items_live('Platforms', page)
        # so we can sho who is logged
        context['username'] = the_user(self.request)
        context['theme'] = self.theme
        context.update(page.prelude_env())

        context['layout_1_or_2'] = "layout-unfold2.html" if not context[
            'username'] else "layout-unfold1.html"

        return context
    def get_context_data(self, **kwargs):
        page = Page(self.request)
        page.add_js_files  ( [ "js/common.functions.js" ] )
        platform_query  = Query().get('local:platform').filter_by('disabled', '==', '0').select('platform','platform_longname','gateway_type')
        #platform_query  = Query().get('local:platform').select('platform','platform_longname','gateway_type')
        page.enqueue_query(platform_query)

        page.expose_js_metadata()
        platformlist = QueryTable(
            page  = page,
            title = 'List',
            domid = 'checkboxes',
            # this is the query at the core of the slice list
            query = platform_query,
            query_all = platform_query,
            checkboxes = False,
            init_key   = 'platform',
            datatables_options = { 
                'iDisplayLength': 10,
                'bLengthChange' : True,
                'bAutoWidth'    : True,
                },
        )

        context = super(PlatformsView, self).get_context_data(**kwargs)
        context['person']   = self.request.user
        context['platforms'] = platformlist.render(self.request)

        # XXX This is repeated in all pages
        # more general variables expected in the template
        context['title'] = 'Platforms connected to MySlice'
        # the menu items on the top
        context['topmenu_items'] = topmenu_items_live('Platforms', page)
        # so we can sho who is logged
        context['username'] = the_user(self.request)

        context.update(page.prelude_env())

        context['layout_1_or_2']="layout-unfold2.html" if not context['username'] else "layout-unfold1.html"

        return context
Example #3
0
    def get_context_data(self, **kwargs):
        page = Page(self.request)
        
        page.add_js_files  ( [ "js/common.functions.js" ] )

        for key, value in kwargs.iteritems():
            print "%s = %s" % (key, value)       
            if key == "urn":
                resource_urn=value
                
        resource_query  = Query().get('resource')\
            .filter_by('urn', '==', resource_urn)\
            .select('hostname','type','hrn','urn', 'latitude', 'longitude', 'country')
        page.enqueue_query(resource_query)

        page.expose_js_metadata()

        resourcelist = QueryTable(
            page  = page,
            title = 'List',
            domid = 'checkboxes',
            # this is the query at the core of the slice list
            query = resource_query,
            query_all = resource_query,
            checkboxes = False,
            datatables_options = {
            'iDisplayLength' : 25,
            'bLengthChange'  : True,
            },
        )
        resource_as_map = GoogleMap(
            page       = page,
            title      = 'Geographic view',
            domid      = 'resources-map',
            # tab's sons preferably turn this off
            togglable  = True,
            query      = resource_query,
            query_all  = resource_query,
            googlemap_api_key = ConfigEngine().googlemap_api_key(),
            checkboxes = False,
            # center on Paris
            #latitude   = 49.,
            #longitude  = 9,
            #zoom       = 4,
        )
#        resourcelist = SimpleList(
#            title = None,
#            page  = page,
#            key   = 'hrn',
#            query = resource_query,
#        )

        resource_stats = SliceStat(
            title = None,
            page  = page,
            stats = 'node',
            key   = 'hrn',
            query = resource_query
        )

        context = super(ResourceView, self).get_context_data(**kwargs)
        context['person']   = self.request.user
        context['resource'] = resourcelist.render(self.request)
        context['resource_as_map'] = resource_as_map.render(self.request)
        context['resource_stats'] = resource_stats.render(self.request)

        # XXX This is repeated in all pages
        # more general variables expected in the template
        context['title'] = 'Information about a resource'
        # the menu items on the top
        context['topmenu_items'] = topmenu_items_live(None, page)
        # so we can sho who is logged
        context['username'] = the_user(self.request)

        context.update(page.prelude_env())

        return context
Example #4
0
    def get_context_data(self, **kwargs):
        page = Page(self.request)
        page.add_js_files(["js/common.functions.js"])

        for key, value in kwargs.iteritems():
            logger.debug("{} = {}".format(key, value))
            if key == "platformname":
                platformname = value

        network_query  = Query().get('local:platform')\
            .filter_by('platform', '==', platformname)\
            .select('platform','platform_longname','gateway_type')
        page.enqueue_query(network_query)

        # ListResources of the platform
        metadata = page.get_metadata()
        resource_md = metadata.details_by_object('resource')
        resource_fields = [column['name'] for column in resource_md['column']]
        resources = platformname + ':resource'
        query_resource_all = Query.get(resources).select(resource_fields)
        page.enqueue_query(query_resource_all)
        query_resource_default_fields = Query.get(resources).select(
            'hrn', 'hostname', 'type', 'country')
        page.enqueue_query(query_resource_default_fields)

        page.expose_js_metadata()
        networklist = QueryTable(
            page=page,
            title='List',
            domid='checkboxes',
            # this is the query at the core of the slice list
            query=network_query,
            query_all=network_query,
            checkboxes=False,
            datatables_options={
                'iDisplayLength': 25,
                'bLengthChange': True,
            },
        )

        #        networklist = SimpleList(
        #            title = None,
        #            page  = page,
        #            key   = 'platform',
        #            query = network_query,
        #        )
        #
        # --------------------------------------------------------------------------
        # RESOURCES
        # for internal use in the querytable plugin;
        # needs to be a unique column present for each returned record
        main_query_init_key = 'hrn'

        # the resources part is made of a Tabs (Geographic, List),
        resources_as_gmap = GoogleMap(
            page=page,
            title='Geographic view',
            domid='resources-map',
            # tab's sons preferably turn this off
            togglable=False,
            query=query_resource_default_fields,
            query_all=query_resource_all,
            # this key is the one issued by google
            googlemap_api_key=ConfigEngine().googlemap_api_key(),
            # the key to use at init-time
            init_key=main_query_init_key,
            checkboxes=False,
            # center on Paris
            latitude=49.,
            longitude=9,
            zoom=4,
        )
        resources_as_3dmap = SensLabMap(
            page=page,
            title='3D Map',
            domid='senslabmap',
            query=query_resource_default_fields,
            query_all=query_resource_all,
        )
        resources_as_list = QueryTable(
            page=page,
            domid='resources-list',
            title='List view',
            # this is the query at the core of the slice list
            query=query_resource_default_fields,
            query_all=query_resource_all,
            init_key=main_query_init_key,
            checkboxes=False,
            datatables_options={
                'iDisplayLength': 25,
                'bLengthChange': True,
                'bAutoWidth': True,
            },
        )
        resources_sons = [
            resources_as_gmap,
            resources_as_3dmap,
            resources_as_list,
        ]
        resources_area = Tabs(
            page=page,
            domid="resources",
            togglable=True,
            title="Resources",
            outline_complete=True,
            sons=resources_sons,
            active_domid='resources-map',
            persistent_active=True,
        )

        context = super(PlatformView, self).get_context_data(**kwargs)
        context['person'] = self.request.user
        context['networks'] = networklist.render(self.request)
        context['resources'] = resources_area.render(self.request)

        # XXX This is repeated in all pages
        # more general variables expected in the template
        context['title'] = 'Platforms connected to MySlice'
        # the menu items on the top
        context['topmenu_items'] = topmenu_items_live('Platforms', page)
        # so we can sho who is logged
        context['username'] = the_user(self.request)
        context['theme'] = self.theme
        context.update(page.prelude_env())

        return context
Example #5
0
    def get_context_data(self, **kwargs):
        page = Page(self.request)
        page.add_js_files  ( [ "js/common.functions.js" ] )

        for key, value in kwargs.iteritems():
            print "%s = %s" % (key, value)       
            if key == "platformname":
                platformname=value
                
        network_query  = Query().get('local:platform')\
            .filter_by('platform', '==', platformname)\
            .select('platform','platform_longname','gateway_type')
        page.enqueue_query(network_query)

        # ListResources of the platform
        metadata = page.get_metadata()
        resource_md = metadata.details_by_object('resource')
        resource_fields = [column['name'] for column in resource_md['column']]
        resources = platformname + ':resource'
        query_resource_all = Query.get(resources).select(resource_fields)
        page.enqueue_query(query_resource_all)
        query_resource_default_fields = Query.get(resources).select('hrn','hostname', 'type','country')
        page.enqueue_query(query_resource_default_fields)

        page.expose_js_metadata()
        networklist = QueryTable(
            page  = page,
            title = 'List',
            domid = 'checkboxes',
            # this is the query at the core of the slice list
            query = network_query,
            query_all = network_query,
            checkboxes = False,
            datatables_options = {
            'iDisplayLength' : 25,
            'bLengthChange'  : True,
            },
        )

#        networklist = SimpleList(
#            title = None,
#            page  = page,
#            key   = 'platform',
#            query = network_query,
#        )
#
        # --------------------------------------------------------------------------
        # RESOURCES
        # for internal use in the querytable plugin;
        # needs to be a unique column present for each returned record
        main_query_init_key = 'hrn'

        # the resources part is made of a Tabs (Geographic, List), 
        resources_as_gmap = GoogleMap(
            page       = page,
            title      = 'Geographic view',
            domid      = 'resources-map',
            # tab's sons preferably turn this off
            togglable  = False,
            query      = query_resource_default_fields,
            query_all  = query_resource_all,
            # this key is the one issued by google
            googlemap_api_key = ConfigEngine().googlemap_api_key(),
            # the key to use at init-time
            init_key   = main_query_init_key,
            checkboxes = False,
            # center on Paris
            latitude   = 49.,
            longitude  = 9,
            zoom       = 4,
        )
        resources_as_3dmap = SensLabMap(
            page       = page,
            title      = '3D Map',
            domid      = 'senslabmap',
            query      = query_resource_default_fields,
            query_all  = query_resource_all,
        )
        resources_as_list = QueryTable(
            page       = page,
            domid      = 'resources-list',
            title      = 'List view',
            # this is the query at the core of the slice list
            query      = query_resource_default_fields,
            query_all  = query_resource_all,
            init_key     = main_query_init_key,
            checkboxes = False,
            datatables_options = {
                'iDisplayLength': 25,
                'bLengthChange' : True,
                'bAutoWidth'    : True,
                },
            )
        resources_sons = [
             resources_as_gmap,
             resources_as_3dmap,
             resources_as_list,
             ]
        resources_area = Tabs ( page=page,
                                domid="resources",
                                togglable=True,
                                title="Resources",
                                outline_complete=True,
                                sons= resources_sons,
                                active_domid = 'resources-map',
                                persistent_active=True,
                                )

        context = super(PlatformView, self).get_context_data(**kwargs)
        context['person']   = self.request.user
        context['networks'] = networklist.render(self.request)
        context['resources'] = resources_area.render(self.request)

        # XXX This is repeated in all pages
        # more general variables expected in the template
        context['title'] = 'Platforms connected to MySlice'
        # the menu items on the top
        context['topmenu_items'] = topmenu_items_live('Platforms', page)
        # so we can sho who is logged
        context['username'] = the_user(self.request)

        context.update(page.prelude_env())

        return context
    def get (self, request, slicename='ple.inria.f14'):

        page=Page(request)
        page.expose_js_metadata()
        metadata = page.get_metadata()
        resource_md = metadata.details_by_object('resource')
        resource_fields = [column['name'] for column in resource_md['column']]

        main_query = Query.get('slice').filter_by('slice_hrn', '=', slicename)
        main_query.select(
                'slice_hrn',
                'resource.hostname', 'resource.type', 
                'resource.network_hrn',
                'lease.urn',
                'user.user_hrn',
                #'application.measurement_point.counter'
        )
        # for internal use in the querytable plugin;
        # needs to be a unique column present for each returned record
        main_query_init_key = 'hostname'
    
        query_resource_all = Query.get('resource').select(resource_fields)
        
        aq = AnalyzedQuery(main_query, metadata=metadata)
        page.enqueue_query(main_query, analyzed_query=aq)
        page.enqueue_query(query_resource_all)

        sq_resource    = aq.subquery('resource')

        resources_as_list = QueryTable( 
            page       = page,
            domid      = 'resources-list',
            title      = 'List view',
            # this is the query at the core of the slice list
            query      = sq_resource,
            query_all  = query_resource_all,
            # safer to use 'hrn' as the internal unique key for this plugin
            init_key     = main_query_init_key,
            checkboxes = True,
            datatables_options = { 
                'iDisplayLength': 25,
                'bLengthChange' : True,
                'bAutoWidth'    : True,
                },
            )

        # variables that will get passed to the view-unfold1.html template
        template_env = {}
        
        # define 'unfold_main' to the template engine - the main contents
        template_env [ 'unfold_main' ] = resources_as_list.render(request)
    
        # more general variables expected in the template
        template_env [ 'title' ] = 'simple %(slicename)s'%locals()
        # the menu items on the top
        template_env [ 'topmenu_items' ] = topmenu_items_live('Slice', page) 
        # so we can sho who is logged
        template_env [ 'username' ] = the_user (request) 
    
        # the prelude object in page contains a summary of the requirements() for all plugins
        # define {js,css}_{files,chunks}
        prelude_env = page.prelude_env()
        template_env.update(prelude_env)
        result=render_to_response ('view-unfold1.html',template_env,
                                   context_instance=RequestContext(request))
        return result
Example #7
0
    def get(self, request, slicename):

        if request.GET.get('message'):
            msg = "Slice successfully updated"
        else:
            msg = None

        page = Page(request)
        metadata = page.get_metadata()
        page.expose_js_metadata()

        resource_md = metadata.details_by_object('resource')
        resource_fields = [column['name'] for column in resource_md['column']]

        user_md = metadata.details_by_object('user')
        user_fields = ['user_hrn'
                       ]  # [column['name'] for column in user_md['column']]

        query_resource_all = Query.get('resource').select(resource_fields)
        #page.enqueue_query(query_resource_all)

        # leases query
        #lease_md = metadata.details_by_object('lease')
        #lease_fields = [column['name'] for column in lease_md['column']]

        #query_lease_all = Query.get('lease').select(lease_fields)
        #page.enqueue_query(query_lease_all)

        slice_md = metadata.details_by_object('slice')
        slice_fields = [column['name'] for column in slice_md['column']]
        logger.debug("SLICE RES VIEW fields = {}".format(slice_fields))
        # TODO The query to run is embedded in the URL
        # Example: select slice_hrn, resource.urn, lease.resource, lease.start_time, lease.end_time from slice where slice_hrn == "ple.upmc.myslicedemo"
        main_query = Query.get('slice').filter_by('slice_hrn', '=', slicename)
        main_query.select(slice_fields)

        # Columns shown by default in Query_table plugin
        page.expose_js_var(
            "QUERYTABLE_MAP",
            "{'Resource name': 'hostname', 'Type': 'type', 'Facility': 'facility_name','Testbed': 'testbed_name', 'Available':'available'}"
        )

        # Columns checked by default in Columns_selector plugin
        query_default_fields = [
            'hostname', 'type', 'facility_name', 'testbed_name', 'available'
        ]

        QUERYTABLE_MAP = {
            'hostname': 'Resource name',
            'type': 'Type',
            'facility_name': 'Facility',
            'testbed_name': 'Testbed',
            'available': 'Available',
        }

        #        # SLICE
        #        'slice_hrn',
        #        # - The record key is needed otherwise the storage of records
        #        #   bugs !
        #        'slice_urn',
        #        # RESOURCES
        #        'resource',
        #        'lease',
        #        'resource.urn',
        #        'resource.hostname', 'resource.type',
        #        # - The facility_name and testbed_name are required for the
        #        #   testbeds plugin to properly work.
        #        'resource.facility_name',
        #        'resource.testbed_name',
        #        # LEASES
        #        'lease.resource',
        #        'lease.start_time',
        #        'lease.end_time',
        #        # - The lease_id is important for NITOS identify already existing
        #        #   leases
        #        'lease.lease_id',

        #        # FLOWSPACE
        #        #'flowspace',
        #        # VMS
        #        #'vms',

        #        #'user.user_hrn',
        #        #'application.measurement_point.counter'
        #)
        # for internal use in the querytable plugin;
        # needs to be a unique column present for each returned record
        main_query_init_key = 'urn'
        aq = AnalyzedQuery(main_query, metadata=metadata)
        page.enqueue_query(main_query, analyzed_query=aq)
        sq_resource = aq.subquery('resource')
        sq_lease = aq.subquery('lease')
        #sq_flowspace   = aq.subquery('flowspace')
        #sq_vms         = aq.subquery('vms')

        # --------------------------------------------------------------------------
        # ALL RESOURCES LIST
        # resources as a list using datatable plugin

        list_resources = QueryTable(
            page=page,
            domid='resources-list',
            title='List view',
            query=sq_resource,
            query_all=query_resource_all,
            mapping=QUERYTABLE_MAP,
            default_fields=query_default_fields,
            init_key="urn",
            checkboxes=True,
            datatables_options={
                'iDisplayLength': 25,
                'bLengthChange': True,
                'bAutoWidth': True,
            },
        )

        # --------------------------------------------------------------------------
        # RESERVED RESOURCES LIST
        # resources as a list using datatable plugin

        list_reserved_resources = SimpleList(
            title=None,
            page=page,
            key='urn',
            query=sq_resource,
        )

        list_reserved_leases = SimpleList(
            title=None,
            page=page,
            key='resource',
            query=sq_lease,
        )

        #        list_reserved_resources = QueryTable(
        #            page       = page,
        #            domid      = 'resources-reserved-list',
        #            title      = 'List view',
        #            query      = sq_resource,
        #            query_all  = sq_resource,
        #            init_key   = "urn",
        #            checkboxes = True,
        #            datatables_options = {
        #                'iDisplayLength': 25,
        #                'bLengthChange' : True,
        #                'bAutoWidth'    : True,
        #                },
        #        )

        # --------------------------------------------------------------------------
        # COLUMNS EDITOR
        # list of fields to be applied on the query
        # this will add/remove columns in QueryTable plugin

        filter_column_editor = ColumnsEditor(
            page=page,
            query=sq_resource,
            query_all=query_resource_all,
            default_fields=query_default_fields,
            title="Select Columns",
            domid='select-columns',
        )

        # --------------------------------------------------------------------------
        # RESOURCES MAP
        # the resources part is made of a Tabs (Geographic, List),

        map_resources = GoogleMap(
            page=page,
            title='Geographic view',
            domid='resources-map',
            # tab's sons preferably turn this off
            togglable=False,
            query=sq_resource,
            # this key is the one issued by google
            googlemap_api_key=ConfigEngine().googlemap_api_key(),
            # the key to use at init-time
            init_key=main_query_init_key,
            checkboxes=True,

            # To center around Europe : 53,9 / 3
            latitude=53.,
            longitude=9.,
            zoom=3,
        )

        # --------------------------------------------------------------------------
        # LEASES Nitos Scheduler
        # Display the leases reservation timeslots of the resources

        resources_as_scheduler2 = Scheduler2(
            page=page,
            domid='scheduler',
            title='Scheduler',
            # this is the query at the core of the slice list
            query=sq_resource,
            query_lease=sq_lease,
        )

        # --------------------------------------------------------------------------
        # LEASES Asap Scheduler
        # Select an end_time for all unconfigured resources
        # start_time is as soon as possible

        #resources_as_asap = AsapPlugin(
        #    page       = page,
        #    domid      = 'asap',
        #    title      = 'Asap',
        #    # this is the query at the core of the slice list
        #    query = sq_resource,
        #    query_lease = sq_lease,
        #)

        # --------------------------------------------------------------------------
        # QueryUpdater (Pending Operations)

        #         pending_resources = QueryUpdaterPlugin(
        #             page                = page,
        #             title               = 'Pending operations',
        #             query               = main_query,
        #             togglable           = False,
        #             # start turned off, it will open up itself when stuff comes in
        #             toggled             = False,
        #             domid               = 'pending',
        #             outline_complete    = True,
        #             username            = request.user,
        #         )

        # --------------------------------------------------------------------------
        # NETWORKS
        # testbeds as a list of filters

        network_md = metadata.details_by_object('network')
        network_fields = [column['name'] for column in network_md['column']]

        #query_networks = Query.get('network').select(network_fields)
        #page.enqueue_query(query_networks)

        filter_testbeds = TestbedsPlugin(
            page=page,
            domid='testbeds-filter',
            title='Filter by testbeds',
            query=sq_resource,
            #query_networks  = query_networks,
            #init_key        = "network_hrn",
            #checkboxes      = True,
            #datatables_options = {
            #    'iDisplayLength': 25,
            #    'bLengthChange' : True,
            #    'bAutoWidth'    : True,
            #    },
        )

        filter_status = FilterStatusPlugin(
            page=page,
            domid="filter-status",
            query=sq_resource,
            query_lease=sq_lease,
        )
        apply = ApplyPlugin(
            page=page,
            domid="apply",
            query=main_query,
            username=request.user,
        )

        # --------------------------------------------------------------------------
        # Ofelia OpenFlow Plugin
        # Bristol plugin

        # plugin which display a "gathering resources" message
        # waiting for all resources to be returned by manifold
        # univbriswelcome = Univbris(
        #     page  = page,
        #     title = 'univbris_welcome',
        #     domid = 'univbris_welcome',
        #     query = query_resource_all,
        # )

        # univbrisfoamlist = UnivbrisFoam(
        #     page  = page,
        #     title = 'univbris_foam_ports_selection',
        #     domid = 'univbris_foam_ports_selection',
        #     query = query_resource_all,
        #     query_all = query_resource_all,
        #     checkboxes = False,
        #     datatables_options = {
        #         'iDisplayLength': 10,
        #         'bLengthChange' : True,
        #         'bAutoWidth'    : True,
        #         },
        # )

        # #plugin which manages the different flowspaces that the user creates, and also sends flowspaces to manifold
        # univbrisfvlist = UnivbrisFv(
        #         page  = page,
        #         title = 'univbris_flowspace_selection',
        #         domid = 'univbris_flowspace_selection',
        #         query = sq_flowspace,
        #         query_all = query_resource_all,
        #         datatables_options = {
        #             'iDisplayLength': 5,
        #             'bLengthChange' : True,
        #             'bAutoWidth'    : True,
        #             },
        # )

        # #plugin which allows the definition of a single flowspace
        # univbrisfvform = UnivbrisFvf(
        #         page  = page,
        #         title = 'univbris_flowspace_form',
        #         domid = 'univbris_flowspace_form',
        #         query = query_resource_all,
        #         query_all = None,
        #         datatables_options = {
        #             'iDisplayLength': 3,
        #             'bLengthChange' : True,
        #             'bAutoWidth'    : True,
        #             },
        # )

        # #plugin which allows the definition the match criteria on a single OPTICAL flowspace
        # univbrisofvform = UnivbrisFvfo(
        #     page  = page,
        #     title = 'univbris_oflowspace_form',
        #     domid = 'univbris_oflowspace_form',
        #     query = None,
        #     query_all = None,
        #     datatables_options = {
        #         'iDisplayLength': 3,
        #         'bLengthChange' : True,
        #         'bAutoWidth'    : True,
        #         },
        # )

        # #plugin which display the gathered topology
        # univbristopology = UnivbrisTopo(
        #     page  = page,
        #     title = 'univbris_topology',
        #     domid = 'univbris_topology',
        #     query = query_resource_all,
        # )

        # # --------------------------------------------------------------------------
        # # Ofelia VTAM Plugin
        # # Bristol Plugin

        # #plugin which display a table where an experimenter will add VMs to according to his needs
        # # responsible to send the data to Manifold
        # univbrisvtamplugin = UnivbrisVtamPlugin(
        #     page  = page,
        #     title = 'univbris_vtam',
        #     domid = 'univbris_vtam',
        #     query = sq_vms,
        #     #query = sq_resource,
        # )

        # #plugin which display a form where an experimenter will specify
        # # in which testbed and which physical server to setup the VM
        # univbrisvtamform = UnivbrisVtamForm(
        #     page  = page,
        #     title = 'univbris_vtam_form',
        #     domid = 'univbris_vtam_form',
        #     query =  query_resource_all,
        #     query_all = None,
        #     datatables_options = {
        #         'iDisplayLength': 3,
        #         'bLengthChange' : True,
        #         'bAutoWidth'    : True,
        #         },
        # )

        # --------------------------------------------------------------------------
        # SLA View and accept dialog

        sla_dialog = SlaDialog(
            page=page,
            title='sla dialog',
            query=main_query,
            #togglable           = False,
            # start turned off, it will open up itself when stuff comes in
            #toggled             = True,
            domid='sla_dialog',
            #outline_complete    = True,
            username=request.user,
        )

        template_env = {}

        template_env['request'] = self.request

        template_env['list_resources'] = list_resources.render(self.request)
        template_env[
            'list_reserved_resources'] = list_reserved_resources.render(
                self.request)
        template_env['list_reserved_leases'] = list_reserved_leases.render(
            self.request)

        template_env['columns_editor'] = filter_column_editor.render(
            self.request)

        template_env['filter_testbeds'] = filter_testbeds.render(self.request)
        template_env['filter_status'] = filter_status.render(self.request)
        template_env['apply'] = apply.render(self.request)

        template_env['map_resources'] = map_resources.render(self.request)
        template_env['scheduler'] = resources_as_scheduler2.render(
            self.request)
        #template_env['asap'] = resources_as_asap.render(self.request)

        # Bristol plugin
        # template_env['welcome'] = univbriswelcome.render(self.request)
        # template_env['resources'] = univbrisfoamlist.render(self.request)
        # template_env['flowspaces'] = univbrisfvlist.render(self.request)
        # template_env['oflowspaces_form'] = univbrisofvform.render(self.request)
        # template_env['flowspaces_form'] = univbrisfvform.render(self.request)
        # template_env['topology'] = univbristopology.render(self.request)
        # template_env['vms_list'] = univbrisvtamplugin.render(self.request)
        # template_env['vm_form'] = univbrisvtamform.render(self.request)

        # template_env['pending_resources'] = pending_resources.render(self.request)
        template_env['sla_dialog'] = sla_dialog.render(self.request)
        template_env["theme"] = self.theme
        template_env["username"] = request.user
        template_env["slice"] = slicename
        template_env["section"] = "resources"
        template_env["msg"] = msg
        template_env.update(page.prelude_env())

        return render_to_response(self.template,
                                  template_env,
                                  context_instance=RequestContext(request))