diff --git a/dashboard/api/windc.py b/dashboard/api/windc.py index 15aa289..a58d617 100644 --- a/dashboard/api/windc.py +++ b/dashboard/api/windc.py @@ -35,27 +35,35 @@ def windcclient(request): % (request.user.token, url)) return windc_client.Client(endpoint=url, token=None) + def datacenters_create(request, parameters): name = parameters.get('name', '') return windcclient(request).datacenters.create(name) + def datacenters_delete(request, datacenter_id): return windcclient(request).datacenters.delete(datacenter_id) + def datacenters_get(request, datacenter_id): return windcclient(request).datacenters.get(datacenter_id) + def datacenters_list(request): return windcclient(request).datacenters.list() + def services_create(request, datacenter, parameters): return windcclient(request).services.create(datacenter, parameters) + def services_list(request, datacenter): return windcclient(request).services.list(datacenter) + def services_get(request, datacenter, service_id): return windcclient(request).services.get(datacenter, service_id) + def services_delete(request, datacenter, service_id): return windcclient(request).services.delete(datacenter, service_id) diff --git a/dashboard/windc/tables.py b/dashboard/windc/tables.py index b18d1a3..85a1c8f 100644 --- a/dashboard/windc/tables.py +++ b/dashboard/windc/tables.py @@ -100,7 +100,7 @@ class DeleteService(tables.BatchAction): link = request.__dict__['META']['HTTP_REFERER'] datacenter_id = re.search('windc/(\S+)', link).group(0)[6:-1] ############## - + api.windc.services_delete(request, datacenter_id, service_id) @@ -153,7 +153,7 @@ class WinDCTable(tables.DataTable): verbose_name = _("Windows Data Centers") row_class = UpdateRow table_actions = (CreateDataCenter, Wizard) - row_actions = (ShowDataCenterServices,DeleteDataCenter) + row_actions = (ShowDataCenterServices, DeleteDataCenter) STATUS_DISPLAY_CHOICES = ( @@ -169,7 +169,7 @@ class WinServicesTable(tables.DataTable): ("active", True), ("error", False), ) - + name = tables.Column('dc_name', verbose_name=_('Name'), link=("horizon:project:windc:service_details"),) _type = tables.Column('type', verbose_name=_('Type')) diff --git a/dashboard/windc/urls.py b/dashboard/windc/urls.py index e8baa60..faa54d9 100644 --- a/dashboard/windc/urls.py +++ b/dashboard/windc/urls.py @@ -20,7 +20,8 @@ from django.conf.urls.defaults import patterns, url -from .views import IndexView, CreateWinDCView, WinServices, CreateWinServiceView +from .views import IndexView, WinServices, \ + CreateWinDCView, CreateWinServiceView from .views import Wizard from .forms import WizardFormServiceType, WizardFormConfiguration diff --git a/dashboard/windc/views.py b/dashboard/windc/views.py index 533b65a..87595b2 100644 --- a/dashboard/windc/views.py +++ b/dashboard/windc/views.py @@ -15,7 +15,8 @@ # 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. +# License for the specific language governing permissions and limitations +# under the License. """ Views for managing instances. @@ -59,6 +60,7 @@ class Wizard(ModalFormMixin, SessionWizardView, generic.FormView): print data return form + class IndexView(tables.DataTableView): table_class = WinDCTable template_name = 'project/windc/index.html' @@ -108,6 +110,7 @@ class CreateWinDCView(workflows.WorkflowView): initial['user_id'] = self.request.user.id return initial + class CreateWinServiceView(workflows.WorkflowView): workflow_class = CreateWinService template_name = "project/windc/create.html" diff --git a/dashboard/windc/workflows.py b/dashboard/windc/workflows.py index e717866..dcd9b18 100644 --- a/dashboard/windc/workflows.py +++ b/dashboard/windc/workflows.py @@ -84,10 +84,6 @@ class ConfigureWinDCAction(workflows.Action): dc_name = forms.CharField(label=_("Domain Name"), required=False) - #dc_net_name = forms.CharField(label=_("Domain NetBIOS Name"), - # required=False, - # help_text=_("A NetBIOS name of new domain.")) - dc_count = forms.IntegerField(label=_("Instances Count"), required=True, min_value=1, @@ -169,7 +165,7 @@ class CreateWinService(workflows.Workflow): default_steps = (SelectProjectUser, ConfigureWinDC, ConfigureWinIIS) - + def format_status_message(self, message): dc_name = self.context.get('dc_name', 'noname') return message % dc_name @@ -192,7 +188,6 @@ class CreateWinService(workflows.Workflow): return False - class CreateWinDC(workflows.Workflow): slug = "create" name = _("Create Windows Data Center") diff --git a/tests/deploy.sh b/tests/deploy.sh index d8732ff..e57207d 100644 --- a/tests/deploy.sh +++ b/tests/deploy.sh @@ -70,14 +70,13 @@ expect "*#*" send -- "rabbitmqctl set_user_tags keero administrator\n" expect "*#*" - +send -- "su - stack\n" +expect "*$*" send -- "cd /opt/stack/devstack\n" -expect "*#*" +expect "*$*" send -- "source openrc admin admin\n" -expect "*#*" +expect "*$*" send -- "cd /opt/stack/keero/windc\n" -expect "*#*" -send -- "./tools/with_venv.sh ./bin/windc-api --config-file=./etc/windc-api-paste.ini &\n" -expect "*DEBUG Call factory*" -send -- "\n" -expect "*#*" +expect "*$*" +send -- "sudo ./tools/with_venv.sh ./bin/windc-api --config-file=./etc/windc-api-paste.ini > /opt/stack/tests_windc_daemon.log &\n" +expect "*$*" diff --git a/tests/selenium/datacenters_page.py b/tests/selenium/datacenters_page.py index b49c540..b354efa 100644 --- a/tests/selenium/datacenters_page.py +++ b/tests/selenium/datacenters_page.py @@ -1,6 +1,7 @@ import re from login_page import LoginPage + class DataCentersPage(): page = None diff --git a/tests/selenium/login_page.py b/tests/selenium/login_page.py index ed62536..f0f357c 100644 --- a/tests/selenium/login_page.py +++ b/tests/selenium/login_page.py @@ -1,6 +1,7 @@ import ConfigParser from selenium import webdriver + class LoginPage(): def login(self): @@ -9,7 +10,7 @@ class LoginPage(): url = config.get('server', 'address') user = config.get('server', 'user') password = config.get('server', 'password') - + page = webdriver.Firefox() page.set_page_load_timeout(30) page.implicitly_wait(30) diff --git a/tests/selenium/services_page.py b/tests/selenium/services_page.py index 2f683b5..3571df0 100644 --- a/tests/selenium/services_page.py +++ b/tests/selenium/services_page.py @@ -1,6 +1,7 @@ import ConfigParser from selenium import webdriver + class ServicesPage(): page = None diff --git a/tests/selenium/test.py b/tests/selenium/test.py index 9fb0f3c..b95af41 100644 --- a/tests/selenium/test.py +++ b/tests/selenium/test.py @@ -1,6 +1,7 @@ import untitests from datacenters_page import DataCentersPage + class SanityTests(): def setUp(self): @@ -18,7 +19,7 @@ class SanityTests(): assert self.page.find_data_center('dc1') is None def test_03_create_data_centers(self): - for i in range(1,20): + for i in range(1, 20): name = 'datacenter' + str(i) self.page.create_data_center(name) assert self.page.find_data_center(name) is not None @@ -29,6 +30,6 @@ class SanityTests(): assert self.page.find_data_center('datacenter1') is None assert self.page.find_data_center('datacenter20') is None - for i in range(2,19): + for i in range(2, 19): name = 'datacenter' + str(i) assert self.page.find_data_center(name) is not None