From e6cc78f531d0201aed004fd9e003a1ae2ab9a816 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 4 Jan 2017 22:45:43 +0530 Subject: [PATCH] CLOUDSTACK-9710: Switch to JRE1.8 - Switches Travis to use jdk1.8 - Changes java-version to 1.8 - Change jdk/maven version to 1.8 - Switch to F5/java8 compatible library release - Switch packaging to use jdk 1.8, and jre 1.8 in init/systemd scripts - Switch systemvm to openjdk-8-jre Signed-off-by: Rohit Yadav --- .java-version | 2 +- .travis.yml | 2 +- debian/control | 8 ++++---- .../service/NetworkOrchestrationService.java | 2 +- packaging/build-deb.sh | 2 +- packaging/centos63/cloud-agent.rc | 2 +- packaging/centos63/cloud.spec | 8 ++++---- packaging/centos7/cloud-agent.rc | 2 +- packaging/centos7/cloud.spec | 8 ++++---- packaging/debian/cloudstack-agent.init | 2 +- packaging/debian/cloudstack-usage.init | 2 +- packaging/debian/init/cloud-management | 2 +- plugins/network-elements/f5/pom.xml | 6 +++++- pom.xml | 2 +- .../systemvmtemplate/apt_upgrade.sh | 8 +++++++- .../systemvmtemplate/definition.rb | 4 ++-- .../install_systemvm_packages.sh | 19 +++++++++++++++---- .../definitions/systemvmtemplate/preseed.cfg | 4 ++-- tools/docker/Dockerfile | 4 ++-- 19 files changed, 55 insertions(+), 34 deletions(-) diff --git a/.java-version b/.java-version index d3bdbdf1fdae..6259340971be 100644 --- a/.java-version +++ b/.java-version @@ -1 +1 @@ -1.7 +1.8 diff --git a/.travis.yml b/.travis.yml index da81633bb179..7d3aa85a8f0b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ sudo: required dist: trusty language: java jdk: -- oraclejdk7 +- oraclejdk8 python: - "2.7" cache: diff --git a/debian/control b/debian/control index 9855bedeae88..157aa8d45a8c 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: cloudstack Section: libs Priority: extra Maintainer: Wido den Hollander -Build-Depends: debhelper (>= 9), openjdk-8-jdk | java8-sdk | java8-jdk | openjdk-7-jdk, genisoimage, +Build-Depends: debhelper (>= 9), openjdk-8-jdk | java8-sdk | java8-jdk, genisoimage, python-mysql.connector, maven (>= 3) | maven3, python (>= 2.7), lsb-release, dh-systemd Standards-Version: 3.8.1 Homepage: http://www.cloudstack.org/ @@ -15,14 +15,14 @@ Description: A common package which contains files which are shared by several C Package: cloudstack-management Architecture: all -Depends: ${misc:Depends}, ${python:Depends}, cloudstack-common (= ${source:Version}), tomcat6 | tomcat7, sudo, jsvc, python-mysql.connector, libmysql-java, augeas-tools, mysql-client, adduser, bzip2, ipmitool, lsb-release +Depends: ${misc:Depends}, ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime, cloudstack-common (= ${source:Version}), tomcat6 | tomcat7, sudo, jsvc, python-mysql.connector, libmysql-java, augeas-tools, mysql-client, adduser, bzip2, ipmitool, lsb-release Conflicts: cloud-server, cloud-client, cloud-client-ui Description: CloudStack server library The CloudStack management server Package: cloudstack-agent Architecture: all -Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 0.9.8), uuid-runtime, iproute, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release +Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 0.9.8), uuid-runtime, iproute, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release Recommends: init-system-helpers Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, cloud-agent-scripts Description: CloudStack agent @@ -32,7 +32,7 @@ Description: CloudStack agent Package: cloudstack-usage Architecture: all -Depends: openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), jsvc, libmysql-java +Depends: openjdk-8-jre-headless | java8-runtime-headless | java8-runtime, cloudstack-common (= ${source:Version}), jsvc, libmysql-java Recommends: init-system-helpers Description: CloudStack usage monitor The CloudStack usage monitor provides usage accounting across the entire cloud for diff --git a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java index a3f3a8cbc3d0..442919e743af 100644 --- a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java +++ b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java @@ -65,7 +65,7 @@ public interface NetworkOrchestrationService { static final String NetworkThrottlingRateCK = "network.throttling.rate"; static final String MinVRVersionCK = "minreq.sysvmtemplate.version"; - static final ConfigKey MinVRVersion = new ConfigKey(String.class, MinVRVersionCK, "Advanced", "4.6.0", + static final ConfigKey MinVRVersion = new ConfigKey(String.class, MinVRVersionCK, "Advanced", "4.10.0", "What version should the Virtual Routers report", true, ConfigKey.Scope.Zone, null); static final ConfigKey NetworkLockTimeout = new ConfigKey(Integer.class, NetworkLockTimeoutCK, "Network", "600", diff --git a/packaging/build-deb.sh b/packaging/build-deb.sh index 52af16a91475..448232d2c3a0 100755 --- a/packaging/build-deb.sh +++ b/packaging/build-deb.sh @@ -37,7 +37,7 @@ set -e # docker run -ti -v /tmp:/src ubuntu:16.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-8-jdk genisoimage python-mysql.connector maven lsb-release devscripts dh-systemd python-setuptools && /src/cloudstack/packaging/build-deb.sh" # # Ubuntu 14.04 -# docker run -ti -v /tmp:/src ubuntu:14.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-7-jdk genisoimage python-mysql.connector maven lsb-release devscripts dh-systemd python-setuptools && /src/cloudstack/packaging/build-deb.sh" +# docker run -ti -v /tmp:/src ubuntu:14.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-8-jdk genisoimage python-mysql.connector maven lsb-release devscripts dh-systemd python-setuptools && /src/cloudstack/packaging/build-deb.sh" # cd `dirname $0` diff --git a/packaging/centos63/cloud-agent.rc b/packaging/centos63/cloud-agent.rc index aad95828f6d7..a41732a2df79 100755 --- a/packaging/centos63/cloud-agent.rc +++ b/packaging/centos63/cloud-agent.rc @@ -49,7 +49,7 @@ unset OPTIONS [ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME" # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT) -JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun" +JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-1.8.0 /usr/lib/jvm/java-8-openjdk /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-openjdk-amd64" for jdir in $JDK_DIRS; do if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec index 955623692339..56701933585b 100644 --- a/packaging/centos63/cloud.spec +++ b/packaging/centos63/cloud.spec @@ -43,7 +43,7 @@ Group: System Environment/Libraries Source0: %{name}-%{_maventag}.tgz BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build -BuildRequires: java-1.7.0-openjdk-devel +BuildRequires: java-1.8.0-openjdk-devel BuildRequires: tomcat6 BuildRequires: ws-commons-util BuildRequires: jpackage-utils @@ -60,7 +60,7 @@ intelligent IaaS cloud implementation. %package management Summary: CloudStack management server UI Requires: tomcat6 -Requires: java-1.7.0-openjdk +Requires: java-1.8.0-openjdk Requires: python Requires: bash Requires: bzip2 @@ -113,7 +113,7 @@ The Apache CloudStack files shared between agent and management server %package agent Summary: CloudStack Agent for KVM hypervisors Requires: openssh-clients -Requires: java-1.7.0-openjdk +Requires: java-1.8.0-openjdk Requires: %{name}-common = %{_ver} Requires: libvirt Requires: bridge-utils @@ -152,7 +152,7 @@ The CloudStack baremetal agent %package usage Summary: CloudStack Usage calculation server -Requires: java-1.7.0-openjdk +Requires: java-1.8.0-openjdk Requires: jsvc Requires: jakarta-commons-daemon Requires: jakarta-commons-daemon-jsvc diff --git a/packaging/centos7/cloud-agent.rc b/packaging/centos7/cloud-agent.rc index aad95828f6d7..91ceff65dc69 100755 --- a/packaging/centos7/cloud-agent.rc +++ b/packaging/centos7/cloud-agent.rc @@ -49,7 +49,7 @@ unset OPTIONS [ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME" # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT) -JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun" +JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-1.8.0-openjdk /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-openjdk-amd64" for jdir in $JDK_DIRS; do if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then diff --git a/packaging/centos7/cloud.spec b/packaging/centos7/cloud.spec index 7c093f937c86..00b5dbc1659e 100644 --- a/packaging/centos7/cloud.spec +++ b/packaging/centos7/cloud.spec @@ -43,7 +43,7 @@ Group: System Environment/Libraries Source0: %{name}-%{_maventag}.tgz BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build -BuildRequires: java-1.7.0-openjdk-devel +BuildRequires: java-1.8.0-openjdk-devel BuildRequires: tomcat => 7.0 BuildRequires: ws-commons-util BuildRequires: jpackage-utils @@ -60,7 +60,7 @@ intelligent IaaS cloud implementation. %package management Summary: CloudStack management server UI Requires: tomcat => 7.0 -Requires: java => 1.7.0 +Requires: java => 1.8.0 Requires: python Requires: bash Requires: bzip2 @@ -99,7 +99,7 @@ The Apache CloudStack files shared between agent and management server %package agent Summary: CloudStack Agent for KVM hypervisors Requires: openssh-clients -Requires: java => 1.7.0 +Requires: java => 1.8.0 Requires: %{name}-common = %{_ver} Requires: libvirt Requires: bridge-utils @@ -131,7 +131,7 @@ The CloudStack baremetal agent %package usage Summary: CloudStack Usage calculation server -Requires: java => 1.7.0 +Requires: java => 1.8.0 Requires: mysql-connector-java Group: System Environment/Libraries %description usage diff --git a/packaging/debian/cloudstack-agent.init b/packaging/debian/cloudstack-agent.init index 0cae5f55a3cf..26107792a6ba 100755 --- a/packaging/debian/cloudstack-agent.init +++ b/packaging/debian/cloudstack-agent.init @@ -50,7 +50,7 @@ unset OPTIONS mkdir -m 0755 -p "$TMP" # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT) -JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun" +JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-oracle" for jdir in $JDK_DIRS; do if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then diff --git a/packaging/debian/cloudstack-usage.init b/packaging/debian/cloudstack-usage.init index e6129c26b6c0..05174504befb 100755 --- a/packaging/debian/cloudstack-usage.init +++ b/packaging/debian/cloudstack-usage.init @@ -64,7 +64,7 @@ setJavaHome() { # If everything has failed, try hardcoded paths # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT) - JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-sun" + JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-oracle /usr/lib/jvm/java-8-openjdk" for jdir in $JDK_DIRS; do if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then JAVA_HOME="$jdir" diff --git a/packaging/debian/init/cloud-management b/packaging/debian/init/cloud-management index 90052c9bb158..05c38be54fc0 100755 --- a/packaging/debian/init/cloud-management +++ b/packaging/debian/init/cloud-management @@ -65,7 +65,7 @@ TOMCAT6_USER=tomcat6 # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not # defined in $DEFAULT) -JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-sun" +JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-oracle /usr/lib/jvm/java-8-openjdk" # Look for the right JVM to use for jdir in $JDK_DIRS; do diff --git a/plugins/network-elements/f5/pom.xml b/plugins/network-elements/f5/pom.xml index 56889a22167d..048619b6168c 100644 --- a/plugins/network-elements/f5/pom.xml +++ b/plugins/network-elements/f5/pom.xml @@ -27,10 +27,14 @@ ../../pom.xml + + org.apache.axis + axis-jaxrpc + com.cloud.com.f5 icontrol - 1.0 + 12.1 org.apache.axis diff --git a/pom.xml b/pom.xml index 73f6e7cdc2f3..7ad2ff8aa8bf 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ - 1.7 + 1.8 UTF-8 UTF-8 diff --git a/tools/appliance/definitions/systemvmtemplate/apt_upgrade.sh b/tools/appliance/definitions/systemvmtemplate/apt_upgrade.sh index 0116f9978e8a..f98c6b57c935 100644 --- a/tools/appliance/definitions/systemvmtemplate/apt_upgrade.sh +++ b/tools/appliance/definitions/systemvmtemplate/apt_upgrade.sh @@ -20,6 +20,8 @@ set -e set -x function add_backports() { + sed -i '/cdrom/d' /etc/apt/sources.list + sed -i '/deb-src/d' /etc/apt/sources.list sed -i '/backports/d' /etc/apt/sources.list echo 'deb http://http.debian.net/debian wheezy-backports main' >> /etc/apt/sources.list } @@ -30,9 +32,13 @@ function apt_upgrade() { add_backports - apt-get clean + rm -fv /root/*.iso + apt-get -y autoremove + apt-get autoclean apt-get -q -y --force-yes update apt-get -q -y --force-yes upgrade + + df -h } return 2>/dev/null || apt_upgrade diff --git a/tools/appliance/definitions/systemvmtemplate/definition.rb b/tools/appliance/definitions/systemvmtemplate/definition.rb index db6fce807e7c..e0c44e2f6283 100644 --- a/tools/appliance/definitions/systemvmtemplate/definition.rb +++ b/tools/appliance/definitions/systemvmtemplate/definition.rb @@ -42,7 +42,7 @@ config = { :cpu_count => '1', :memory_size => '256', - :disk_size => '3000', :disk_format => 'VDI', :hostiocache => 'off', + :disk_size => '3200', :disk_format => 'VDI', :hostiocache => 'off', :iso_download_timeout => '1200', :boot_wait => '10', :boot_cmd_sequence => [ @@ -71,7 +71,7 @@ :ssh_key => '', :ssh_host_port => '7222', :ssh_guest_port => '22', - :sudo_cmd => "echo '%p'|sudo -S sh '%f'", + :sudo_cmd => "echo '%p'|sudo -S bash '%f'", :shutdown_cmd => 'halt -p', :postinstall_files => [ # basic minimal vm creation diff --git a/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh b/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh index 491ac74ce620..f390821ec141 100644 --- a/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh +++ b/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh @@ -32,11 +32,12 @@ function debconf_packages() { echo "openswan openswan/install_x509_certificate seen true" | debconf-set-selections echo "iptables-persistent iptables-persistent/autosave_v4 boolean true" | debconf-set-selections echo "iptables-persistent iptables-persistent/autosave_v6 boolean true" | debconf-set-selections + echo "libc6 libraries/restart-without-asking boolean false" | debconf-set-selections } function install_packages() { - DEBIAN_FRONTEND=noninteractive - DEBIAN_PRIORITY=critical + export DEBIAN_FRONTEND=noninteractive + export DEBIAN_PRIORITY=critical local arch=`dpkg --print-architecture` debconf_packages @@ -67,7 +68,6 @@ function install_packages() { xenstore-utils libxenstore3.0 \ conntrackd ipvsadm libnetfilter-conntrack3 libnl-3-200 libnl-genl-3-200 \ ipcalc \ - openjdk-7-jre-headless \ iptables-persistent \ libtcnative-1 libssl-dev libapr1-dev \ python-flask \ @@ -89,10 +89,21 @@ function install_packages() { dpkg -i hv-kvp-daemon_3.1_amd64.deb rm -f hv-kvp-daemon_3.1_amd64.deb # XS tools - wget https://raw.githubusercontent.com/bhaisaab/cloudstack-nonoss/master/xe-guest-utilities_6.5.0_amd64.deb + wget --no-check-certificate https://raw.githubusercontent.com/rhtyd/cloudstack-nonoss/master/xe-guest-utilities_6.5.0_amd64.deb + md5sum xe-guest-utilities_6.5.0_amd64.deb dpkg -i xe-guest-utilities_6.5.0_amd64.deb rm -f xe-guest-utilities_6.5.0_amd64.deb fi + + # Install OpenJDK8 pkgs maintained by Azul + apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0x219BD9C9 + echo 'deb http://repos.azulsystems.com/debian stable main' > /etc/apt/sources.list.d/zulu.list + apt-get -y autoremove + apt-get autoclean + apt-get clean + apt-get update + ${apt_get} install zulu-8 + java -version } return 2>/dev/null || install_packages diff --git a/tools/appliance/definitions/systemvmtemplate/preseed.cfg b/tools/appliance/definitions/systemvmtemplate/preseed.cfg index 2127090d62c7..77402d73cd5d 100644 --- a/tools/appliance/definitions/systemvmtemplate/preseed.cfg +++ b/tools/appliance/definitions/systemvmtemplate/preseed.cfg @@ -60,7 +60,7 @@ d-i partman-auto/expert_recipe string \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /home } \ . \ - 800 60 1400 ext4 \ + 1000 60 1400 ext4 \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /usr } \ @@ -75,7 +75,7 @@ d-i partman-auto/expert_recipe string \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /var } \ . \ - 200 50 500 ext4 \ + 400 50 500 ext4 \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /var/log } \ diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index da4c6dab4742..9939a911b50c 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -22,13 +22,13 @@ FROM ubuntu:14.04 MAINTAINER "Apache CloudStack" LABEL Vendor="Apache.org" License="ApacheV2" Version="4.10.0.0-SNAPSHOT" -RUN apt-get -y update && apt-get install -y \ +RUN add-apt-repository -y ppa:openjdk-r/ppa && apt-get -y update && apt-get install -y \ genisoimage \ libffi-dev \ libssl-dev \ git \ maven \ - openjdk-7-jdk \ + openjdk-8-jdk \ python-dev \ python-setuptools \ python-pip \