使用fabric8 Watch API监听所有Service上的删除操作没有监听到,为什么?(可付费解决问题)

我用fabric8来监听所有Service上的删除动作,代码如下。 从代码中,我先给所有Service创建了一个Watch,然后删除service1,但是输出信息里没有打印删除信息,到是有一些ADDED信息。
我可以付钱解决这个问题。

    @Test
    public void testWatchServices() {
        final CountDownLatch deleteLatch = new CountDownLatch(1);
        final CountDownLatch closeLatch = new CountDownLatch(1);


        Watch watch = client.services().inNamespace("auth").watch(new Watcher<Service>() {
            @Override
            public void eventReceived(Action action, Service resource) {
                switch (action) {
                    default:
                        System.out.println(action+" "+resource.getMetadata().getName()+"  is doing!");
//                        throw new AssertionFailedError(action.toString().concat(" isn't recognised."));
                }
            }

            @Override
            public void onClose(KubernetesClientException cause) {

            }
        });

        //CREATE
        if (client.pods().inNamespace("auth").withName("service1") != null) {
            client.pods().inNamespace("auth").create(new PodBuilder().withNewMetadata().withName("service1").endMetadata().build());
        }
//        //READ
//        ServiceList serviceList = client.services().inNamespace("auth").list();
//        System.out.println(JSON.toJSONString(serviceList,true));
//        assertNotNull(serviceList);



 //DELETE
        client.pods().inNamespace("auth").withName("service1").delete();

//        //READ AGAIN
//        serviceList = client.services().inNamespace("auth").list();
//        assertNotNull(serviceList);

 try {
            assertTrue(deleteLatch.await(1, TimeUnit.MINUTES));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        watch.close();
        try {
            assertTrue(closeLatch.await(1, TimeUnit.MINUTES));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

控制台打印信息:

ADDED auth-redis-ddb  is doing!
ADDED authentication-service  is doing!
ADDED auth-api  is doing!
ADDED auth-jsclient  is doing!
ADDED auth-api-central  is doing!
ADDED authentication-facade  is doing!
ADDED auth-authentication-server  is doing!
阅读 3.9k
1 个回答

因为你删除pods的时候. 是不会把 service 删除的.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进