Giter Site home page Giter Site logo

cloud's Introduction

Required Packages

Package Version
python-cherrypy 3.2.2
python-ldap 2.3.10
python-jinja2 2.2.1
python-websockify 0.5.1
python-keystoneclient 2.3.2
python-novaclient 3.3.1
numpy 1.4.1
words 3.0

Launching

To launch the webfrontend without Apache, create config/global.conf and a badwords file using the guide below then run the following.

python server.py

And then navigate to:

http://hostname:81/

When running the webfrontend without Apache, you might have to manually launch websockify.

/usr/bin/websockify -v PORT --cert=CERT --key=KEY --target-config=TOKENDIR

Configuration

Copy config/default.conf to config/global.conf and change unset values, or any you wish, using the guide below:

[global]

# Auth
auth.ldap_address = The URL of an LDAP server to convert FedID into real name (optional)
auth.ldap_basedn = The basedn to lookup in LDAP (optional)
auth.session_expire_secs = Number of seconds to wait to expire a session

# CherryPy Server
server.socket_host = Network interface CherryPy will listen to
server.socket_port = TCP port CherryPy will listen to

# Cherrypy Tools
tools.caching.on = Set False to disable CherryPy caching
tools.isAuthorised.on = Set False to log out users without session
tools.jinja.on = Set True to enable CherryPy Jinja helper
tools.sessions.on = Set True to enable session storing
tools.sessions.storage_type = CherryPy class to use for session storing ('ram', 'file', 'postgresql' or 'memcached')
tools.sessions.storage_path = Path to sessions file directory
tools.sessions.timeout =  Number of minutes to timeout sessions

# Logs
log.access_file = Path to access log
log.error_file = Path to error log

# VM names
goodwords = Path to file containing goodwords for random name generator
badwords = Path to user-created files containing banned words for VM names 

# Websockify
wshostname = The hostname where you are running websockify(for noVNC)
wsport = The port that websockify is running on
#wscert = The location of the SSL cert
#wskey = The location of the SSL key
wstokendir = A directory to store noVNC tokens

# Wsgi
wsgi_enabled = Set True if you want to launch this application behind something like Apache

# Platform
cloudPlatform = Set to 'openstack' or 'opennebula'

# OpenNebula
headnode = The URL of the OpenNebula XMLRPC API (recommended to use HTTPS)
unlimited-cpu = Default CPU quota value for user with unlimited quota
unlimited-mem = Default RAM quota value for user with unlimited quota
unlimited-sys = Default Disk quota value for user with unlimited quota
unlimited-vm = Default VMs quota value for user with unlimited quota

# OpenStack
keystone = URL for keystone authentication
novaVersion = Version of nova used
openstack_host = Hostname of openstack
openstack_default_domain = Domain for user logins
vmNetworkLabel = Network label to assign to VMs
securityGroupName = Security group to assign to created VMs
flavorPrefix = Prefix to available flavor names
availabilityZoneName = Availabilty zone to assign to VMs
aqProfiles = URL storing aquilon profiles
countLimit = Maximum number of VMs created in OpenStack at once (If quota is unlimited)

# Misc
response.headers.server = Default response headers
email = The helpdesk/support email address that appears throughout the website


Use of the OpenStack logo is subject to a Community Use Agreement.

cloud's People

Contributors

apdibbo avatar frazzleuk avatar gooball avatar jhaydock-pro avatar jrha avatar mrichards99 avatar tofu-rocketry avatar

Stargazers

 avatar  avatar  avatar

Watchers

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

cloud's Issues

Filtering of allowed characters in name field is too restrictive

Specifically it removes dots from names, so something like:

Test version 14.6

gets mangled into

Test version 146

Or:

host.example.org

into

hostexampleorg

The underlying platform supports dotted names so I currently use the CLI to rename VMs to work around this, it would nicer if I didn't have to.

IE Compatibility

The webfrontend needs to be tested for compatibility with IE. In the past there have been issues and it is not clear that these have been resolved.

Restructuring of menus

As things stand, there are two menus; The main one and the side one.

Currently the main menu has only one link ('Machines') that links to the overview page of your running VMs and the side menu has everything else.

I would argue that the main menu should have something along the lines of:

  • Home - I know the logo links but not everyone clicks logos.
  • What we offer There is already a bit of this around on the 'Infrastructure' and 'Welcome' slides, but a page that goes into more detail would be good.
  • Terms of Service sort of as per #1 but it might as well be global.
  • FAQs Currently, you have to login to see them - might as well make them visible from the start.
  • My Machines Essentially the current 'Machines' tab - but does it need to be visible to people who are not logged in?

Any thoughts?

JS failure when list of templates is empty

If the list of templates available to the user is empty, then when they click create machine they get an error (or it fails silently in some cases). As we manage who has access to resources by not exposing templates by default, this is an issue. Ideally when the user has no templates available, they should not have a create VM button and instead have a message telling them to contact the support email address.

Move FAQs

Move the FAQ button to the other side of the page, This does need to be behind the login barrier

Helpdesk ticket button for VMs

We could have a button next to VMs to created a helpdesk ticket. This would ensure the vm hostname is in the subject.

Pagination should be reset when changing tabs

I have 5 of my own VMs and 11 that I can see under "All VMs".

If I switch to "All VMs" and go to page 2, then switch back to "My VMs" I am left on a non-existent page 2 "Showing 11 to 5 of 5 entries".

Show who created a VM

When sharing VMs within teams it'd be nice to show who initially created a machine in the web portal.

The is especially useful as currently only the creator of a machine can delete it.

Ugly grey bar doesn't appear on FAQ page

Not saying that this is an issue really - why do we have it on any of the pages? All it has is a copyright statement and on a wide-screen monitor it takes a load of screen space.

'Copy Hostname' button

I'm lazy and don't like typing too much out so I try to copy the hostname from my machines list. The problem is, as the page is constantly updating it makes it really difficult to be quick enough to select and copy before the page has been reset. A nice little 'Copy Hostname' button would be useful.

Have a custom config file in addition to the default

It's super annoying having to copy the global config file every time you do a pull of the repository and then put it back in after.

A much better solution would be to have a default.conf and a custom.conf. The custom one could be untracked and could overwrite the defaults.

typo on ssh key page

Reported by user. On /machines/ssh - "Just paste you public key in the box below."

Pagination stopped working

This seems to have come about when the resource management system got updated.
For some reason the pagination relies on reading quota.js.

I'm now looking at plugins to completely replace our current way of showing the vm list, and that will be able to handle pagination better.

Add the ability to clear SSH key

As there is no way of clearing the SSH key would it be possible to either add a button to clear it or the ability to delete the whole thing without reverting to the old key.

hide show group VMs tick box when it would have no effect

Not all groups will want to see each others VMs, so having the tick box will just be a source of confusion for users. It would be good if it wasn't visible in this case. The case can be identified by the list of the users VMs being the same length as the one when they see all the ones visible to them. Alternatively, the longer of the lists could be examined for VMs not owned by the user.

Machines Field Chooser

Add a "Field Chooser" to the machines view to enable adding or removing of information from this view

Virtual Machine Visibility

At present users can only see VMs which they created, they should be able to see all VMs they have access to

Badwords

We need to look at the source of the badwords file. it is unclear what its origin is.

Terms of Service

We need to examine how we provide the terms of service. Currently this is a static page, which we locally overwrite when we install. This would be better as a config file of some kind, this would also allow us to clean up our quattor configuration. If we are leaving a default template, we should remove the hard coded links to internal stfc sites.

Add News Banner

Add a banner to all pages that can hold notes such as status updates.

This should be easily settable through a text file

Filter Visible Virtual Machines

Add a way of filtering the VMs on the Machines page to show either All VMs or only the user's VMs.

I am imagining a tick box.

Add a VM view

Add a view for vm detail and additional functionality

Add Kerberos support

Hi

At this moment the users can connect to the cloud framework using thier login and password, but would be possible to include Kerberos support in your frontend as well? This way any valid user with a kerberos ticket would be logged automatically (and if not the fronted will show the regular user/pass login page).

This request is also related with an OpenNebula PR to include a new auth in Sunstone to authenticate remote users. The authentication work will relies on Apache, the configuration is quite similar to X509 auth, but we will use a Kerberos ticket instead of an user certificate.

More info about this request in OpenNebula:

Cheers
Alvaro

TOS link

It would be good if the link to the TOS appeared in the menu on the machines page as well as the homepage

Deleting Other people's VMs

Could you either gray out the delete button or throw an error message if the user does not have rights to delete a VM?

Text abut quota useage

There is currently text above the VM table that says how much of their quota users are using. Could we add some text next to this saying something like "to increase your quota contact cloud-support@...". Possibly only when they have used more than half of one of their quotas?

Add rename button

Sometimes I start with a randomly generated name and then later want to rename a VM to remind me what it was for. The underlying cloud platform supports this, so can we expose it please?

Typo wskey in server.py

I get this error from server.py using VNC keys

python server.py

Traceback (most recent call last):
File "server.py", line 47, in
wsparams.append('--key=' + cherrypy.config.get("key"))
TypeError: cannot concatenate 'str' and 'NoneType' objects

because a type in:
https://github.com/stfc/cloud/blob/master/server.py#L47

it should be
wsparams.append('--key=' + cherrypy.config.get("wskey"))

VNC - migration problem

Once vms are migrated their VNC token is not updated so you get a 1006 error when you open noVNC

Differentiate between 'Booting up' and 'Active'

The machine list shows any provisioned machine as 'Active' regardless of its ready state. If trying to ssh (rather than using the gui) while the machine is still booting up you get a very unhelpful message. It'd be nice to be able to show the machine as still booting and when ready to accept connections then show it as 'Active' (or perhaps 'Ready').

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.