Hi Folks,

I am using Mitaka OpenStack and VLAN as network type driver for tenant VMs. Initially i have provisioned all the VMs (Including Customer VMs) inside the admin. I want to segregate my internal VMs and Customer VMs, for this to accomplish i have created different tenant names and now i want customer VMs from admin tenant to Customer tenant,

On Google , i have a found a script which migrates the VMs but that script doesn't update network and security group details,

Can anyone help me and suggest what steps needs to executed to update network , security group and attached Volumes ..?

Below is the exact script:

    #!/bin/bash
    for i
    do
    if [ "$i" != "$1" ]; then
    echo "moving instance id " $i " to project id" $1;
    mysql -uroot -s -N <<query
    use nova;
    update instances set project_id="$1" where uuid="$i";
    query
    else
    #get project id of the instance before update
    old_proj_id=$(mysql -uroot -s -N <<query
    use nova;
    select project_id from instances where uuid="$2";
    query
    )
    #get user id of the instance before update
    user_id=$(mysql -uroot -s -N <<query
    use nova;
    select user_id from instances where uuid="$2";
    query
    )
   
    fi
    done
    echo "quota_resync " $old_proj_id;
    ./quota_resync.sh $old_proj_id $user_id;
    echo "quota_resync " $1;
    ./quota_resync.sh $1 $user_id;
    root@xxxx:/mnt# cat quota_resync.sh
    #!/bin/bash
    count=$(mysql -uroot -s -N <<query
    use nova;
    select count(*) from instances where project_id="$1" and vm_state="active";
    query
    )
   
    memory=$(mysql -uroot -s -N <<query
    use nova;
    select sum(memory_mb) from instances where project_id="$1" and vm_state="active";
    query
    )
   
    vcpu=$(mysql -uroot -s -N <<query
    use nova;
    select sum(vcpus) from instances where project_id="$1" and vm_state="active";
    query
    )
   
    echo "count" $count;
    echo "vcpus" $vcpu;
    echo "Ram" $memory;
   
    update=$(mysql -uroot -s -N <<query
    use nova;
    update quota_usages set in_use=$count where project_id="$1" and user_id="$2" and resource="instances";
    update quota_usages set in_use=$memory where project_id="$1" and user_id="$2" and resource="ram";
    update quota_usages set in_use=$vcpu where project_id="$1" and user_id="$2" and resource="cores";
    query
    )
    root@xxxx:/mnt#

Script Execution Method : # /vm_move.sh "destination_tenant_id" "VM_id"

 


--
Best Regards
Pradeep Kumar