function openqrm_puppet_cloud_product($cmd, $cloud_hook_config) { global $event; global $OPENQRM_SERVER_BASE_DIR; global $OPENQRM_SERVER_IP_ADDRESS; global $OPENQRM_EXEC_PORT; global $RootDir; $openqrm_server = new openqrm_server(); $event->log("openqrm_puppet_cloud_product", $_SERVER['REQUEST_TIME'], 5, "openqrm-puppet-cloud-product-hook.php", "Handling " . $cmd . " event", "", "", 0, 0, 0); switch ($cmd) { case "add": $event->log("openqrm_puppet_cloud_product", $_SERVER['REQUEST_TIME'], 5, "openqrm-puppet-cloud-product-hook.php", "Handling cloud-product " . $cmd . " event", "", "", 0, 0, 0); // create application products $next_sort_id = 0; $db = openqrm_get_db_connection(); $puppet = new puppet(); $puppet_group_array = $puppet->get_available_groups(); foreach ($puppet_group_array as $index => $puppet_app) { $event->log("openqrm_puppet_cloud_product", $_SERVER['REQUEST_TIME'], 5, "openqrm-puppet-cloud-product-hook.php", "Adding application " . $puppet_app . " as cloud-product", "", "", 0, 0, 0); $cloud_product_id = (int) str_replace(".", "", str_pad(microtime(true), 15, "0")); $create_application_cloudselector_config = "insert into cloud_selector (id, type, sort_id, quantity, price, name, description, state) VALUES (" . $cloud_product_id . ", 'application', " . $next_sort_id . ", 'puppet/" . $puppet_app . "', 1, '" . $puppet_app . "', '" . $puppet_app . " via puppet', 1);"; $recordSet = $db->Execute($create_application_cloudselector_config); $next_sort_id++; } break; case "remove": $cloud_product_class = $RootDir . "/plugins/cloud/class/cloudselector.class.php"; if (file_exists($cloud_product_class)) { require_once $cloud_product_class; $cloud_selector = new cloudselector(); $cloud_selector_id_ar = $cloud_selector->get_all_ids(); foreach ($cloud_selector_id_ar as $key => $value) { $id = $value['id']; $cloud_selector->get_instance_by_id($id); $pos = strpos($cloud_selector->quantity, 'puppet/'); if ($pos !== false) { $event->log("openqrm_puppet_cloud_product", $_SERVER['REQUEST_TIME'], 5, "openqrm-puppet-cloud-product-hook.php", "Removing application " . $cloud_selector->quantity . " from cloud-products", "", "", 0, 0, 0); $cloud_selector->remove($id); } } } break; } }