Added deploy button for data centers in UI. Fixed templates for services.
This commit is contained in:
parent
8c2ebd3fe5
commit
a93f6f9fbd
@ -51,19 +51,35 @@ def datacenters_get(request, datacenter_id):
|
||||
def datacenters_list(request):
|
||||
return windcclient(request).environments.list()
|
||||
|
||||
def datacenters_deploy(request, datacenter_id):
|
||||
session_id = windcclient(request).sessions.list(datacenter_id)[0].id
|
||||
return windcclient(request).sessions.deploy(datacenter_id, session_id)
|
||||
|
||||
def services_create(request, datacenter, parameters):
|
||||
return windcclient(request).services.create(datacenter, parameters)
|
||||
LOG.critical("////////////////////////////////")
|
||||
LOG.critical(parameters)
|
||||
LOG.critical("////////////////////////////////")
|
||||
session_id = windcclient(request).sessions.list(datacenter)[0].id
|
||||
if parameters['service_type'] == 'active directory':
|
||||
res = windcclient(request).activeDirectories.create(datacenter, session_id, parameters)
|
||||
else:
|
||||
res = windcclient(request).webServers.create(datacenter, session_id, parameters)
|
||||
|
||||
return res
|
||||
|
||||
|
||||
def services_list(request, datacenter):
|
||||
LOG.critical("********************************")
|
||||
LOG.critical(dir(windcclient(request)))
|
||||
LOG.critical("********************************")
|
||||
def services_list(request, datacenter_id):
|
||||
session_id = request.user.token.token['id']
|
||||
services = []
|
||||
services += windcclient(request).activeDirectories.list(datacenter, session_id)
|
||||
#services += windcclient(request).webServers.list(datacenter)
|
||||
|
||||
sessions = windcclient(request).sessions.list(datacenter_id)
|
||||
for s in sessions:
|
||||
if s.state == 'open':
|
||||
windcclient(request).sessions.delete(datacenter_id, s.id)
|
||||
|
||||
session_id = windcclient(request).sessions.configure(datacenter_id).id
|
||||
services = windcclient(request).activeDirectories.list(datacenter_id, session_id)
|
||||
services += windcclient(request).webServers.list(datacenter_id, session_id)
|
||||
|
||||
return services
|
||||
|
||||
|
@ -38,9 +38,9 @@ LOG = logging.getLogger(__name__)
|
||||
class WizardFormServiceType(forms.Form):
|
||||
service = forms.ChoiceField(label=_("Service Type"),
|
||||
choices=[
|
||||
('active directory', 'Active Directory'),
|
||||
('iis', 'Internet Information Services')
|
||||
])
|
||||
('active directory', 'Active Directory'),
|
||||
('iis', 'Internet Information Services')
|
||||
])
|
||||
|
||||
|
||||
class WizardFormConfiguration(forms.Form):
|
||||
@ -59,21 +59,18 @@ class WizardFormADConfiguration(forms.Form):
|
||||
initial=1)
|
||||
|
||||
adm_password = forms.CharField(widget=forms.PasswordInput,
|
||||
label=_("Administrator password"),
|
||||
required=False)
|
||||
label=_("Administrator password"), required=False)
|
||||
|
||||
recovery_password = forms.CharField(widget=forms.PasswordInput,
|
||||
label=_("Recovery password"),
|
||||
required=False)
|
||||
|
||||
label=_("Recovery password"), required=False)
|
||||
|
||||
|
||||
class WizardFormIISConfiguration(forms.Form):
|
||||
iis_name = forms.CharField(label=_("IIS Server Name"),
|
||||
required=False)
|
||||
|
||||
|
||||
adm_password = forms.CharField(widget=forms.PasswordInput,
|
||||
label=_("Administrator password"),
|
||||
required=False)
|
||||
label=_("Administrator password"), required=False)
|
||||
|
||||
iis_count = forms.IntegerField(label=_("IIS Servers Count"),
|
||||
required=True,
|
||||
@ -83,14 +80,13 @@ class WizardFormIISConfiguration(forms.Form):
|
||||
|
||||
iis_domain = forms.CharField(label=_("Member of the Domain"),
|
||||
required=False)
|
||||
|
||||
|
||||
domain_user_name = forms.CharField(label=_("Domain User Name"),
|
||||
required=False)
|
||||
|
||||
required=False)
|
||||
|
||||
domain_user_password = forms.CharField(widget=forms.PasswordInput,
|
||||
label=_("Domain User Password"),
|
||||
required=False)
|
||||
|
||||
label=_("Domain User Password"), required=False)
|
||||
|
||||
|
||||
class UpdateWinDC(forms.SelfHandlingForm):
|
||||
tenant_id = forms.CharField(widget=forms.HiddenInput)
|
||||
|
@ -102,6 +102,23 @@ class DeleteService(tables.BatchAction):
|
||||
##############
|
||||
|
||||
api.windc.services_delete(request, datacenter_id, service_id)
|
||||
|
||||
|
||||
class DeployDataCenter(tables.BatchAction):
|
||||
name = "deploy"
|
||||
action_present = _("Deploy")
|
||||
action_past = _("Deploy")
|
||||
data_type_singular = _("Data Center")
|
||||
data_type_plural = _("Data Center")
|
||||
classes = ("btn-launch")
|
||||
|
||||
def allowed(self, request, datum):
|
||||
return True
|
||||
|
||||
def action(self, request, datacenter_id):
|
||||
#link = request.__dict__['META']['HTTP_REFERER']
|
||||
#datacenter_id = re.search('windc/(\S+)', link).group(0)[6:-1]
|
||||
return api.windc.datacenters_deploy(request, datacenter_id)
|
||||
|
||||
|
||||
class EditService(tables.LinkAction):
|
||||
@ -143,7 +160,8 @@ class WinDCTable(tables.DataTable):
|
||||
verbose_name = _("Windows Data Centers")
|
||||
row_class = UpdateRow
|
||||
table_actions = (CreateDataCenter,)
|
||||
row_actions = (ShowDataCenterServices, DeleteDataCenter)
|
||||
row_actions = (ShowDataCenterServices, DeleteDataCenter,
|
||||
DeployDataCenter)
|
||||
|
||||
|
||||
STATUS_DISPLAY_CHOICES = (
|
||||
|
@ -7,6 +7,11 @@
|
||||
{% block modal-header %}{% trans "Create Service" %}{% endblock %}
|
||||
|
||||
{% block modal-body %}
|
||||
<div class="left">
|
||||
<br>
|
||||
{% if wizard.steps.next %}
|
||||
<br><br><br>
|
||||
{% endif %}
|
||||
<table>
|
||||
{{ wizard.management_form }}
|
||||
{% if wizard.form.forms %}
|
||||
@ -19,6 +24,29 @@
|
||||
{% endif %}
|
||||
{{ wizard.form.forms }}
|
||||
</table>
|
||||
</div>
|
||||
<div class="right">
|
||||
{% if wizard.steps.prev %}
|
||||
{% if service_type == 'active directory' %}
|
||||
<H3>Active Directory Service</H3>
|
||||
<p>{% trans "Now you can set the parameters for Active Directory Service." %}</p>
|
||||
<p>{% trans "You can create few Active Directory instances, in this case will be created one Main Active Directory server and few Secondary Active Directory servers." %}</p>
|
||||
<p>{% trans "The DNS service will be automatically created on each Active Directory servers." %}</p>
|
||||
{% else %}
|
||||
<H3>Internet Information Services</H3>
|
||||
<p>{% trans "Now you can set parameters for IIS Service." %}</p>
|
||||
<p>{% trans "The IIS Service - it is the server with complex IIS infrastructure, which included to the domain infrasructure." %}</p>
|
||||
<p>{% trans "Please, set the complex password for local administrator account." %}</p>
|
||||
<p>{% trans "Also, you can add this IIS server to the existing domain and configure credentials for domain user." %}</p>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<h3>{% trans "Description" %}:</h3>
|
||||
<p>{% trans "Now you can select the type of the service." %}</p>
|
||||
<p>{% trans "The Active Directory Service allows to configure Domain Controllers with Active Directory and DNS infrastructure. You can create one Main Domain Controller and few Secondary Domain Controllers." %}</p>
|
||||
<p>{% trans "The Internet Information Services allows to configure IIS servers, which can be included to the existing domain infrastructure." %}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-footer %}
|
||||
|
@ -28,7 +28,7 @@ VIEW_MOD = 'openstack_dashboard.dashboards.project.windc.views'
|
||||
|
||||
urlpatterns = patterns(VIEW_MOD,
|
||||
url(r'^$', IndexView.as_view(), name='index'),
|
||||
url(r'^create$',
|
||||
url(r'^create$',
|
||||
Wizard.as_view([WizardFormServiceType, WizardFormConfiguration]),
|
||||
name='create'),
|
||||
url(r'^create_dc$', CreateWinDCView.as_view(), name='create_dc'),
|
||||
|
@ -58,31 +58,35 @@ class Wizard(ModalFormMixin, SessionWizardView, generic.FormView):
|
||||
link = self.request.__dict__['META']['HTTP_REFERER']
|
||||
datacenter_id = re.search('windc/(\S+)', link).group(0)[6:-1]
|
||||
url = "/project/windc/%s/" % datacenter_id
|
||||
|
||||
|
||||
service_type = form_list[0].data.get('0-service', '')
|
||||
parameters = {}
|
||||
if form_list[1].data:
|
||||
data = form_list[1].data
|
||||
|
||||
parameters = {'service_type': service_type}
|
||||
|
||||
if service_type == 'active directory':
|
||||
parameters['dc_name'] = str(data.get('1-dc_name', 'noname'))
|
||||
parameters['adm_password'] = str(data.get('1-adm_password', ''))
|
||||
parameters['dc_count'] = int(data.get('1-dc_count', 1))
|
||||
parameters['recovery_password'] = \
|
||||
str(data.get('1-recovery_password', ''))
|
||||
parameters['configuration'] = 'standalone'
|
||||
parameters['name'] = str(form_list[1].data.get('1-dc_name', 'noname'))
|
||||
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['units'] = []
|
||||
parameters['units'].append({'isMaster': True, 'recoveryPassword': recovery_password,
|
||||
'location': 'west-dc'})
|
||||
for dc in range(dc_count-1):
|
||||
parameters['units'].append({'isMaster': False, 'recoveryPassword': recovery_password,
|
||||
'location': 'west-dc'})
|
||||
|
||||
elif service_type == 'iis':
|
||||
parameters['iis_name'] = str(data.get('1-iis_name', 'noname'))
|
||||
parameters['adm_password'] = str(data.get('1-adm_password', ''))
|
||||
parameters['iis_count'] = int(data.get('1-iis_count', 1))
|
||||
parameters['iis_domain'] = str(data.get('1-iis_domain', ''))
|
||||
parameters['domain_user_name'] = \
|
||||
str(data.get('1-domain_user_name', ''))
|
||||
parameters['domain_user_password'] = \
|
||||
str(data.get('1-domain_user_password', ''))
|
||||
parameters['name'] = str(form_list[1].data.get('1-iis_name', 'noname'))
|
||||
parameters['credentials'] = {'username': 'Administrator',
|
||||
'password': str(form_list[1].data.get('1-adm_password', ''))}
|
||||
parameters['domain'] = {'name': str(form_list[1].data.get('1-iis_domain', '')),
|
||||
'username': str(form_list[1].data.get('1-domain_user_name', '')),
|
||||
'password': str(form_list[1].data.get('1-domain_user_password', ''))}
|
||||
parameters['location'] = 'west-dc'
|
||||
|
||||
service = api.windc.services_create(self.request,
|
||||
datacenter_id,
|
||||
parameters)
|
||||
parameters)
|
||||
|
||||
message = "The %s service successfully created." % service_type
|
||||
messages.success(self.request, message)
|
||||
@ -93,13 +97,23 @@ class Wizard(ModalFormMixin, SessionWizardView, generic.FormView):
|
||||
LOG.debug("********" + str(self.form_list))
|
||||
if data:
|
||||
service_type = data.get('0-service', '')
|
||||
|
||||
self.service_type = service_type
|
||||
if service_type == 'active directory':
|
||||
self.form_list['1'] = WizardFormADConfiguration
|
||||
elif service_type == 'iis':
|
||||
self.form_list['1'] = WizardFormIISConfiguration
|
||||
|
||||
return form
|
||||
|
||||
def get_form_step_data(self, form):
|
||||
LOG.debug(form.data)
|
||||
return form.data
|
||||
|
||||
def get_context_data(self, form, **kwargs):
|
||||
context = super(Wizard, self).get_context_data(form=form, **kwargs)
|
||||
if self.steps.index > 0:
|
||||
context.update({'service_type': self.service_type})
|
||||
return context
|
||||
|
||||
|
||||
class IndexView(tables.DataTableView):
|
||||
@ -132,7 +146,7 @@ class WinServices(tables.DataTableView):
|
||||
dc_id = self.kwargs['data_center_id']
|
||||
datacenter = api.windc.datacenters_get(self.request, dc_id)
|
||||
self.dc_name = datacenter.name
|
||||
services = api.windc.services_list(self.request, datacenter)
|
||||
services = api.windc.services_list(self.request, dc_id)
|
||||
except:
|
||||
services = []
|
||||
exceptions.handle(self.request,
|
||||
|
Loading…
x
Reference in New Issue
Block a user