Coder Social home page Coder Social logo

zstackio / zstack-dashboard Goto Github PK

View Code? Open in Web Editor NEW
42.0 42.0 57.0 3.84 MB

Web UI for project ZStack http://zstack.org

License: Apache License 2.0

Shell 0.27% Python 2.73% TypeScript 36.94% CSS 5.09% JavaScript 43.19% HTML 11.70% Makefile 0.01% C 0.08%

zstack-dashboard's People

Contributors

boogunote avatar lstfyt avatar newbiet avatar qiraining avatar quarkonics avatar seanlong avatar seasonkwok avatar tolbkni avatar youyk avatar zhangzz2 avatar zstackorg avatar zxwing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zstack-dashboard's Issues

i18n supporting

Need to implement an UI framework to support multi language, like Chinese ...

Add new storage shared mount point support

ZStack 1.2 support new storage type:
shared mount point

The API is:
APIAddSharedMountPointPrimaryStorageMsg

The implemation could refer the local storage: APIAddLocalPrimaryStorageMsg

No 'Take Snapshot' Action in Volume main page

Description

In Volume main page, user could do an action when select a volume (without go into the detailed volume page). But 'Take Snapshot' action is missed in action list. We need to add it back.

Support ZStack account identity system

Since ZStack 0.9, account and identity system is support. We can create account, user, user group, and set user's permission through zstack-cli.

But zstack-dashborad doesn't support normal account and user login and operations. We should support them in zstack-dashboard.

Allow change resource name, description etc.

Since ZStack 0.7, ZStack supports a serial of Update*API, By using these API, we can update resource's name, description, password and some other important information.

We can do these operations through zstack-cli.

Now it is time to consider the same function in zstack-dashboard.

Report no Image added, when trying to create VR offering

This bug sometimes will occur. After add VR image from UI, when trying to create a VR offering, the UI might block creating step with msg like "No Image Has been Added":

image

There might be some error in UI code to judge if there is image.

UI 中文界面部分没有翻译

以下部分没有翻译:
1.仪表盘页面:资源统计里面的子项;
2.子项里面:sort by 按钮及里面的排序依据;
3.全局配置里面:子项没有翻译。

Ask user to input a long sentence when delete sensitive resource

In current ZStack, when delete sensitive resource, it will pop up a confirmation window to ask user click Confirm or type "ok". This is a little bit weak and same with different resource deleting. For example:

image

We could enhance it, by replace typing "ok" to a real meaningful sentence, this will help to reduce terrible mis-operation possibility. The sentence should be related with resource. For example,

When delete Primary Storage, the sentence could be: "delete primary storage". If User didn't type the right sentence, we won't allow user to click "Delete" button. And we'd better to integrate user's typing into deleteAPI as a general description to archive.

noVNC 打开中文名称或者带空格的名称的虚拟机失败

跟踪了一下代码执行路径

LOCAL_IP: new handler Process
LOCAL_IP - - [27/Mar/2016 15:03:52] "GET /http://ZSTACK_IP:5000/static/templates/console/vnc_auto.html?host=ZSTACK_IP&port=39190&token=5e64d1f323784cbb94892d%2017d1b5920f HTTP/1.1" 101 -
LOCAL_IP - - [27/Mar/2016 15:03:52] LOCAL_IP: Plain non-SSL (ws://) WebSocket connection
LOCAL_IP - - [27/Mar/2016 15:03:52] LOCAL_IP: Version hybi-13, base64: 'False'
handler exception: not enough arguments for format string
exception
Traceback (most recent call last):
  File "websockify/websocket.py", line 880, in top_new_client
    client = self.do_handshake(startsock, address)
  File "websockify/websocket.py", line 815, in do_handshake
    self.RequestHandlerClass(retsock, address, self)
  File "websockify/websocket.py", line 112, in __init__
    SimpleHTTPRequestHandler.__init__(self, req, addr, server)
  File "/usr/lib64/python2.7/SocketServer.py", line 649, in __init__
    self.handle()
  File "websockify/websocket.py", line 542, in handle
    SimpleHTTPRequestHandler.handle(self)
  File "/usr/lib64/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/usr/lib64/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
    method()
  File "websockify/websocket.py", line 508, in do_GET
    if not self.handle_websocket():
  File "websockify/websocket.py", line 481, in handle_websocket
    self.log_message("%s: Path: '%s'" % (client_addr, self.path))
  File "/usr/lib64/python2.7/BaseHTTPServer.py", line 458, in log_message
    format%args))
TypeError: not enough arguments for format string
Reaing zombies, active child count is 0
Ignoring interrupted syscall

websockify 判断请求路径不是 / 时,会调用 log_message() 方法,而请求路径带中文或者空格是,整个路径字符串是这样的 /http://ZSTACK_IP:5000/static/templates/console/vnc_auto.html?host=10.165.8.223&port=39190&token=5e64d1f323784cbb94892d17d1b5920f&title=%E4%B8%AD%E6%96%87%E5%90%8D 或者这样 /http://ZSTACK_IP:5000/static/templates/console/vnc_auto.html?host=ZSTACK_IP&port=39190&token=5e64d1f323784cbb94892d%2017d1b5920f,注意第二个例子没有 title 参数,依然会出现该问题,是因为 log_message() 在格式化字符串时将 % 开头的当作了占位符。

如果创建一个不存在的primary storage,虽然报错,但是在UI上显示Enabled

如果创建一个不存在的primary storage,虽然API报错,但是在UI上显示Enabled,容量为空。
只是cluster上显示为空。
期望结果:API报错,primary storage创建不成功,UI不显示,

{
"org.zstack.header.storage.primary.APIAttachPrimaryStorageToClusterEvent": {
"success": false,
"apiId": "ed574bfb60be4beb9314654d0016a4b1",
"headers": {
"schema": {}
},
"error": {
"code": "PS.1001",
"cause": {
"code": "SYS.1006",
"description": "An operation failed",
"details": "failed to execute shell command: mount 192.168.0.212:/usr/local/zstack/nfs_root /opt/zstack/nfsprimarystorage/prim-67e94e2c0e1748c4984f78d7810b79ef\nreturn code: 32\nstdout: \nstderr: mount.nfs: Connection timed out\n"
},
"description": "Unable to attach a primary storage to cluster",
"details": "failed to execute shell command: mount 192.168.0.212:/usr/local/zstack/nfs_root /opt/zstack/nfsprimarystorage/prim-67e94e2c0e1748c4984f78d7810b79ef\nreturn code: 32\nstdout: \nstderr: mount.nfs: Connection timed out\n"
},
"id": "3df9a32d6574465c8bb532cb2612089c",
"creatingTime": 1454074822674
}
}
image

Batch operation support

Like create 100 VMs with same configuration. So don't need to click 100 times VM creation button.
Need support to destroy VM in batch mode.

Support resource patch operations

In current zstack-dashboard, we can only do resource operation one by one. Like create 1 VM, destroy 1 VM.

Sometimes we would like to create 10 VMs with same configurations, or shutdown 10 selected VMs.

Volume can not be attached to other VM rather than 1st one

This issue is firstly reported in zstackio/zstack#5

SInce it is an UI bug, so report it here:

Description:

When detach a data volume from instance1 and want to attach to instance2,it does not work when operate on UI side but works on zstack-cli;When operates on UI side,it always attach to instance1.

Possible Culprit code:

zstck-dashboard:/ts/volume.ts: line 1464:

            if (vms.length > 0) {
                this.$scope.vmInstanceUuid = vms[0].uuid;
            }

creating the Amazon EC2 EIP vm, in the first time creation was fail, but second time passed

creating the Amazon EC2 EIP vm, in the first time creation was fail, but second time passed.
UI log as following:

{"org.zstack.header.vm.APICreateVmInstanceMsg":{"name":"vm-5u98","description":null,"instanceOfferingUuid":"7192c1de6e3945dfbdf6ed693d8f9b07","imageUuid":"cc65d5cfbcf042ca97abcb93f08b9728","l3NetworkUuids":["4fc3ac24dda846968588638cd6ccaed8"],"rootDiskOfferingUuid":null,"dataDiskOfferingUuids":[],"zoneUuid":"0e2d2e5e39df4b23ab3354e1943b557f","clusterUuid":"39c65a4e4f974451bdfc0ef3e97cbb5c","hostUuid":"c78daf36bf5c41b59dedb68499ee4421","resourceUuid":"3d1a985c0510438786d3b2a0b94608e8","defaultL3NetworkUuid":"4fc3ac24dda846968588638cd6ccaed8","systemTags":[],"session":{"uuid":"3414ce8cef704da883a6d730350b7530"}}} {"org.zstack.header.vm.APICreateVmInstanceEvent":{"success":false,"apiId":"b4775f46452d45d8bd521a3a103270a1","headers":{"schema":{}},"error":{"code":"SYS.1006","cause":{"code":"HOST.1005","description":"Failed to start vm on hypervisor","details":"failed to start vm[uuid:d414d0292f14453a972428a67355ccc6 name:virtualRouter.l3.4fc3ac24dda846968588638cd6ccaed8] on kvm host[uuid:c78daf36bf5c41b59dedb68499ee4421, ip:192.168.200.199], because unable to start vm[uuid:d414d0292f14453a972428a67355ccc6, name:virtualRouter.l3.4fc3ac24dda846968588638cd6ccaed8], libvirt error: Unable to create tap device vnic2.0: Device or resource busy"},"description":"An operation failed","details":"failed to start vm[uuid:d414d0292f14453a972428a67355ccc6 name:virtualRouter.l3.4fc3ac24dda846968588638cd6ccaed8] on kvm host[uuid:c78daf36bf5c41b59dedb68499ee4421, ip:192.168.200.199], because unable to start vm[uuid:d414d0292f14453a972428a67355ccc6, name:virtualRouter.l3.4fc3ac24dda846968588638cd6ccaed8], libvirt error: Unable to create tap device vnic2.0: Device or resource busy"},"id":"ec61edbe5d7b44d9bbf6ceaaa9d36c1a","creatingTime":1453646052256}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.