#!/bin/sh

# This project helps migrating admin from one cloud to another,
# for example if switching to external keystone, but having some
# resources already allocated by the admin project.

set -e

ME=$(basename $0)

usage () {
	echo "${ME} <old-project-id> <new-project-id>"
}

if [ $# != 2 ] ; then
	usage
fi
OLD_PROJECT_ID=$1
NEW_PROJECT_ID=$2

# BarbicanDB

mysql -Dbarbicandb -e "UPDATE certificate_authorities SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE container_consumer_metadata SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE containers SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE kek_data SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE orders SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE project_certificate_authorities SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE project_quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE project_secret_store SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE secret_consumer_metadata SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dbarbicandb -e "UPDATE secrets SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"

# NeutronDB

mysql -Dneutrondb -e "UPDATE address_scopes SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE bgp_peers SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE bgp_speakers SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE default_security_group SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE ha_router_networks SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE networkrbacs SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE networks SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE networks SET name='HA network tenant ${NEW_PROJECT_ID}' WHERE name='HA network tenant ${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE ports SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE ports SET name='HA port tenant ${NEW_PROJECT_ID}' WHERE name='HA port tenant ${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE routers SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE securitygrouprules SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE securitygroups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE subnetpools SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE subnets SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dneutrondb -e "UPDATE subnets SET names='HA subnet tenant ${NEW_PROJECT_ID}' WHERE name='HA subnet tenant ${OLD_PROJECT_ID}'"

# CinderDB

mysql -Dcinderdb -e "UPDATE quota_usages SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE reservations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE volumes SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE backups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE cgsnapshots SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE consistencygroups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE default_volume_types SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE group_snapshots SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE group_type_projects SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE messages SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE quota_usages SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE reservations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE snapshots SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE volume_type_projects SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dcinderdb -e "UPDATE volumes SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"

# GlanceDB

mysql -Dglancedb -e "UPDATE images SET owner='${NEW_PROJECT_ID}' WHERE owner='${OLD_PROJECT_ID}'"

# NovaapiDB
# Problème ici:
#mysql -Dnovaapidb -e "UPDATE request_specs"
mysql -Dnovaapidb -e "UPDATE build_requests SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovaapidb -e "UPDATE consumers SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovaapidb -e "UPDATE flavor_projects SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovaapidb -e "UPDATE instance_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovaapidb -e "UPDATE instance_mappings SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovaapidb -e "UPDATE project_user_quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovaapidb -e "UPDATE quota_usages SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovaapidb -e "UPDATE quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovaapidb -e "UPDATE reservations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"

# NovaDB
mysql -Dnovadb -e "UPDATE certificates SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE dns_domains SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE floating_ips SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE instance_actions SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE instance_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE instance_type_projects SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE instances SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE migrations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE networks SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE project_user_quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE quota_usages SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE reservations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE security_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_certificates SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_dns_domains SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_floating_ips SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_instance_actions SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_instance_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_instance_type_projects SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_instances SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_migrations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_networks SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_project_user_quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_quota_usages SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_reservations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_security_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_snapshots SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE shadow_volume_usage_cache SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE snapshots SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb -e "UPDATE volume_usage_cache SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"

# NovaDB_cell0

mysql -Dnovadb_cell0 -e "UPDATE certificates SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE dns_domains SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE floating_ips SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE instance_actions SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE instance_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE instance_type_projects SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE instances SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE migrations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE networks SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE project_user_quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE quota_usages SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE reservations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE security_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_certificates SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_dns_domains SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_floating_ips SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_instance_actions SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_instance_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_instance_type_projects SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_instances SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_migrations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_networks SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_project_user_quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_quota_usages SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_reservations SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_security_groups SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_snapshots SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE shadow_volume_usage_cache SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE snapshots SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Dnovadb_cell0 -e "UPDATE volume_usage_cache SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"

# OctaviaDB

mysql -Doctaviadb -e "UPDATE health_monitor SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Doctaviadb -e "UPDATE l7policy SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Doctaviadb -e "UPDATE l7rule SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Doctaviadb -e "UPDATE listener SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Doctaviadb -e "UPDATE load_balancer SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Doctaviadb -e "UPDATE member SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Doctaviadb -e "UPDATE pool SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Doctaviadb -e "UPDATE quotas SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"

# PlacementDB

mysql -Dplacementdb -e "UPDATE consumers SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"

# AodhDB

mysql -Daodhdb -e "UPDATE alarm SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Daodhdb -e "UPDATE alarm_history SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Daodhdb -e "UPDATE quota SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"

# HeatDB
mysql -Dheatdb -e "UPDATE software_deployment SET stack_user_project_id='${NEW_PROJECT_ID}' WHERE stack_user_project_id='${OLD_PROJECT_ID}'"
mysql -Dheatdb -e "UPDATE stack SET stack_user_project_id='${NEW_PROJECT_ID}' WHERE stack_user_project_id='${OLD_PROJECT_ID}'"

# DesiganteDB
mysql -Ddesignatedb -e "UPDATE shared_zones SET project_id='${NEW_PROJECT_ID}' WHERE project_id='${OLD_PROJECT_ID}'"
mysql -Ddesignatedb -e "UPDATE shared_zones SET target_project_id='${NEW_PROJECT_ID}' WHERE target_project_id='${OLD_PROJECT_ID}'"
