// expects: site_id & name abbreviated_name url latitude longitude [login_base max_slices]
//////////////////////////////////////// slices
+$known_actions []= "delete-slice";
+// expects: slice_id
+$known_actions []= "update-slice";
+// expects: slice_id, name, description, url
$known_actions []= "renew-slice";
// expects: slice_id & expires
+$known_actions []= 'remove-persons-from-slice';
+// expects: slice_id & person_ids
+$known_actions []= 'add-persons-in-slice';
+// expects: slice_id & person_ids
+$known_actions []= 'remove-nodes-from-slice';
+// expects: slice_id & node_ids
+$known_actions []= 'add-nodes-in-slice';
+// expects: slice_id & node_ids
+$known_actions []= 'delete-slice-tags';
+// expects: slice_tag_id
+$known_actions []= 'add-slice-tag';
+// expects: slice_id & tag_type_id & node_id & nodegroup_id
//////////////////////////////////////// tag types
$known_actions []= "update-tag-type";
$key_id = $api->AddPersonKey( intval( $person_id ), array( "key_type"=> 'ssh', "key"=> $key ) );
- if ( $key_id == 1)
+ if ( $key_id >= 1)
drupal_set_message ("New key added");
else
drupal_set_error("Could not add key, please verify your SSH file content\n" . $api->error());
}
//////////////////////////////////////////////////////////// slices
- case 'renew_slice': {
+ case 'delete-slice': {
+ $slice_id = $_POST['slice_id'];
+ if ($api->DeleteSlice( intval( $slice_id )) == 1 ) {
+ drupal_set_message("Slice $slice_id deleted");
+ plc_redirect(l_slices());
+ } else {
+ drupal_set_error("Could not delete slice $slice_id " . $api->error());
+ }
+ break;
+ }
+
+ case 'update-slice': {
+ $slice_id = $_POST['slice_id'];
+ $name = $_POST['name'];
+ $description= $_POST['description'];
+ $url= $_POST['url'];
+
+ $fields= array( "description"=>$description, "url"=>$url );
+ $api->UpdateSlice( intval( $slice_id ), $fields );
+ $error= $api->error();
+
+ if( empty( $error ) ) {
+ drupal_set_message("Update slice $name");
+ plc_redirect(l_slice($slice_id));
+ } else {
+ drupal_set_error($error);
+ }
+ break;
+ }
+
+ case 'renew-slice': {
$slice_id = intval ($_POST['slice_id']);
$expires = intval ($_POST['expires']);
// 8 weeks from now
// xxx
- $now=date();
+ $now=mktime();
+ $WEEK=7*24*3600;
$WEEKS=8;
- $MAX_FUTURE=$WEEKS*7*24*3600;
+ $MAX_FUTURE=$WEEKS*$WEEK;
if ( ($expires-$now) > $MAX_FUTURE) {
- drupal_set_error("Cannot renew slice that far in the future, max is $WEEKS from now");
+ drupal_set_error("Cannot renew slice that far in the future, max is $WEEKS weeks from now");
plc_redirect(l_slice($slice_id));
}
+ plc_debug('slice_id',$slice_id);
+ plc_debug('expires',$expires);
if ($api->UpdateSlice ($slice_id, array('expires'=>$expires)) == 1)
drupal_set_message("Slice renewed");
else
break;
}
+ case 'remove-persons-from-slice': {
+ $slice_id = intval ($_POST['slice_id']);
+ $person_ids = $_POST['person_ids'];
+
+ $success=true;
+ $counter=0;
+ foreach( $person_ids as $person_id ) {
+ if ($api->DeletePersonFromSlice(intval($person_id),$slice_id) != 1)
+ $success=false;
+ else
+ $counter++;
+ }
+ if ($success)
+ drupal_set_message ("Deleted $counter person(s)");
+ else
+ drupal_set_error ("Could not delete all selected persons, only $counter were removed");
+ plc_redirect(l_slice($slice_id) . " &show_persons=true");
+ break;
+ }
+
+ case 'add-persons-in-slice': {
+ $slice_id = intval ($_POST['slice_id']);
+ $person_ids = $_POST['person_ids'];
+
+ $success=true;
+ $counter=0;
+ foreach ($person_ids as $person_id) {
+ if ($api->AddPersonToSlice(intval($person_id),$slice_id) != 1)
+ $success=false;
+ else
+ $counter++;
+ }
+ if ($success)
+ drupal_set_message ("Added $counter person(s)");
+ else
+ drupal_set_error ("Could not add all selected persons, only $counter were added");
+ plc_redirect(l_slice($slice_id) . "&show_persons=true" );
+ break;
+ }
+
+ case 'remove-nodes-from-slice': {
+ $slice_id = intval ($_POST['slice_id']);
+ $node_ids = array_map("intval",$_POST['node_ids']);
+ $count=count($node_ids);
+
+ if ($api->DeleteSliceFromNodes($slice_id,$node_ids) == 1)
+ drupal_set_message ("Removed $count node(s)");
+ else
+ drupal_set_error ("Could not remove selected nodes");
+ plc_redirect(l_slice($slice_id) . " &show_nodes=true");
+ break;
+ }
+
+ case 'add-nodes-in-slice': {
+ $slice_id = intval ($_POST['slice_id']);
+ $node_ids = array_map("intval",$_POST['node_ids']);
+ $count=count($node_ids);
+ if ($api->AddSliceToNodes($slice_id,$node_ids) == 1)
+ drupal_set_message ("Added $count node(s)");
+ else
+ drupal_set_error ("Could not add all selected nodes");
+ plc_redirect(l_slice($slice_id) . "&show_nodes=true" );
+ break;
+ }
+
+ case 'delete-slice-tags': {
+ $slice_id = intval($_POST['slice_id']);
+ $slice_tag_ids = array_map("intval", $_POST['slice_tag_ids']);
+ $count = 0;
+ $success = true;
+ foreach($slice_tag_ids as $slice_tag_id) {
+ if ($api->DeleteSliceTag($slice_tag_id)) $count += 1;
+ else {
+ drupal_set_error("Could not delete slice tag: slice_tag_id = $slice_tag_id");
+ $success = false;
+ }
+ }
+ if ($success)
+ drupal_set_message ("Deleted $count slice tag(s)");
+ plc_redirect(l_slice($slice_id) . "&show_tags=true" );
+ break;
+ }
+
+ case 'add-slice-tag': {
+ $slice_id = intval($_POST['slice_id']);
+ $tag_type_id = intval($_POST['tag_type_id']);
+ $value = $_POST['value'];
+ $node_id = intval($_POST['node_id']);
+ $nodegroup_id = intval($_POST['nodegroup_id']);
+
+ $result = null;
+ if ($node_id) {
+ $result = $api->AddSliceTag($slice_id, $tag_type_id, $value, $node_id);
+ } elseif ($nodegroup_id) {
+ $result = $api->AddSliceTag($slice_id, $tag_type_id, $value, null, $nodegroup_id);
+ } else {
+ $result = $api->AddSliceTag($slice_id, $tag_type_id, $value);
+ }
+ if ($result)
+ drupal_set_message ("Added slice tag.");
+ else
+ drupal_set_error("Could not add slice tag");
+ if ($_POST['sliver_action'])
+ plc_redirect(l_sliver($node_id,$slice_id));
+ else
+ plc_redirect(l_slice($slice_id) . "&show_tags=true" );
+ break;
+ }
//////////////////////////////////////////////////////////// tag types
$tagname = $_POST['tagname'];
$min_role_id= intval( $_POST['min_role_id'] );
$description= $_POST['description'];
- $category= $_POST['category'];
+ $category= $_POST['category'];
// make tag_type_fields dict
$tag_type_fields= array( "min_role_id" => $min_role_id,