コード例 #1
0
function openqrm_ansible_remove_cloud_applications($appliance_name)
{
    global $event;
    global $OPENQRM_SERVER_BASE_DIR;
    global $OPENQRM_SERVER_IP_ADDRESS;
    global $OPENQRM_EXEC_PORT;
    $ansible = new ansible();
    $ansible->remove_appliance($appliance_name);
}
コード例 #2
0
function openqrm_ansible_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_ansible_cloud_product", $_SERVER['REQUEST_TIME'], 5, "openqrm-ansible-cloud-product-hook.php", "Handling " . $cmd . " event", "", "", 0, 0, 0);
    switch ($cmd) {
        case "add":
            // create application products
            $next_sort_id = 0;
            $db = openqrm_get_db_connection();
            $ansible = new ansible();
            $ansible_group_array = $ansible->get_available_playbooks();
            foreach ($ansible_group_array as $index => $ansible_app) {
                $event->log("openqrm_ansible_cloud_product", $_SERVER['REQUEST_TIME'], 5, "openqrm-ansible-cloud-product-hook.php", "Adding application " . $ansible_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 . ", 'ansible/" . $ansible_app . "', 1, '" . $ansible_app . "', '" . $ansible_app . " via ansible', 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, 'ansible/');
                    if ($pos !== false) {
                        $event->log("openqrm_ansible_cloud_product", $_SERVER['REQUEST_TIME'], 5, "openqrm-ansible-cloud-product-hook.php", "Removing application " . $cloud_selector->quantity . " from cloud-products", "", "", 0, 0, 0);
                        $cloud_selector->remove($id);
                    }
                }
            }
            break;
    }
}