-
Notifications
You must be signed in to change notification settings - Fork 541
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
37 changed files
with
478 additions
and
519 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,168 @@ | ||
#!/usr/bin/env bash | ||
|
||
# 登录cloudpods控制节点获取mysql账号密码信息,填写到下面变量 | ||
# kubectl get oc -n onecloud default -o yaml | grep -A 4 mysql | ||
# | ||
# 升级到3.11版本之后,等待所有华为云账号同步完成后,执行此升级脚本 | ||
# 脚本原理如下: | ||
# 脚本会检索1天内deleted=1的华为云资源,通过external_id反查当前数据库中对应external_id相同且deleted=0的资源 | ||
# 先会将deleted=1的资源id设为id=id-old, 再将deleted=0的资源id变更到deleted=1的资源id | ||
# | ||
HOST='127.0.0.1' | ||
USERNAME='root' | ||
PASSWORD='' | ||
DATETIME='' | ||
if ["$(uname)"=="Darwin"]; then | ||
DATETIME=$(date -v-1d -u "+%Y-%m-%dT%H:%M%SZ") | ||
else | ||
DATETIME=$(date -d "1 day ago" -u "+%Y-%m-%dT%H:%M%SZ") | ||
if | ||
|
||
function exec_sql_with_db() { | ||
export MYSQL_PWD=$PASSWORD | ||
local db=$1 | ||
local sql=$2 | ||
echo $(mysql -u"$USERNAME" -h "$HOST" -D"$db" -s -e "$sql") | ||
} | ||
|
||
function get_relation_tables() { | ||
local field=$1 | ||
exec_sql_with_db "information_schema" "select table_name from columns where column_name='$field' and table_schema='yunioncloud'" | ||
} | ||
|
||
function exec_sql() { | ||
exec_sql_with_db "yunioncloud" "$1" | ||
} | ||
|
||
function uuid() { | ||
echo $1 | awk -F '-' '{print $1"-"$2"-"$3"-"$4"-"$5}' | ||
} | ||
|
||
function change_uuid() { | ||
local table=$1 | ||
local target_id=$2 | ||
|
||
uid=$(uuid $target_id) | ||
if [ "$uid" != "$target_id" ]; then | ||
target_id=$uid | ||
else | ||
exec_sql "update $table set id='$target_id-old' where id='$target_id'" | ||
fi | ||
echo $target_id | ||
} | ||
|
||
|
||
echo "upgrade guests_tbl" | ||
exec_sql "select name, id, external_id from guests_tbl where deleted=1 and length(external_id) > 0 and host_id in (select id from hosts_tbl where deleted=1 and manager_id in (select id from cloudproviders_tbl where deleted=1 and provider='Huawei' and deleted_at > '$DATETIME'))" | while read -r line; do | ||
info=($(echo $line | tr " ", "\n")) | ||
name=${info[0]} | ||
target_id=${info[1]} | ||
external_id=${info[2]} | ||
id=$(exec_sql "select id from guests_tbl where deleted=0 and external_id='$external_id' and host_id in (select id from hosts_tbl where deleted=0 and manager_id in (select id from cloudproviders_tbl where deleted=0 and provider='Huawei'))") | ||
if [ -n "$id" ]; then | ||
target_id=$(change_uuid "guests_tbl" $target_id) | ||
echo "change server $name id from $id => $target_id" | ||
|
||
exec_sql "update guests_tbl set id='$target_id' where id='$id' and deleted=0" | ||
|
||
tables=$(get_relation_tables "guest_id") | ||
for table in $tables; do | ||
exec_sql "update $table set guest_id='$target_id' where guest_id='$id' and deleted=0" | ||
done | ||
|
||
fi | ||
|
||
done | ||
|
||
echo "upgrade disks_tbl" | ||
exec_sql "select name, id, external_id from disks_tbl where deleted=1 and length(external_id) > 0 and storage_id in (select id from storages_tbl where deleted=1 and manager_id in (select id from cloudproviders_tbl where deleted=1 and provider='Huawei' and deleted_at > '$DATETIME'))" | while read -r line; do | ||
info=($(echo $line | tr " ", "\n")) | ||
name=${info[0]} | ||
target_id=${info[1]} | ||
external_id=${info[2]} | ||
id=$(exec_sql "select id from disks_tbl where deleted=0 and external_id='$external_id' and storage_id in (select id from storages_tbl where deleted=0 and manager_id in (select id from cloudproviders_tbl where deleted=0 and provider='Huawei'))") | ||
if [ -n "$id" ]; then | ||
target_id=$(change_uuid "disks_tbl" $target_id) | ||
echo "change disk $name id from $id => $target_id" | ||
|
||
exec_sql "update disks_tbl set id='$target_id' where id='$id' and deleted=0" | ||
|
||
tables=$(get_relation_tables "disk_id") | ||
for table in $tables; do | ||
exec_sql "update $table set disk_id='$target_id' where disk_id='$id' and deleted=0" | ||
done | ||
|
||
fi | ||
|
||
done | ||
|
||
|
||
|
||
echo "upgrade networks_tbl" | ||
exec_sql "select name, id, external_id from networks_tbl where deleted=1 and length(external_id) > 0 and wire_id in (select id from wires_tbl where deleted=1 and vpc_id in (select id from vpcs_tbl where deleted=1 and manager_id in (select id from cloudproviders_tbl where deleted=1 and provider='Huawei' and deleted_at > '$DATETIME')))" | while read -r line; do | ||
info=($(echo $line | tr " ", "\n")) | ||
name=${info[0]} | ||
target_id=${info[1]} | ||
external_id=${info[2]} | ||
id=$(exec_sql "select id from networks_tbl where deleted=0 and external_id='$external_id' and wire_id in (select id from wires_tbl where deleted=0 and vpc_id in (select id from vpcs_tbl where deleted=0 and manager_id in (select id from cloudproviders_tbl where deleted=0 and provider='Huawei')))") | ||
if [ -n "$id" ]; then | ||
target_id=$(change_uuid "networks_tbl" $target_id) | ||
echo "change network $name id from $id => $target_id" | ||
|
||
exec_sql "update networks_tbl set id='$target_id' where id='$id' and deleted=0" | ||
|
||
tables=$(get_relation_tables "network_id") | ||
for table in $tables; do | ||
if [ "$table" == "network_additional_wire_tbl" ]; then | ||
exec_sql "update $table set network_id='$target_id' where network_id='$id'" | ||
else | ||
exec_sql "update $table set network_id='$target_id' where network_id='$id' and deleted=0" | ||
fi | ||
done | ||
|
||
fi | ||
done | ||
|
||
|
||
function upgrade_managed_resources_table() { | ||
local res_type=$1 | ||
local table_name=$2 | ||
local field=$3 | ||
|
||
echo "upgrade $table_name" | ||
exec_sql "select name, id, external_id from $table_name where deleted=1 and length(external_id) > 0 and manager_id in (select id from cloudproviders_tbl where deleted=1 and provider='Huawei' and deleted_at > '$DATETIME')" | while read -r line; do | ||
info=($(echo $line | tr " ", "\n")) | ||
name=${info[0]} | ||
target_id=${info[1]} | ||
external_id=${info[2]} | ||
id=$(exec_sql "select id from $table_name where deleted=0 and external_id='$external_id' and manager_id in (select id from cloudproviders_tbl where deleted=0 and provider='Huawei')") | ||
if [ -n "$id" ]; then | ||
target_id=$(change_uuid $table_name $target_id) | ||
echo "change $res_type $name id from $id => $target_id" | ||
|
||
exec_sql "update $table_name set id='$target_id' where id='$id' and deleted=0" | ||
|
||
tables=$(get_relation_tables $field) | ||
for table in $tables; do | ||
exec_sql "update $table set $field='$target_id' where $field='$id' and deleted=0" | ||
done | ||
fi | ||
done | ||
} | ||
|
||
|
||
upgrade_managed_resources_table "elasticcacheinstance" "elasticcacheinstances_tbl" "elasticcache_id" | ||
upgrade_managed_resources_table "dbinstance" "dbinstances_tbl" "dbinstance_id" | ||
upgrade_managed_resources_table "bucket" "buckets_tbl" "bucket_id" | ||
upgrade_managed_resources_table "vpc" "vpcs_tbl" "vpc_id" | ||
upgrade_managed_resources_table "cdn" "cdn_domains_tbl" "cdn_domain_id" | ||
upgrade_managed_resources_table "dns" "dnszones_tbl" "dns_zone_id" | ||
upgrade_managed_resources_table "elastic_search" "elastic_searchs_tbl" "elastic_search_id" | ||
upgrade_managed_resources_table "eip" "elasticips_tbl" "eip_id" | ||
upgrade_managed_resources_table "inter_vpc_network" "inter_vpc_networks_tbl" "inter_vpc_network_id" | ||
upgrade_managed_resources_table "kafka" "kafkas_tbl" "kafka_id" | ||
upgrade_managed_resources_table "loadbalancer" "loadbalancers_tbl" "loadbalancer_id" | ||
upgrade_managed_resources_table "snapshot" "snapshots_tbl" "snapshot_id" | ||
upgrade_managed_resources_table "sslcertificate" "sslcertificates_tbl" "sslcertificate_id" | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 0 additions & 2 deletions
2
vendor/yunion.io/x/cloudmux/pkg/apis/compute/cloudaccount_const.go
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
11 changes: 6 additions & 5 deletions
11
vendor/yunion.io/x/cloudmux/pkg/apis/compute/storage_const.go
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.