cc1  v2.1
CC1 source code docs
 All Classes Namespaces Files Functions Variables Pages
s120_ip_attach.py
Go to the documentation of this file.
1 # -*- coding: utf-8 -*-
2 # @COPYRIGHT_begin
3 #
4 # Copyright [2010-2014] Institute of Nuclear Physics PAN, Krakow, Poland
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # @COPYRIGHT_end
19 
20 ##
21 #
22 # Attach disk to VM in init state
23 #
24 from predefined.actions import *
25 from predefined.users import *
26 from predefined.macros import *
27 import settings
28 
29 actions = []
30 actions.append(list_clusters)
31 
32 actions.append(list_filesystems)
33 actions.append(list_video_devices)
34 actions.append(list_network_devices)
35 actions.append(list_disk_controllers)
36 actions.append(list_private_storage_images)
37 actions.append(list_private_vm_images)
38 actions.append(list_templates)
39 actions.append(list_available_networks)
40 actions.append(list_user_public_ip)
41 
42 actions.append({'u': u_new,
43  'fname': 'vm.user.create',
44  'args': [{'vnc': True,
45  'name': 'TestVMIp',
46  'iso_list': [],
47  'image_id': MACRO_GET_PRIVATE_VM_IMAGE_ID("PrivateImage"),
48  'disk_list': [],
49  'template_id': MACRO_GET_TEMPLATE_ID("Small"),
50  'description': 'asd'}],
51  'store_as': 'new_vm',
52  })
53 
54 # Attach ip in init
55 actions.append({'u': u_new,
56  'fname': 'elasticip.user.assign',
57  'args': [{'lease_id': '@r["new_vm"][0]["leases"][0]["id"]',
58  'publicip_id': '@r["user_public_ip"][0]["id"]'}],
59  })
60 
61 # Re-attach the same ip
62 actions.append({'u': u_new,
63  'fname': 'elasticip.user.assign',
64  'args': [{'lease_id': '@r["new_vm"][0]["leases"][0]["id"]',
65  'publicip_id': '@r["user_public_ip"][0]["id"]'}],
66  'estatus': 'public_lease_assigned',
67  })
68 
69 # Detach ip in init
70 actions.append({'u': u_new,
71  'fname': 'elasticip.user.unassign',
72  'args': ['@r["new_vm"][0]["leases"][0]["id"]'],
73  })
74 
75 # Re-detach the same ip
76 actions.append({'u': u_new,
77  'fname': 'elasticip.user.unassign',
78  'args': ['@r["new_vm"][0]["leases"][0]["id"]'],
79  'estatus': 'lease_detached',
80  })
81 
82 # Wait VM is running
83 actions.append(wait_vm_is_running("TestVMIp"))
84 actions.append(list_user_vms)
85 
86 # Attach ip in running
87 actions.append({'u': u_new,
88  'fname': 'elasticip.user.assign',
89  'args': [{'lease_id': '@r["new_vm"][0]["leases"][0]["id"]',
90  'publicip_id': '@r["user_public_ip"][0]["id"]', 'user_id': 1}],
91  })
92 
93 # Detach ip in running
94 actions.append({'u': u_new,
95  'fname': 'elasticip.user.unassign',
96  'args': ['@r["new_vm"][0]["leases"][0]["id"]'],
97  })
98 
99 
100 # Destroy VM
101 actions.append({'u': u_new,
102  'fname': 'vm.user.destroy',
103  'args': [[MACRO_GET_USER_VM_ID("TestVMIp")]]})
104