Add fields from manifest to ui forms
Add ui forms to separate directory for each service Change-Id: Id49510755b9db5468de99a414d0a9e548af765b2
This commit is contained in:
parent
bcbb86fd32
commit
e1ff9579dd
@ -30,8 +30,9 @@ heat = heat_templates
|
|||||||
agent = agent_templates
|
agent = agent_templates
|
||||||
scripts = scripts
|
scripts = scripts
|
||||||
|
|
||||||
# Configure archive structure
|
# Configure client archive structure
|
||||||
# data_type = desired folder
|
# Format: data_type = desired folder
|
||||||
|
# ui parameter is not actually used, but is kept to not break things apart
|
||||||
[output]
|
[output]
|
||||||
ui = service_forms
|
ui = service_forms
|
||||||
workflows = workflows
|
workflows = workflows
|
||||||
|
@ -1,11 +1,3 @@
|
|||||||
name: Active Directory
|
|
||||||
type: activeDirectory
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> The Active Directory Service </strong>
|
|
||||||
includes one primary and optionally a few secondary
|
|
||||||
Domain Controllers, with DNS
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- isMaster: true
|
- isMaster: true
|
||||||
recoveryPassword: {YAQL: $.serviceConfiguration.recoveryPassword}
|
recoveryPassword: {YAQL: $.serviceConfiguration.recoveryPassword}
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
name: ASP.NET Application
|
|
||||||
type: aspNetApp
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> The ASP.NET Application Service </strong> installs
|
|
||||||
custom application onto one IIS Web Server
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- {}
|
- {}
|
||||||
|
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
name: ASP.NET Application Web Farm
|
|
||||||
type: aspNetAppFarm
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> The ASP.NET Farm Service </strong> installs a custom application
|
|
||||||
on a load-balanced array of IIS servers
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- {}
|
- {}
|
||||||
|
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
name: Demo Service
|
|
||||||
type: demoService
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> Demo Service </strong>
|
|
||||||
shows how Murano is working.
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- {}
|
- {}
|
||||||
|
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
name: Linux Apache
|
|
||||||
type: linuxApacheService
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> Linux Apache Service </strong>
|
|
||||||
Demonstrates a linux agent, which installs Apache web server.
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- {}
|
- {}
|
||||||
|
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
name: Linux Telnet
|
|
||||||
type: linuxTelnetService
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> Linux Telnet Service </strong>
|
|
||||||
Demonstrates a simple linux agent, which installs Telnet if required.
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- {}
|
- {}
|
||||||
|
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
name: MS SQL Server Cluster
|
|
||||||
type: msSqlClusterServer
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> The MS SQL Failover Cluster </strong> installs
|
|
||||||
Microsoft SQL Failover Cluster Server
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- isMaster: true
|
- isMaster: true
|
||||||
isSync: true
|
isSync: true
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
name: MS SQL Server
|
|
||||||
type: msSqlServer
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> The MS SQL Service </strong> installs an instance of
|
|
||||||
Microsoft SQL Server
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- {}
|
- {}
|
||||||
|
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
name: Internet Information Services
|
|
||||||
type: webServer
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> The Internet Information Service </strong>
|
|
||||||
sets up an IIS server and joins it into an existing domain
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- {}
|
- {}
|
||||||
|
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
name: Internet Information Services Web Farm
|
|
||||||
type: webServerFarm
|
|
||||||
|
|
||||||
description: >-
|
|
||||||
<strong> The IIS Farm Service </strong> sets up a load-balanced set of IIS servers
|
|
||||||
|
|
||||||
unitTemplates:
|
unitTemplates:
|
||||||
- {}
|
- {}
|
||||||
|
|
||||||
|
@ -26,3 +26,7 @@ CLIENTS_DICT = {'conductor': (WORKFLOW, HEAT, AGENT, SCRIPTS),
|
|||||||
'ui': (UI,)}
|
'ui': (UI,)}
|
||||||
|
|
||||||
ARCHIVE_PKG_NAME = 'data.tar.gz'
|
ARCHIVE_PKG_NAME = 'data.tar.gz'
|
||||||
|
|
||||||
|
UI_FIELDS_IN_MANIFEST = {'description': 'description',
|
||||||
|
'type': 'full_service_name',
|
||||||
|
'name': 'service_display_name'}
|
||||||
|
@ -17,9 +17,12 @@ import tarfile
|
|||||||
import tempfile
|
import tempfile
|
||||||
import shutil
|
import shutil
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import yaml
|
||||||
import logging as log
|
import logging as log
|
||||||
from oslo.config import cfg
|
from oslo.config import cfg
|
||||||
|
from .parser import serialize
|
||||||
from muranorepository.consts import DATA_TYPES, ARCHIVE_PKG_NAME
|
from muranorepository.consts import DATA_TYPES, ARCHIVE_PKG_NAME
|
||||||
|
from muranorepository.consts import UI, UI_FIELDS_IN_MANIFEST
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
CHUNK_SIZE = 1 << 20 # 1MB
|
CHUNK_SIZE = 1 << 20 # 1MB
|
||||||
@ -138,6 +141,24 @@ class Archiver(object):
|
|||||||
os.mkdir(pkg_dir)
|
os.mkdir(pkg_dir)
|
||||||
return pkg_dir
|
return pkg_dir
|
||||||
|
|
||||||
|
def _compose_ui_forms(self, manifest, ui_definitions, src, dst):
|
||||||
|
"""
|
||||||
|
Extends ui_forms before sending to client.
|
||||||
|
Some parameters defined UI_FIELDS_IN_MANIFEST that are required
|
||||||
|
for ui forms are specified in manifest.
|
||||||
|
"""
|
||||||
|
new_dst = os.path.join(os.path.dirname(dst),
|
||||||
|
manifest.full_service_name)
|
||||||
|
if not os.path.exists(new_dst):
|
||||||
|
os.makedirs(new_dst)
|
||||||
|
for file in ui_definitions:
|
||||||
|
with open(os.path.join(src, file)) as ui_form:
|
||||||
|
content = yaml.load(ui_form)
|
||||||
|
for ui_name, manifest_name in UI_FIELDS_IN_MANIFEST.iteritems():
|
||||||
|
content[ui_name] = getattr(manifest, manifest_name)
|
||||||
|
with open(os.path.join(new_dst, file), 'w') as ui_form:
|
||||||
|
ui_form.write(serialize(content))
|
||||||
|
|
||||||
def get_existing_hash(self, cache_dir):
|
def get_existing_hash(self, cache_dir):
|
||||||
existing_caches = os.listdir(cache_dir)
|
existing_caches = os.listdir(cache_dir)
|
||||||
if not len(existing_caches):
|
if not len(existing_caches):
|
||||||
@ -190,7 +211,13 @@ class Archiver(object):
|
|||||||
CONF.manifests, self.src_directories[data_type])
|
CONF.manifests, self.src_directories[data_type])
|
||||||
dst_directory = os.path.join(
|
dst_directory = os.path.join(
|
||||||
temp_dir, self.dst_directories[data_type])
|
temp_dir, self.dst_directories[data_type])
|
||||||
self._copy_data(file_list, scr_directory, dst_directory)
|
if data_type == UI:
|
||||||
|
self._compose_ui_forms(manifest, file_list,
|
||||||
|
scr_directory, dst_directory)
|
||||||
|
else:
|
||||||
|
self._copy_data(file_list,
|
||||||
|
scr_directory,
|
||||||
|
dst_directory)
|
||||||
else:
|
else:
|
||||||
log.info(
|
log.info(
|
||||||
'Manifest for {0} service has no file definitions for '
|
'Manifest for {0} service has no file definitions for '
|
||||||
|
Loading…
x
Reference in New Issue
Block a user