Fix the remaining issues
This fixes the imports plus some timeouts waiting for nova baremetal. Change-Id: I4dc7aad55a05068081ab0b5a12da7c57d3a032f4 Signed-off-by: Tomas Sedovic <tsedovic@redhat.com>
This commit is contained in:
parent
4bba868cc6
commit
c67c54240c
@ -23,13 +23,14 @@ from django.conf import settings
|
||||
from django.db.models import Max
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from horizon import exceptions
|
||||
from requests import ConnectionError
|
||||
|
||||
from novaclient.v1_1.contrib import baremetal
|
||||
from tuskarclient.v1 import client as tuskar_client
|
||||
|
||||
from openstack_dashboard.api import base
|
||||
from openstack_dashboard.api import nova
|
||||
import openstack_dashboard.dashboards.infrastructure.models as dummymodels
|
||||
import tuskar_ui.infrastructure.models as dummymodels
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
@ -207,8 +208,10 @@ class Node(StringIdAPIResourceWrapper):
|
||||
|
||||
@classmethod
|
||||
def list_unracked(cls, request):
|
||||
return [n for n in Node.list(request) if (
|
||||
n.rack is None)]
|
||||
try:
|
||||
return [n for n in Node.list(request) if (n.rack is None)]
|
||||
except ConnectionError:
|
||||
return []
|
||||
|
||||
@classmethod
|
||||
def create(cls, request, name, cpus, memory_mb, local_gb, prov_mac_address,
|
||||
|
@ -17,8 +17,7 @@
|
||||
from django.conf.urls.defaults import patterns
|
||||
from django.conf.urls.defaults import url
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
overview.views import IndexView
|
||||
from tuskar_ui.infrastructure.overview.views import IndexView
|
||||
|
||||
|
||||
urlpatterns = patterns('',
|
||||
|
@ -19,7 +19,7 @@ from horizon import exceptions
|
||||
from horizon import forms
|
||||
from horizon import messages
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
|
||||
|
||||
class CreateFlavor(forms.SelfHandlingForm):
|
||||
@ -50,7 +50,7 @@ class CreateFlavor(forms.SelfHandlingForm):
|
||||
name = cleaned_data.get('name')
|
||||
flavor_id = self.initial.get('flavor_id', None)
|
||||
try:
|
||||
flavors = api.tuskar.FlavorTemplate.list(self.request)
|
||||
flavors = tuskar.FlavorTemplate.list(self.request)
|
||||
except:
|
||||
flavors = []
|
||||
msg = _('Unable to get flavor list')
|
||||
@ -67,7 +67,7 @@ class CreateFlavor(forms.SelfHandlingForm):
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
api.tuskar.FlavorTemplate.create(
|
||||
tuskar.FlavorTemplate.create(
|
||||
request,
|
||||
data['name'],
|
||||
data['cpu'],
|
||||
@ -87,7 +87,7 @@ class EditFlavor(CreateFlavor):
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
api.tuskar.FlavorTemplate.update(
|
||||
tuskar.FlavorTemplate.update(
|
||||
self.request,
|
||||
self.initial['flavor_id'],
|
||||
data['name'],
|
||||
|
@ -19,7 +19,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from horizon import tables
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
@ -30,7 +30,7 @@ class DeleteFlavors(tables.DeleteAction):
|
||||
data_type_plural = _("Flavors")
|
||||
|
||||
def delete(self, request, obj_id):
|
||||
api.tuskar.FlavorTemplate.delete(request, obj_id)
|
||||
tuskar.FlavorTemplate.delete(request, obj_id)
|
||||
|
||||
|
||||
class CreateFlavor(tables.LinkAction):
|
||||
|
@ -2,19 +2,19 @@ from django.core.urlresolvers import reverse
|
||||
from django import http
|
||||
from mox import IsA
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
from openstack_dashboard.test import helpers as test
|
||||
|
||||
|
||||
class FlavorTemplatesTests(test.BaseAdminViewTests):
|
||||
|
||||
@test.create_stubs({api.tuskar.FlavorTemplate: ('list', 'create')})
|
||||
@test.create_stubs({tuskar.FlavorTemplate: ('list', 'create')})
|
||||
def test_create_flavor_template(self):
|
||||
template = self.tuskar_flavor_templates.first()
|
||||
|
||||
api.tuskar.FlavorTemplate.list(
|
||||
tuskar.FlavorTemplate.list(
|
||||
IsA(http.HttpRequest)).AndReturn([])
|
||||
api.tuskar.FlavorTemplate.create(IsA(http.HttpRequest),
|
||||
tuskar.FlavorTemplate.create(IsA(http.HttpRequest),
|
||||
template.name,
|
||||
0, 0, 0, 0, 0).AndReturn(template)
|
||||
self.mox.ReplayAll()
|
||||
@ -36,11 +36,11 @@ class FlavorTemplatesTests(test.BaseAdminViewTests):
|
||||
self.assertRedirectsNoFollow(
|
||||
resp, reverse('horizon:infrastructure:resource_management:index'))
|
||||
|
||||
@test.create_stubs({api.tuskar.FlavorTemplate: ('list', 'update', 'get')})
|
||||
@test.create_stubs({tuskar.FlavorTemplate: ('list', 'update', 'get')})
|
||||
def test_edit_flavor_template_get(self):
|
||||
template = self.tuskar_flavor_templates.first() # has no extra spec
|
||||
|
||||
api.tuskar.FlavorTemplate.get(IsA(http.HttpRequest),
|
||||
tuskar.FlavorTemplate.get(IsA(http.HttpRequest),
|
||||
template.id).AndReturn(template)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
@ -52,17 +52,17 @@ class FlavorTemplatesTests(test.BaseAdminViewTests):
|
||||
self.assertTemplateUsed(
|
||||
resp, "infrastructure/resource_management/flavors/edit.html")
|
||||
|
||||
@test.create_stubs({api.tuskar.FlavorTemplate: ('list', 'update', 'get')})
|
||||
@test.create_stubs({tuskar.FlavorTemplate: ('list', 'update', 'get')})
|
||||
def test_edit_flavor_template_post(self):
|
||||
template = self.tuskar_flavor_templates.first() # has no extra spec
|
||||
|
||||
api.tuskar.FlavorTemplate.list(IsA(http.HttpRequest)).AndReturn(
|
||||
tuskar.FlavorTemplate.list(IsA(http.HttpRequest)).AndReturn(
|
||||
self.tuskar_flavor_templates.list())
|
||||
api.tuskar.FlavorTemplate.update(IsA(http.HttpRequest),
|
||||
tuskar.FlavorTemplate.update(IsA(http.HttpRequest),
|
||||
template.id,
|
||||
template.name,
|
||||
0, 0, 0, 0, 0).AndReturn(template)
|
||||
api.tuskar.FlavorTemplate.get(IsA(http.HttpRequest),
|
||||
tuskar.FlavorTemplate.get(IsA(http.HttpRequest),
|
||||
template.id).AndReturn(template)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
@ -82,13 +82,13 @@ class FlavorTemplatesTests(test.BaseAdminViewTests):
|
||||
self.assertRedirectsNoFollow(
|
||||
resp, reverse('horizon:infrastructure:resource_management:index'))
|
||||
|
||||
@test.create_stubs({api.tuskar.FlavorTemplate: ('list', 'delete')})
|
||||
@test.create_stubs({tuskar.FlavorTemplate: ('list', 'delete')})
|
||||
def test_delete_flavor_template(self):
|
||||
template = self.tuskar_flavor_templates.first()
|
||||
|
||||
api.tuskar.FlavorTemplate.list(IsA(http.HttpRequest)).\
|
||||
tuskar.FlavorTemplate.list(IsA(http.HttpRequest)).\
|
||||
AndReturn(self.tuskar_flavor_templates.list())
|
||||
api.tuskar.FlavorTemplate.delete(IsA(http.HttpRequest), template.id)
|
||||
tuskar.FlavorTemplate.delete(IsA(http.HttpRequest), template.id)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
form_data = {'action': 'flavors__delete__%s' % template.id}
|
||||
@ -99,13 +99,13 @@ class FlavorTemplatesTests(test.BaseAdminViewTests):
|
||||
self.assertRedirectsNoFollow(
|
||||
res, reverse('horizon:infrastructure:resource_management:index'))
|
||||
|
||||
@test.create_stubs({api.tuskar.FlavorTemplate: ('get',)})
|
||||
@test.create_stubs({tuskar.FlavorTemplate: ('get',)})
|
||||
def test_detail_flavor_template(self):
|
||||
template = self.tuskar_flavor_templates.first()
|
||||
|
||||
api.tuskar.FlavorTemplate.get(IsA(http.HttpRequest),
|
||||
tuskar.FlavorTemplate.get(IsA(http.HttpRequest),
|
||||
template.id).AndReturn(template)
|
||||
api.tuskar.FlavorTemplate.resource_classes = self. \
|
||||
tuskar.FlavorTemplate.resource_classes = self. \
|
||||
tuskar_resource_classes
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
@ -16,20 +16,15 @@
|
||||
from django.conf.urls.defaults import patterns
|
||||
from django.conf.urls.defaults import url
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.flavors.views import ActiveInstancesDataView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.flavors.views import CreateView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.flavors.views import DetailEditView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.flavors.views import DetailView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.flavors.views import EditView
|
||||
from tuskar_ui.infrastructure.resource_management.flavors.views import ActiveInstancesDataView
|
||||
from tuskar_ui.infrastructure.resource_management.flavors.views import CreateView
|
||||
from tuskar_ui.infrastructure.resource_management.flavors.views import DetailEditView
|
||||
from tuskar_ui.infrastructure.resource_management.flavors.views import DetailView
|
||||
from tuskar_ui.infrastructure.resource_management.flavors.views import EditView
|
||||
|
||||
|
||||
FLAVORS = r'^(?P<flavor_id>[^/]+)/%s$'
|
||||
VIEW_MOD = 'openstack_dashboard.dashboards.infrastructure.' \
|
||||
VIEW_MOD = 'tuskar_ui.infrastructure.' \
|
||||
'resource_management.flavors.views'
|
||||
|
||||
urlpatterns = patterns(VIEW_MOD,
|
||||
|
@ -29,12 +29,12 @@ from horizon import exceptions
|
||||
from horizon import forms
|
||||
from horizon import tabs
|
||||
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui import api as tuskar
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.flavors.forms import CreateFlavor
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.flavors.forms import EditFlavor
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.flavors.tabs import FlavorDetailTabs
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@ class EditView(forms.ModalFormView):
|
||||
|
||||
def get_initial(self):
|
||||
try:
|
||||
flavor = api.tuskar.FlavorTemplate.get(
|
||||
flavor = tuskar.FlavorTemplate.get(
|
||||
self.request, self.kwargs['flavor_id'])
|
||||
except:
|
||||
exceptions.handle(self.request,
|
||||
@ -100,7 +100,7 @@ class DetailView(tabs.TabView):
|
||||
if not hasattr(self, "_flavor"):
|
||||
try:
|
||||
flavor_id = self.kwargs['flavor_id']
|
||||
flavor = api.tuskar.FlavorTemplate.get(self.request, flavor_id)
|
||||
flavor = tuskar.FlavorTemplate.get(self.request, flavor_id)
|
||||
except:
|
||||
redirect = reverse('horizon:infrastructure:'
|
||||
'resource_management:index')
|
||||
@ -122,7 +122,7 @@ class ActiveInstancesDataView(View):
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
try:
|
||||
flavor = api.tuskar.FlavorTemplate.get(
|
||||
flavor = tuskar.FlavorTemplate.get(
|
||||
self.request, self.kwargs['flavor_id'])
|
||||
values = flavor.vms_over_time(
|
||||
datetime.now() - timedelta(days=7), datetime.now())
|
||||
|
@ -16,7 +16,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from horizon import tables
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
|
||||
|
||||
class DeleteNodes(tables.DeleteAction):
|
||||
@ -24,7 +24,7 @@ class DeleteNodes(tables.DeleteAction):
|
||||
data_type_plural = _("Nodes")
|
||||
|
||||
def delete(self, request, obj_id):
|
||||
api.tuskar.node_delete(request, obj_id)
|
||||
tuskar.node_delete(request, obj_id)
|
||||
|
||||
|
||||
class NodesFilterAction(tables.FilterAction):
|
||||
|
@ -3,7 +3,7 @@ from django import http
|
||||
|
||||
from mox import IsA
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
from openstack_dashboard.test import helpers as test
|
||||
|
||||
|
||||
@ -11,11 +11,11 @@ class ResourceViewTests(test.BaseAdminViewTests):
|
||||
unracked_page = reverse('horizon:infrastructure:'
|
||||
'resource_management:nodes:unracked')
|
||||
|
||||
@test.create_stubs({api.tuskar.Node: ('list_unracked',), })
|
||||
@test.create_stubs({tuskar.Node: ('list_unracked',), })
|
||||
def test_unracked(self):
|
||||
unracked_nodes = self.baremetal_unracked_nodes.list()
|
||||
|
||||
api.tuskar.Node.list_unracked(IsA(http.HttpRequest)) \
|
||||
tuskar.Node.list_unracked(IsA(http.HttpRequest)) \
|
||||
.AndReturn(unracked_nodes)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
@ -15,15 +15,12 @@
|
||||
from django.conf.urls.defaults import patterns
|
||||
from django.conf.urls.defaults import url
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.nodes.views import DetailView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.nodes.views import UnrackedView
|
||||
from tuskar_ui.infrastructure.resource_management.nodes.views import DetailView
|
||||
from tuskar_ui.infrastructure.resource_management.nodes.views import UnrackedView
|
||||
|
||||
|
||||
NODES = r'^(?P<node_id>[^/]+)/%s$'
|
||||
VIEW_MOD = 'openstack_dashboard.dashboards.infrastructure.' \
|
||||
'resource_management.nodes.views'
|
||||
VIEW_MOD = 'tuskar_ui.infrastructure.resource_management.nodes.views'
|
||||
|
||||
|
||||
urlpatterns = patterns(VIEW_MOD,
|
||||
|
@ -19,11 +19,9 @@ from horizon import exceptions
|
||||
from horizon import tables
|
||||
from horizon import tabs
|
||||
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.nodes.tables import UnrackedNodesTable
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
resource_management.nodes.tabs import NodeDetailTabs
|
||||
from tuskar_ui import api as tuskar
|
||||
from tuskar_ui.infrastructure.resource_management.nodes.tables import UnrackedNodesTable
|
||||
from tuskar_ui.infrastructure.resource_management.nodes.tabs import NodeDetailTabs
|
||||
|
||||
|
||||
class UnrackedView(tables.DataTableView):
|
||||
@ -32,7 +30,7 @@ class UnrackedView(tables.DataTableView):
|
||||
|
||||
def get_data(self):
|
||||
try:
|
||||
nodes = api.tuskar.Node.list_unracked(self.request)
|
||||
nodes = tuskar.Node.list_unracked(self.request)
|
||||
except:
|
||||
nodes = []
|
||||
exceptions.handle(self.request,
|
||||
@ -53,7 +51,7 @@ class DetailView(tabs.TabView):
|
||||
if not hasattr(self, "_node"):
|
||||
try:
|
||||
node_id = self.kwargs['node_id']
|
||||
node = api.tuskar.Node.get(self.request, node_id)
|
||||
node = tuskar.Node.get(self.request, node_id)
|
||||
except:
|
||||
redirect = reverse('horizon:infrastructure:'
|
||||
'resource_management:index')
|
||||
|
@ -18,7 +18,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
import horizon
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure import dashboard
|
||||
from tuskar_ui.infrastructure import dashboard
|
||||
|
||||
|
||||
class Resource_Management(horizon.Panel):
|
||||
|
@ -7,7 +7,7 @@ from horizon import exceptions
|
||||
from horizon import forms
|
||||
from horizon import messages
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
|
||||
import base64
|
||||
import csv
|
||||
@ -64,10 +64,10 @@ class UploadRack(forms.SelfHandlingForm):
|
||||
racks = CSVRack.from_str(base64.b64decode(racks_str))
|
||||
# get the resource class ids by resource class names
|
||||
rclass_ids = dict((rc.name, rc.id) for rc in
|
||||
api.tuskar.ResourceClass.list(request))
|
||||
tuskar.ResourceClass.list(request))
|
||||
for rack in racks:
|
||||
try:
|
||||
api.tuskar.Rack.create(request, rack.name,
|
||||
tuskar.Rack.create(request, rack.name,
|
||||
rclass_ids[rack.resource_class],
|
||||
rack.region, rack.subnet)
|
||||
# FIXME: will have to handle nodes once proper attributes
|
||||
@ -123,7 +123,7 @@ class UpdateRackStatus(forms.SelfHandlingForm):
|
||||
action = request.GET.get('action')
|
||||
|
||||
if action == "provision":
|
||||
api.tuskar.Rack.provision(
|
||||
tuskar.Rack.provision(
|
||||
request,
|
||||
rack.id)
|
||||
|
||||
@ -138,7 +138,7 @@ class UpdateRackStatus(forms.SelfHandlingForm):
|
||||
elif action == "shutdown":
|
||||
rack.state = "off"
|
||||
|
||||
rack = api.tuskar.Rack.update(
|
||||
rack = tuskar.Rack.update(
|
||||
request,
|
||||
rack.id,
|
||||
{'state': rack.state}
|
||||
|
@ -18,7 +18,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from horizon import tables
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
@ -28,7 +28,7 @@ class DeleteRacks(tables.DeleteAction):
|
||||
data_type_plural = _("Racks")
|
||||
|
||||
def delete(self, request, obj_id):
|
||||
api.tuskar.Rack.delete(request, obj_id)
|
||||
tuskar.Rack.delete(request, obj_id)
|
||||
|
||||
|
||||
class CreateRack(tables.LinkAction):
|
||||
@ -65,7 +65,7 @@ class UpdateRow(tables.Row):
|
||||
ajax = True
|
||||
|
||||
def get_data(self, request, rack_id):
|
||||
rack = api.tuskar.Rack.get(request, rack_id)
|
||||
rack = tuskar.Rack.get(request, rack_id)
|
||||
return rack
|
||||
|
||||
|
||||
|
@ -17,7 +17,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from horizon import exceptions
|
||||
from horizon import tabs
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.nodes.tables import NodesTable
|
||||
|
||||
|
||||
|
@ -15,7 +15,8 @@ from django import http
|
||||
|
||||
from mox import IsA
|
||||
|
||||
from openstack_dashboard import api
|
||||
from novaclient.v1_1.contrib import baremetal
|
||||
from tuskar_ui import api as tuskar
|
||||
from openstack_dashboard.test import helpers as test
|
||||
|
||||
import base64
|
||||
@ -25,9 +26,9 @@ import tempfile
|
||||
class RackViewTests(test.BaseAdminViewTests):
|
||||
index_page = reverse('horizon:infrastructure:resource_management:index')
|
||||
|
||||
@test.create_stubs({api.tuskar.ResourceClass: ('list',)})
|
||||
@test.create_stubs({tuskar.ResourceClass: ('list',)})
|
||||
def test_create_rack_get(self):
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
|
||||
@ -44,23 +45,23 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
# FIXME (mawagner) - After moving EditRack to use workflows, we need
|
||||
# to circle back and fix these tests.
|
||||
#
|
||||
@test.create_stubs({api.tuskar.Rack: ('list', 'create',),
|
||||
api.tuskar.ResourceClass: ('list',),
|
||||
api.tuskar.Node: ('create',)})
|
||||
@test.create_stubs({tuskar.Rack: ('list', 'create',),
|
||||
tuskar.ResourceClass: ('list',),
|
||||
tuskar.Node: ('create',)})
|
||||
def test_create_rack_post(self):
|
||||
node = self.baremetal_nodes.first()
|
||||
|
||||
api.tuskar.Rack.list(
|
||||
tuskar.Rack.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_racks.list())
|
||||
api.tuskar.Node.create(
|
||||
tuskar.Node.create(
|
||||
IsA(http.request.HttpRequest),
|
||||
'New Node', u'1', u'1024', u'10', 'aa:bb:cc:dd:ee',
|
||||
u'', u'', u'', u'').AndReturn(node)
|
||||
api.tuskar.Rack.create(
|
||||
tuskar.Rack.create(
|
||||
IsA(http.request.HttpRequest), 'New Rack',
|
||||
u'1', 'Tokyo', '1.2.3.4', [{'id': '1'}]).AndReturn(None)
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
|
||||
@ -75,21 +76,21 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
resp = self.client.post(url, data)
|
||||
self.assertRedirectsNoFollow(resp, self.index_page)
|
||||
|
||||
@test.create_stubs({api.tuskar.Rack: ('get', 'list_nodes'),
|
||||
api.tuskar.ResourceClass: ('list',)})
|
||||
@test.create_stubs({tuskar.Rack: ('get', 'list_nodes'),
|
||||
tuskar.ResourceClass: ('list',)})
|
||||
def test_edit_rack_get(self):
|
||||
rack = self.tuskar_racks.first()
|
||||
|
||||
api.tuskar.Rack.\
|
||||
tuskar.Rack.\
|
||||
get(IsA(http.HttpRequest), rack.id).\
|
||||
MultipleTimes().AndReturn(rack)
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
api.tuskar.Rack.list_nodes = []
|
||||
tuskar.Rack.list_nodes = []
|
||||
|
||||
url = reverse('horizon:infrastructure:resource_management:' +
|
||||
'racks:edit', args=[1])
|
||||
@ -98,8 +99,8 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
self.assertTemplateUsed(res,
|
||||
'horizon/common/_workflow_base.html')
|
||||
|
||||
@test.create_stubs({api.tuskar.Rack: ('get', 'list', 'update',),
|
||||
api.tuskar.ResourceClass: ('list',)})
|
||||
@test.create_stubs({tuskar.Rack: ('get', 'list', 'update',),
|
||||
tuskar.ResourceClass: ('list',)})
|
||||
def test_edit_rack_post(self):
|
||||
rack = self.tuskar_racks.first()
|
||||
|
||||
@ -113,14 +114,14 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
'node_name': 'New Node', 'prov_mac_address': 'aa:bb:cc:dd:ee',
|
||||
'cpus': u'1', 'memory_mb': u'1024', 'local_gb': u'10'}
|
||||
|
||||
api.tuskar.Rack.get(
|
||||
tuskar.Rack.get(
|
||||
IsA(http.HttpRequest), rack.id).MultipleTimes().\
|
||||
AndReturn(rack)
|
||||
api.tuskar.Rack.list(
|
||||
tuskar.Rack.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_racks.list())
|
||||
api.tuskar.Rack.update(IsA(http.HttpRequest), rack.id, rack_data)
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.Rack.update(IsA(http.HttpRequest), rack.id, rack_data)
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
|
||||
@ -133,12 +134,12 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
self.assertMessageCount(success=1)
|
||||
self.assertRedirectsNoFollow(response, self.index_page)
|
||||
|
||||
@test.create_stubs({api.tuskar.Rack: ('delete', 'list')})
|
||||
@test.create_stubs({tuskar.Rack: ('delete', 'list')})
|
||||
def test_delete_rack(self):
|
||||
rack_id = u'1'
|
||||
api.tuskar.Rack.delete(IsA(http.request.HttpRequest), rack_id) \
|
||||
tuskar.Rack.delete(IsA(http.request.HttpRequest), rack_id) \
|
||||
.AndReturn(None)
|
||||
api.tuskar.Rack.list(
|
||||
tuskar.Rack.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_racks.list())
|
||||
|
||||
@ -186,12 +187,12 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
self.assertEqual(resp.context['form']['uploaded_data'].value(),
|
||||
None)
|
||||
|
||||
@test.create_stubs({api.tuskar.Rack: ('create',),
|
||||
api.tuskar.ResourceClass: ('list',)})
|
||||
@test.create_stubs({tuskar.Rack: ('create',),
|
||||
tuskar.ResourceClass: ('list',)})
|
||||
def test_upload_rack_create(self):
|
||||
api.tuskar.Rack.create(IsA(http.request.HttpRequest), 'Rack1',
|
||||
tuskar.Rack.create(IsA(http.request.HttpRequest), 'Rack1',
|
||||
'1', 'regionX', '192.168.111.0/24').AndReturn(None)
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
self.mox.ReplayAll()
|
||||
|
@ -15,25 +15,24 @@
|
||||
from django.conf.urls import patterns
|
||||
from django.conf.urls import url
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.views import CreateView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.views import DetailEditView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.views import DetailView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.views import EditRackStatusView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.views import EditView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.views import UploadView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.views import UsageDataView
|
||||
|
||||
|
||||
RACKS = r'^(?P<rack_id>[^/]+)/%s$'
|
||||
VIEW_MOD = 'openstack_dashboard.dashboards.infrastructure.' \
|
||||
'resource_management.racks.views'
|
||||
VIEW_MOD = 'tuskar_ui.infrastructure.resource_management.racks.views'
|
||||
|
||||
|
||||
urlpatterns = patterns(VIEW_MOD,
|
||||
|
@ -32,20 +32,20 @@ from horizon import forms
|
||||
from horizon import tabs
|
||||
from horizon import workflows
|
||||
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui import api as tuskar
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.forms import UpdateRackStatus
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.forms import UploadRack
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.tabs import RackDetailTabs
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.tables import UploadRacksTable
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.workflows import CreateRack
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.workflows import DetailEditRack
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.workflows import EditRack
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@ class EditView(workflows.WorkflowView):
|
||||
workflow_class = EditRack
|
||||
|
||||
def get_initial(self):
|
||||
obj = api.tuskar.Rack.get(self.request, self.kwargs['rack_id'])
|
||||
obj = tuskar.Rack.get(self.request, self.kwargs['rack_id'])
|
||||
# mac_str = "\n".join([x.mac_address for x in obj.list_nodes])
|
||||
return {'name': obj.name, 'resource_class_id': obj.resource_class_id,
|
||||
'location': obj.location, 'subnet': obj.subnet,
|
||||
@ -103,7 +103,7 @@ class EditRackStatusView(forms.ModalFormView):
|
||||
|
||||
def get_initial(self):
|
||||
try:
|
||||
rack = api.tuskar.Rack.get(
|
||||
rack = tuskar.Rack.get(
|
||||
self.request, self.kwargs['rack_id'])
|
||||
action = self.request.GET.get('action')
|
||||
except:
|
||||
@ -126,7 +126,7 @@ class DetailView(tabs.TabView):
|
||||
if not hasattr(self, "_rack"):
|
||||
try:
|
||||
rack_id = self.kwargs['rack_id']
|
||||
rack = api.tuskar.Rack.get(self.request, rack_id)
|
||||
rack = tuskar.Rack.get(self.request, rack_id)
|
||||
except:
|
||||
redirect = reverse('horizon:infrastructure:'
|
||||
'resource_management:index')
|
||||
@ -191,7 +191,7 @@ def top_communicating(request, rack_id=None):
|
||||
"Normal level of communication",
|
||||
"Low level of communication"]
|
||||
|
||||
rack = api.tuskar.Rack.get(request, rack_id)
|
||||
rack = tuskar.Rack.get(request, rack_id)
|
||||
for node in rack.nodes:
|
||||
status = random.randint(0, 3)
|
||||
percentage = random.randint(0, 100)
|
||||
@ -227,7 +227,7 @@ def node_health(request, rack_id=None):
|
||||
statuses = ["Good", "Warnings", "Disaster"]
|
||||
colors = ["rgb(244,244,244)", "rgb(240,170,0)", "rgb(200,0,0)"]
|
||||
|
||||
rack = api.tuskar.Rack.get(request, rack_id)
|
||||
rack = tuskar.Rack.get(request, rack_id)
|
||||
|
||||
for node in rack.nodes:
|
||||
rand_index = random.randint(0, 2)
|
||||
@ -254,7 +254,7 @@ def node_health(request, rack_id=None):
|
||||
|
||||
|
||||
def check_state(request, rack_id=None):
|
||||
rack = api.tuskar.Rack.get(request, rack_id)
|
||||
rack = tuskar.Rack.get(request, rack_id)
|
||||
|
||||
res = {'state': rack.state}
|
||||
|
||||
|
@ -19,7 +19,7 @@ from horizon import exceptions
|
||||
from horizon import forms
|
||||
from horizon import workflows
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
|
||||
|
||||
class NodeCreateAction(workflows.Action):
|
||||
@ -67,7 +67,7 @@ class NodeEditAction(NodeCreateAction):
|
||||
super(NodeEditAction, self).__init__(request, *args, **kwargs)
|
||||
# TODO(Resolve node edits)
|
||||
#rack_id = self.initial['rack_id']
|
||||
#rack = api.tuskar.Rack.get(request, rack_id)
|
||||
#rack = tuskar.Rack.get(request, rack_id)
|
||||
#nodes = rack.list_nodes
|
||||
|
||||
|
||||
@ -89,7 +89,7 @@ class RackCreateInfoAction(workflows.Action):
|
||||
rack_id = self.initial.get('rack_id', None)
|
||||
subnet = cleaned_data.get('subnet')
|
||||
try:
|
||||
racks = api.tuskar.Rack.list(self.request)
|
||||
racks = tuskar.Rack.list(self.request)
|
||||
except:
|
||||
racks = []
|
||||
exceptions.check_message(['Connection', 'refused'],
|
||||
@ -113,7 +113,7 @@ class RackCreateInfoAction(workflows.Action):
|
||||
def __init__(self, request, *args, **kwargs):
|
||||
super(RackCreateInfoAction, self).__init__(request, *args, **kwargs)
|
||||
resource_class_id_choices = [('', _("Select a Resource Class"))]
|
||||
for rc in api.tuskar.ResourceClass.list(request):
|
||||
for rc in tuskar.ResourceClass.list(request):
|
||||
resource_class_id_choices.append((rc.id, rc.name))
|
||||
self.fields['resource_class_id'].choices = resource_class_id_choices
|
||||
|
||||
@ -162,7 +162,7 @@ class CreateRack(workflows.Workflow):
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
if data['node_name'] is not None:
|
||||
node = api.tuskar.Node.create(
|
||||
node = tuskar.Node.create(
|
||||
request, data['node_name'],
|
||||
data['cpus'], data['memory_mb'],
|
||||
data['local_gb'], data['prov_mac_address'],
|
||||
@ -174,7 +174,7 @@ class CreateRack(workflows.Workflow):
|
||||
node_id = None
|
||||
|
||||
# Then, register the Rack, including the node if it exists
|
||||
api.tuskar.Rack.create(request, data['name'],
|
||||
tuskar.Rack.create(request, data['name'],
|
||||
data['resource_class_id'],
|
||||
data['location'],
|
||||
data['subnet'],
|
||||
@ -196,7 +196,7 @@ class EditRack(CreateRack):
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
rack_id = self.context['rack_id']
|
||||
api.tuskar.Rack.update(request, rack_id, data)
|
||||
tuskar.Rack.update(request, rack_id, data)
|
||||
return True
|
||||
except:
|
||||
exceptions.handle(request, _("Unable to update rack."))
|
||||
|
@ -5,7 +5,7 @@ from horizon import exceptions
|
||||
from horizon import forms
|
||||
from horizon import messages
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
|
||||
import logging
|
||||
|
||||
@ -40,8 +40,8 @@ class DeleteCommand(object):
|
||||
|
||||
def execute(self):
|
||||
try:
|
||||
api.tuskar.ResourceClass.delete(self.request,
|
||||
self.resource_class.id)
|
||||
tuskar.ResourceClass.delete(self.request,
|
||||
self.resource_class.id)
|
||||
self.msg = (_('Successfully deleted Class "%s".')
|
||||
% self.resource_class.name)
|
||||
except:
|
||||
|
@ -20,15 +20,14 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from horizon import exceptions
|
||||
from horizon import tables
|
||||
|
||||
from tuskar_ui import api
|
||||
from tuskar_ui import api as tuskar
|
||||
import tuskar_ui.tables
|
||||
from tuskar_ui.forms import NumberInput
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.flavors import tables as flavors_tables
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks import tables as racks_tables
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management import resource_classes
|
||||
|
||||
|
||||
@ -55,7 +54,7 @@ class DeleteResourceClass(tables.DeleteAction):
|
||||
|
||||
def delete(self, request, obj_id):
|
||||
try:
|
||||
api.tuskar.ResourceClass.delete(request, obj_id)
|
||||
tuskar.ResourceClass.delete(request, obj_id)
|
||||
except:
|
||||
msg = _('Failed to delete resource class %s') % obj_id
|
||||
LOG.info(msg)
|
||||
|
@ -17,9 +17,9 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from horizon import exceptions
|
||||
from horizon import tabs
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure.resource_management. \
|
||||
from tuskar_ui.infrastructure.resource_management. \
|
||||
resource_classes.tables import RacksTable
|
||||
from openstack_dashboard.dashboards.infrastructure.resource_management. \
|
||||
from tuskar_ui.infrastructure.resource_management. \
|
||||
resource_classes.tables import ResourceClassDetailFlavorsTable
|
||||
|
||||
|
||||
|
@ -15,27 +15,27 @@
|
||||
from django.core.urlresolvers import reverse
|
||||
from django import http
|
||||
from mox import IsA
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
from openstack_dashboard.test import helpers as test
|
||||
|
||||
|
||||
class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
|
||||
@test.create_stubs({
|
||||
api.tuskar.FlavorTemplate: ('list',),
|
||||
api.tuskar.Rack: ('list',),
|
||||
api.tuskar.ResourceClass: ('get',)
|
||||
tuskar.FlavorTemplate: ('list',),
|
||||
tuskar.Rack: ('list',),
|
||||
tuskar.ResourceClass: ('get',)
|
||||
})
|
||||
def test_create_resource_class_get(self):
|
||||
all_templates = self.tuskar_flavor_templates.list()
|
||||
all_racks = self.tuskar_racks.list()
|
||||
rc = self.tuskar_resource_classes.first()
|
||||
|
||||
api.tuskar.FlavorTemplate.\
|
||||
tuskar.FlavorTemplate.\
|
||||
list(IsA(http.HttpRequest)).AndReturn(all_templates)
|
||||
api.tuskar.Rack.\
|
||||
tuskar.Rack.\
|
||||
list(IsA(http.HttpRequest), True).AndReturn(all_racks)
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
get(IsA(http.HttpRequest), rc.id).AndReturn(rc)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
@ -46,7 +46,7 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
self.assertEqual(res.status_code, 200)
|
||||
|
||||
@test.create_stubs({
|
||||
api.tuskar.ResourceClass: ('list', 'create', 'set_racks'),
|
||||
tuskar.ResourceClass: ('list', 'create', 'set_racks'),
|
||||
})
|
||||
def test_create_resource_class_post(self):
|
||||
new_resource_class = self.tuskar_resource_classes.first()
|
||||
@ -58,12 +58,12 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
api.tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
create(IsA(http.HttpRequest), name=new_unique_name,
|
||||
service_type=new_resource_class.service_type,
|
||||
flavors=new_flavors).\
|
||||
AndReturn(new_resource_class)
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
set_racks(IsA(http.HttpRequest), add_racks_ids)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
@ -87,7 +87,7 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
all_flavors = []
|
||||
all_racks = []
|
||||
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
get(IsA(http.HttpRequest), resource_class.id).MultipleTimes().\
|
||||
AndReturn(resource_class)
|
||||
|
||||
@ -96,9 +96,9 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
# FIXME I should probably track the racks and flavors methods
|
||||
# so maybe they shouldn't be a @property
|
||||
# properties set
|
||||
api.tuskar.ResourceClass.all_racks = all_racks
|
||||
api.tuskar.ResourceClass.all_flavors = all_flavors
|
||||
api.tuskar.ResourceClass.list_flavors = all_flavors
|
||||
tuskar.ResourceClass.all_racks = all_racks
|
||||
tuskar.ResourceClass.all_flavors = all_flavors
|
||||
tuskar.ResourceClass.list_flavors = all_flavors
|
||||
|
||||
url = reverse(
|
||||
'horizon:infrastructure:resource_management:'
|
||||
@ -108,27 +108,27 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
self.assertEqual(res.status_code, 200)
|
||||
|
||||
@test.create_stubs({
|
||||
api.tuskar.ResourceClass: ('get', 'list', 'update', 'set_racks')
|
||||
tuskar.ResourceClass: ('get', 'list', 'update', 'set_racks')
|
||||
})
|
||||
def test_edit_resource_class_post(self):
|
||||
resource_class = self.tuskar_resource_classes.first()
|
||||
|
||||
add_racks_ids = []
|
||||
|
||||
api.tuskar.ResourceClass.get(
|
||||
tuskar.ResourceClass.get(
|
||||
IsA(http.HttpRequest),
|
||||
resource_class.id).\
|
||||
AndReturn(resource_class)
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
update(IsA(http.HttpRequest), resource_class.id,
|
||||
name=resource_class.name,
|
||||
service_type=resource_class.service_type,
|
||||
flavors=[]).\
|
||||
AndReturn(resource_class)
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
set_racks(IsA(http.HttpRequest), add_racks_ids)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
@ -145,15 +145,15 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
("%s?tab=resource_management_tabs__resource_classes_tab" %
|
||||
reverse("horizon:infrastructure:resource_management:index")))
|
||||
|
||||
@test.create_stubs({api.tuskar.ResourceClass: ('delete', 'list')})
|
||||
@test.create_stubs({tuskar.ResourceClass: ('delete', 'list')})
|
||||
def test_delete_resource_class(self):
|
||||
resource_class = self.tuskar_resource_classes.first()
|
||||
all_resource_classes = self.tuskar_resource_classes.list()
|
||||
|
||||
api.tuskar.ResourceClass.delete(
|
||||
tuskar.ResourceClass.delete(
|
||||
IsA(http.HttpRequest),
|
||||
resource_class.id)
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.HttpRequest)).\
|
||||
AndReturn(all_resource_classes)
|
||||
self.mox.ReplayAll()
|
||||
@ -167,21 +167,21 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
res, reverse('horizon:infrastructure:resource_management:index'))
|
||||
|
||||
@test.create_stubs({
|
||||
api.tuskar.ResourceClass: ('get', 'list_flavors', 'list_racks')
|
||||
tuskar.ResourceClass: ('get', 'list_flavors', 'list_racks')
|
||||
})
|
||||
def test_detail_get(self):
|
||||
resource_class = self.tuskar_resource_classes.first()
|
||||
flavors = []
|
||||
racks = []
|
||||
|
||||
api.tuskar.ResourceClass.get(
|
||||
tuskar.ResourceClass.get(
|
||||
IsA(http.HttpRequest),
|
||||
resource_class.id).\
|
||||
MultipleTimes().AndReturn(resource_class)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
api.tuskar.ResourceClass.list_flavors = flavors
|
||||
api.tuskar.ResourceClass.list_racks = racks
|
||||
tuskar.ResourceClass.list_flavors = flavors
|
||||
tuskar.ResourceClass.list_racks = racks
|
||||
|
||||
url = reverse('horizon:infrastructure:resource_management:'
|
||||
'resource_classes:detail', args=[resource_class.id])
|
||||
@ -202,7 +202,7 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
all_flavors = []
|
||||
all_racks = []
|
||||
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
get(IsA(http.HttpRequest), resource_class.id).\
|
||||
MultipleTimes().AndReturn(resource_class)
|
||||
self.mox.ReplayAll()
|
||||
@ -210,9 +210,9 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
# FIXME I should probably track the racks and flavors methods
|
||||
# so maybe they shouldn't be a @property
|
||||
# properties set
|
||||
api.tuskar.ResourceClass.all_racks = all_racks
|
||||
api.tuskar.ResourceClass.all_flavors = all_flavors
|
||||
api.tuskar.ResourceClass.list_flavors = all_flavors
|
||||
tuskar.ResourceClass.all_racks = all_racks
|
||||
tuskar.ResourceClass.all_flavors = all_flavors
|
||||
tuskar.ResourceClass.list_flavors = all_flavors
|
||||
|
||||
url = reverse(
|
||||
'horizon:infrastructure:resource_management:'
|
||||
@ -222,27 +222,27 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
self.assertEqual(res.status_code, 200)
|
||||
|
||||
@test.create_stubs({
|
||||
api.tuskar.ResourceClass: ('get', 'list', 'update', 'set_racks')
|
||||
tuskar.ResourceClass: ('get', 'list', 'update', 'set_racks')
|
||||
})
|
||||
def test_detail_edit_racks_post(self):
|
||||
resource_class = self.tuskar_resource_classes.first()
|
||||
|
||||
add_racks_ids = []
|
||||
|
||||
api.tuskar.ResourceClass.get(
|
||||
tuskar.ResourceClass.get(
|
||||
IsA(http.HttpRequest),
|
||||
resource_class.id).\
|
||||
AndReturn(resource_class)
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
update(IsA(http.HttpRequest), resource_class.id,
|
||||
name=resource_class.name,
|
||||
service_type=resource_class.service_type,
|
||||
flavors=[]).\
|
||||
AndReturn(resource_class)
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
set_racks(IsA(http.HttpRequest), add_racks_ids)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
@ -271,7 +271,7 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
all_flavors = []
|
||||
all_racks = []
|
||||
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
get(IsA(http.HttpRequest), resource_class.id).\
|
||||
MultipleTimes().AndReturn(resource_class)
|
||||
self.mox.ReplayAll()
|
||||
@ -279,9 +279,9 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
# FIXME I should probably track the racks and flavors methods
|
||||
# so maybe they shouldn't be a @property
|
||||
# properties set
|
||||
api.tuskar.ResourceClass.all_racks = all_racks
|
||||
api.tuskar.ResourceClass.all_flavors = all_flavors
|
||||
api.tuskar.ResourceClass.list_flavors = all_flavors
|
||||
tuskar.ResourceClass.all_racks = all_racks
|
||||
tuskar.ResourceClass.all_flavors = all_flavors
|
||||
tuskar.ResourceClass.list_flavors = all_flavors
|
||||
|
||||
url = reverse(
|
||||
'horizon:infrastructure:resource_management:'
|
||||
@ -291,27 +291,27 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
self.assertEqual(res.status_code, 200)
|
||||
|
||||
@test.create_stubs({
|
||||
api.tuskar.ResourceClass: ('get', 'list', 'update', 'set_racks')
|
||||
tuskar.ResourceClass: ('get', 'list', 'update', 'set_racks')
|
||||
})
|
||||
def test_detail_edit_flavors_post(self):
|
||||
resource_class = self.tuskar_resource_classes.first()
|
||||
|
||||
add_racks_ids = []
|
||||
|
||||
api.tuskar.ResourceClass.get(
|
||||
tuskar.ResourceClass.get(
|
||||
IsA(http.HttpRequest),
|
||||
resource_class.id).\
|
||||
AndReturn(resource_class)
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.request.HttpRequest)).AndReturn(
|
||||
self.tuskar_resource_classes.list())
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
update(IsA(http.HttpRequest), resource_class.id,
|
||||
name=resource_class.name,
|
||||
service_type=resource_class.service_type,
|
||||
flavors=[]).\
|
||||
AndReturn(resource_class)
|
||||
api.tuskar.ResourceClass.\
|
||||
tuskar.ResourceClass.\
|
||||
set_racks(IsA(http.HttpRequest), add_racks_ids)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
|
@ -15,29 +15,29 @@
|
||||
from django.conf.urls.defaults import patterns
|
||||
from django.conf.urls.defaults import url
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.views import CreateView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.views import DetailActionView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.views import DetailUpdateView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.views import DetailView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.views import UpdateFlavorsView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.views import UpdateRacksView
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.views import UpdateView
|
||||
|
||||
|
||||
RESOURCE_CLASS = r'^(?P<resource_class_id>[^/]+)/%s$'
|
||||
VIEW_MOD = 'openstack_dashboard.dashboards.infrastructure.' \
|
||||
VIEW_MOD = 'tuskar_ui.infrastructure.' \
|
||||
'resource_management.resource_classes.views'
|
||||
|
||||
urlpatterns = patterns(
|
||||
VIEW_MOD,
|
||||
url(r'^create$', CreateView.as_view(), name='create'),
|
||||
url(r'^create/$', CreateView.as_view(), name='create'),
|
||||
url(r'^(?P<resource_class_id>[^/]+)/$',
|
||||
DetailView.as_view(), name='detail'),
|
||||
url(RESOURCE_CLASS % 'update', UpdateView.as_view(), name='update'),
|
||||
|
@ -32,21 +32,21 @@ from horizon import forms
|
||||
from horizon import tabs
|
||||
from horizon import workflows
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.forms import DeleteForm
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.tabs import ResourceClassDetailTabs
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.workflows import CreateResourceClass
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.workflows import DetailUpdateWorkflow
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.workflows import UpdateFlavorsWorkflow
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.workflows import UpdateRacksWorkflow
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.workflows import UpdateResourceClass
|
||||
|
||||
|
||||
@ -73,8 +73,8 @@ class UpdateView(workflows.WorkflowView):
|
||||
resource_class_id = self.kwargs['resource_class_id']
|
||||
try:
|
||||
self._object = \
|
||||
api.tuskar.ResourceClass.get(self.request,
|
||||
resource_class_id)
|
||||
tuskar.ResourceClass.get(self.request,
|
||||
resource_class_id)
|
||||
except:
|
||||
redirect = self.success_url
|
||||
msg = _('Unable to retrieve resource class details.')
|
||||
@ -116,9 +116,8 @@ class DetailView(tabs.TabView):
|
||||
if not hasattr(self, "_resource_class"):
|
||||
try:
|
||||
resource_class_id = self.kwargs['resource_class_id']
|
||||
resource_class = api.tuskar.\
|
||||
ResourceClass.get(self.request,
|
||||
resource_class_id)
|
||||
resource_class = tuskar.ResourceClass.get(self.request,
|
||||
resource_class_id)
|
||||
except:
|
||||
redirect = reverse('horizon:infrastructure:'
|
||||
'resource_management:index')
|
||||
@ -166,7 +165,7 @@ class DetailActionView(forms.ModalFormView):
|
||||
|
||||
def get_initial(self):
|
||||
try:
|
||||
resource_class = api.tuskar.ResourceClass.get(
|
||||
resource_class = tuskar.ResourceClass.get(
|
||||
self.request, self.kwargs['resource_class_id'])
|
||||
action = self.request.GET.get('action')
|
||||
except:
|
||||
@ -183,9 +182,8 @@ def rack_health(request, resource_class_id=None):
|
||||
statuses = ["Good", "Warnings", "Disaster"]
|
||||
colors = ["rgb(244,244,244)", "rgb(240,170,0)", "rgb(200,0,0)"]
|
||||
|
||||
resource_class = (api.tuskar.
|
||||
ResourceClass.get(request,
|
||||
resource_class_id))
|
||||
resource_class = (tuskar.ResourceClass.get(request,
|
||||
resource_class_id))
|
||||
|
||||
for rack in resource_class.list_racks:
|
||||
rand_index = random.randint(0, 2)
|
||||
|
@ -20,14 +20,14 @@ from horizon import exceptions
|
||||
from horizon import forms
|
||||
from horizon import workflows
|
||||
|
||||
from tuskar_ui import api
|
||||
from tuskar_ui import api as tuskar
|
||||
import tuskar_ui.workflows
|
||||
|
||||
import re
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.tables import FlavorsTable
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.tables import RacksTable
|
||||
|
||||
|
||||
@ -61,7 +61,7 @@ class ResourceClassInfoAndFlavorsAction(workflows.Action):
|
||||
name = cleaned_data.get('name')
|
||||
resource_class_id = self.initial.get('resource_class_id', None)
|
||||
try:
|
||||
resource_classes = api.tuskar.ResourceClass.list(self.request)
|
||||
resource_classes = tuskar.ResourceClass.list(self.request)
|
||||
except:
|
||||
resource_classes = []
|
||||
msg = _('Unable to get resource class list')
|
||||
@ -116,7 +116,7 @@ class CreateResourceClassInfoAndFlavors(tuskar_ui.workflows.TableStep):
|
||||
try:
|
||||
resource_class_id = self.workflow.context.get("resource_class_id")
|
||||
if resource_class_id:
|
||||
resource_class = api.tuskar.ResourceClass.get(
|
||||
resource_class = tuskar.ResourceClass.get(
|
||||
self.workflow.request,
|
||||
resource_class_id)
|
||||
|
||||
@ -126,7 +126,7 @@ class CreateResourceClassInfoAndFlavors(tuskar_ui.workflows.TableStep):
|
||||
|
||||
all_flavors = resource_class.all_flavors
|
||||
else:
|
||||
all_flavors = api.tuskar.FlavorTemplate.list(
|
||||
all_flavors = tuskar.FlavorTemplate.list(
|
||||
self.workflow.request)
|
||||
except Exception:
|
||||
all_flavors = []
|
||||
@ -160,7 +160,7 @@ class CreateRacks(tuskar_ui.workflows.TableStep):
|
||||
try:
|
||||
resource_class_id = self.workflow.context.get("resource_class_id")
|
||||
if resource_class_id:
|
||||
resource_class = api.tuskar.ResourceClass.get(
|
||||
resource_class = tuskar.ResourceClass.get(
|
||||
self.workflow.request,
|
||||
resource_class_id)
|
||||
# TODO(lsmola ugly interface, rewrite)
|
||||
@ -170,7 +170,7 @@ class CreateRacks(tuskar_ui.workflows.TableStep):
|
||||
resource_class.all_racks
|
||||
else:
|
||||
racks = \
|
||||
api.tuskar.Rack.list(self.workflow.request, True)
|
||||
tuskar.Rack.list(self.workflow.request, True)
|
||||
except:
|
||||
racks = []
|
||||
exceptions.handle(self.workflow.request,
|
||||
@ -207,7 +207,7 @@ class ResourceClassWorkflowMixin:
|
||||
max_vms = data.get('max_vms')
|
||||
resource_class_name = data['name']
|
||||
for template_id in flavor_ids:
|
||||
template = api.tuskar.FlavorTemplate.get(request, template_id)
|
||||
template = tuskar.FlavorTemplate.get(request, template_id)
|
||||
capacities = []
|
||||
for c in template.capacities:
|
||||
capacities.append({'name': c.name,
|
||||
@ -239,7 +239,7 @@ class CreateResourceClass(ResourceClassWorkflowMixin, workflows.Workflow):
|
||||
def _create_resource_class_info(self, request, data):
|
||||
try:
|
||||
flavors = self._get_flavors(request, data)
|
||||
return api.tuskar.ResourceClass.create(
|
||||
return tuskar.ResourceClass.create(
|
||||
request,
|
||||
name=data['name'],
|
||||
service_type=data['service_type'],
|
||||
@ -278,7 +278,7 @@ class UpdateResourceClass(ResourceClassWorkflowMixin, workflows.Workflow):
|
||||
def _update_resource_class_info(self, request, data):
|
||||
try:
|
||||
flavors = self._get_flavors(request, data)
|
||||
return api.tuskar.ResourceClass.update(
|
||||
return tuskar.ResourceClass.update(
|
||||
request,
|
||||
data['resource_class_id'],
|
||||
name=data['name'],
|
||||
|
@ -22,9 +22,9 @@ from horizon import tabs
|
||||
from tuskar_ui import api as tuskar
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.flavors.tables import FlavorsTable
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks.tables import RacksTable
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes.tables import ResourceClassesTable
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ from django import http
|
||||
|
||||
from mox import IsA
|
||||
|
||||
from openstack_dashboard import api
|
||||
from tuskar_ui import api as tuskar
|
||||
from openstack_dashboard.test import helpers as test
|
||||
|
||||
|
||||
@ -28,16 +28,16 @@ class ResourceManagementTests(test.BaseAdminViewTests):
|
||||
super(ResourceManagementTests, self).setUp()
|
||||
|
||||
@test.create_stubs({
|
||||
api.tuskar.ResourceClass: (
|
||||
tuskar.ResourceClass: (
|
||||
'get',
|
||||
'list',
|
||||
'list_racks',
|
||||
'nodes'),
|
||||
api.tuskar.FlavorTemplate: (
|
||||
tuskar.FlavorTemplate: (
|
||||
'list',),
|
||||
api.tuskar.Node: (
|
||||
tuskar.Node: (
|
||||
'list',),
|
||||
api.tuskar.Rack: (
|
||||
tuskar.Rack: (
|
||||
'list',)})
|
||||
def test_index(self):
|
||||
|
||||
@ -47,14 +47,14 @@ class ResourceManagementTests(test.BaseAdminViewTests):
|
||||
nodes = []
|
||||
racks = []
|
||||
|
||||
api.tuskar.ResourceClass.nodes = nodes
|
||||
api.tuskar.ResourceClass.list_racks = racks
|
||||
tuskar.ResourceClass.nodes = nodes
|
||||
tuskar.ResourceClass.list_racks = racks
|
||||
|
||||
api.tuskar.ResourceClass.list(
|
||||
tuskar.ResourceClass.list(
|
||||
IsA(http.HttpRequest)).\
|
||||
AndReturn(resource_classes)
|
||||
|
||||
api.tuskar.ResourceClass.get(
|
||||
tuskar.ResourceClass.get(
|
||||
IsA(http.HttpRequest), resource_class.id).\
|
||||
AndReturn(resource_class)
|
||||
# ResourceClass stubs end
|
||||
@ -62,14 +62,14 @@ class ResourceManagementTests(test.BaseAdminViewTests):
|
||||
# Rack stubs
|
||||
racks = self.tuskar_racks.list()
|
||||
|
||||
api.tuskar.Rack.list(IsA(http.HttpRequest)).AndReturn(racks)
|
||||
api.tuskar.Node.list(IsA(http.HttpRequest)).AndReturn(nodes)
|
||||
tuskar.Rack.list(IsA(http.HttpRequest)).AndReturn(racks)
|
||||
tuskar.Node.list(IsA(http.HttpRequest)).AndReturn(nodes)
|
||||
# Rack stubs end
|
||||
|
||||
# FlavorTemplate stubs
|
||||
flavors = self.tuskar_flavors.list()
|
||||
|
||||
api.tuskar.FlavorTemplate.list(IsA(http.HttpRequest)).AndReturn(
|
||||
tuskar.FlavorTemplate.list(IsA(http.HttpRequest)).AndReturn(
|
||||
flavors)
|
||||
# FlavorTemplate stubs end
|
||||
|
||||
|
@ -18,15 +18,15 @@ from django.conf.urls.defaults import include
|
||||
from django.conf.urls.defaults import patterns
|
||||
from django.conf.urls.defaults import url
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.flavors import urls as flavor_urls
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.nodes import urls as node_urls
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.racks import urls as rack_urls
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.resource_classes import urls as resource_classes_urls
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.views import IndexView
|
||||
|
||||
urlpatterns = patterns('',
|
||||
|
@ -21,7 +21,7 @@ Views for Resource Management.
|
||||
|
||||
from horizon import tabs
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
resource_management.tabs import ResourceManagementTabs
|
||||
|
||||
|
||||
|
@ -18,7 +18,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
import horizon
|
||||
|
||||
#from openstack_dashboard.dashboards.infrastructure import dashboard
|
||||
#from tuskar_ui.infrastructure import dashboard
|
||||
|
||||
|
||||
class Service_Management(horizon.Panel):
|
||||
|
@ -17,7 +17,7 @@
|
||||
from django.conf.urls.defaults import patterns
|
||||
from django.conf.urls.defaults import url
|
||||
|
||||
from openstack_dashboard.dashboards.infrastructure. \
|
||||
from tuskar_ui.infrastructure. \
|
||||
service_management.views import IndexView
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user