diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8dbf85 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +*.pyc +*.swp +*.sqlite3 +.environment_version +.selenium_log +.coverage* +.noseids +.DS_STORE +*.egg/ +*.egg-info/ +coverage.xml +nosetests.xml +pep8.txt +pylint.txt +reports +horizon.egg-info +tuskar_ui/test/.secret_key_store +doc/build/ +doc/source/sourcecode +/static/ +.venv +.tox +build +dist +AUTHORS +ChangeLog +tags +openstack_dashboard/dummydb.sqlite diff --git a/HACKING.rst b/HACKING.rst deleted file mode 100644 index 442a927..0000000 --- a/HACKING.rst +++ /dev/null @@ -1,60 +0,0 @@ -Contributing -============ - -The code repository is located at `OpenStack `__. -Please go there if you want to check it out: - - git clone https://github.com/openstack/tuskar-ui.git - -The list of bugs and blueprints is on Launchpad: - -``__ - -We use OpenStack's Gerrit for the code contributions: - -``__ - -and we follow the `OpenStack Gerrit Workflow `__. - -If you're interested in the code, here are some key places to start: - -* `tuskar_ui/api.py `_ - - This file contains all the API calls made to the Tuskar API - (through python-tuskarclient). -* `tuskar_ui/infrastructure `_ - - The Tuskar UI code is contained within this directory. - -Running tests -============= - -There are several ways to run tests for tuskar-ui. - -Using ``tox``: - - This is the easiest way to run tests. When run, tox installs dependencies, - prepares the virtual python environment, then runs test commands. The gate - tests in gerrit usually also use tox to run tests. For avaliable tox - environments, see ``tox.ini``. - -By running ``run_tests.sh``: - - Tests can also be run using the ``run_tests.sh`` script, to see available - options, run it with the ``--help`` option. It handles preparing the - virtual environment and executing tests, but in contrast with tox, it does - not install all dependencies, e.g. ``jshint`` must be installed before - running the jshint testcase. - -Manual tests: - - To manually check tuskar-ui, it is possible to run a development server - for tuskar-ui by running ``run_tests.sh --runserver``. - - To run the server with the settings used by the test environment: - ``run_tests.sh --runserver 0.0.0.0:8000 --settings=tuskar_ui.test.settings`` - -OpenStack Style Commandments -============================ - -- Step 1: Read http://www.python.org/dev/peps/pep-0008/ -- Step 2: Read http://www.python.org/dev/peps/pep-0008/ again -- Step 3: Read https://github.com/openstack-dev/hacking/blob/master/HACKING.rst diff --git a/_10_admin.py.example b/_10_admin.py.example deleted file mode 100644 index 868d719..0000000 --- a/_10_admin.py.example +++ /dev/null @@ -1,2 +0,0 @@ -DASHBOARD = 'admin' -DISABLED = True diff --git a/_60_sat.py.example b/_60_sat.py.example deleted file mode 100644 index 7da2969..0000000 --- a/_60_sat.py.example +++ /dev/null @@ -1,12 +0,0 @@ -from tuskar_ui import exceptions - -DASHBOARD = 'infrastructure' -ADD_INSTALLED_APPS = [ - 'tuskar_ui.infrastructure', -] -ADD_EXCEPTIONS = { - 'recoverable': exceptions.RECOVERABLE, - 'not_found': exceptions.NOT_FOUND, - 'unauthorized': exceptions.UNAUTHORIZED, -} -DEFAULT = True diff --git a/local_settings.py.example b/local_settings.py.example deleted file mode 100644 index 37986ac..0000000 --- a/local_settings.py.example +++ /dev/null @@ -1,375 +0,0 @@ -import os - -from django.utils.translation import ugettext_lazy as _ - -from tuskar_ui import exceptions - -DEBUG = True -TEMPLATE_DEBUG = DEBUG - -# Required for Django 1.5. -# If horizon is running in production (DEBUG is False), set this -# with the list of host/domain names that the application can serve. -# For more information see: -# https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts -#ALLOWED_HOSTS = ['horizon.example.com', ] - -# Set SSL proxy settings: -# For Django 1.4+ pass this header from the proxy after terminating the SSL, -# and don't forget to strip it from the client's request. -# For more information see: -# https://docs.djangoproject.com/en/1.4/ref/settings/#secure-proxy-ssl-header -# SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https') - -# If Horizon is being served through SSL, then uncomment the following two -# settings to better secure the cookies from security exploits -#CSRF_COOKIE_SECURE = True -#SESSION_COOKIE_SECURE = True - -# Overrides for OpenStack API versions. Use this setting to force the -# OpenStack dashboard to use a specific API version for a given service API. -# NOTE: The version should be formatted as it appears in the URL for the -# service API. For example, The identity service APIs have inconsistent -# use of the decimal point, so valid options would be "2.0" or "3". -# OPENSTACK_API_VERSIONS = { -# "identity": 3 -# } - -# Set this to True if running on multi-domain model. When this is enabled, it -# will require user to enter the Domain name in addition to username for login. -# OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False - -# Overrides the default domain used when running on single-domain model -# with Keystone V3. All entities will be created in the default domain. -# OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default' - -# Set Console type: -# valid options would be "AUTO", "VNC" or "SPICE" -# CONSOLE_TYPE = "AUTO" - -# Default OpenStack Dashboard configuration. -HORIZON_CONFIG = { - 'dashboards': ('project', 'admin', 'settings',), - 'default_dashboard': 'project', - 'user_home': 'openstack_dashboard.views.get_user_home', - 'ajax_queue_limit': 10, - 'auto_fade_alerts': { - 'delay': 3000, - 'fade_duration': 1500, - 'types': ['alert-success', 'alert-info'] - }, - 'help_url': "http://docs.openstack.org", - 'exceptions': {'recoverable': exceptions.RECOVERABLE, - 'not_found': exceptions.NOT_FOUND, - 'unauthorized': exceptions.UNAUTHORIZED}, -} - -# Specify a regular expression to validate user passwords. -# HORIZON_CONFIG["password_validator"] = { -# "regex": '.*', -# "help_text": _("Your password does not meet the requirements.") -# } - -# Disable simplified floating IP address management for deployments with -# multiple floating IP pools or complex network requirements. -# HORIZON_CONFIG["simple_ip_management"] = False - -# Turn off browser autocompletion for the login form if so desired. -# HORIZON_CONFIG["password_autocomplete"] = "off" - -LOCAL_PATH = os.path.dirname(os.path.abspath(__file__)) - -# Set custom secret key: -# You can either set it to a specific value or you can let horizion generate a -# default secret key that is unique on this machine, e.i. regardless of the -# amount of Python WSGI workers (if used behind Apache+mod_wsgi): However, there -# may be situations where you would want to set this explicitly, e.g. when -# multiple dashboard instances are distributed on different machines (usually -# behind a load-balancer). Either you have to make sure that a session gets all -# requests routed to the same dashboard instance or you set the same SECRET_KEY -# for all of them. -from horizon.utils import secret_key -SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, '.secret_key_store')) - -# We recommend you use memcached for development; otherwise after every reload -# of the django development server, you will have to login again. To use -# memcached set CACHES to something like -# CACHES = { -# 'default': { -# 'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache', -# 'LOCATION' : '127.0.0.1:11211', -# } -#} - -CACHES = { - 'default': { - 'BACKEND' : 'django.core.cache.backends.locmem.LocMemCache' - } -} - -# Send email to the console by default -EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' -# Or send them to /dev/null -#EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend' - -# Configure these for your outgoing email host -# EMAIL_HOST = 'smtp.my-company.com' -# EMAIL_PORT = 25 -# EMAIL_HOST_USER = 'djangomail' -# EMAIL_HOST_PASSWORD = 'top-secret!' - -# For multiple regions uncomment this configuration, and add (endpoint, title). -# AVAILABLE_REGIONS = [ -# ('http://cluster1.example.com:5000/v2.0', 'cluster1'), -# ('http://cluster2.example.com:5000/v2.0', 'cluster2'), -# ] - -OPENSTACK_HOST = "stormsend.usersys.redhat.com" -OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST -OPENSTACK_KEYSTONE_DEFAULT_ROLE = "Member" - -# Disable SSL certificate checks (useful for self-signed certificates): -# OPENSTACK_SSL_NO_VERIFY = True - -# The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the -# capabilities of the auth backend for Keystone. -# If Keystone has been configured to use LDAP as the auth backend then set -# can_edit_user to False and name to 'ldap'. -# -# TODO(tres): Remove these once Keystone has an API to identify auth backend. -OPENSTACK_KEYSTONE_BACKEND = { - 'name': 'native', - 'can_edit_user': True, - 'can_edit_group': True, - 'can_edit_project': True, - 'can_edit_domain': True, - 'can_edit_role': True -} - -OPENSTACK_HYPERVISOR_FEATURES = { - 'can_set_mount_point': True, - - # NOTE: as of Grizzly this is not yet supported in Nova so enabling this - # setting will not do anything useful - 'can_encrypt_volumes': False -} - -# The OPENSTACK_NEUTRON_NETWORK settings can be used to enable optional -# services provided by neutron. Currently only the load balancer service -# is available. -OPENSTACK_NEUTRON_NETWORK = { - 'enable_security_group': True, - 'enable_lb': False, -} - -# OPENSTACK_ENDPOINT_TYPE specifies the endpoint type to use for the endpoints -# in the Keystone service catalog. Use this setting when Horizon is running -# external to the OpenStack environment. The default is 'publicURL'. -#OPENSTACK_ENDPOINT_TYPE = "publicURL" - -# SECONDARY_ENDPOINT_TYPE specifies the fallback endpoint type to use in the -# case that OPENSTACK_ENDPOINT_TYPE is not present in the endpoints -# in the Keystone service catalog. Use this setting when Horizon is running -# external to the OpenStack environment. The default is None. This -# value should differ from OPENSTACK_ENDPOINT_TYPE if used. -#SECONDARY_ENDPOINT_TYPE = "publicURL" - -# The number of objects (Swift containers/objects or images) to display -# on a single page before providing a paging element (a "more" link) -# to paginate results. -API_RESULT_LIMIT = 1000 -API_RESULT_PAGE_SIZE = 20 - -# The timezone of the server. This should correspond with the timezone -# of your entire OpenStack installation, and hopefully be in UTC. -TIME_ZONE = "UTC" - -# When launching an instance, the menu of available flavors is -# sorted by RAM usage, ascending. Provide a callback method here -# (and/or a flag for reverse sort) for the sorted() method if you'd -# like a different behaviour. For more info, see -# http://docs.python.org/2/library/functions.html#sorted -# CREATE_INSTANCE_FLAVOR_SORT = { -# 'key': my_awesome_callback_method, -# 'reverse': False, -# } - -LOGGING = { - 'version': 1, - # When set to True this will disable all logging except - # for loggers specified in this configuration dictionary. Note that - # if nothing is specified here and disable_existing_loggers is True, - # django.db.backends will still log unless it is disabled explicitly. - 'disable_existing_loggers': False, - 'handlers': { - 'null': { - 'level': 'DEBUG', - 'class': 'django.utils.log.NullHandler', - }, - 'console': { - # Set the level to "DEBUG" for verbose output logging. - 'level': 'INFO', - 'class': 'logging.StreamHandler', - }, - }, - 'loggers': { - # Logging from django.db.backends is VERY verbose, send to null - # by default. - 'django.db.backends': { - 'handlers': ['null'], - 'propagate': False, - }, - 'requests': { - 'handlers': ['null'], - 'propagate': False, - }, - 'horizon': { - 'handlers': ['console'], - 'propagate': False, - }, - 'openstack_dashboard': { - 'handlers': ['console'], - 'propagate': False, - }, - 'novaclient': { - 'handlers': ['console'], - 'propagate': False, - }, - 'cinderclient': { - 'handlers': ['console'], - 'propagate': False, - }, - 'keystoneclient': { - 'handlers': ['console'], - 'propagate': False, - }, - 'glanceclient': { - 'handlers': ['console'], - 'propagate': False, - }, - 'heatclient': { - 'handlers': ['console'], - 'propagate': False, - }, - 'nose.plugins.manager': { - 'handlers': ['console'], - 'propagate': False, - } - } -} - -SECURITY_GROUP_RULES = { - 'all_tcp': { - 'name': 'ALL TCP', - 'ip_protocol': 'tcp', - 'from_port': '1', - 'to_port': '65535', - }, - 'all_udp': { - 'name': 'ALL UDP', - 'ip_protocol': 'udp', - 'from_port': '1', - 'to_port': '65535', - }, - 'all_icmp': { - 'name': 'ALL ICMP', - 'ip_protocol': 'icmp', - 'from_port': '-1', - 'to_port': '-1', - }, - 'ssh': { - 'name': 'SSH', - 'ip_protocol': 'tcp', - 'from_port': '22', - 'to_port': '22', - }, - 'smtp': { - 'name': 'SMTP', - 'ip_protocol': 'tcp', - 'from_port': '25', - 'to_port': '25', - }, - 'dns': { - 'name': 'DNS', - 'ip_protocol': 'tcp', - 'from_port': '53', - 'to_port': '53', - }, - 'http': { - 'name': 'HTTP', - 'ip_protocol': 'tcp', - 'from_port': '80', - 'to_port': '80', - }, - 'pop3': { - 'name': 'POP3', - 'ip_protocol': 'tcp', - 'from_port': '110', - 'to_port': '110', - }, - 'imap': { - 'name': 'IMAP', - 'ip_protocol': 'tcp', - 'from_port': '143', - 'to_port': '143', - }, - 'ldap': { - 'name': 'LDAP', - 'ip_protocol': 'tcp', - 'from_port': '389', - 'to_port': '389', - }, - 'https': { - 'name': 'HTTPS', - 'ip_protocol': 'tcp', - 'from_port': '443', - 'to_port': '443', - }, - 'smtps': { - 'name': 'SMTPS', - 'ip_protocol': 'tcp', - 'from_port': '465', - 'to_port': '465', - }, - 'imaps': { - 'name': 'IMAPS', - 'ip_protocol': 'tcp', - 'from_port': '993', - 'to_port': '993', - }, - 'pop3s': { - 'name': 'POP3S', - 'ip_protocol': 'tcp', - 'from_port': '995', - 'to_port': '995', - }, - 'ms_sql': { - 'name': 'MS SQL', - 'ip_protocol': 'tcp', - 'from_port': '1443', - 'to_port': '1443', - }, - 'mysql': { - 'name': 'MYSQL', - 'ip_protocol': 'tcp', - 'from_port': '3306', - 'to_port': '3306', - }, - 'rdp': { - 'name': 'RDP', - 'ip_protocol': 'tcp', - 'from_port': '3389', - 'to_port': '3389', - }, -} - -TUSKAR_ENDPOINT_URL = "http://127.0.0.1:8585" - -HORIZON_CONFIG['user_home'] = '' - -OVERCLOUD_CREDS = { - 'user': 'admin', - 'password': 'password', - 'tenant': 'admin', - 'auth_url': 'http://localhost:5000/v2.0/', -} diff --git a/requirements.txt b/requirements.txt index f69d9de..7db88e1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,6 +19,3 @@ pytz>=2010h # Horizon Utility Requirements # for SECURE_KEY generation lockfile>=0.8 - -python-ironicclient -http://tarballs.openstack.org/python-tuskarclient/python-tuskarclient-master.tar.gz#egg=python-tuskarclient diff --git a/setup.cfg b/setup.cfg index 8e4c5c6..b95ecd1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,7 +1,7 @@ [metadata] -name = tuskar-ui -version = 2013.2 -summary = Tuskar Management Dashboard +name = tuskar-sat-ui +version = 2014.1 +summary = Tuskar Management Dashboard Satellite Plugin description-file = README.rst author = OpenStack @@ -29,7 +29,7 @@ setup-hooks = [files] packages = - tuskar_ui + tuskar_sat_ui [build_sphinx] all_files = 1 diff --git a/tuskar_sat_ui/__init__.py b/tuskar_sat_ui/__init__.py new file mode 100644 index 0000000..de236eb --- /dev/null +++ b/tuskar_sat_ui/__init__.py @@ -0,0 +1,2 @@ +from tuskar_sat_ui.infrastructure import nodes +from tuskar_sat_ui.api import node diff --git a/tuskar_ui/__init__.pyc b/tuskar_sat_ui/__init__.pyc similarity index 100% rename from tuskar_ui/__init__.pyc rename to tuskar_sat_ui/__init__.pyc diff --git a/tuskar_ui/api/__init__.py b/tuskar_sat_ui/api/__init__.py similarity index 100% rename from tuskar_ui/api/__init__.py rename to tuskar_sat_ui/api/__init__.py diff --git a/tuskar_ui/api/__init__.pyc b/tuskar_sat_ui/api/__init__.pyc similarity index 100% rename from tuskar_ui/api/__init__.pyc rename to tuskar_sat_ui/api/__init__.pyc diff --git a/tuskar_ui/api/node.py b/tuskar_sat_ui/api/node.py similarity index 100% rename from tuskar_ui/api/node.py rename to tuskar_sat_ui/api/node.py diff --git a/tuskar_ui/api/node.pyc b/tuskar_sat_ui/api/node.pyc similarity index 100% rename from tuskar_ui/api/node.pyc rename to tuskar_sat_ui/api/node.pyc diff --git a/tuskar_ui/__init__.py b/tuskar_sat_ui/infrastructure/__init__.py similarity index 100% rename from tuskar_ui/__init__.py rename to tuskar_sat_ui/infrastructure/__init__.py diff --git a/tuskar_ui/infrastructure/__init__.pyc b/tuskar_sat_ui/infrastructure/__init__.pyc similarity index 100% rename from tuskar_ui/infrastructure/__init__.pyc rename to tuskar_sat_ui/infrastructure/__init__.pyc diff --git a/tuskar_ui/infrastructure/__init__.py b/tuskar_sat_ui/infrastructure/nodes/__init__.py similarity index 100% rename from tuskar_ui/infrastructure/__init__.py rename to tuskar_sat_ui/infrastructure/nodes/__init__.py diff --git a/tuskar_ui/infrastructure/nodes/__init__.pyc b/tuskar_sat_ui/infrastructure/nodes/__init__.pyc similarity index 100% rename from tuskar_ui/infrastructure/nodes/__init__.pyc rename to tuskar_sat_ui/infrastructure/nodes/__init__.pyc diff --git a/tuskar_ui/infrastructure/nodes/templates/nodes/details.html b/tuskar_sat_ui/infrastructure/nodes/templates/nodes/details.html similarity index 100% rename from tuskar_ui/infrastructure/nodes/templates/nodes/details.html rename to tuskar_sat_ui/infrastructure/nodes/templates/nodes/details.html diff --git a/tuskar_ui/infrastructure/nodes/views.py b/tuskar_sat_ui/infrastructure/nodes/views.py similarity index 100% rename from tuskar_ui/infrastructure/nodes/views.py rename to tuskar_sat_ui/infrastructure/nodes/views.py diff --git a/tuskar_ui/infrastructure/nodes/views.pyc b/tuskar_sat_ui/infrastructure/nodes/views.pyc similarity index 100% rename from tuskar_ui/infrastructure/nodes/views.pyc rename to tuskar_sat_ui/infrastructure/nodes/views.pyc diff --git a/tuskar_ui/infrastructure/static/infrastructure/js/angular/horizon.base64.js b/tuskar_sat_ui/infrastructure/static/infrastructure/js/angular/horizon.base64.js similarity index 100% rename from tuskar_ui/infrastructure/static/infrastructure/js/angular/horizon.base64.js rename to tuskar_sat_ui/infrastructure/static/infrastructure/js/angular/horizon.base64.js diff --git a/tuskar_ui/infrastructure/static/infrastructure/js/angular/horizon.node_errata.js b/tuskar_sat_ui/infrastructure/static/infrastructure/js/angular/horizon.node_errata.js similarity index 100% rename from tuskar_ui/infrastructure/static/infrastructure/js/angular/horizon.node_errata.js rename to tuskar_sat_ui/infrastructure/static/infrastructure/js/angular/horizon.node_errata.js diff --git a/tuskar_sat_ui/infrastructure/templates/infrastructure/_scripts.html b/tuskar_sat_ui/infrastructure/templates/infrastructure/_scripts.html new file mode 100644 index 0000000..c54d15f --- /dev/null +++ b/tuskar_sat_ui/infrastructure/templates/infrastructure/_scripts.html @@ -0,0 +1,8 @@ +{% block custom_js_files %} + + + +{% endblock %} + +{% comment %} Tuskar-UI Client-side Templates (These should *not* be inside the "compress" tag.) {% endcomment %} +{% include "client_side/templates.html" %} diff --git a/tuskar_ui/infrastructure/test/test_data/node_data.py b/tuskar_sat_ui/infrastructure/test/test_data/node_data.py similarity index 100% rename from tuskar_ui/infrastructure/test/test_data/node_data.py rename to tuskar_sat_ui/infrastructure/test/test_data/node_data.py diff --git a/tuskar_ui.egg-info/PKG-INFO b/tuskar_ui.egg-info/PKG-INFO deleted file mode 100644 index 33cd66a..0000000 --- a/tuskar_ui.egg-info/PKG-INFO +++ /dev/null @@ -1,66 +0,0 @@ -Metadata-Version: 1.1 -Name: tuskar-ui -Version: 2013.2.dev66.ga4cfd9c -Summary: Tuskar Management Dashboard -Home-page: http://www.openstack.org/ -Author: OpenStack -Author-email: openstack-dev@lists.openstack.org -License: UNKNOWN -Description: ========= - Tuskar UI - ========= - - **Tuskar UI** is a user interface for - `Tuskar `__, a management API for - OpenStack deployments. It is a plugin for `OpenStack - Horizon `__. - - High-Level Overview - ------------------- - - Tuskar UI endeavours to be a stateless UI, relying on Tuskar API calls - as much as possible. We use existing Horizon libraries and components - where possible. If added libraries and components are needed, we will - work with the OpenStack community to push those changes back into Horizon. - - Interested in seeing Tuskar and Tuskar UI in action? - `Watch a demo! `_ - - - Installation Guide - ------------------ - - Use the `Installation Guide `_ to install Tuskar UI. - - License - ------- - - This project is licensed under the Apache License, version 2. More - information can be found in the LICENSE file. - - Contact Us - ---------- - - Join us on IRC (Internet Relay Chat):: - - Network: Freenode (irc.freenode.net/tuskar) - Channel: #tuskar - - Or send an email to openstack-dev@lists.openstack.org. - - -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: OpenStack -Classifier: Framework :: Django -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: Information Technology -Classifier: Intended Audience :: System Administrators -Classifier: License :: OSI Approved :: Apache Software License -Classifier: Operating System :: OS Independent -Classifier: Operating System :: POSIX :: Linux -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 2.6 -Classifier: Topic :: Internet :: WWW/HTTP diff --git a/tuskar_ui.egg-info/SOURCES.txt b/tuskar_ui.egg-info/SOURCES.txt deleted file mode 100644 index 9cbfbf6..0000000 --- a/tuskar_ui.egg-info/SOURCES.txt +++ /dev/null @@ -1,197 +0,0 @@ -.mailmap -.pylintrc -HACKING.rst -LICENSE -MANIFEST.in -Makefile -README.rst -_10_admin.py.example -_20_project.py.example -_50_tuskar.py.example -local_settings.py.example -manage.py -requirements.txt -run_tests.sh -setup.cfg -setup.py -test-requirements.txt -tox.ini -.tx/config -bin/less/lessc -bin/lib/less/browser.js -bin/lib/less/colors.js -bin/lib/less/cssmin.js -bin/lib/less/functions.js -bin/lib/less/index.js -bin/lib/less/parser.js -bin/lib/less/rhino.js -bin/lib/less/tree.js -bin/lib/less/tree/alpha.js -bin/lib/less/tree/anonymous.js -bin/lib/less/tree/assignment.js -bin/lib/less/tree/call.js -bin/lib/less/tree/color.js -bin/lib/less/tree/comment.js -bin/lib/less/tree/condition.js -bin/lib/less/tree/dimension.js -bin/lib/less/tree/directive.js -bin/lib/less/tree/element.js -bin/lib/less/tree/expression.js -bin/lib/less/tree/import.js -bin/lib/less/tree/javascript.js -bin/lib/less/tree/keyword.js -bin/lib/less/tree/media.js -bin/lib/less/tree/mixin.js -bin/lib/less/tree/operation.js -bin/lib/less/tree/paren.js -bin/lib/less/tree/quoted.js -bin/lib/less/tree/rule.js -bin/lib/less/tree/ruleset.js -bin/lib/less/tree/selector.js -bin/lib/less/tree/url.js -bin/lib/less/tree/value.js -bin/lib/less/tree/variable.js -doc/Makefile -doc/make.bat -doc/source/HACKING.rst -doc/source/README.rst -doc/source/conf.py -doc/source/devstack_baremetal.rst -doc/source/index.rst -doc/source/install.rst -tools/install_venv.py -tools/with_venv.sh -tuskar_ui/__init__.py -tuskar_ui/cached_property.py -tuskar_ui/exceptions.py -tuskar_ui/forms.py -tuskar_ui/handle_errors.py -tuskar_ui/tables.py -tuskar_ui/utils.py -tuskar_ui/workflows.py -tuskar_ui.egg-info/PKG-INFO -tuskar_ui.egg-info/SOURCES.txt -tuskar_ui.egg-info/dependency_links.txt -tuskar_ui.egg-info/not-zip-safe -tuskar_ui.egg-info/requires.txt -tuskar_ui.egg-info/top_level.txt -tuskar_ui/api/__init__.py -tuskar_ui/api/flavor.py -tuskar_ui/api/heat.py -tuskar_ui/api/node.py -tuskar_ui/api/tuskar.py -tuskar_ui/infrastructure/__init__.py -tuskar_ui/infrastructure/dashboard.py -tuskar_ui/infrastructure/flavors/__init__.py -tuskar_ui/infrastructure/flavors/panel.py -tuskar_ui/infrastructure/flavors/tables.py -tuskar_ui/infrastructure/flavors/tabs.py -tuskar_ui/infrastructure/flavors/tests.py -tuskar_ui/infrastructure/flavors/urls.py -tuskar_ui/infrastructure/flavors/views.py -tuskar_ui/infrastructure/flavors/workflows.py -tuskar_ui/infrastructure/flavors/templates/flavors/create.html -tuskar_ui/infrastructure/flavors/templates/flavors/details.html -tuskar_ui/infrastructure/flavors/templates/flavors/index.html -tuskar_ui/infrastructure/nodes/__init__.py -tuskar_ui/infrastructure/nodes/forms.py -tuskar_ui/infrastructure/nodes/panel.py -tuskar_ui/infrastructure/nodes/tables.py -tuskar_ui/infrastructure/nodes/tabs.py -tuskar_ui/infrastructure/nodes/tests.py -tuskar_ui/infrastructure/nodes/urls.py -tuskar_ui/infrastructure/nodes/views.py -tuskar_ui/infrastructure/nodes/templates/nodes/_nodes_formset_field.html -tuskar_ui/infrastructure/nodes/templates/nodes/_nodes_formset_form.html -tuskar_ui/infrastructure/nodes/templates/nodes/_overview.html -tuskar_ui/infrastructure/nodes/templates/nodes/_register.html -tuskar_ui/infrastructure/nodes/templates/nodes/details.html -tuskar_ui/infrastructure/nodes/templates/nodes/index.html -tuskar_ui/infrastructure/nodes/templates/nodes/register.html -tuskar_ui/infrastructure/overcloud/__init__.py -tuskar_ui/infrastructure/overcloud/forms.py -tuskar_ui/infrastructure/overcloud/panel.py -tuskar_ui/infrastructure/overcloud/tables.py -tuskar_ui/infrastructure/overcloud/tabs.py -tuskar_ui/infrastructure/overcloud/tests.py -tuskar_ui/infrastructure/overcloud/urls.py -tuskar_ui/infrastructure/overcloud/views.py -tuskar_ui/infrastructure/overcloud/templates/overcloud/_detail_overview.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/_role_edit.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/_undeploy_confirmation.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/_undeploy_in_progress.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/detail.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/node_counts.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/overcloud_role.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/role_edit.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/scale_node_counts.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/undeploy_confirmation.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/undeployed_configuration.html -tuskar_ui/infrastructure/overcloud/templates/overcloud/undeployed_overview.html -tuskar_ui/infrastructure/overcloud/workflows/__init__.py -tuskar_ui/infrastructure/overcloud/workflows/scale.py -tuskar_ui/infrastructure/overcloud/workflows/scale_node_counts.py -tuskar_ui/infrastructure/overcloud/workflows/undeployed.py -tuskar_ui/infrastructure/overcloud/workflows/undeployed_configuration.py -tuskar_ui/infrastructure/overcloud/workflows/undeployed_overview.py -tuskar_ui/infrastructure/static/bootstrap/less/variables.less -tuskar_ui/infrastructure/static/infrastructure/angular_templates/numberpicker.html -tuskar_ui/infrastructure/static/infrastructure/js/horizon.capacity.js -tuskar_ui/infrastructure/static/infrastructure/js/horizon.d3circleschart.js -tuskar_ui/infrastructure/static/infrastructure/js/horizon.d3singlebarchart.js -tuskar_ui/infrastructure/static/infrastructure/js/tuskar.formset_table.js -tuskar_ui/infrastructure/static/infrastructure/js/tuskar.js -tuskar_ui/infrastructure/static/infrastructure/js/tuskar.menu_formset.js -tuskar_ui/infrastructure/static/infrastructure/js/tuskar.templates.js -tuskar_ui/infrastructure/static/infrastructure/js/angular/horizon.number_picker.js -tuskar_ui/infrastructure/static/infrastructure/less/bootstrap.less -tuskar_ui/infrastructure/static/infrastructure/less/breadcrumbs.less -tuskar_ui/infrastructure/static/infrastructure/less/buttons.less -tuskar_ui/infrastructure/static/infrastructure/less/capacities.less -tuskar_ui/infrastructure/static/infrastructure/less/flavor_usages.less -tuskar_ui/infrastructure/static/infrastructure/less/formsets.less -tuskar_ui/infrastructure/static/infrastructure/less/horizon_upgrades.less -tuskar_ui/infrastructure/static/infrastructure/less/individual_pages.less -tuskar_ui/infrastructure/static/infrastructure/less/infrastructure.less -tuskar_ui/infrastructure/static/infrastructure/less/numberpicker.less -tuskar_ui/infrastructure/static/infrastructure/less/tables.less -tuskar_ui/infrastructure/static/infrastructure/tests/formset_table.js -tuskar_ui/infrastructure/templates/client_side/_modal_chart.html -tuskar_ui/infrastructure/templates/client_side/templates.html -tuskar_ui/infrastructure/templates/formset_table/_row.html -tuskar_ui/infrastructure/templates/formset_table/_table.html -tuskar_ui/infrastructure/templates/formset_table/menu_formset.html -tuskar_ui/infrastructure/templates/horizon/common/_form_errors.html -tuskar_ui/infrastructure/templates/horizon/common/_form_field.html -tuskar_ui/infrastructure/templates/horizon/common/_form_fields.html -tuskar_ui/infrastructure/templates/horizon/common/_horizontal_field.html -tuskar_ui/infrastructure/templates/horizon/common/_horizontal_fields.html -tuskar_ui/infrastructure/templates/horizon/common/_items_count_domain_page_header.html -tuskar_ui/infrastructure/templates/horizon/common/_items_count_tab_group.html -tuskar_ui/infrastructure/templates/infrastructure/_fullscreen_workflow.html -tuskar_ui/infrastructure/templates/infrastructure/_fullscreen_workflow_base.html -tuskar_ui/infrastructure/templates/infrastructure/_performance_chart.html -tuskar_ui/infrastructure/templates/infrastructure/_scripts.html -tuskar_ui/infrastructure/templates/infrastructure/_workflow_base.html -tuskar_ui/infrastructure/templates/infrastructure/base.html -tuskar_ui/infrastructure/templates/infrastructure/base_detail.html -tuskar_ui/infrastructure/templates/infrastructure/qunit.html -tuskar_ui/infrastructure/templatetags/__init__.py -tuskar_ui/infrastructure/templatetags/chart_helpers.py -tuskar_ui/test/__init__.py -tuskar_ui/test/formset_table_tests.py -tuskar_ui/test/helpers.py -tuskar_ui/test/selenium.py -tuskar_ui/test/settings.py -tuskar_ui/test/urls.py -tuskar_ui/test/api_tests/__init__.py -tuskar_ui/test/api_tests/heat_tests.py -tuskar_ui/test/api_tests/node_tests.py -tuskar_ui/test/api_tests/tuskar_tests.py -tuskar_ui/test/test_data/__init__.py -tuskar_ui/test/test_data/exceptions.py -tuskar_ui/test/test_data/flavor_data.py -tuskar_ui/test/test_data/heat_data.py -tuskar_ui/test/test_data/node_data.py -tuskar_ui/test/test_data/tuskar_data.py -tuskar_ui/test/test_data/utils.py \ No newline at end of file diff --git a/tuskar_ui.egg-info/dependency_links.txt b/tuskar_ui.egg-info/dependency_links.txt deleted file mode 100644 index 89b2c2f..0000000 --- a/tuskar_ui.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ -http://tarballs.openstack.org/python-tuskarclient/python-tuskarclient-master.tar.gz#egg=python-tuskarclient diff --git a/tuskar_ui.egg-info/not-zip-safe b/tuskar_ui.egg-info/not-zip-safe deleted file mode 100644 index 8b13789..0000000 --- a/tuskar_ui.egg-info/not-zip-safe +++ /dev/null @@ -1 +0,0 @@ - diff --git a/tuskar_ui.egg-info/requires.txt b/tuskar_ui.egg-info/requires.txt deleted file mode 100644 index e1d200e..0000000 --- a/tuskar_ui.egg-info/requires.txt +++ /dev/null @@ -1,20 +0,0 @@ -pbr>=0.6,!=0.7,<1.0 -django>=1.4,<1.6 -django_compressor>=1.3 -django_openstack_auth>=1.1.3 -eventlet>=0.13.0 -kombu>=2.4.8 -iso8601>=0.1.8 -netaddr>=0.7.6 -python-cinderclient>=1.0.6 -python-glanceclient>=0.9.0 -python-heatclient>=0.2.3 -python-keystoneclient>=0.4.1 -python-novaclient>=2.15.0 -python-neutronclient>=2.3.0,<3 -python-swiftclient>=1.5 -python-ceilometerclient>=1.0.6 -pytz>=2010h -lockfile>=0.8 -python-ironicclient -python>=tuskarclient diff --git a/tuskar_ui.egg-info/top_level.txt b/tuskar_ui.egg-info/top_level.txt deleted file mode 100644 index d119287..0000000 --- a/tuskar_ui.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -tuskar_ui diff --git a/tuskar_ui/forms.py b/tuskar_ui/forms.py deleted file mode 100644 index f5acdd7..0000000 --- a/tuskar_ui/forms.py +++ /dev/null @@ -1,59 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from django import forms -from django.utils.translation import ugettext_lazy as _ -import netaddr - - -def fieldset(self, *args, **kwargs): - """A helper function for grouping fields based on their names.""" - - prefix = kwargs.pop('prefix', None) - names = args or self.fields.keys() - for name in names: - if prefix is None or name.startswith(prefix): - yield forms.forms.BoundField(self, self.fields[name], name) - - -class NumberInput(forms.widgets.TextInput): - input_type = 'number' - - -class NumberPickerInput(NumberInput): - def __init__(self, attrs=None): - default_attrs = {'hr-number-picker': '', 'ng-cloak': '', } - if attrs: - default_attrs.update(attrs) - super(NumberPickerInput, self).__init__(default_attrs) - - -class MACField(forms.fields.Field): - def clean(self, value): - class mac_dialect(netaddr.mac_eui48): - """Same validation as Nova uses.""" - word_fmt = '%.02x' - word_sep = ':' - try: - return str(netaddr.EUI( - value.strip(), version=48, dialect=mac_dialect)).upper() - except (netaddr.AddrFormatError, TypeError): - raise forms.ValidationError(_(u'Enter a valid MAC address.')) - - -class NetworkField(forms.fields.Field): - def clean(self, value): - try: - return str(netaddr.IPNetwork(value, version=4)) - except netaddr.AddrFormatError: - raise forms.ValidationError(_("Enter valid IPv4 network address.")) diff --git a/tuskar_ui/infrastructure/nodes/__init__.py b/tuskar_ui/infrastructure/nodes/__init__.py deleted file mode 100644 index e69de29..0000000