Several minor changes
* Base image name and keypair name were added to cluster details * In Node Group Details renamed fields: 'Node Group' to 'Name', 'Nodes Count' to 'Number of Nodes', 'Node Group Template' to 'Template'. * In cluster details instances now have http links Change-Id: Ie582228c4956145a222f7021658c538ca1c7b80a
This commit is contained in:
parent
b9cd0acb8b
commit
8ad431d6ed
@ -22,9 +22,12 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from horizon import tables
|
||||
from horizon import tabs
|
||||
|
||||
from savannadashboard.utils import compatibility
|
||||
from savannadashboard.utils import importutils
|
||||
nova = importutils.import_any('openstack_dashboard.api.nova',
|
||||
'horizon.api.nova')
|
||||
glance = importutils.import_any('openstack_dashboard.api.glance',
|
||||
'horizon.api.glance')
|
||||
|
||||
|
||||
from savannadashboard.api import client as savannaclient
|
||||
@ -47,7 +50,10 @@ class GeneralTab(tabs.Tab):
|
||||
if str(val).startswith("http://"):
|
||||
cluster.info[info_key][key] = build_link(val)
|
||||
|
||||
return {"cluster": cluster}
|
||||
base_image = glance.image_get(request,
|
||||
cluster.default_image_id)
|
||||
|
||||
return {"cluster": cluster, "base_image": base_image}
|
||||
|
||||
|
||||
def build_link(url):
|
||||
@ -67,6 +73,9 @@ class NodeGroupsTab(tabs.Tab):
|
||||
if not ng["flavor_id"]:
|
||||
continue
|
||||
ng["flavor_name"] = nova.flavor_get(request, ng["flavor_id"]).name
|
||||
ng["node_group_template"] = savanna.node_group_templates.get(
|
||||
ng["node_group_template_id"])
|
||||
|
||||
return {"cluster": cluster}
|
||||
|
||||
|
||||
@ -81,6 +90,8 @@ class Instance(object):
|
||||
|
||||
class InstancesTable(tables.DataTable):
|
||||
name = tables.Column("name",
|
||||
link=(compatibility.convert_url(
|
||||
"horizon:project:instances:detail")),
|
||||
verbose_name=_("Name"))
|
||||
|
||||
internal_ip = tables.Column("internal_ip",
|
||||
|
@ -15,10 +15,15 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from django.utils.translation import ugettext as _
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext as _
|
||||
import horizon
|
||||
|
||||
from savannadashboard.utils import compatibility
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SavannaDashboard(horizon.Dashboard):
|
||||
name = _("Savanna")
|
||||
@ -34,3 +39,6 @@ class SavannaDashboard(horizon.Dashboard):
|
||||
|
||||
|
||||
horizon.register(SavannaDashboard)
|
||||
|
||||
LOG.info('Savanna recognizes Dashboard release as "%s"' %
|
||||
compatibility.get_dashboard_release())
|
||||
|
@ -15,6 +15,12 @@
|
||||
<dt>{% trans "Hadoop Version" %}</dt>
|
||||
<dd>{{ cluster.hadoop_version }}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{% trans "Base Image" %}</dt>
|
||||
<dd>{{ base_image.name }}</dd>
|
||||
<dt>{% trans "Keypair" %}</dt>
|
||||
<dd>{{ cluster.user_keypair_id }}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{% trans "Node Configurations" %}</dt>
|
||||
{% if cluster.cluster_configs %}
|
||||
|
@ -3,16 +3,16 @@
|
||||
<div class="status row-fluid detail">
|
||||
{% for node_group in cluster.node_groups %}
|
||||
<dl class="well">
|
||||
<h4>{% trans "Node Group" %}: {{ node_group.name }}</h4>
|
||||
<dt>{% trans "Nodes Count" %}</dt>
|
||||
<h4>{% trans "Name" %}: {{ node_group.name }}</h4>
|
||||
<dt>{% trans "Number of Nodes" %}</dt>
|
||||
<dd>{{ node_group.count }}</dd>
|
||||
|
||||
<dt>{% trans "Flavor" %}</dt>
|
||||
<dd>{{ node_group.flavor_name|default:"Flavor is not specified" }}</dd>
|
||||
|
||||
<dt>{% trans "Node Group Template" %}</dt>
|
||||
<dt>{% trans "Template" %}</dt>
|
||||
{% if node_group.node_group_template_id %}
|
||||
<dd><a href="/savanna/nodegroup_templates/{{ node_group.node_group_template_id }}">{{ node_group.node_group_template_id }} </a></dd>
|
||||
<dd><a href="/savanna/nodegroup_templates/{{ node_group.node_group_template_id }}">{{ node_group.node_group_template.name }} </a></dd>
|
||||
{% else %}
|
||||
<dd>{% trans "Template not specified" %}</dd>
|
||||
{% endif %}
|
||||
|
30
savannadashboard/utils/compatibility.py
Normal file
30
savannadashboard/utils/compatibility.py
Normal file
@ -0,0 +1,30 @@
|
||||
"""Provide compatibility with various OpenStack releases.
|
||||
|
||||
All the code which depends on OpenStack release version should be placed there.
|
||||
Folsom is the oldest recognizable release.
|
||||
"""
|
||||
|
||||
|
||||
def get_dashboard_release():
|
||||
"""Return release codename of currently running Dashboard."""
|
||||
import horizon.version
|
||||
|
||||
if hasattr(horizon.version, 'HORIZON_VERSION'):
|
||||
return 'folsom'
|
||||
|
||||
return 'grizzly'
|
||||
|
||||
|
||||
def _is_folsom():
|
||||
return get_dashboard_release() == 'folsom'
|
||||
|
||||
|
||||
def convert_url(link):
|
||||
"""Expect grizzly url and convert it to folsom if needed
|
||||
|
||||
For example, 'horizon:project:instances:detail' should be converted to
|
||||
'horizon:nova:instances:detail'
|
||||
"""
|
||||
if _is_folsom():
|
||||
return link.replace('project', 'nova', 1)
|
||||
return link
|
Loading…
Reference in New Issue
Block a user