zstackio / zstack-dashboard Goto Github PK
View Code? Open in Web Editor NEWWeb UI for project ZStack http://zstack.org
License: Apache License 2.0
Web UI for project ZStack http://zstack.org
License: Apache License 2.0
1.0-rc2 doesn't support the Chinese font, while 1.0-rc1 support.
the language only support the English on 1.0-rc2
中文UI在创建三层私有网络时,选择virtual router后,只有DHCP服务可选,Eip/DNS/SNAT等其他不可选,而英文版本可选。
Can not delete volume from Actions>delete when in volume details page,but can delete in page Volumes>Action>delete
点击新建备份存储,出现 “(必选)选择类型的备份存储” 的字段,应改为“(必选)选择备份存储的 类型”
Need to implement an UI framework to support multi language, like Chinese ...
click the sort button and then click the filter buttuon, the two pull down menus are overlaying.
and keep showing,even if click the other button in main menu.
it should not overlay, the pull down menu should closed after the mouse leave the sort button or filter in some while.
I would like suggest promote @tolbkin as zstack-dashboard maintainer.
@tolbkin works on zstack-dashboard since 2016, Feb 22. He has 11 patches and has been merged.
He will be working on general zstack-dashboard maintenance, new feature development and bug clean up.
How do you think? @zxwing @boogunote
The patch list from @tolbkni in :
973a318
b7f62a5
0db87b0
dfc0b0d
5c7b5ae
febf51f
8dc5cdd
8e5337a
7fe1239
a0a6be8
34c8d20
ZStack 1.2 support new storage type:
shared mount point
The API is:
APIAddSharedMountPointPrimaryStorageMsg
The implemation could refer the local storage: APIAddLocalPrimaryStorageMsg
UI opertions need more than twice clicking the button, then the new window shows.
ex. create the new instance button sometimes need three times click, then the create window shows up
This feature request is firstly raised in zstackio/zstack#5
Since it is an UI feature, so open it here:
on UI side,when want to attach volume from Instances,double click instance name,and click Volume Tab,and select Attach Volume from Actions Menu,there is no data volume listed in box.
In PortForwarding, EIP and Security Group adding page, the hints of setting port is incorrect. The valid port range should be 165535. The hints are 065535. So it is needed to be fixed.
U界面刷新导致原本的语言选项失效
例如,原本选择中文,刷新后变成英文
We can set a static IP address when creating a VM.
Actually we can change it by UpdateSystemTag API, or
set one to a VM who doesn't set static IP before by CreateSystemTag API.
Now we should enable the capabilities in zstack-dashboard.
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.
输入IP的检查机制如果输入“192.168.1”会提示not a valid IPv4 address,但是假如输入“192.168.2.13你好” 则不会提示了无效了
click the UI filter button in any key filed, if choose no keyword, then click ok, the UI shows "none:? object:null?"
Cannot specify rabittmq ip for dashboard starting using:
/etc/init.d/zstack-dashboard start --rabbitmq "zstack:[email protected]:55672"
It always reads from zstack.propertie.
the following fields is blank in instance info
CPU NUM:
CPU SPEED:
MEMORY SIZE::
HOST NAME
the available capacity for IP ADDRESS in dashboard is "63.03 K", not standard and unified with total capacity.
如题。
vm 处于unknown状态时,delete应加入强制删除
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.
duplicate zstackio/zstack#256
建议打开控制台页面标题能以云主机名称标示(不以noVNC标示),打开多个控制台时,这样便于定位云主机。
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.
以下部分没有翻译:
1.仪表盘页面:资源统计里面的子项;
2.子项里面:sort by 按钮及里面的排序依据;
3.全局配置里面:子项没有翻译。
We can create account from cli and login to UI with it. But we can not use none admin account to create vm in current UI. There are some permission limitation.
The account/User information is in http://zstackdoc.readthedocs.org/en/latest/userManual/identity.html
It needs to send %value%, rather than value directly.
after delete the instance offering , UI could not change the instance offering with stopped guest
点击添加云主机,显示的新界面的标题 却为 云盘信息
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:
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.
Can not take snapshot in page Volume>Action(no "Take Snapshot" option),but can operation in detail page:Volume/someVolume>Action>Take snapshot
In ZStack 1.2 (master) we will support a new storage type: shared mount point.
We should enable it in zstack-dashboard.
If the system has a few of instance offering (like > 6), the change instance offering action can only change the first 2 option,
The zstack-cli can successfully change the instance offering. So this should be a UI bug in java script.
跟踪了一下代码执行路径
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,虽然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
}
}
UI shows "image.details.DETAILS |translate"
after clicking the image info during the downloading the image
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.
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.
This issue is firstly reported in zstackio/zstack#5
SInce it is an UI bug, so report it here:
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.
zstck-dashboard:/ts/volume.ts: line 1464:
if (vms.length > 0) {
this.$scope.vmInstanceUuid = vms[0].uuid;
}
duplicate zstackio/zstack#255
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}}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.