[
https://issues.apache.org/jira/browse/AMBARI-3548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dmitry Lysnichenko updated AMBARI-3548:
---------------------------------------
Attachment: AMBARI-3548_preview.patch
I've published preliminary version of patch. It seems to work (both for
old-style and new-style services), but is not fully covered by unittests.
Patch defines separate stack version (2.0._) that contains custom service
definitions, to prevent breaking 2.0.6 stack until pluggable services are ready.
Command definition format is based on Sumit's proposal with minor differences:
- renamed osSpecificPackages/osSpecificPackage to osSpecifics/osSpecific to
better reflect contents
- user field is not defined and used at schema ver 2 metainfo.xml
Changes to ExecutionCommand format:
- 'commandParams' map now contains mandatory 'schema_version' field (the value
is '2.0' for commands for custom services and '1.0' otherwise)
- 'commandParams' map now contains 'command_timeout' field (as of now, it is
only initialised for execution commands for custom services, wider usage will
be introduced by another jira)
- 'commandParams' map now contains 'script' field with value like
'scripts/hbase_master.py' for commands for custom services.
- 'commandParams' map now contains 'script_type' field with value like 'PYTHON'
for commands for custom services.
- 'commandParams' map now contains 'service_metadata_folder' field with value
like 'HBASE' for commands for custom services. This value is needed by an agent
to be able to download service metadata from the server, because single service
folder may now contain metadata and files for multiple services.
- 'hostLevelParams' map now contains 'stack_name' field.
- 'hostLevelParams' map now contains optional 'service_repo_info' field (with
repository list for custom services). Field contains only relevant to host OS
information
- 'hostLevelParams' map now contains 'package_list' field (with list of
packages for custom services). Field contains only relevant to host OS
information
also, patch contains some overall refactorings and fixes.
> Changes to stacks definitions to allow custom services support (needed by an
> ambari-agent)
> ------------------------------------------------------------------------------------------
>
> Key: AMBARI-3548
> URL: https://issues.apache.org/jira/browse/AMBARI-3548
> Project: Ambari
> Issue Type: Bug
> Components: controller
> Affects Versions: 1.5.0
> Reporter: Dmitry Lysnichenko
> Assignee: Dmitry Lysnichenko
> Fix For: 1.5.0
>
> Attachments: AMBARI-3548_preview.patch, hbase_new_metainfo.json,
> hbase_new_metainfo.xml, hbase_old_metainfo.xml, new-style-command-dump.txt,
> service_metainfo_changes.patch
>
>
> Stack definitions for custom services should contain fields:
> - service metadata
> -- list of repositories
> - component metadata should contain fields:
> -- scriptType (possible values: "python", "puppet")
> -- taskTimeout (per-component value)
> Except metadata files, custom service directory should contain:
> - script directory that contains separate python files for components (e.g.
> namenode.py, datanode.py etc.) and service.py file.
> - a separate directory for templates
> Patch is so large because I've created a separate stack dir with modified
> HBase metadata.
--
This message was sent by Atlassian JIRA
(v6.1#6144)