150
152
LOG.debug(response_data)
152
154
def _create_vlan_post_data(self, vlan_name, vlan_id):
153
156
data = CREATE_VLAN.replace(VLAN_NAME, vlan_name)
154
157
data = data.replace(VLAN_ID, vlan_id)
157
160
def _create_profile_post_data(self, profile_name, vlan_name):
158
162
data = CREATE_PROFILE.replace(PROFILE_NAME, profile_name)
159
163
data = data.replace(VLAN_NAME, vlan_name)
162
def _create_profile_client_post_data(self, profile_name,
166
def _create_pclient_post_data(self, profile_name,
163
167
profile_client_name):
164
169
data = ASSOCIATE_PROFILE.replace(PROFILE_NAME, profile_name)
165
170
data = data.replace(PROFILE_CLIENT, profile_client_name)
168
def _change_vlan_in_profile_post_data(self, profile_name, old_vlan_name,
173
def _change_vlaninprof_post_data(self, profile_name, old_vlan_name,
170
176
data = CHANGE_VLAN_IN_PROFILE.replace(PROFILE_NAME, profile_name)
171
177
data = data.replace(OLD_VLAN_NAME, old_vlan_name)
172
178
data = data.replace(VLAN_NAME, new_vlan_name)
175
181
def _delete_vlan_post_data(self, vlan_name):
176
183
data = DELETE_VLAN.replace(VLAN_NAME, vlan_name)
179
186
def _delete_profile_post_data(self, profile_name):
180
188
data = DELETE_PROFILE.replace(PROFILE_NAME, profile_name)
183
191
def _get_next_dynamic_nic(self):
192
"""Get an avaialble dynamic nic on the host"""
184
193
dynamic_nic_id = gvif.get_next_dynic()
185
194
if len(dynamic_nic_id) > 0:
186
195
return dynamic_nic_id
188
raise cisco_exceptions.NoMoreNics(net_id=net_id, port_id=port_id)
197
raise cexc.NoMoreNics()
190
199
def create_vlan(self, vlan_name, vlan_id, ucsm_ip, ucsm_username,
201
"""Create request for UCSM"""
192
202
data = self._create_vlan_post_data(vlan_name, vlan_id)
193
203
self._post_data(ucsm_ip, ucsm_username, ucsm_password, data)
195
205
def create_profile(self, profile_name, vlan_name, ucsm_ip, ucsm_username,
207
"""Create request for UCSM"""
197
208
data = self._create_profile_post_data(profile_name, vlan_name)
198
209
self._post_data(ucsm_ip, ucsm_username, ucsm_password, data)
199
data = self._create_profile_client_post_data(profile_name,
210
data = self._create_pclient_post_data(profile_name,
200
211
profile_name[-16:])
201
212
self._post_data(ucsm_ip, ucsm_username, ucsm_password, data)
203
214
def change_vlan_in_profile(self, profile_name, old_vlan_name,
204
215
new_vlan_name, ucsm_ip, ucsm_username,
206
data = self._change_vlan_in_profile_post_data(profile_name,
217
"""Create request for UCSM"""
218
data = self._change_vlaninprof_post_data(profile_name,
209
221
self._post_data(ucsm_ip, ucsm_username, ucsm_password, data)
211
223
def get_dynamic_nic(self, host):
224
"""Get an avaialble dynamic nic on the host"""
212
225
# TODO (Sumit): Check availability per host
213
226
# TODO (Sumit): If not available raise exception
214
227
# TODO (Sumit): This simple logic assumes that create-port and
222
235
return dynamic_nic_name
224
237
def delete_vlan(self, vlan_name, ucsm_ip, ucsm_username, ucsm_password):
238
"""Create request for UCSM"""
225
239
data = self._delete_vlan_post_data(vlan_name)
226
240
self._post_data(ucsm_ip, ucsm_username, ucsm_password, data)
228
242
def delete_profile(self, profile_name, ucsm_ip, ucsm_username,
244
"""Create request for UCSM"""
230
245
data = self._delete_profile_post_data(profile_name)
231
246
self._post_data(ucsm_ip, ucsm_username, ucsm_password, data)
233
248
def release_dynamic_nic(self, host):
249
"""Release a reserved dynamic nic on the host"""
234
250
# TODO (Sumit): Release on a specific host
239
client = CiscoUCSMDriver()
240
#client.create_vlan("quantum-vlan-3", "3","172.20.231.27","admin",
242
#client.create_profile("q-prof-3", "quantum-vlan-3","172.20.231.27",
243
# "admin", "c3l12345")
244
#client.get_dynamic_nic("dummy")
245
#client.get_dynamic_nic("dummy")
246
#client.release_dynamic_nic("dummy")
247
print client.get_dynamic_nic("dummy")
249
client.change_vlan_in_profile("br100", "default", "test-2",
250
"172.20.231.27","admin",
252
client.change_vlan_in_profile("br100", "test-2", "default",
253
"172.20.231.27", "admin", "c3l12345")
256
if __name__ == '__main__':