From: S.Çağlar Onur Date: Tue, 29 Jun 2010 03:37:51 +0000 (-0400) Subject: update slice tag whenever appropriate X-Git-Tag: plewww-4.3-47~3 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=903b19f98250e3d55639eaaa7831b8c1c7e0cdc2;hp=dae06860187fe0bb38494d0637601c746c5815d8;p=plewww.git update slice tag whenever appropriate --- diff --git a/planetlab/common/actions.php b/planetlab/common/actions.php index ffb6bc1..52d5173 100644 --- a/planetlab/common/actions.php +++ b/planetlab/common/actions.php @@ -701,19 +701,45 @@ Our support team will be glad to answer any question that you might have. $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); + + $tag_types=$api->GetTagTypes(array($tag_type_id)); + if (count ($tag_types) != 1) { + drupal_set_error ("Could not locate tag_type_id $tag_type_id
Tag not set."); } else { - $result = $api->AddSliceTag($slice_id, $tag_type_id, $value); + if ($node_id) { + $tags = $api->GetSliceTags(array('slice_id'=>$slice_id, 'tag_type_id'=> $tag_type_id, 'node_id' => $node_id)); + } elseif ($nodegroup_id) { + $tags = $api->GetSliceTags(array('slice_id'=>$slice_id, 'tag_type_id'=> $tag_type_id, 'nodegroup_id' => $nodegroup_id)); + } else { + $tags = $api->GetSliceTags(array('slice_id'=>$slice_id, 'tag_type_id'=> $tag_type_id, 'node_id' => NULL, 'nodegroup_id' => NULL)); + } + + if ( count ($tags) == 1) { + $tag=$tags[0]; + $tag_id=$tag['slice_tag_id']; + $result=$api->UpdateSliceTag($tag_id,$value); + if ($result) + drupal_set_message ("Updated slice tag."); + else + drupal_set_error("Could not update slice tag"); + } else { + 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 ($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