本文整理汇总了PHP中image::get_deployment_parameter方法的典型用法代码示例。如果您正苦于以下问题:PHP image::get_deployment_parameter方法的具体用法?PHP image::get_deployment_parameter怎么用?PHP image::get_deployment_parameter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类image
的用法示例。
在下文中一共展示了image::get_deployment_parameter方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: openqrm_linuxcoe_appliance
function openqrm_linuxcoe_appliance($cmd, $appliance_fields)
{
global $event;
global $OPENQRM_SERVER_BASE_DIR;
global $OPENQRM_SERVER_IP_ADDRESS;
global $OPENQRM_EXEC_PORT;
$openqrm_server = new openqrm_server();
$appliance_id = $appliance_fields["appliance_id"];
$appliance_name = $appliance_fields["appliance_name"];
$resource = new resource();
$resource->get_instance_by_id($appliance_fields["appliance_resources"]);
$resource_mac = $resource->mac;
$resource_ip = $resource->ip;
$appliance = new appliance();
$appliance->get_instance_by_id($appliance_id);
$linuxcoe_install_timeout = 240;
// check appliance values, maybe we are in update and they are incomplete
if ($appliance->imageid == 1) {
return;
}
if ($resource->id == "-1" || $resource->id == "") {
return;
}
// check if image is type linuxcoe-deployment
$image = new image();
$image->get_instance_by_id($appliance->imageid);
// linuxcoe configured in image deployment parameters ?
$linuxcoe_auto_install_enabled = false;
$linuxcoe_deployment_parameters = trim($image->get_deployment_parameter("INSTALL_CONFIG"));
if (strlen($linuxcoe_deployment_parameters)) {
$linuxcoe_deployment_parameter_arr = explode(":", $linuxcoe_deployment_parameters);
$local_deployment_persistent = $linuxcoe_deployment_parameter_arr[0];
$local_deployment_type = $linuxcoe_deployment_parameter_arr[1];
if (strcmp($local_deployment_type, "linuxcoe-deployment")) {
$event->log("openqrm_linuxcoe_appliance", $_SERVER['REQUEST_TIME'], 5, "openqrm-linuxcoe-appliance-hook.php", "Appliance " . $appliance_id . "/" . $appliance_name . " image is not from type linuxcoe-deployment", "", "", 0, 0, $resource->id);
return;
}
$linuxcoe_server_storage_id = $linuxcoe_deployment_parameter_arr[2];
$linuxcoe_install_profile = $linuxcoe_deployment_parameter_arr[3];
$linuxcoe_auto_install_enabled = true;
}
$event->log("openqrm_linuxcoe_appliance", $_SERVER['REQUEST_TIME'], 5, "openqrm-linuxcoe-appliance-hook.php", "Handling {$cmd} event {$appliance_id}/{$appliance_name}/{$resource_ip}/{$resource_mac}", "", "", 0, 0, $resource->id);
switch ($cmd) {
case "start":
$event->log("openqrm_linuxcoe_appliance", $_SERVER['REQUEST_TIME'], 5, "openqrm-linuxcoe-appliance-hook.php", "START event {$appliance_id}/{$appliance_name}/{$resource_ip}/{$resource_mac}", "", "", 0, 0, $resource->id);
if ($linuxcoe_auto_install_enabled) {
// prepare automatic-installation / transfer client to linuxcoe server
$linuxcoe_command = $OPENQRM_SERVER_BASE_DIR . "/openqrm/plugins/linuxcoe/bin/openqrm-linuxcoe-manager transfer_to_linuxcoe -x " . $resource->id . " -i " . $resource_ip . " -m " . $resource_mac . " -n " . $linuxcoe_install_profile . " --openqrm-cmd-mode background";
$event->log("openqrm_linuxcoe_appliance", $_SERVER['REQUEST_TIME'], 5, "openqrm-linuxcoe-appliance-hook.php", "transfer_to_linuxcoe {$resource_ip} / {$linuxcoe_install_profile}", "", "", 0, 0, $resource->id);
$openqrm_server->send_command($linuxcoe_command, NULL, true);
// Remove image-deployment paramters, if auto-install is a single-shot actions
if (!strcmp($local_deployment_persistent, "0")) {
$image->set_deployment_parameters("INSTALL_CONFIG", "");
}
// create linuxcoestate-state object to allow to run a late setboot to local command on the vm host
$linuxcoe_state = new linuxcoestate();
$linuxcoe_state->remove_by_resource_id($resource->id);
$linuxcoe_state_fields = array();
$linuxcoe_state_fields["linuxcoe_id"] = (int) str_replace(".", "", str_pad(microtime(true), 15, "0"));
$linuxcoe_state_fields["linuxcoe_resource_id"] = $resource->id;
$linuxcoe_state_fields["linuxcoe_install_start"] = $_SERVER['REQUEST_TIME'];
$linuxcoe_state_fields["linuxcoe_timeout"] = $linuxcoe_install_timeout;
$linuxcoe_state->add($linuxcoe_state_fields);
} else {
if (strcmp($image->type, "linuxcoe-deployment")) {
$event->log("openqrm_linuxcoe_appliance", $_SERVER['REQUEST_TIME'], 5, "openqrm-linuxcoe-appliance-hook.php", "Appliance {$appliance_id}/{$appliance_name} image is not from type linuxcoe-deployment", "", "", 0, 0, $resource->id);
} else {
// we have auto-installed already, if it is VM the linuxcoeresource object will care to set the boot-sequence on the VM Host to local boot
$linuxcoeresource = new linuxcoeresource();
$linuxcoeresource->set_boot($resource->id, 1);
// set pxe config to local-boot
$event->log("openqrm_linuxcoe_appliance", $_SERVER['REQUEST_TIME'], 5, "openqrm-linuxcoe-appliance-hook.php", "Setting resource {$resource_ip} to local-boot", "", "", 0, 0, $resource->id);
$linuxcoe_command = $OPENQRM_SERVER_BASE_DIR . "/openqrm/plugins/linuxcoe/bin/openqrm-linuxcoe-manager set_linuxcoe_client_to_local_boot -m " . $resource_mac . " --openqrm-cmd-mode background";
$openqrm_server->send_command($linuxcoe_command, NULL, true);
}
}
break;
case "stop":
if (strcmp($image->type, "linuxcoe-deployment")) {
$event->log("stop", $_SERVER['REQUEST_TIME'], 5, "openqrm-linuxcoe-appliance-hook.php", "Appliance {$appliance_id}/{$appliance_name} image is not from type linuxcoe-deployment", "", "", 0, 0, $resource->id);
} else {
$event->log("stop", $_SERVER['REQUEST_TIME'], 5, "openqrm-linuxcoe-appliance-hook.php", "Stop event for appliance " . $appliance_id . "/" . $appliance->name . ".", "", "", 0, 0, $resource->id);
// remove linuxcoestate-state object if existing
$local_storage_state = new linuxcoestate();
$local_storage_state->remove_by_resource_id($resource->id);
// if it is VM the linuxcoeresource object will care to set the boot-sequence on the VM Host to network boot
$linuxcoeresource = new linuxcoeresource();
$linuxcoeresource->set_boot($resource->id, 0);
}
break;
}
}
示例2: storage_auth_deployment_stop
function storage_auth_deployment_stop($image_id)
{
global $event;
global $OPENQRM_SERVER_BASE_DIR;
global $OPENQRM_SERVER_IP_ADDRESS;
global $OPENQRM_EXEC_PORT;
$image = new image();
$image->get_instance_by_id($image_id);
$image_name = $image->name;
$image_rootdevice = $image->rootdevice;
$storage = new storage();
$storage->get_instance_by_id($image->storageid);
$storage_resource = new resource();
$storage_resource->get_instance_by_id($storage->resource_id);
$storage_ip = $storage_resource->ip;
$deployment = new deployment();
$deployment->get_instance_by_type($image->type);
$deployment_type = $deployment->type;
$deployment_plugin_name = $deployment->storagetype;
// just for sending the commands
$resource = new resource();
// get install deployment params
$install_from_nfs_param = trim($image->get_deployment_parameter("IMAGE_INSTALL_FROM_NFS"));
if (strlen($install_from_nfs_param)) {
// storage -> resource -> auth
$ip_storage_id = $deployment->parse_deployment_parameter("id", $install_from_nfs_param);
$ip_storage_ip = $deployment->parse_deployment_parameter("ip", $install_from_nfs_param);
$ip_image_rootdevice = $deployment->parse_deployment_parameter("path", $install_from_nfs_param);
$ip_storage = new storage();
$ip_storage->get_instance_by_id($ip_storage_id);
$ip_storage_resource = new resource();
$ip_storage_resource->get_instance_by_id($ip_storage->resource_id);
$op_storage_ip = $ip_storage_resource->ip;
$ip_deployment = new deployment();
$ip_deployment->get_instance_by_id($ip_storage->type);
$ip_deployment_type = $ip_deployment->type;
$ip_deployment_plugin_name = $ip_deployment->storagetype;
$event->log("storage_auth_function", $_SERVER['REQUEST_TIME'], 5, "openqrm-lvm-nfs-deployment-auth-hook.php", "Install-from-NFS: Authenticating {$resource_ip} on storage id {$ip_storage_id}:{$ip_storage_ip}:{$ip_image_rootdevice}", "", "", 0, 0, $resource_id);
$auth_install_from_nfs_start_cmd = $OPENQRM_SERVER_BASE_DIR . "/openqrm/plugins/" . $ip_deployment_plugin_name . "/bin/openqrm-" . $ip_deployment_plugin_name . " auth -r " . $ip_image_rootdevice . " -i " . $OPENQRM_SERVER_IP_ADDRESS . " -t " . $ip_deployment_type . " --openqrm-cmd-mode background";
$resource->send_command($ip_storage_ip, $auth_install_from_nfs_start_cmd);
}
// get transfer deployment params
$transfer_from_nfs_param = trim($image->get_deployment_parameter("IMAGE_TRANSFER_TO_NFS"));
if (strlen($transfer_from_nfs_param)) {
// storage -> resource -> auth
$tp_storage_id = $deployment->parse_deployment_parameter("id", $transfer_from_nfs_param);
$tp_storage_ip = $deployment->parse_deployment_parameter("ip", $transfer_from_nfs_param);
$tp_image_rootdevice = $deployment->parse_deployment_parameter("path", $transfer_from_nfs_param);
$tp_storage = new storage();
$tp_storage->get_instance_by_id($tp_storage_id);
$tp_storage_resource = new resource();
$tp_storage_resource->get_instance_by_id($tp_storage->resource_id);
$op_storage_ip = $tp_storage_resource->ip;
$tp_deployment = new deployment();
$tp_deployment->get_instance_by_id($tp_storage->type);
$tp_deployment_type = $tp_deployment->type;
$tp_deployment_plugin_name = $tp_deployment->storagetype;
$event->log("storage_auth_function", $_SERVER['REQUEST_TIME'], 5, "openqrm-lvm-nfs-deployment-auth-hook.php", "Install-from-NFS: Authenticating {$resource_ip} on storage id {$tp_storage_id}:{$tp_storage_ip}:{$tp_image_rootdevice}", "", "", 0, 0, $resource_id);
$auth_install_from_nfs_start_cmd = $OPENQRM_SERVER_BASE_DIR . "/openqrm/plugins/" . $tp_deployment_plugin_name . "/bin/openqrm-" . $tp_deployment_plugin_name . " auth -r " . $tp_image_rootdevice . " -i " . $OPENQRM_SERVER_IP_ADDRESS . " -t " . $tp_deployment_type . " --openqrm-cmd-mode background";
$resource->send_command($tp_storage_ip, $auth_install_from_nfs_start_cmd);
}
}
示例3: switch
function send_command($resource_ip, $resource_command, $command_timeout = NULL)
{
global $OPENQRM_EXEC_PORT;
global $OPENQRM_SERVER_BASE_DIR;
global $OPENQRM_EXECUTION_LAYER;
global $event;
global $RootDir;
// here we assume that we are the resource
// plugin hook in case a resource gets rebooted or halted
switch ($resource_command) {
case 'reboot':
// start the hook
$plugin = new plugin();
$enabled_plugins = $plugin->enabled();
foreach ($enabled_plugins as $index => $plugin_name) {
$plugin_start_resource_hook = "{$RootDir}/plugins/{$plugin_name}/openqrm-{$plugin_name}-resource-hook.php";
if (file_exists($plugin_start_resource_hook)) {
$event->log("start", $_SERVER['REQUEST_TIME'], 5, "resource.class.php", "Found plugin {$plugin_name} handling start-resource event.", "", "", 0, 0, $this->id);
// prepare resource_fields array
$resource_fields = array();
$resource_fields = $this->get_fields($this->id);
// include the plugin function file and run it
require_once "{$plugin_start_resource_hook}";
$resource_function = "openqrm_" . "{$plugin_name}" . "_resource";
$resource_function = str_replace("-", "_", $resource_function);
$resource_function("start", $resource_fields);
}
}
// here we check if the resource is virtual or a host and if
// the virtualization plugin wants to reboot it via the host
$virtualization = new virtualization();
$virtualization->get_instance_by_id($this->vtype);
$virtualization_plugin_name = $virtualization->get_plugin_name();
$plugin_resource_virtual_command_hook_vm_type = "{$RootDir}/plugins/{$virtualization_plugin_name}/openqrm-{$virtualization_plugin_name}-resource-virtual-command-hook.php";
// we also give the deployment type a chance to implement virtual commands
$deployment_plugin_name = '';
if ($this->imageid != 1) {
$image = new image();
$image->get_instance_by_id($this->imageid);
$storage = new storage();
$storage->get_instance_by_id($image->storageid);
$deployment = new deployment();
$deployment->get_instance_by_id($storage->type);
$deployment_plugin_name = $deployment->storagetype;
}
$plugin_resource_virtual_command_hook = '';
$plugin_resource_virtual_command_hook_image_type = "{$RootDir}/plugins/{$deployment_plugin_name}/openqrm-{$deployment_plugin_name}-resource-virtual-command-hook.php";
// $plugin_resource_virtual_command_hook_image_type = "$RootDir/plugins/sanboot-storage/openqrm-sanboot-storage-resource-virtual-command-hook.php";
if (file_exists($plugin_resource_virtual_command_hook_vm_type)) {
$event->log("start", $_SERVER['REQUEST_TIME'], 5, "resource.class.php", "Found virtualization {$virtualization_plugin_name} managing virtual command.", "", "", 0, 0, $this->id);
$plugin_resource_virtual_command_hook = $plugin_resource_virtual_command_hook_vm_type;
} else {
if (file_exists($plugin_resource_virtual_command_hook_image_type)) {
// check if IMAGE_VIRTUAL_RESOURCE_COMMAND=true
$event->log("start", $_SERVER['REQUEST_TIME'], 5, "resource.class.php", "Found deploymetn {$deployment_plugin_name} managing virtual command.", "", "", 0, 0, $this->id);
$image = new image();
$image->get_instance_by_id($this->imageid);
$virtual_command_enabled = $image->get_deployment_parameter("IMAGE_VIRTUAL_RESOURCE_COMMAND");
if (!strcmp($virtual_command_enabled, "true")) {
$event->log("start", $_SERVER['REQUEST_TIME'], 5, "resource.class.php", "Found IMAGE_VIRTUAL_RESOURCE_COMMAND enabled, using virtual command.", "", "", 0, 0, $this->id);
$plugin_resource_virtual_command_hook = $plugin_resource_virtual_command_hook_image_type;
$virtualization_plugin_name = $deployment_plugin_name;
} else {
$event->log("start", $_SERVER['REQUEST_TIME'], 5, "resource.class.php", "Found IMAGE_VIRTUAL_RESOURCE_COMMAND disabled, using regular command.", "", "", 0, 0, $this->id);
}
}
}
if (strlen($plugin_resource_virtual_command_hook)) {
$event->log("start", $_SERVER['REQUEST_TIME'], 5, "resource.class.php", "Found plugin {$virtualization_plugin_name} virtually handling the reboot command.", "", "", 0, 0, $this->id);
// prepare resource_fields array
$resource_fields = array();
$resource_fields = $this->get_fields($this->id);
// include the plugin function file and run it
require_once "{$plugin_resource_virtual_command_hook}";
$resource_function = "openqrm_" . "{$virtualization_plugin_name}" . "_resource_virtual_command";
$resource_function = str_replace("-", "_", $resource_function);
$resource_function("reboot", $resource_fields);
// the virtual reboot function can only be
// implemented by a single plugin depending on the
// resource type. So we return after that and
// do not try to reboot the resource via its ip
return;
}
break;
case 'halt':
// stop hook
$plugin = new plugin();
$enabled_plugins = $plugin->enabled();
foreach ($enabled_plugins as $index => $plugin_name) {
$plugin_start_resource_hook = "{$RootDir}/plugins/{$plugin_name}/openqrm-{$plugin_name}-resource-hook.php";
if (file_exists($plugin_start_resource_hook)) {
$event->log("stop", $_SERVER['REQUEST_TIME'], 5, "resource.class.php", "Found plugin {$plugin_name} handling start-resource event.", "", "", 0, 0, $this->id);
// prepare resource_fields array
$resource_fields = array();
$resource_fields = $this->get_fields($this->id);
// include the plugin function file and run it
require_once "{$plugin_start_resource_hook}";
$resource_function = "openqrm_" . "{$plugin_name}" . "_resource";
$resource_function = str_replace("-", "_", $resource_function);
$resource_function("stop", $resource_fields);
//.........这里部分代码省略.........