# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # 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. Namespaces: =: io.murano.apps.activeDirectory std: io.murano sys: io.murano.system Name: ActiveDirectory Extends: std:Application Properties: name: Contract: $.string().notNull() primaryController: Contract: $.class(PrimaryController).notNull() secondaryControllers: Contract: [$.class(SecondaryController).notNull()] adminAccountName: Contract: $.string().notNull() Default: Administrator adminPassword: Contract: $.string().notNull() Methods: .init: Body: - $._environment: $.find(std:Environment).require() deploy: Body: - $.resources: new(sys:Resources) - If: $.getAttr(domainDeployed, false) Then: - Return: - $._environment.reporter.report($this, 'Starting Active Directory deployment') - $securityGroupIngress: $.resources.json('DomainSecurity.json') - $._environment.securityGroupManager.addGroupIngress($securityGroupIngress) - $.primaryController.deploy() - $.secondaryControllers.pselect($.deploy()) - $._environment.reporter.report($this, 'MS Active Directory is deployed') - $.reportDeployed(title => 'MS Active Directory', unitCount => len($.secondaryControllers) + 1) - $.setAttr(domainDeployed, true) destroy: Body: - $.reportDestroyed() - $.setAttr(domainDeployed, false)