From 2dc4c0e9e4b762ebb552ba7d3e9c5f1c2ba92228 Mon Sep 17 00:00:00 2001 From: Timur Nurlygayanov Date: Wed, 27 Mar 2013 03:49:46 +0700 Subject: [PATCH] Fixed UI issues. --- tabula/tabula/windc/api.py | 1 - tabula/tabula/windc/forms.py | 29 +++++++++++++++---- tabula/tabula/windc/tables.py | 10 +------ tabula/tabula/windc/views.py | 48 +++++++++++++++----------------- tabula/tabula/windc/workflows.py | 6 ++-- 5 files changed, 49 insertions(+), 45 deletions(-) diff --git a/tabula/tabula/windc/api.py b/tabula/tabula/windc/api.py index b512ca2..ad6a4d3 100644 --- a/tabula/tabula/windc/api.py +++ b/tabula/tabula/windc/api.py @@ -78,7 +78,6 @@ def services_create(request, datacenter, parameters): def services_list(request, datacenter_id): session_id = None sessions = windcclient(request).sessions.list(datacenter_id) - LOG.critical('DC ID: ' + str(datacenter_id)) for s in sessions: if s.state in ['open', 'deploying']: diff --git a/tabula/tabula/windc/forms.py b/tabula/tabula/windc/forms.py index 8789d54..3691d9f 100644 --- a/tabula/tabula/windc/forms.py +++ b/tabula/tabula/windc/forms.py @@ -24,6 +24,8 @@ import string from django import forms from django.utils.translation import ugettext_lazy as _ +from tabula.windc import api + LOG = logging.getLogger(__name__) @@ -104,10 +106,25 @@ class WizardFormIISConfiguration(forms.Form): adm_password = PasswordField(_('Administrator password')) - iis_domain = forms.CharField(label=_('Member of the Domain'), - required=True) + iis_domain = forms.ChoiceField(label=_('Member of the Domain'), + required=False) + + def __init__(self, request, *args, **kwargs): - domain_user_name = forms.CharField(label=_('Domain User Name'), - required=True) - - domain_user_password = PasswordField(_('Domain User Password')) + super(WizardFormIISConfiguration, self).__init__(request, + *args, + **kwargs) + + link = self.request.__dict__['META']['HTTP_REFERER'] + datacenter_id = re.search('windc/(\S+)', link).group(0)[6:-1] + + domains = api.services_list(request, datacenter_id) + + LOG.critical('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$') + LOG.critical(domains) + LOG.critical('&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&') + + self.fields['iis_domain'].choices = [("", "")] + \ + [(domain.name, domain.name) + for domain in domains] + \ No newline at end of file diff --git a/tabula/tabula/windc/tables.py b/tabula/tabula/windc/tables.py index a654fc5..09e2b8c 100644 --- a/tabula/tabula/windc/tables.py +++ b/tabula/tabula/windc/tables.py @@ -154,13 +154,6 @@ STATUS_DISPLAY_CHOICES = ( ('finished', 'Active') ) -STATUS_DISPLAY_CHOICES = ( - ('draft', 'Ready to deploy'), - ('pending', 'Wait for configuration'), - ('inprogress', 'Deploy in progress'), - ('finished', 'Active') -) - class WinDCTable(tables.DataTable): @@ -170,7 +163,6 @@ class WinDCTable(tables.DataTable): ('Active', True) ) - name = tables.Column('name', link=('horizon:project:windc:services'), verbose_name=_('Name')) @@ -199,7 +191,7 @@ class WinServicesTable(tables.DataTable): ) name = tables.Column('name', verbose_name=_('Name'), - link=('horizon:project:windc:service_details'),) + link=('horizon:project:windc:service_details')) _type = tables.Column('service_type', verbose_name=_('Type')) diff --git a/tabula/tabula/windc/views.py b/tabula/tabula/windc/views.py index c2c9b43..0621bf1 100644 --- a/tabula/tabula/windc/views.py +++ b/tabula/tabula/windc/views.py @@ -58,21 +58,24 @@ class Wizard(ModalFormMixin, SessionWizardView, generic.FormView): def done(self, form_list, **kwargs): link = self.request.__dict__['META']['HTTP_REFERER'] datacenter_id = re.search('windc/(\S+)', link).group(0)[6:-1] + + LOG.critical("/////////////////////////////") + LOG.critical(link) + LOG.critical(datacenter_id) + LOG.critical("/////////////////////////////") + url = "/project/windc/%s/" % datacenter_id service_type = form_list[0].data.get('0-service', '') parameters = {'service_type': service_type} - + data = form_list[1].data if service_type == 'Active Directory': parameters['configuration'] = 'standalone' - parameters['name'] = str(form_list[1].data.get('1-dc_name', - 'noname')) + parameters['name'] = str(data.get('1-dc_name', 'noname')) parameters['domain'] = parameters['name'] # Fix Me in orchestrator - parameters['adminPassword'] = \ - str(form_list[1].data.get('1-adm_password', '')) - dc_count = int(form_list[1].data.get('1-dc_count', 1)) - recovery_password = \ - str(form_list[1].data.get('1-recovery_password', '')) + parameters['adminPassword'] = str(data.get('1-adm_password', '')) + dc_count = int(data.get('1-dc_count', 1)) + recovery_password = str(data.get('1-recovery_password', '')) parameters['units'] = [] parameters['units'].append({'isMaster': True, 'recoveryPassword': recovery_password, @@ -83,18 +86,11 @@ class Wizard(ModalFormMixin, SessionWizardView, generic.FormView): 'location': 'west-dc'}) elif service_type == 'IIS': - password = form_list[1].data.get('1-adm_password', '') - domain = form_list[1].data.get('1-iis_domain', '') - dc_user = form_list[1].data.get('1-domain_user_name', '') - dc_pass = form_list[1].data.get('1-domain_user_password', '') - parameters['name'] = str(form_list[1].data.get('1-iis_name', - 'noname')) - parameters['domain'] = parameters['name'] + password = data.get('1-adm_password', '') + parameters['name'] = str(data.get('1-iis_name', 'noname')) parameters['credentials'] = {'username': 'Administrator', 'password': password} - parameters['domain'] = str(domain) - # 'username': str(dc_user), - # 'password': str(dc_pass)} + parameters['domain'] = str(data.get('1-iis_domain', '')) parameters['location'] = 'west-dc' parameters['units'] = [] @@ -102,22 +98,24 @@ class Wizard(ModalFormMixin, SessionWizardView, generic.FormView): 'endpoint': [{'host': '10.0.0.1'}], 'location': 'west-dc'}) - service = api.services_create(self.request, - datacenter_id, - parameters) + service = api.services_create(self.request, datacenter_id, parameters) message = "The %s service successfully created." % service_type messages.success(self.request, message) return HttpResponseRedirect(url) def get_form(self, step=None, data=None, files=None): + + LOG.critical("@@@@@@@@@@@@@@@@@@@@@@") + LOG.critical(dir(WizardFormIISConfiguration)) + LOG.critical("######################") + form = super(Wizard, self).get_form(step, data, files) if data: - service_type = data.get('0-service', '') - self.service_type = service_type - if service_type == 'Active Directory': + self.service_type = data.get('0-service', '') + if self.service_type == 'Active Directory': self.form_list['1'] = WizardFormADConfiguration - elif service_type == 'IIS': + elif self.service_type == 'IIS': self.form_list['1'] = WizardFormIISConfiguration return form diff --git a/tabula/tabula/windc/workflows.py b/tabula/tabula/windc/workflows.py index c3ae077..c8d99d0 100644 --- a/tabula/tabula/windc/workflows.py +++ b/tabula/tabula/windc/workflows.py @@ -62,8 +62,7 @@ class SelectProjectUser(workflows.Step): class ConfigureDCAction(workflows.Action): - name = forms.CharField(label=_("Data Center Name"), - required=True) + name = forms.CharField(label=_("Data Center Name"), required=True) class Meta: name = _("Data Center") @@ -87,8 +86,7 @@ class CreateWinDC(workflows.Workflow): success_message = _('Created data center "%s".') failure_message = _('Unable to create data center "%s".') success_url = "horizon:project:windc:index" - default_steps = (SelectProjectUser, - ConfigureDC) + default_steps = (SelectProjectUser, ConfigureDC) def format_status_message(self, message): name = self.context.get('name', 'noname')