Repository: incubator-hawq
Updated Branches:
  refs/heads/master 2c4502158 -> 8a31ac47b


HAWQ-1045. PXF RPM updates to support future side by side install for HAWQ 
upgrade


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/8a31ac47
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/8a31ac47
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/8a31ac47

Branch: refs/heads/master
Commit: 8a31ac47be816a1e6c6f7db272365c33873e66f2
Parents: 2c45021
Author: Shivram Mani <[email protected]>
Authored: Fri Sep 23 13:58:22 2016 -0700
Committer: Shivram Mani <[email protected]>
Committed: Fri Sep 23 13:58:22 2016 -0700

----------------------------------------------------------------------
 .../main/resources/services/PXF/metainfo.xml    | 19 +-----
 pxf/build.gradle                                | 63 ++++++++++++++------
 pxf/pxf-service/src/scripts/pxf-service         |  4 +-
 pxf/settings.gradle                             |  3 +-
 4 files changed, 51 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8a31ac47/contrib/hawq-ambari-plugin/src/main/resources/services/PXF/metainfo.xml
----------------------------------------------------------------------
diff --git 
a/contrib/hawq-ambari-plugin/src/main/resources/services/PXF/metainfo.xml 
b/contrib/hawq-ambari-plugin/src/main/resources/services/PXF/metainfo.xml
index e462538..fa82106 100755
--- a/contrib/hawq-ambari-plugin/src/main/resources/services/PXF/metainfo.xml
+++ b/contrib/hawq-ambari-plugin/src/main/resources/services/PXF/metainfo.xml
@@ -28,22 +28,7 @@
           <osFamily>any</osFamily>
           <packages>
             <package>
-              <name>pxf-service</name>
-            </package>
-            <package>
-              <name>apache-tomcat</name>
-            </package>
-            <package>
-              <name>pxf-hive</name>
-            </package>
-            <package>
-              <name>pxf-hdfs</name>
-            </package>
-            <package>
-              <name>pxf-hbase</name>
-            </package>
-            <package>
-              <name>pxf-json</name>
+              <name>pxf</name>
             </package>
           </packages>
         </osSpecific>
@@ -51,4 +36,4 @@
 
     </service>
   </services>
-</metainfo>
\ No newline at end of file
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8a31ac47/pxf/build.gradle
----------------------------------------------------------------------
diff --git a/pxf/build.gradle b/pxf/build.gradle
index a7f4610..a35b35a 100644
--- a/pxf/build.gradle
+++ b/pxf/build.gradle
@@ -48,6 +48,12 @@ if (hddist != 'phd' && hddist != 'hdp') {
     throw new GradleException("hadoop distribution parameter (hd) set to 
invalid value: $hddist")
 }
 
+// Some package names need to be renamed to include the version number
+// as part of the package name to enable side by side install of two versions 
of the same package.
+def versionedPackageName(packageName) {
+    packageName + "_" + "${version}".replace(".", "_")
+}
+
 subprojects { subProject ->
     group = 'org.apache.hawq.pxf'
     apply plugin: 'java'
@@ -191,6 +197,7 @@ project('pxf-service') {
     }
 
     ospackage {
+        packageName = versionedPackageName("${project.name}")
         summary = 'HAWQ Extension Framework (PXF), service REST API'
         description = 'Rest API for the HAWQ Extenstion framework'
         packager = ' '
@@ -246,12 +253,6 @@ project('pxf-service') {
             into "/etc/pxf-${project.version}/conf"
         }
 
-        from('src/scripts/pxf-service') {
-            fileMode 0755
-            addParentDirs false
-            into '/etc/init.d'
-        }
-
         from(war.outputs.files) {
             into "/usr/lib/pxf-${project.version}"
         }
@@ -263,13 +264,16 @@ project('pxf-service') {
         //tomcat configuration files
         from('src/configs/tomcat') {
             fileType CONFIG | NOREPLACE
-            into '/opt/pivotal/pxf/tomcat-templates'
+            into "/opt/pxf-${project.version}/tomcat-templates"
         }
 
-        link('/usr/lib/pxf', "/usr/lib/pxf-${project.version}")
+        from('src/scripts/pxf-service') {
+            fileMode 0755
+            addParentDirs false
+            into "/opt/pxf-${project.version}"
+        }
 
         link("/usr/lib/pxf-${project.version}/${project.name}.jar", 
"${project.name}-${project.version}.jar")
-        link('/etc/pxf', "pxf-${project.version}")
 
     }
 
@@ -283,6 +287,28 @@ project('pxf-service') {
     }
 }
 
+project('pxf') {
+    jar.enabled = false
+    ospackage {
+        summary = 'HAWQ Extension Framework (PXF)'
+        description = 'HAWQ Extension framework Virtual RPM'
+        packager = ' '
+        packageGroup = 'Development/Libraries'
+        release = buildNumber() + '.' + project.osFamily
+        buildHost = ' '
+
+        requires(versionedPackageName('pxf-hdfs'), project.version, GREATER | 
EQUAL)
+        requires(versionedPackageName('pxf-hive'), project.version, GREATER | 
EQUAL)
+        requires(versionedPackageName('pxf-hbase'), project.version, GREATER | 
EQUAL)
+        requires(versionedPackageName('pxf-json'), project.version, GREATER | 
EQUAL)
+
+        link('/usr/lib/pxf', "/usr/lib/pxf-${project.version}")
+        link('/etc/pxf', "/etc/pxf-${project.version}")
+        link('/opt/pxf', "/opt/pxf-${project.version}")
+        link('/etc/init.d/pxf-service', "/opt/pxf/pxf-service")
+    }
+}
+
 project('pxf-hdfs') {
     dependencies {
         compile(project(':pxf-api'))
@@ -293,6 +319,7 @@ project('pxf-hdfs') {
     }
 
     ospackage {
+        packageName = versionedPackageName("${project.name}")
         summary = 'HAWQ Extension Framework (PXF), HDFS plugin'
         description = 'Querying external data stored in HDFS'
         packager = ' '
@@ -300,7 +327,7 @@ project('pxf-hdfs') {
         release = buildNumber() + '.' + project.osFamily
         buildHost = ' '
 
-        requires('pxf-service', project.version, GREATER | EQUAL)
+        requires(versionedPackageName('pxf-service'), project.version, GREATER 
| EQUAL)
         requires('hadoop', "$hadoopVersion", GREATER | EQUAL)
         requires('hadoop-mapreduce', "$hadoopVersion", GREATER | EQUAL)
 
@@ -330,7 +357,7 @@ project('pxf-hive') {
     }
 
     ospackage {
-
+        packageName = versionedPackageName("${project.name}")
         summary = 'HAWQ Extension Framework (PXF), Hive plugin'
         description = 'Querying external data stored in Hive'
         packager = ' '
@@ -338,8 +365,7 @@ project('pxf-hive') {
         release = buildNumber() + '.' + project.osFamily
         buildHost = ' '
 
-        requires('pxf-hdfs', project.version, GREATER | EQUAL)
-        requires('hive', "$hiveVersion", GREATER | EQUAL)
+        requires(versionedPackageName('pxf-hdfs'), project.version, GREATER | 
EQUAL)
 
         from(jar.outputs.files) {
             into "/usr/lib/pxf-${project.version}"
@@ -359,7 +385,8 @@ project('pxf-json') {
     }
 
     ospackage {
-      requires('pxf-hdfs', project.version, GREATER | EQUAL)
+      requires(versionedPackageName('pxf-hdfs'), project.version, GREATER | 
EQUAL)
+        packageName = versionedPackageName("${project.name}")
         summary = 'HAWQ Extension Framework (PXF), Json plugin'
         description = 'Querying external data stored in HDFS in Json format'
         packager = ' '
@@ -383,6 +410,7 @@ project('pxf-hbase') {
     }
 
     ospackage {
+        packageName = versionedPackageName("${project.name}")
         summary = 'HAWQ Extension Framework (PXF), HBase plugin'
         description = 'Querying external data stored in HBase'
         packager = ' '
@@ -390,8 +418,7 @@ project('pxf-hbase') {
         release = buildNumber() + '.' + project.osFamily
         buildHost = ' '
 
-        requires('pxf-service', project.version, GREATER | EQUAL)
-        requires('hbase', "$hbaseVersionRPM", GREATER | EQUAL)
+        requires(versionedPackageName('pxf-service'), project.version, GREATER 
| EQUAL)
 
         from(jar.outputs.files) {
             into "/usr/lib/pxf-${project.version}"
@@ -506,10 +533,10 @@ task tomcatRpm(type: Rpm) {
             user 'tomcat'
             permissionGroup 'tomcat'
             addParentDirs false
-            into "/opt/pivotal/${tomcatName}"
+            into "/opt/${tomcatName}"
         }
 
-        link("/opt/pivotal/${packageName}", "${tomcatName}")
+        link("/opt/${packageName}", "${tomcatName}")
     }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8a31ac47/pxf/pxf-service/src/scripts/pxf-service
----------------------------------------------------------------------
diff --git a/pxf/pxf-service/src/scripts/pxf-service 
b/pxf/pxf-service/src/scripts/pxf-service
index 4b6ca73..7f62504 100644
--- a/pxf/pxf-service/src/scripts/pxf-service
+++ b/pxf/pxf-service/src/scripts/pxf-service
@@ -22,8 +22,8 @@
 
 pxf_root=/usr/lib/pxf
 env_script=/etc/pxf/conf/pxf-env.sh
-tomcat_root=/opt/pivotal/apache-tomcat
-tomcat_templates=/opt/pivotal/pxf/tomcat-templates
+tomcat_root=/opt/apache-tomcat
+tomcat_templates=/opt/pxf/tomcat-templates
 instance_root=/var/pxf
 
 pxf_user=pxf

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/8a31ac47/pxf/settings.gradle
----------------------------------------------------------------------
diff --git a/pxf/settings.gradle b/pxf/settings.gradle
index 718eed5..c610116 100644
--- a/pxf/settings.gradle
+++ b/pxf/settings.gradle
@@ -19,9 +19,10 @@
 
 rootProject.name = 'pxf'
 
+include 'pxf'
 include 'pxf-api'
 include 'pxf-service'
 include 'pxf-hdfs'
 include 'pxf-hive'
 include 'pxf-hbase'
-include 'pxf-json'
+include 'pxf-json'
\ No newline at end of file

Reply via email to