~nuage-canonical/charms/trusty/nuage-vsc/trunk

« back to all changes in this revision

Viewing changes to hooks/lib/nuage_common.sh

  • Committer: Subbarayudu Mukkamala
  • Date: 2014-10-17 03:50:01 UTC
  • Revision ID: smukkamala@nuagenetworks.net-20141017035001-tjkccm83icjtxoa7
nuage-vsc add virsh utils fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/bash
2
2
 
3
3
LOG_TERMINAL=0
 
4
 
4
5
function logger
5
6
{
6
7
    if [ $LOG_TERMINAL -eq 1 ]; then
10
11
    fi
11
12
}
12
13
 
 
14
function check_env
 
15
{
 
16
    logger "VSP_VM_NAME: ${VSP_VM_NAME}"
 
17
    logger "VSP_VM_DIR: ${VSP_VM_DIR}"
 
18
    logger "VSP_VM_XML: ${VSP_VM_XML}"
 
19
    logger "VSP_VM_IMAGE_NAME: ${VSP_VM_IMAGE_NAME}"
 
20
    logger "VSP_VM_ORIG_IMAGE_NAME: ${VSP_VM_ORIG_IMAGE_NAME}"
 
21
    logger "VSP_VM_IMAGE_DIR: ${VSP_VM_IMAGE_DIR}"
 
22
}
13
23
 
14
24
# Returns 0 if VSP is not running
15
25
function is_vsp_vm_running
34
44
 
35
45
function create_vsp_qemu_img
36
46
{
37
 
    juju-log "Check and create the qemu-img"
 
47
    logger "Check and create the qemu-img"
38
48
 
39
49
    is_vsp_vm_running
40
50
    if [ $? -eq 0 ]; then
41
51
        set -e
42
52
        /usr/bin/qemu-img create -f qcow2 -b ${VSP_VM_IMAGE_DIR}/${VSP_VM_ORIG_IMAGE_NAME} ${VSP_VM_IMAGE_DIR}/${VSP_VM_IMAGE_NAME}
43
 
        sudo cp $${VSP_VM_IMAGE_DIR}/${VSP_VM_ORIG_IMAGE_NAME} /var/lib/libvirt/images/${VSP_VM_ORIG_IMAGE_NAME}
 
53
        sudo cp ${VSP_VM_IMAGE_DIR}/${VSP_VM_ORIG_IMAGE_NAME} /var/lib/libvirt/images/${VSP_VM_ORIG_IMAGE_NAME}
44
54
        sudo mv ${VSP_VM_IMAGE_DIR}/${VSP_VM_IMAGE_NAME} /var/lib/libvirt/images/${VSP_VM_IMAGE_NAME}
45
55
        set +e
46
 
        juju-log "qemu-img create done"
 
56
        logger "qemu-img create done"
47
57
    fi
48
58
}
49
59
 
51
61
# Returns 1 if it was not able to create it
52
62
function create_vsp_vm
53
63
{
54
 
    juju-log "Check if ${VSP_VM_NAME} vm already exists"
 
64
    logger "Check if ${VSP_VM_NAME} vm already exists"
55
65
 
56
66
    if [ `/usr/bin/virsh list --all | grep -c ${VSP_VM_NAME}` -eq 1 ]; then
57
 
        juju-log "vsp vm is already created"
58
 
        return 0
 
67
        logger "vsp vm is already created"
 
68
        return
59
69
    fi
60
70
 
61
71
    create_vsp_qemu_img
62
72
 
63
 
    juju-log "Define vsp vm"
 
73
    logger "Define vsp vm"
64
74
    if [ ! -f ${VSP_VM_DIR}/${VSP_VM_XML} ]; then
65
 
        juju-log "Error: ${VSP_VM_NAME} template does not exist"
66
 
        return 1
 
75
        logger "Error: ${VSP_VM_NAME} template does not exist"
 
76
        exit 1
67
77
    fi
68
78
    /usr/bin/virsh define ${VSP_VM_DIR}/${VSP_VM_XML}
69
79
    if [ "`sudo virsh list --all | awk '/shut off/{print $2}'`" != "${VSP_VM_NAME}" ]; then
70
 
        juju-log "start: unable to define vsp vm"
71
 
        return 1
 
80
        logger "start: unable to define vsp vm"
 
81
        exit 1
72
82
    fi
73
83
}
74
84
 
75
85
function start_vsp_vm
76
86
{
77
 
    juju-log "Get vsp vm state"
 
87
    logger "Get vsp vm state"
78
88
    state="`sudo virsh dominfo ${VSP_VM_NAME} | awk '/State:/' | cut -d: -f 2 | tr -d ' '`"
79
89
    case $state in
80
 
        running)   juju-log "vsp ${VSP_VM_NAME} is already runnning"
 
90
        running)   logger "vsp ${VSP_VM_NAME} is already runnning"
81
91
                   ;;
82
 
        shut*)     juju-log "need to start vsp ${VSP_VM_NAME}"
 
92
        shut*)     logger "need to start vsp ${VSP_VM_NAME}"
83
93
                   /usr/bin/virsh start ${VSP_VM_NAME}
84
94
                   if [ $? -eq 1 ]; then
85
 
                       juju-log "Error: vsp vm is shutdown but couldn't restart it"
86
 
                       return 1
 
95
                       logger "Error: vsp vm is shutdown but couldn't restart it"
 
96
                       exit 1
87
97
                   fi
88
98
                   ;;
89
 
        *)         juju-log "Unknown state($state) of vsp ${VSP_VM_NAME}"
 
99
        *)         logger "Unknown state($state) of vsp ${VSP_VM_NAME}"
90
100
                   ;;
91
101
    esac
92
 
    return 0
93
102
}
94
103
 
95
104
function stop_vsp_vm
96
105
{
97
 
    juju-log "stop: handling hook"
98
 
 
99
106
    is_vsp_vm_running
100
107
    if [ $? -eq 1 ]; then
101
 
        juju-log "Shutting down vsp vm"
 
108
        logger "Shutting down vsp vm"
102
109
        virsh shutdown ${VSP_VM_NAME}
 
110
        sleep 5
103
111
    fi
104
112
 
105
 
    sleep 5
106
 
 
107
113
    is_vsp_vm_running
108
114
    if [ $? -eq 1 ]; then
109
 
        juju-log "Destroying vsp vm"
 
115
        logger "Destroying vsp vm"
110
116
        /usr/bin/virsh destroy ${VSP_VM_NAME}
111
117
        /usr/bin/virsh undefine ${VSP_VM_NAME}
112
118
    fi