[Openstack] register a new panel in overrides.py
Can someone give a pointer to how one goes about adding a new panel to an existing panel using overrides.py ? I know my panel is working because if I hardcode it into an existing dashboard.py file, it is found and displayed. I'd prefer to put it in overrides.py instead and am wondering how that would be coded. thanks, Wyllys ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
Re: [Openstack] register a new panel in overrides.py
There's a couple of changes that you need to make... First, edit the overrides.py file: (e.g., if we wanted to add the panel to the admin dashboard so this uses the admin dashboard slug: 'admin') import horizon from path_to_module.panel import YourNewPanelClass admin_dashboard = horizon.get_dashboard(admin) admin_dashboard.register(YourNewPanelClass) Next, make sure your overrides.py file is being called in your settings.py HORIZON_CONFIG = { dashboards = ('project', 'admin','settings'), ..., 'customization_module': 'your_base_module.overrides' } -Dave -Original Message- From: openstack-bounces+david.lyle=hp@lists.launchpad.net [mailto:openstack-bounces+david.lyle=hp@lists.launchpad.net] On Behalf Of Wyllys Ingersoll Sent: Wednesday, March 20, 2013 9:50 AM To: openstack@lists.launchpad.net Subject: [Openstack] register a new panel in overrides.py Can someone give a pointer to how one goes about adding a new panel to an existing panel using overrides.py ? I know my panel is working because if I hardcode it into an existing dashboard.py file, it is found and displayed. I'd prefer to put it in overrides.py instead and am wondering how that would be coded. thanks, Wyllys ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
Re: [Openstack] register a new panel in overrides.py
Thats not working for me. My module is installed in /usr/lib/python2.7/dist-packages/horizon/dashboards/settings as 'ec2list', it is in the python path so thats not the issue. overrides.py looks like this: import horizon import logging settings= horizon.get_dashboard('settings') LOG = logging.getLogger(__name__) import ec2list try: settings.register(ec2list) except Exception as exc: LOG.debug(Error registering ec2list panel: %s % exc) - I've also tried using ec2list.__class__, but then I get the following error: Error registering ec2list panel: Only Panel classes or subclasses may be registered. However, my ec2list Panel is a valid panel, as is evident by the fact that when I put it directly into the settings/dashboard.py file list of panels, it works just fine. Here is the panel.py file: -- from django.utils.translation import ugettext_lazy as _ import horizon from horizon.dashboards.settings import dashboard class EC2ListPanel(horizon.Panel): name = _(EC2 List Credentials) slug = 'ec2list' dashboard.Settings.register(EC2ListPanel) - On Mar 20, 2013, at 12:34 PM, Lyle, David (Cloud Services) david.l...@hp.com wrote: There's a couple of changes that you need to make... First, edit the overrides.py file: (e.g., if we wanted to add the panel to the admin dashboard so this uses the admin dashboard slug: 'admin') import horizon from path_to_module.panel import YourNewPanelClass admin_dashboard = horizon.get_dashboard(admin) admin_dashboard.register(YourNewPanelClass) Next, make sure your overrides.py file is being called in your settings.py HORIZON_CONFIG = { dashboards = ('project', 'admin','settings'), ..., 'customization_module': 'your_base_module.overrides' } -Dave -Original Message- From: openstack-bounces+david.lyle=hp@lists.launchpad.net [mailto:openstack-bounces+david.lyle=hp@lists.launchpad.net] On Behalf Of Wyllys Ingersoll Sent: Wednesday, March 20, 2013 9:50 AM To: openstack@lists.launchpad.net Subject: [Openstack] register a new panel in overrides.py Can someone give a pointer to how one goes about adding a new panel to an existing panel using overrides.py ? I know my panel is working because if I hardcode it into an existing dashboard.py file, it is found and displayed. I'd prefer to put it in overrides.py instead and am wondering how that would be coded. thanks, Wyllys ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
Re: [Openstack] register a new panel in overrides.py
But you should be registering the Panel like settings.register(EC2ListPanel) or settings.register(ec2list.EC2ListPanel) not ec2list -Dave -Original Message- From: Wyllys Ingersoll [mailto:wyllys.ingers...@evault.com] Sent: Wednesday, March 20, 2013 11:04 AM To: Lyle, David (Cloud Services) Cc: openstack@lists.launchpad.net Subject: Re: register a new panel in overrides.py Thats not working for me. My module is installed in /usr/lib/python2.7/dist-packages/horizon/dashboards/settings as 'ec2list', it is in the python path so thats not the issue. overrides.py looks like this: import horizon import logging settings= horizon.get_dashboard('settings') LOG = logging.getLogger(__name__) import ec2list try: settings.register(ec2list) except Exception as exc: LOG.debug(Error registering ec2list panel: %s % exc) - I've also tried using ec2list.__class__, but then I get the following error: Error registering ec2list panel: Only Panel classes or subclasses may be registered. However, my ec2list Panel is a valid panel, as is evident by the fact that when I put it directly into the settings/dashboard.py file list of panels, it works just fine. Here is the panel.py file: -- from django.utils.translation import ugettext_lazy as _ import horizon from horizon.dashboards.settings import dashboard class EC2ListPanel(horizon.Panel): name = _(EC2 List Credentials) slug = 'ec2list' dashboard.Settings.register(EC2ListPanel) - On Mar 20, 2013, at 12:34 PM, Lyle, David (Cloud Services) david.l...@hp.com wrote: There's a couple of changes that you need to make... First, edit the overrides.py file: (e.g., if we wanted to add the panel to the admin dashboard so this uses the admin dashboard slug: 'admin') import horizon from path_to_module.panel import YourNewPanelClass admin_dashboard = horizon.get_dashboard(admin) admin_dashboard.register(YourNewPanelClass) Next, make sure your overrides.py file is being called in your settings.py HORIZON_CONFIG = { dashboards = ('project', 'admin','settings'), ..., 'customization_module': 'your_base_module.overrides' } -Dave -Original Message- From: openstack-bounces+david.lyle=hp@lists.launchpad.net [mailto:openstack-bounces+david.lyle=hp@lists.launchpad.net] On Behalf Of Wyllys Ingersoll Sent: Wednesday, March 20, 2013 9:50 AM To: openstack@lists.launchpad.net Subject: [Openstack] register a new panel in overrides.py Can someone give a pointer to how one goes about adding a new panel to an existing panel using overrides.py ? I know my panel is working because if I hardcode it into an existing dashboard.py file, it is found and displayed. I'd prefer to put it in overrides.py instead and am wondering how that would be coded. thanks, Wyllys ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
Re: [Openstack] register a new panel in overrides.py
Neither of those works. When I use settings.register(ec2list.EC2ListPanel) I get this error: Error registering panel: 'module' object has no attribute 'EC2ListPanel' If I just use: settings.register(EC2ListPanel), I get the same sort of error: Error registering panel: name 'EC2ListPanel' is not defined -Wyllys On Mar 20, 2013, at 1:10 PM, Lyle, David (Cloud Services) david.l...@hp.com wrote: But you should be registering the Panel like settings.register(EC2ListPanel) or settings.register(ec2list.EC2ListPanel) not ec2list -Dave -Original Message- From: Wyllys Ingersoll [mailto:wyllys.ingers...@evault.com] Sent: Wednesday, March 20, 2013 11:04 AM To: Lyle, David (Cloud Services) Cc: openstack@lists.launchpad.net Subject: Re: register a new panel in overrides.py Thats not working for me. My module is installed in /usr/lib/python2.7/dist-packages/horizon/dashboards/settings as 'ec2list', it is in the python path so thats not the issue. overrides.py looks like this: import horizon import logging settings= horizon.get_dashboard('settings') LOG = logging.getLogger(__name__) import ec2list try: settings.register(ec2list) except Exception as exc: LOG.debug(Error registering ec2list panel: %s % exc) - I've also tried using ec2list.__class__, but then I get the following error: Error registering ec2list panel: Only Panel classes or subclasses may be registered. However, my ec2list Panel is a valid panel, as is evident by the fact that when I put it directly into the settings/dashboard.py file list of panels, it works just fine. Here is the panel.py file: -- from django.utils.translation import ugettext_lazy as _ import horizon from horizon.dashboards.settings import dashboard class EC2ListPanel(horizon.Panel): name = _(EC2 List Credentials) slug = 'ec2list' dashboard.Settings.register(EC2ListPanel) - On Mar 20, 2013, at 12:34 PM, Lyle, David (Cloud Services) david.l...@hp.com wrote: There's a couple of changes that you need to make... First, edit the overrides.py file: (e.g., if we wanted to add the panel to the admin dashboard so this uses the admin dashboard slug: 'admin') import horizon from path_to_module.panel import YourNewPanelClass admin_dashboard = horizon.get_dashboard(admin) admin_dashboard.register(YourNewPanelClass) Next, make sure your overrides.py file is being called in your settings.py HORIZON_CONFIG = { dashboards = ('project', 'admin','settings'), ..., 'customization_module': 'your_base_module.overrides' } -Dave -Original Message- From: openstack-bounces+david.lyle=hp@lists.launchpad.net [mailto:openstack-bounces+david.lyle=hp@lists.launchpad.net] On Behalf Of Wyllys Ingersoll Sent: Wednesday, March 20, 2013 9:50 AM To: openstack@lists.launchpad.net Subject: [Openstack] register a new panel in overrides.py Can someone give a pointer to how one goes about adding a new panel to an existing panel using overrides.py ? I know my panel is working because if I hardcode it into an existing dashboard.py file, it is found and displayed. I'd prefer to put it in overrides.py instead and am wondering how that would be coded. thanks, Wyllys ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
Re: [Openstack] register a new panel in overrides.py
OK, I figured out... The import statement needs to look like this: from ec2list.panel import EC2ListPanel I was just using from ec2list import EC2ListPanel which was insufficient since it has an empty __init__.py adding the .panel (which you suggested in your original email, but I didn't quite grok it the first time) fixed it. The register statement in overrides.py looks like: try: settings.register(EC2ListPanel) except Exception as exc: LOG.debug(Error registering panel: %s % exc) Now it's working. Thanks for the help. -Wyllys On Mar 20, 2013, at 1:24 PM, Wyllys Ingersoll wyllys.ingers...@evault.com wrote: Neither of those works. When I use settings.register(ec2list.EC2ListPanel) I get this error: Error registering panel: 'module' object has no attribute 'EC2ListPanel' If I just use: settings.register(EC2ListPanel), I get the same sort of error: Error registering panel: name 'EC2ListPanel' is not defined -Wyllys On Mar 20, 2013, at 1:10 PM, Lyle, David (Cloud Services) david.l...@hp.com wrote: But you should be registering the Panel like settings.register(EC2ListPanel) or settings.register(ec2list.EC2ListPanel) not ec2list -Dave -Original Message- From: Wyllys Ingersoll [mailto:wyllys.ingers...@evault.com] Sent: Wednesday, March 20, 2013 11:04 AM To: Lyle, David (Cloud Services) Cc: openstack@lists.launchpad.net Subject: Re: register a new panel in overrides.py Thats not working for me. My module is installed in /usr/lib/python2.7/dist-packages/horizon/dashboards/settings as 'ec2list', it is in the python path so thats not the issue. overrides.py looks like this: import horizon import logging settings= horizon.get_dashboard('settings') LOG = logging.getLogger(__name__) import ec2list try: settings.register(ec2list) except Exception as exc: LOG.debug(Error registering ec2list panel: %s % exc) - I've also tried using ec2list.__class__, but then I get the following error: Error registering ec2list panel: Only Panel classes or subclasses may be registered. However, my ec2list Panel is a valid panel, as is evident by the fact that when I put it directly into the settings/dashboard.py file list of panels, it works just fine. Here is the panel.py file: -- from django.utils.translation import ugettext_lazy as _ import horizon from horizon.dashboards.settings import dashboard class EC2ListPanel(horizon.Panel): name = _(EC2 List Credentials) slug = 'ec2list' dashboard.Settings.register(EC2ListPanel) - On Mar 20, 2013, at 12:34 PM, Lyle, David (Cloud Services) david.l...@hp.com wrote: There's a couple of changes that you need to make... First, edit the overrides.py file: (e.g., if we wanted to add the panel to the admin dashboard so this uses the admin dashboard slug: 'admin') import horizon from path_to_module.panel import YourNewPanelClass admin_dashboard = horizon.get_dashboard(admin) admin_dashboard.register(YourNewPanelClass) Next, make sure your overrides.py file is being called in your settings.py HORIZON_CONFIG = { dashboards = ('project', 'admin','settings'), ..., 'customization_module': 'your_base_module.overrides' } -Dave -Original Message- From: openstack-bounces+david.lyle=hp@lists.launchpad.net [mailto:openstack-bounces+david.lyle=hp@lists.launchpad.net] On Behalf Of Wyllys Ingersoll Sent: Wednesday, March 20, 2013 9:50 AM To: openstack@lists.launchpad.net Subject: [Openstack] register a new panel in overrides.py Can someone give a pointer to how one goes about adding a new panel to an existing panel using overrides.py ? I know my panel is working because if I hardcode it into an existing dashboard.py file, it is found and displayed. I'd prefer to put it in overrides.py instead and am wondering how that would be coded. thanks, Wyllys ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp