[ 
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)

Reply via email to