openstack_二次开发“增量按钮添加”

        本片博文基于开源的openstack平台,在现有功能的基础上,进行二次开发,增加一些定制化的需求。下面的这个实例将为我们演示,如何新增一个“备份按钮”,以及在代码层级如何实现,步骤如下:

#设计流程图


#增加按钮之前


#增加按钮之后

#创建备份完毕之后


#实现代码:


(1)   前端web增加配置

vim /opt/horizon-2012.1/horizon/dashboards/nova/instances_and_volumes/instances/tables.py

class IncreaseLink(tables.LinkAction):

      name = "increase"                 #创建备份功能

      verbose_name = _("Increase")

      url ="horizon:nova:images_and_snapshots:snapshots:create"  #链接目录如下红色说明

      classes = ("ajax-modal","btn-camera")

      #def allowed(self, request,instance=None):

      #   retturn instance.status in ACTIVE_STATES

 

说明:

vim/opt/horizon-2012.1/horizon/dashboards/nova/images_and_snapshots/snapshots/url.py

#

from django.conf.urls.defaults importpatterns, url

from .views import CreateView

urlpatterns = patterns('',

   url(r'^(?P<instance_id>[^/]+)/create',

       CreateView.as_view(),

       name='create')

#------------------------------------------------------------------------------------#

class Meta:

        name = "instances"

        verbose_name = _("Instances")

        status_columns = ["status","task"]

        row_class = UpdateRow

        table_actions =(InstancesFilterAction,LaunchLink, TerminateInstance)

        row_actions = (EditInstance,ConsoleLink, LogLink, SnapshotLink,IncreaseLink,

                       TogglePause,ToggleSuspend, RebootInstance,

                       TerminateInstance)

(2)   关联novaclient 命令行调用

通过web 按钮提交备份增量参数,把参数传递给novaclient 客户端命令行,使命令行调用备份的具体的执行过程。



      以上流程图及代码需结合具体的软件代码分析,更容易理解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值