$found_hc = false; $found_hc_id = -1; foreach ($hc_id_list as $list) { foreach ($list as $hc_id) { $storage->get_instance_by_id($hc_id); if ($storage->resource_id == 0) { $found_hc = true; $found_hc_id = $storage->id; break; } } } if ($found_hc) { // remove all AMI Images, then the storage $image = new image(); $hc_image_list = $image->get_ids_by_storage($found_hc_id); foreach ($hc_image_list as $list) { foreach ($list as $hc_image_id) { $image->remove($hc_image_id); $event->log("init", $_SERVER['REQUEST_TIME'], 5, "hybrid-cloud-ation", "Removed AMI Image Object " . $hc_image_id . ".", "", "", 0, 0, 0); } } $storage->remove($found_hc_id); } // remove cloud products if (file_exists($cloud_usergroup_class)) { require_once $cloud_usergroup_class; $cloud_project = new cloudusergroup(); $cloud_project->get_instance_by_name('Admin'); if (file_exists($cloud_selector_class)) { if (file_exists($cloud_product_hook)) {
function remove() { $response = $this->get_response(); $storages = $response->html->request()->get($this->identifier_name); $form = $response->form; $storage = new storage(); if ($storages !== '') { $submit = $form->get_elements('submit'); $submit->handler = 'onclick="wait();"'; $form->add($submit, 'submit'); $submit = $form->get_elements('cancel'); $submit->handler = 'onclick="cancel();"'; $form->add($submit, 'cancel'); $i = 0; foreach ($storages as $id) { $storage = $storage->get_instance_by_id($id); $d['param_f' . $i]['label'] = $storage->name; $d['param_f' . $i]['object']['type'] = 'htmlobject_input'; $d['param_f' . $i]['object']['attrib']['type'] = 'checkbox'; $d['param_f' . $i]['object']['attrib']['name'] = $this->identifier_name . '[' . $i . ']'; $d['param_f' . $i]['object']['attrib']['value'] = $id; $d['param_f' . $i]['object']['attrib']['checked'] = true; $i++; } $form->add($d); if (!$form->get_errors() && $response->submit()) { $errors = array(); $message = array(); foreach ($storages as $key => $id) { $storage = $storage->get_instance_by_id($id); $storage_name = $storage->name; $image_is_used_by_storage = ""; $remove_error = 0; $image_remove_check = new image(); $image_remove_id_list = $image_remove_check->get_ids_by_storage($id); foreach ($image_remove_id_list as $image_list) { $image_id = $image_list['image_id']; $image_is_used_by_storage .= $image_id . " "; $remove_error = 1; } if ($remove_error == 1) { $message[] = sprintf($this->lang['msg_not_removing_active'], $id, $image_is_used_by_storage); continue; } $storage->remove($id); $form->remove($this->identifier_name . '[' . $key . ']'); $message[] = sprintf($this->lang['msg_removed'], $storage_name); } if (count($errors) === 0) { $response->msg = join('<br>', $message); } else { $msg = array_merge($errors, $message); $response->error = join('<br>', $msg); } } } else { $response->msg = ''; } return $response; }