daisycloud-core/tools/setup/upgrade/upgrade_interface.sh
Zhijiang Hu 49b9707895 Rename ironic-discoverd to daisy-discoverd
Historically, Daisy's discoverd is a fork from ironic-discoverd
without changing package name. This has problems:
1) When user want to install daisy but there is already a
ironic-discoverd which from OpenStack, then daisy's discoverd
will not be installed due to already existed.
2) When user already installed Daisy's discoverd and later do
yum update, then daisy's discoverd will be replaced by
ironic-discoverd which from OpenStack.

Both scenarios above will results in Daisy does not work. So
This PS changes ironic-discoverd to daisy-discoverd.

Change-Id: Ic505feb12271dd87e5781da28f79ca604d49374e
Signed-off-by: Zhijiang Hu <hu.zhijiang@zte.com.cn>
2017-08-04 17:41:40 +08:00

185 lines
9.3 KiB
Bash
Executable File

#!/bin/bash
if [ ! "$_UPGRADE_INTERFACE_FILE" ];then
_UPGRADE_INTERFACE_DIR=`pwd`
cd $_UPGRADE_INTERFACE_DIR/../common/
. daisy_common_func.sh
. daisy_global_var.sh
cd $_UPGRADE_INTERFACE_DIR/../install/
. install_func.sh
cd $_UPGRADE_INTERFACE_DIR
. upgrade_func.sh
daisy_upgrade="/var/log/daisy/daisy_upgrade"
upgradedatefile=`date -d "today" +"%Y%m%d-%H%M%S"`
logfile=$daisy_upgrade/daisyupgrade_$upgradedatefile.log
function upgrade_daisy
{
if [ ! -d "$daisy_upgrade" ];then
mkdir -p $daisy_upgrade
fi
if [ ! -f "$logfile" ];then
touch $logfile
fi
write_upgrade_log "wait to stop daisy services..."
stop_service_all
get_daisy_services
upgrade_rpms_by_yum "$all_daisy_services"
which daisy-manage >> $logfile 2>&1
if [ "$?" == 0 ];then
write_upgrade_log "start daisy-manage db_sync..."
daisy-manage db_sync
[ "$?" -ne 0 ] && { write_upgrade_log "Error:daisy-manage db_sync command faild"; exit 1; }
fi
which keystone-manage >> $logfile 2>&1
if [ "$?" == 0 ];then
write_upgrade_log "start keystone-manage db_sync..."
keystone-manage db_sync
[ "$?" -ne 0 ] && { write_upgrade_log "Error:keystone-manage db_sync command faild"; exit 1; }
fi
write_upgrade_log "wait to start daisy service..."
start_service_all >> $logfile 2>&1
mysql_cmd="mysql"
local mariadb_result=`systemctl is-active mariadb.service`
if [ $? -eq 0 ];then
#update type=private,name=private to type=dataplane,name=physnet1
local update_private_to_physnet1_sql="use daisy;update networks set name='physnet1',network_type='DATAPLANE' where network_type='PRIVATE' and name='PRIVATE' and deleted=0;"
write_upgrade_log "update private name to physnet1 and private to dataplane in daisy database"
echo ${update_private_to_physnet1_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update private name to physnet1 and private to dataplane in daisy database failed..."
exit 1
fi
#update type=private to type=dataplane
local update_private_to_dataplane_sql="use daisy;update networks set network_type='DATAPLANE' where network_type='PRIVATE' and deleted=0;"
write_upgrade_log "update private to dataplane in daisy database"
echo ${update_private_to_dataplane_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update private to dataplane in daisy database failed..."
exit 1
fi
#update public to publicapi
local update_public_to_publicapi_sql="use daisy;update networks set network_type='PUBLICAPI',name='PUBLICAPI' where network_type='PUBLIC' and deleted=0;"
write_upgrade_log "update public to publicapi in daisy database"
echo ${update_public_to_publicapi_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update public to publicapi in daisy database failed..."
exit 1
fi
local cluster_list_sql="use daisy;select clusters.id from clusters where deleted=0;"
local cluster_list_id=`echo ${cluster_list_sql} | ${mysql_cmd}|grep -v id`
for cluster_id in ${cluster_list_id}
do
local cluster_segmentation_sql="use daisy;select clusters.segmentation_type from clusters where id='"$cluster_id"' and deleted=0;"
local cluster_segmentation=`echo ${cluster_segmentation_sql} | ${mysql_cmd}|grep -v segmentation_type`
if [ ${cluster_segmentation} == "vlan" ];then
#update public to publicapi
local update_segmentation_type_vlan_sql="use daisy;update networks set segmentation_type='vlan' where cluster_id='"$cluster_id"' and network_type='DATAPLANE' and deleted=0;"
write_upgrade_log "update segmentation_type to vlan in daisy database"
echo ${update_segmentation_type_vlan_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update segmentation_type to vlan in daisy database failed..."
exit 1
fi
fi
if [ ${cluster_segmentation} == "vxlan" ];then
local update_segmentation_type_vxlan_sql="use daisy;update networks set segmentation_type='vxlan' where cluster_id='"$cluster_id"' and network_type='DATAPLANE' and deleted=0;"
write_upgrade_log "update segmentation_type to vxlan in daisy database"
echo ${update_segmentation_type_vxlan_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update segmentation_type to vxlan in daisy database failed..."
exit 1
fi
local vni_start_sql="use daisy;select clusters.vni_start from clusters where id='"$cluster_id"' and deleted=0;"
local vni_start=`echo ${vni_start_sql} | ${mysql_cmd}|grep -v vni_start`
if [ "$vni_start" != "NULL" ];then
local update_segmentation_type_vxlan_sql="use daisy;update networks set vni_start='"$vni_start"' where cluster_id='"$cluster_id"' and network_type='DATAPLANE' and deleted=0;"
echo ${update_segmentation_type_vxlan_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update vni_start in daisy database failed..."
exit 1
fi
fi
local vni_end_sql="use daisy;select clusters.vni_end from clusters where id='"$cluster_id"' and deleted=0;"
local vni_end=`echo ${vni_end_sql} | ${mysql_cmd}|grep -v vni_end`
if [ "$vni_end" != "NULL" ];then
local update_segmentation_type_vxlan_sql="use daisy;update networks set vni_end='"$vni_end"' where cluster_id='"$cluster_id"' and network_type='DATAPLANE' and deleted=0;"
echo ${update_segmentation_type_vxlan_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update vni_end in daisy database failed..."
exit 1
fi
fi
local vxlan_cidr_sql="use daisy;select networks.cidr from networks where cluster_id='"$cluster_id"' and network_type='VXLAN'and deleted=0;"
local vxlan_cidr=`echo ${vxlan_cidr_sql} | ${mysql_cmd}|awk 'NR==2{print}'`
if [ "$vxlan_cidr" != "NULL" ];then
local update_vxlan_cidr_sql="use daisy;update networks set cidr='"$vxlan_cidr"' where cluster_id='"$cluster_id"' and network_type='DATAPLANE' and name='physnet1' and deleted=0;"
echo ${update_vxlan_cidr_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update cidr from vxlan to physnet1 in daisy database failed..."
exit 1
fi
fi
fi
local update_segmentation_type_and_vni_null_sql="use daisy;update clusters set segmentation_type='NULL',vni_start=NULL,vni_end=NULL where id='"$cluster_id"' and deleted=0;"
echo ${update_segmentation_type_and_vni_null_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update segmentation_type and vni for blank in daisy database failed..."
exit 1
fi
local vxlan_id_sql="use daisy;select networks.id from networks where cluster_id='"$cluster_id"' and network_type='VXLAN'and deleted=0;"
local vxlan_id=`echo ${vxlan_id_sql} | ${mysql_cmd} | awk 'NR==2{print}'`
local physnet1_id_sql="use daisy;select networks.id from networks where cluster_id='"$cluster_id"' and network_type='DATAPLANE' and name='physnet1' and deleted=0;"
local physnet1_id=`echo ${physnet1_id_sql} | ${mysql_cmd}|awk 'NR==2{print}'`
local update_vxlan_ip_ranges_sql="use daisy;update ip_ranges set network_id='"$physnet1_id"' where network_id='"$vxlan_id"' and deleted=0;"
write_upgrade_log "update ip_ranges from vxlan to physnet1 in daisy database"
echo ${update_vxlan_ip_ranges_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update ip_ranges from vxlan to physnet1 in daisy database failed..."
exit 1
fi
done
#delete vxlan
local delete_vxlan_sql="use daisy;delete from networks where network_type='VXLAN' and deleted=0;"
write_upgrade_log "delete vxlan in daisy database"
echo ${delete_vxlan_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:delete vxlan in daisy database failed..."
exit 1
fi
#update capability=high
local update_capability_sql="use daisy;update networks set capability='high';"
write_upgrade_log "update networks tables capability=high daisy database"
echo ${update_capability_sql} | ${mysql_cmd}
if [ $? -ne 0 ];then
write_upgrade_log "Error:update networks capability=high in daisy database failed..."
exit 1
fi
else
write_upgrade_log "Error:mariadb service is not active"
exit 1
fi
write_upgrade_log "Daisy upgrade successful..."
}
_UPGRADE_INTERFACE_FILE="upgrade_interface.sh"
fi