| |
1124 |
1124 |
specified name. Will create it if it is not found. It is |
| |
1125 |
1125 |
currently assumed the instance will be mounted under the main |
| |
1126 |
1126 |
subsite. |
| |
1127 |
1127 |
|
| |
1128 |
1128 |
@param package_key package to be instantiated |
| |
1129 |
1129 |
@param instance name name of the site-node this instance will |
| |
1130 |
1130 |
be mounted to. Will default to <package_key>-test |
| |
1131 |
1131 |
@param empty require an empty instance. If an existing |
| |
1132 |
1132 |
instance is found, it will be deleted. If a package |
| |
1133 |
1133 |
different than <package_key> is found, it won't be |
| |
1134 |
1134 |
deleted and the proc will return an error |
| |
1135 |
1135 |
|
| |
1136 |
1136 |
@return a package_id |
| |
1137 |
1137 |
} { |
| |
1138 |
1138 |
set main_node_id [site_node::get_element \ |
| |
1139 |
1139 |
-url / -element node_id] |
| |
1140 |
1140 |
|
| |
1141 |
1141 |
set instance_name [expr {$instance_name eq "" ? |
| |
1142 |
1142 |
"${package_key}-test" : [string trim $instance_name /]}] |
| |
1143 |
1143 |
|
| |
1144 |
|
set package_exists_p [::xo::dc 0or1row lookup_test_package { |
| |
|
1144 |
set package_exists_p [db_0or1row lookup_test_package { |
| |
1145 |
1145 |
select node_id, object_id as package_id |
| |
1146 |
1146 |
from site_nodes |
| |
1147 |
1147 |
where parent_id = :main_node_id |
| |
1148 |
1148 |
and name = :instance_name |
| |
1149 |
1149 |
}] |
| |
1150 |
1150 |
|
| |
1151 |
1151 |
if {$package_exists_p} { |
| |
1152 |
1152 |
set existing_package_key [apm_package_key_from_id $package_id] |
| |
1153 |
1153 |
if {$existing_package_key ne $package_key} { |
| |
1154 |
1154 |
error "An instance of '$existing_package_key' is already mounted at '$instance_name'" |
| |
1155 |
1155 |
} elseif {$empty_p} { |
| |
1156 |
1156 |
site_node::delete -node_id $node_id -delete_package |
| |
1157 |
1157 |
} |
| |
1158 |
1158 |
} |
| |
1159 |
1159 |
|
| |
1160 |
1160 |
if {!$package_exists_p || $empty_p} { |
| |
1161 |
1161 |
set package_id [site_node::instantiate_and_mount \ |
| |
1162 |
1162 |
-package_name $instance_name \ |
| |
1163 |
1163 |
-node_name $instance_name \ |
| |
1164 |
1164 |
-package_key $package_key] |