From d516de57ad6d9df8aed9217cf74d33d7d4a60646 Mon Sep 17 00:00:00 2001
From: Scott Little <scott.little@windriver.com>
Date: Wed, 1 Aug 2018 12:21:55 -0400
Subject: [PATCH] Relocate wrs-branding to stx-integ/utilities/branding

Move content from stx-utils into stx-integ or stx-update

Packages will be relocated to

stx-update:
    enable-dev-patch
    extras

stx-integ:
    config-files/
        io-scheduler

    filesystem/
        filesystem-scripts

    grub/
        grubby

    logging/
        logmgmt

    tools/
        collector
        monitor-tools

    tools/engtools/
        hostdata-collectors
        parsers

    utilities/
        build-info
        branding   (formerly wrs-branding)
        platform-util

Change-Id: I40b3c3cdd4a8e7b93f2436ff1c1d4c37317a1bf2
Story: 2002801
Task: 22687
Signed-off-by: Scott Little <scott.little@windriver.com>
---
 centos_pkg_dirs                               |   1 +
 utilities/branding/LICENSE                    | 202 ++++++++++++++++++
 utilities/branding/centos/build_srpm.data     |   2 +
 utilities/branding/centos/wrs-branding.spec   |  28 +++
 utilities/branding/sources/LICENSE            | 202 ++++++++++++++++++
 utilities/branding/sources/horizon/README     |  74 +++++++
 .../sources/horizon/sample_branding.tgz       | Bin 0 -> 11874 bytes
 .../branding/sources/login-banner/README      | 132 ++++++++++++
 .../sources/login-banner/sample_banner.tgz    | Bin 0 -> 963 bytes
 9 files changed, 641 insertions(+)
 create mode 100644 utilities/branding/LICENSE
 create mode 100755 utilities/branding/centos/build_srpm.data
 create mode 100755 utilities/branding/centos/wrs-branding.spec
 create mode 100644 utilities/branding/sources/LICENSE
 create mode 100755 utilities/branding/sources/horizon/README
 create mode 100755 utilities/branding/sources/horizon/sample_branding.tgz
 create mode 100755 utilities/branding/sources/login-banner/README
 create mode 100644 utilities/branding/sources/login-banner/sample_banner.tgz

diff --git a/centos_pkg_dirs b/centos_pkg_dirs
index e6e633552..6d86ffae2 100644
--- a/centos_pkg_dirs
+++ b/centos_pkg_dirs
@@ -109,3 +109,4 @@ kubernetes/docker-distribution
 kubernetes/helm
 logging/logmgmt
 filesystem/filesystem-scripts
+utilities/branding
diff --git a/utilities/branding/LICENSE b/utilities/branding/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/utilities/branding/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
diff --git a/utilities/branding/centos/build_srpm.data b/utilities/branding/centos/build_srpm.data
new file mode 100755
index 000000000..188f58ba0
--- /dev/null
+++ b/utilities/branding/centos/build_srpm.data
@@ -0,0 +1,2 @@
+SRC_DIR="sources"
+TIS_PATCH_VER=6
diff --git a/utilities/branding/centos/wrs-branding.spec b/utilities/branding/centos/wrs-branding.spec
new file mode 100755
index 000000000..5ce029832
--- /dev/null
+++ b/utilities/branding/centos/wrs-branding.spec
@@ -0,0 +1,28 @@
+Summary: Titanium Cloud Branding Information
+Name: wrs-branding
+Version: 4.0.0
+Release: %{tis_patch_ver}%{?_tis_dist}
+License: Apache-2.0
+Group: base
+Packager: Wind River <info@windriver.com>
+URL: unknown
+
+Source0: %{name}-%{version}.tar.gz
+
+%define cgcs_sdk_deploy_dir /opt/deploy/cgcs_sdk
+
+%description
+Titanium Cloud Branding allows alternate branding to be used for Horizon
+in place of the default included with Titanium Cloud.
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/%{cgcs_sdk_deploy_dir}
+install -m 644 %{SOURCE0} $RPM_BUILD_ROOT/%{cgcs_sdk_deploy_dir}/%{name}-%{version}.tgz
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%{cgcs_sdk_deploy_dir}
diff --git a/utilities/branding/sources/LICENSE b/utilities/branding/sources/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/utilities/branding/sources/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
diff --git a/utilities/branding/sources/horizon/README b/utilities/branding/sources/horizon/README
new file mode 100755
index 000000000..fda4d4983
--- /dev/null
+++ b/utilities/branding/sources/horizon/README
@@ -0,0 +1,74 @@
+Copyright © 2014-2017 Wind River Systems, Inc.
+
+SPDX-License-Identifier: Apache-2.0
+-----------------------------------------------------------------------
+
+
+Titanium Cloud Custom Branding
+-------------------------------
+
+Custom branding for the Titanium Cloud is achieved through the creation and application
+of a tarball containing a customized horizon theme and associated branding files
+
+
+Creating a Custom Branding Tarball
+----------------------------------
+
+The tarball containing the customized branding files must be of the extension .tgz; its 
+file name has no constraints.  'sample_branding.tgz' has been included as an example of 
+the end result.  Please note that branding tarballs created for previous releases of
+Titanium Cloud are not forward-compatible, and must be recreated to accommodate the
+latest branding styles present in Horizon.  An example of how to compress an existing
+theme would be to do the following from inside the branding's root directory:
+    tar czf new_branding.tgz *
+
+Two types of items are required in the branding tarball:
+    1) The contents of a valid horizon theme directory as documented here:
+           docs.openstack.org/developer/horizon/topics/customizing.html
+       i.e. in the top level of the tarball are the theme folders 'static' and 'templates' (if used).
+       Both the default and material themes included with horizon are available to be
+       inherited from if desired.  Note that when referencing assets included in the custom theme,
+       the theme name will be 'custom'.
+
+       To base the new theme off of the standard titanium cloud theme, or to view an example
+       of how the tarball should be formatted, refer to the example tarball named
+       sample_branding.tgz included with this SDK.
+
+	2) Also in the top level of the tarball, a file named manifest.py which is used to overwrite the default
+       horizon settings used by Titanium Cloud.  A description of its contents are as follows:
+
+	       SITE_BRANDING is the name that will be used in the site title, note that there are
+	       other occurrences of the branding name that must be changed directly in the templates,
+
+	       HORIZON_CONFIG["help_url"] is the link that the help button will redirect
+           users to, note that the knowledge library url must also be changed directly in
+           the template,
+
+	       Sample entries for these variables are shown below:
+
+               SITE_BRANDING = "Sample System Name"
+               HORIZON_CONFIG["help_url"] = "http://www.windriver.com/support/"
+
+
+Applying a Custom Branding Tarball
+----------------------------------
+
+This branding tarball can be applied at various stages, the steps for each stage are 
+described below:
+
+	1) Before running config_controller
+		i) Copy the branding tarball to the /opt/branding directory, once config_controller 
+           is run this branding will be automatically used by horizon
+		
+	2) After running config_controller
+		i)   If a previous branding tarball was already in use, 
+             delete it from /opt/branding,
+		ii)  Copy the new branding tarball to the /opt/branding directory on the 
+             active controller,
+		iii) Execute the command 
+                 sudo service horizon restart 
+             this will process the new branding files on the active controller,
+		iv)  Lock the inactive controller,
+		v)   Unlock the inactive controller.
+             lock and unlock can coincide with login banner customization, see
+             also README.banner
diff --git a/utilities/branding/sources/horizon/sample_branding.tgz b/utilities/branding/sources/horizon/sample_branding.tgz
new file mode 100755
index 0000000000000000000000000000000000000000..59aba8614cc5f5a59cafc95a2f9aead754a489bf
GIT binary patch
literal 11874
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

literal 0
HcmV?d00001

diff --git a/utilities/branding/sources/login-banner/README b/utilities/branding/sources/login-banner/README
new file mode 100755
index 000000000..52ae11fd5
--- /dev/null
+++ b/utilities/branding/sources/login-banner/README
@@ -0,0 +1,132 @@
+Copyright (c) 2016 Wind River Systems, Inc.
+
+SPDX-License-Identifier: Apache-2.0
+--------------------------------------------------------------------
+
+Titanium Cloud Customization of Login Banner Files
+---------------------------------------------------
+
+This feature permits the customization of prelogin message (issue) and
+postlogin message of the day (motd) across the entire Titanium Cloud
+cluster.  It is a convenience feature that simplifies propagation of
+the customized files.
+
+Introduction
+------------
+
+See also 'man issue' and 'man motd'.
+
+The following files can be customized, and are treated by this feature:
+  /etc/issue      (login banner, console)
+  /etc/issue.net  (login banner, ssh)
+  /etc/motd.head  (message of the day, header)
+  /etc/motd.tail  (message of the day, footer)
+
+The following files are not customizable, because each is generated by
+software:
+  /etc/motd
+  /etc/sysinv/motd.system
+  /etc/platform/motd.license
+
+issue and issue.net are free standing files, while /etc/motd is
+generated from the following sources, in the following order:
+  /etc/motd.head
+  /etc/sysinv/motd.system
+  /etc/platform/motd.license
+  /etc/motd.tail
+
+The customization procedure during Titanium Cloud Installation and
+Commissioning is summarized as follows:
+  1) provide customization files
+  2) run 'config_controller'
+
+The customization procedure after config_controller is summarized
+as follows:
+  3) provide customization files
+  4) run 'apply_banner_customization'
+  5) lock/unlock each node
+
+Example tarball
+---------------
+
+sample_banner.tgz has been provided (adjacent to this README).
+Extract the tarball on the active controller to the directory
+/opt/banner, or as indicated in the following sections.
+
+The tarball contains examples of the four customizable login banner files.
+
+Procedure prior to config_controller
+------------------------------------
+
+When setting up a new cluster, immediately after the first controller
+boots and before running config_controller:
+
+1) Provide customization files
+
+To customize any of the four customizable banner files listed above,
+provide the new files in the following location:
+  /opt/banner/issue
+  /opt/banner/issue.net
+  /opt/banner/motd.head
+  /opt/banner/motd.tail
+
+I.e.,
+  sudo mkdir -p /opt/banner
+  sudo tar xf sample_banner.tgz -C /opt/banner
+
+Each file is customized individually;  Edit or remove these files in
+/opt/banner according to requirements.
+
+2) Run config_controller
+
+When config_controller is run these files are moved from /opt/banner
+to configuration storage and are applied to the controller node as it is
+initialized.  All nodes in the cluster which are subsequently configured
+will retrieve these custom banners as well.
+
+Note:
+In the event that an error is reported for the banner customization,
+customization can be repeated after config_controller using the
+following 'Procedure after deployment'; errors for customization do not
+impact config_controller.
+
+Procedure after deployment
+--------------------------
+Customization can be performed any time after deployment:
+
+1) Login to the active controller
+2) Switch to root user, i.e., 'sudo bash'
+3) Provide any of the customized banner files in /opt/banner, or another
+   directory:
+  /opt/banner/issue
+  /opt/banner/issue.net
+  /opt/banner/motd.head
+  /opt/banner/motd.tail
+4) Apply the customization, execute:
+       'apply_banner_customization /opt/banner', or
+       'apply_banner_customization <your path>'
+
+   The default path, if no parameter is specified, is the current
+   working directory, i.e.,
+       'apply_banner_customization $(pwd)'
+
+   The banners are applied to configuration and installed on the
+   current node, active controller.
+
+5) Lock and unlock other nodes in the cluster, either from the CLI or
+   the GUI, to install the customization on each node.  Lock and unlock
+   can coincide with horizon branding procedure; see also adjacent
+   ../horizon/README for horizon branding.
+
+   All subsequent newly added nodes will automatically get the banner
+   customization.
+
+Manual Restoration
+------------------
+
+Replaced versions of banner files can be retrieved at the user's
+discretion from each node in the cluster, from the directory:
+  /opt/banner.bk
+
+A maximum of 10 versions of each file are maintained, with the oldest
+versions replaced only when the count reaches 10.
diff --git a/utilities/branding/sources/login-banner/sample_banner.tgz b/utilities/branding/sources/login-banner/sample_banner.tgz
new file mode 100644
index 0000000000000000000000000000000000000000..c6bfad919a01483be0a0de53b6d75e3911a176a4
GIT binary patch
literal 963
zcmV;!13dg6iwFS3xG+}$1MOE^j~X`==GlKCFXypck<rXB>`Hy3DNSgz7qO&KwTU9*
zIe?oPo7x_B$*=FRxh$ZzD@B2{kw0;p;oL9&Kw8^i>$pe>=S4y9MV_Xazs@?{i*TQi
zpQmXn%P+Db>lA5m-b%BqDDoDhM~*9?v5p&nR_$guM&A6BoR~U$ig-?pXLqlj-Q~Zq
zAy&vO!o$PE&FkLi=j-9+hhhJ9zjxcGTkuZ7yNW&kLSS#92Sd1m0X<*B+1VL<-kmQO
z(dgCS7U<D~o8jQM-lz{Rt}k!ijQT^k{rz^-zf9O@CM^hE&l`sZ?9w`{K`K!-rBqYk
zRRsns?yv;>vyt-}m1~1ScdyMyC~+YLTK1itqmUCRNPfAaK2T(pgn<hZv){LY8-%&h
z3t5sytw?&J4e-Xzw2`0aUSly~J#u>xl!clvVT@2~C7m`T8Z=3=;`fuLf_Y=++M;dm
z1mHA7WgBwpX57&WO5<GsW&P;19Zc0+@hSQQK~KEs+H>1mnQ$R1>8KDse22nGt$<It
zRMtVGb~0GyN~x-nG+}{8PL^O%G)B55BXxl#g+wA0*+MS(*qdGk1wBW@y=`7?RT8*d
z<?J(B<%SeKg|I-zo#W!8h4FH?ie$xVrLbB>5z?l_q?4pcK{=$TDd%-?B)~S__LEQG
zrzZHVw;}lYQoZUB=B6w7z-y_fl+2*eru0P>dM<rEROo7X*y&Bb67cQbwYlvdTjjy`
zzHY<3;v$TXPr-(UQ6dyIb#*<$hr^P<8*;@$Zd<ALZa8FWw~ao0YOQoMgEoBjeyDVh
zg*dQAF4X=YhbU|_{)5H^mb&rk!bmC<Wkhq}OYSpDSl=&%66lN1l~)q8{i*Wigsv(w
zMOWovQ#J|vLbFillH5q^{4_1F{pgpz)6`!tK}930Jj`+^5bS5fo-9G=DOn@cZ95tJ
z+ULLY{GZUdb3`9c@qhO`-|&CuBJB|W=Xs|a`TrF7cixYT9~nO~eq{W}_}>oW@1xeP
zOlHW-Bl>uP|I<!ZZ2$k~S=aM_*6l?8KLs}b|KIk8SA(mUKkTpR>a-4L;?D6wpJ=kj
zvZSpH2iU!&Gir=%v$dp2CoVBh0zWR-MgrmNo-Tgn`PAT=edyA#)wcZ&o5{)H!V??$
zKy2gLl|26EHtYX^u>X$B>WDs`+J8C#w)>x5g#FLcBJTewaQC933J~F?@Em@nA9;?q
l;ri-*T&9SKh=_=Yh=_=Yh=_=Yh=^|ke*x=VvTOh-000~4{;U81

literal 0
HcmV?d00001