summaryrefslogtreecommitdiff
path: root/edge
diff options
context:
space:
mode:
authorfisherxu <xufei40@huawei.com>2020-01-16 18:06:13 +0800
committerfisherxu <xufei40@huawei.com>2020-04-18 14:16:29 +0800
commitab577693212aa70bb931e01523babe24904b3a74 (patch)
tree9094a5dc3d365870a85c66ef3f7475bb035cad22 /edge
parentadd deletion of pod in edged (diff)
downloadkubeedge-ab577693212aa70bb931e01523babe24904b3a74.tar.gz
add pod deletion in metamanager
Diffstat (limited to 'edge')
-rw-r--r--edge/pkg/metamanager/client/metaclient.go5
-rw-r--r--edge/pkg/metamanager/client/pod.go25
-rw-r--r--edge/pkg/metamanager/process.go7
3 files changed, 30 insertions, 7 deletions
diff --git a/edge/pkg/metamanager/client/metaclient.go b/edge/pkg/metamanager/client/metaclient.go
index 5d45ee0cc..b413b5004 100644
--- a/edge/pkg/metamanager/client/metaclient.go
+++ b/edge/pkg/metamanager/client/metaclient.go
@@ -100,6 +100,7 @@ func New() CoreInterface {
//SendInterface is to sync interface
type SendInterface interface {
SendSync(message *model.Message) (*model.Message, error)
+ Send(message *model.Message)
}
type send struct {
@@ -129,3 +130,7 @@ func (s *send) SendSync(message *model.Message) (*model.Message, error) {
})
return &resp, err
}
+
+func (s *send) Send(message *model.Message) {
+ beehiveContext.Send(metamanager.MetaManagerModuleName, *message)
+}
diff --git a/edge/pkg/metamanager/client/pod.go b/edge/pkg/metamanager/client/pod.go
index c8c6b124e..1a5444d10 100644
--- a/edge/pkg/metamanager/client/pod.go
+++ b/edge/pkg/metamanager/client/pod.go
@@ -1,6 +1,14 @@
package client
-import api "k8s.io/api/core/v1"
+import (
+ "fmt"
+
+ corev1 "k8s.io/api/core/v1"
+
+ "github.com/kubeedge/beehive/pkg/core/model"
+ "github.com/kubeedge/kubeedge/edge/pkg/common/message"
+ "github.com/kubeedge/kubeedge/edge/pkg/common/modules"
+)
//PodsGetter is interface to get pods
type PodsGetter interface {
@@ -9,10 +17,10 @@ type PodsGetter interface {
//PodsInterface is pod interface
type PodsInterface interface {
- Create(*api.Pod) (*api.Pod, error)
- Update(*api.Pod) error
+ Create(*corev1.Pod) (*corev1.Pod, error)
+ Update(*corev1.Pod) error
Delete(name string) error
- Get(name string) (*api.Pod, error)
+ Get(name string) (*corev1.Pod, error)
}
type pods struct {
@@ -27,18 +35,21 @@ func newPods(namespace string, s SendInterface) *pods {
}
}
-func (c *pods) Create(cm *api.Pod) (*api.Pod, error) {
+func (c *pods) Create(cm *corev1.Pod) (*corev1.Pod, error) {
return nil, nil
}
-func (c *pods) Update(cm *api.Pod) error {
+func (c *pods) Update(cm *corev1.Pod) error {
return nil
}
func (c *pods) Delete(name string) error {
+ resource := fmt.Sprintf("%s/%s/%s", c.namespace, model.ResourceTypePod, name)
+ podDeleteMsg := message.BuildMsg(modules.MetaGroup, "", modules.EdgedModuleName, resource, model.DeleteOperation, nil)
+ c.send.Send(podDeleteMsg)
return nil
}
-func (c *pods) Get(name string) (*api.Pod, error) {
+func (c *pods) Get(name string) (*corev1.Pod, error) {
return nil, nil
}
diff --git a/edge/pkg/metamanager/process.go b/edge/pkg/metamanager/process.go
index 8cabaf359..cd8b303b8 100644
--- a/edge/pkg/metamanager/process.go
+++ b/edge/pkg/metamanager/process.go
@@ -392,12 +392,19 @@ func (m *metaManager) processDelete(message model.Message) {
sendToCloud(resp)
return
}
+
if resType == constants.ResourceTypeListener {
// Notify edgemesh only
resp := message.NewRespByMessage(&message, OK)
sendToEdgeMesh(resp, true)
return
}
+
+ if resType == model.ResourceTypePod && message.GetSource() == modules.EdgedModuleName {
+ sendToCloud(&message)
+ return
+ }
+
// Notify edged
sendToEdged(&message, false)
resp := message.NewRespByMessage(&message, OK)