MCPcopy Index your code
hub / github.com/fluid-cloudnative/fluid / patchNodeWithLabel

Method patchNodeWithLabel

pkg/csi/plugins/nodeserver.go:433–482  ·  view source on GitHub ↗
(node *corev1.Node, labelsToModify common.LabelsToModify)

Source from the content-addressed store, hash-verified

431}
432
433func (ns *nodeServer) patchNodeWithLabel(node *corev1.Node, labelsToModify common.LabelsToModify) error {
434 labels := labelsToModify.GetLabels()
435 labelValuePair := map[string]interface{}{}
436
437 for _, labelToModify := range labels {
438 operationType := labelToModify.GetOperationType()
439 labelToModifyKey := labelToModify.GetLabelKey()
440 labelToModifyValue := labelToModify.GetLabelValue()
441
442 switch operationType {
443 case common.AddLabel, common.UpdateLabel:
444 labelValuePair[labelToModifyKey] = labelToModifyValue
445 case common.DeleteLabel:
446 labelValuePair[labelToModifyKey] = nil
447 default:
448 err := fmt.Errorf("fail to update the label due to the wrong operation: %s", operationType)
449 return err
450 }
451 }
452
453 metadata := map[string]interface{}{
454 "metadata": map[string]interface{}{
455 "labels": labelValuePair,
456 },
457 }
458
459 patchByteData, err := json.Marshal(metadata)
460 if err != nil {
461 return err
462 }
463 useNodeAuthorization := ns.nodeAuthorizedClient != nil
464 if useNodeAuthorization {
465 _, err = ns.nodeAuthorizedClient.CoreV1().Nodes().Patch(context.TODO(), node.Name, types.StrategicMergePatchType, patchByteData, metav1.PatchOptions{})
466 if err != nil {
467 return err
468 }
469 } else {
470 nodeToPatch := &corev1.Node{
471 ObjectMeta: metav1.ObjectMeta{
472 Name: node.Name,
473 },
474 }
475 err = ns.client.Patch(context.TODO(), nodeToPatch, client.RawPatch(types.StrategicMergePatchType, patchByteData))
476 if err != nil {
477 return err
478 }
479 }
480
481 return nil
482}
483
484func checkMountInUse(volumeName string) (bool, error) {
485 var inUse bool

Callers 3

NodeStageVolumeMethod · 0.95
prepareSessMgrMethod · 0.95
getCleanFuseFuncMethod · 0.95

Calls 4

GetLabelsMethod · 0.80
GetLabelKeyMethod · 0.80
GetLabelValueMethod · 0.80
GetOperationTypeMethod · 0.65

Tested by

no test coverage detected