Ejemplo n.º 1
0
    def test_req_replyc(self):
        '''Send request from basicinbox and verify it recives reply from basicpub'''
        my_print(
            "\n----------------------Running request_replyc test---------------------\n"
        )
        basicpubc_out = open('req_reply_basicpubc.out', 'w')
        basicpubc_err = open('req_reply_basicpubc.err', 'w')
        basicinboxc_out = open('req_reply_basicinboxc.out', 'w')

        ret1 = start_app("basicpubc",
                         "pub",
                         args=["-v", "-v", "-v", "-v"],
                         stdout=basicpubc_out,
                         stderr=basicpubc_err)
        ret2 = call_wait4text("Created inbound subscription",
                              "req_reply_basicpubc.out")
        ret3 = start_app("basicinboxc",
                         "sub",
                         stdout=basicinboxc_out,
                         stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Received reply", "req_reply_basicinboxc.out")

        basicpubc_out.close()
        basicpubc_err.close()
        basicinboxc_out.close()
        kill_process(ret3.pid)

        self.assertTrue(ret4 == 0)
Ejemplo n.º 2
0
    def test_ft_active_standbyc(self):
        '''start two basicftmemberc and verify the first one goes ot active and second to standby, if both belong to same group'''
        my_print(
            "\n--------------Running basicftmemberc test active-standby--------------\n"
        )
        ftmemberc1_out = open('active_standby_ftmemberc1.out', 'w')
        ftmemberc2_out = open('active_standby_ftmemberc2.out', 'w')

        ret1 = start_app("basicftmemberc",
                         "pub",
                         args=["-g", "active-standby", "-b"],
                         stdout=ftmemberc1_out,
                         stderr=subprocess.STDOUT)
        ret2 = call_wait4text("Current state is active",
                              "active_standby_ftmemberc1.out")
        ret3 = start_app("basicftmemberc",
                         "sub",
                         args=["-g", "active-standby", "-b"],
                         stdout=ftmemberc2_out,
                         stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Current state is standby",
                              "active_standby_ftmemberc2.out")
        ret5 = call_wait4text("Current state is standby",
                              "active_standby_ftmemberc1.out")

        ftmemberc1_out.close()
        ftmemberc2_out.close()
        kill_process(ret1.pid)
        kill_process(ret3.pid)

        self.assertTrue(ret2 == 0)
        self.assertTrue(ret4 == 0)
        self.assertTrue(ret5 == 1)
Ejemplo n.º 3
0
    def test_pubsubc(self):
        '''publish messages using basicpubc and verify basicsubc receives the messages'''
        my_print(
            "\n-------------------------Running pubsubc test-------------------------\n"
        )
        basicsubc_out = open('pubsub_basicsubc.out', 'w')
        basicsubc_err = open('pubsub_basicsubc.err', 'w')
        basicpubc_out = open('pubsub_basicpubc.out', 'w')
        ret1 = start_app("basicsubc",
                         "sub",
                         args=["-v", "-v", "-v", "-v"],
                         stdout=basicsubc_out,
                         stderr=basicsubc_err)

        ret2 = call_wait4text("Created inbound subscription",
                              "pubsub_basicsubc.out")
        ret3 = start_app("basicpubc",
                         "pub",
                         stdout=basicpubc_out,
                         stderr=subprocess.STDOUT)

        ret4 = call_wait4text("EXIT", "pubsub_basicsubc.out")
        ret5 = call_comparelog("pubsub_expectedsubc.out",
                               "pubsub_basicsubc.out")

        basicsubc_out.close()
        basicsubc_err.close()
        basicpubc_out.close()
        if ret1.poll() is None:
            kill_process(ret1.pid)
        if ret3.poll() is None:
            kill_process(ret3.pid)

        self.assertTrue(ret4 == 0)
        self.assertTrue(ret5 == 0)
Ejemplo n.º 4
0
    def test_ft_priorityc(self):
        '''start two basicftmemberc with different priority and verify that the one with lower priority goes to standby
        from active'''
        my_print(
            "\n-----------------Running basicftmemberc test priority-----------------\n"
        )
        ftmemberc1_out = open('priority_ftmemberc1.out', 'w')
        ftmemberc2_out = open('priority_ftmemberc2.out', 'w')

        ret1 = start_app("basicftmemberc",
                         "pub",
                         args=["-g", "priority", "-w", "40", "-b"],
                         stdout=ftmemberc1_out,
                         stderr=subprocess.STDOUT)
        ret2 = call_wait4text("Current state is active",
                              "priority_ftmemberc1.out")
        ret3 = start_app("basicftmemberc",
                         "sub",
                         args=["-g", "priority", "-w", "60", "-b"],
                         stdout=ftmemberc2_out,
                         stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Current state is active",
                              "priority_ftmemberc2.out")
        ret5 = call_wait4text("Current state is standby",
                              "priority_ftmemberc1.out")

        ftmemberc1_out.close()
        ftmemberc2_out.close()
        kill_process(ret1.pid)
        kill_process(ret3.pid)

        self.assertTrue(ret2 == 0)
        self.assertTrue(ret4 == 0)
        self.assertTrue(ret5 == 0)
Ejemplo n.º 5
0
    def test_pubsubcpp(self):
        '''publish messages using basicpubcpp and verify basicsubcpp receives the messages'''
        my_print("\n----------Running pubsubcpp test----------\n")
        basicsubcpp_out = open('pubsub_basicsubcpp.out','w')
        basicsubcpp_err = open('pubsub_basicsubcpp.err','w')
        basicpubcpp_out = open('pubsub_basicpubcpp.out','w')
        ret1 = start_app("basicsubcpp","sub",args=["-v","-v","-v","-v"],stdout=basicsubcpp_out,stderr=basicsubcpp_err)

        ret2 = call_wait4text("Created inbound subscription","pubsub_basicsubcpp.out")
        ret3 = start_app("basicpubcpp","pub",stdout=basicpubcpp_out,stderr=subprocess.STDOUT)

        ret4 = call_wait4text("EXIT", "pubsub_basicsubcpp.out")
        ret5 = call_comparelog("pubsub_expectedsubcpp.out","pubsub_basicsubcpp.out")

        basicsubcpp_out.close()
        basicsubcpp_err.close()
        basicpubcpp_out.close()

        if ret1.poll() is None:
            kill_process(ret1.pid)
        if ret3.poll() is None:
            kill_process(ret3.pid)

 
        self.assertTrue(ret4==0)
        self.assertTrue(ret5==0)
Ejemplo n.º 6
0
    def test_ft_active_activec(self):
        '''start two basicftmemberc and verify that both go to active, if they belong to different groups'''
        my_print(
            "\n---------------Running basicftmemberc test active-active--------------\n"
        )
        ftmemberc1_out = open('active_active_ftmemberc1.out', 'w')
        ftmemberc2_out = open('active_active_ftmemberc2.out', 'w')

        ret1 = start_app("basicftmemberc",
                         "pub",
                         args=["-g", "active-active1", "-b"],
                         stdout=ftmemberc1_out,
                         stderr=subprocess.STDOUT)
        ret2 = call_wait4text("Current state is active",
                              "active_active_ftmemberc1.out")
        ret3 = start_app("basicftmemberc",
                         "sub",
                         args=["-g", "active-active2", "-b"],
                         stdout=ftmemberc2_out,
                         stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Current state is active",
                              "active_active_ftmemberc2.out")
        ret5 = call_wait4text("Current state is standby",
                              "active_active_ftmemberc1.out")

        ftmemberc1_out.close()
        ftmemberc2_out.close()
        kill_process(ret1.pid)
        kill_process(ret3.pid)

        self.assertTrue(ret2 == 0)
        self.assertTrue(ret4 == 0)
        self.assertTrue(ret5 == 1)
Ejemplo n.º 7
0
    def test_req_replycpp(self):
        '''Send request from basicinboxcpp and verify it recives reply from basicpubcpp'''
        my_print("\n----------Running req_replycpp test----------\n")
        basicpubcpp_out = open('req_reply_basicpubcpp.out','w')
        basicpubcpp_err = open('req_reply_basicpubcpp.err','w')
        basicinboxcpp_out = open('req_reply_basicinboxcpp.out','w')
        ret1 = start_app("basicpubcpp","pub",args=["-v","-v","-v","-v"],stdout=basicpubcpp_out,stderr=basicpubcpp_err) 
        ret2 = call_wait4text("Created inbound subscription","req_reply_basicpubcpp.out",args=["-t",'1'])
        ret3 = start_app("basicinboxcpp","sub",stdout=basicinboxcpp_out,stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Received reply", "req_reply_basicinboxcpp.out")

        basicpubcpp_out.close()
        basicpubcpp_err.close()
        basicinboxcpp_out.close()
        kill_process(ret3.pid)

        self.assertTrue(ret4==0)
Ejemplo n.º 8
0
    def test_ft_prioritycpp(self):
        '''start two basicftmembercpp with different priority and verify that the one with lower priority goes to standby
        from active'''
        my_print("\n----------Running basicftmemberpp test priority----------\n")
        ftmembercpp1_out = open('priority_ftmembercpp1.out','w')
        ftmembercpp2_out = open('priority_ftmembercpp2.out','w')

        ret1 =start_app("basicftmembercpp","pub",args=["-g","priority","-w","40","-b"],stdout=ftmembercpp1_out,stderr=subprocess.STDOUT)
        ret2 = call_wait4text("Current state is: active", "priority_ftmembercpp1.out")
        ret3 = start_app("basicftmembercpp","sub",args=["-g","priority","-w","60","-b"],stdout=ftmembercpp2_out,stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Current state is: active", "priority_ftmembercpp2.out")
        ret5 = call_wait4text("Current state is: standby", "priority_ftmembercpp1.out")
        ftmembercpp1_out.close()
        ftmembercpp2_out.close()
        kill_process(ret1.pid)
        kill_process(ret3.pid)
        
        self.assertTrue(ret2==0)
        self.assertTrue(ret4==0)
        self.assertTrue(ret5==0)
Ejemplo n.º 9
0
    def test_ft_active_standbycpp(self):
        '''start two basicftmembercpp and verify the first one goes to active and second to standby, if both belong to same group'''
        my_print("\n----------Running basicftmembercpp test active-standby----------\n")
        ftmembercpp1_out = open('active_standby_ftmembercpp1.out','w')
        ftmembercpp2_out = open('active_standby_ftmembercpp2.out','w')

        ret1 = start_app("basicftmembercpp","pub",args=["-g","active-standby","-b"],stdout=ftmembercpp1_out,stderr=subprocess.STDOUT)
        ret2 = call_wait4text("Current state is: active", "active_standby_ftmembercpp1.out")
        ret3 = start_app("basicftmembercpp","sub",args=["-g","active-standby","-b"],stdout=ftmembercpp2_out,stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Current state is: standby", "active_standby_ftmembercpp2.out")
        ret5 = call_wait4text("Current state is: standby", "active_standby_ftmembercpp1.out")

        ftmembercpp1_out.close()
        ftmembercpp2_out.close()
        kill_process(ret1.pid)
        kill_process(ret3.pid)
        
        self.assertTrue(ret2==0)
        self.assertTrue(ret4==0)
        self.assertTrue(ret5==1) 
Ejemplo n.º 10
0
    def test_ft_active_activecpp(self):
        '''start two basicftmembercpp and verify that both go to active, if they belong to different groups'''
        my_print("\n----------Running basicftmemberpp test active-active----------\n")
        ftmembercpp1_out = open('active_active_ftmembercpp1.out','w')
        ftmembercpp2_out = open('active_active_ftmembercpp2.out','w')


        ret1 = start_app("basicftmembercpp","pub",args=["-g","active-active1","-b"],stdout=ftmembercpp1_out,stderr=subprocess.STDOUT)
        ret2 = call_wait4text("Current state is: active", "active_active_ftmembercpp1.out")
        ret3 = start_app("basicftmembercpp","sub",args=["-g","active-active2","-b"],stdout=ftmembercpp2_out,stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Current state is: active", "active_active_ftmembercpp2.out")
        ret5 = call_wait4text("Current state is: standby", "active_active_ftmembercpp1.out")

        ftmembercpp1_out.close()
        ftmembercpp2_out.close()
        kill_process(ret1.pid)
        kill_process(ret3.pid)

        self.assertTrue(ret2==0)
        self.assertTrue(ret4==0) 
        self.assertTrue(ret5==1)
Ejemplo n.º 11
0
    def test_ft_standby_to_activec(self):
        '''Start two basicftmemberc with same group and stop the active one, verify the standby basicftmember goes to active'''
        my_print("\n-------------Running basicftmemberc test standby-to-active------------\n")
        ftmemberc1_out = open('standby_to_active_ftmemberc1.out','w')
        ftmemberc2_out = open('standby_to_active_ftmemberc2.out','w')

        ret1 = start_app("basicftmemberc","pub",args=["-g","standby-to-active","-b"],stdout=ftmemberc1_out,stderr=subprocess.STDOUT)
        ret2 = call_wait4text("Current state is active", "standby_to_active_ftmemberc1.out")
        ret3 = start_app("basicftmemberc","sub",args=["-g","standby-to-active","-b"],stdout=ftmemberc2_out,stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Current state is standby", "standby_to_active_ftmemberc2.out")
        kill_process(ret1.pid)
        
        ret5 = call_wait4text("Current state is active", "standby_to_active_ftmemberc2.out")

        ftmemberc1_out.close()
        ftmemberc2_out.close()
        
        kill_process(ret1.pid)
        kill_process(ret3.pid)

        self.assertTrue(ret2==0)
        self.assertTrue(ret4==0)
        self.assertTrue(ret5==0)
Ejemplo n.º 12
0
    def test_ft_standby_to_activecpp(self):
        '''Start two basicftmembercpp with same group and stop the active one, verify the standby basicftmemberpp goes to active'''
        my_print(
            "\n----------Running basicftmemberpp test standby-to-active----------\n"
        )
        ftmembercpp1_out = open('standby_to_active_ftmembercpp1.out', 'w')
        ftmembercpp2_out = open('standby_to_active_ftmembercpp2.out', 'w')

        ret1 = start_app("basicftmembercpp",
                         "pub",
                         args=["-g", "standby-to-active", "-b"],
                         stdout=ftmembercpp1_out,
                         stderr=subprocess.STDOUT)
        ret2 = call_wait4text("Current state is: active",
                              "standby_to_active_ftmembercpp1.out")
        ret3 = start_app("basicftmembercpp",
                         "sub",
                         args=["-g", "standby-to-active", "-b"],
                         stdout=ftmembercpp2_out,
                         stderr=subprocess.STDOUT)
        ret4 = call_wait4text("Current state is: standby",
                              "standby_to_active_ftmembercpp2.out")

        kill_process(ret1.pid)

        ret5 = call_wait4text("Current state is: active",
                              "standby_to_active_ftmembercpp2.out")

        ftmembercpp1_out.close()
        ftmembercpp2_out.close()

        kill_process(ret1.pid)
        kill_process(ret3.pid)

        self.assertTrue(ret2 == 0)
        self.assertTrue(ret4 == 0)
        self.assertTrue(ret5 == 0)
Ejemplo n.º 13
0
    def k8s_flannel__k8s_service(self):
        # 创建flannel服务支持:环境变量,配置文件,local volume,日志文件,部署到指定机器
        if self.haproxy:
            test_flag = True
            ret1 = get_haproxy(self.haproxy)

            self.assert_successful(ret1)

            k8sFlannelData = data.ServiceData(
                self.k8s_flannel_service,
                self.namespace,
                settings.SERVICE_CLAAS_REGION[0],
                lb_type='haproxy',
                alb_name=self.haproxy,
                lb_id=ret1['haproxy_id'],
                node_tag=self.node_tag.split(":")[1],
                mipn_enabled=True)

            #创建服务支持 环境变量 local volume,配置文件,指定日志文件,部署在指定的机器上  block后面操作
            ret2 = create_service(self.k8s_flannel_service,
                                  k8sFlannelData.k8s_flannel_service(),
                                  settings.SERVICE_CLAAS_REGION[0])
            self.assert_successful(ret2)
            #验证服务是否可以访问 失败可以继续后面测试
            ret3 = access_service(self.k8s_flannel_service, self.haproxy)
            if not ret3['success']:
                test_flag = False
            #验证环境变量是否添加进去 失败可以继续后面测试
            ret4 = exec_feature(self.k8s_flannel_service,
                                self.namespace,
                                command="env",
                                commands_string="k8s_key=k8s_value")
            if not ret4['success']:
                test_flag = False
            #验证配置文件是否添加进去 失败可以继续后面测试
            ret5 = exec_feature(self.k8s_flannel_service,
                                self.namespace,
                                command="'cat /home/abc'",
                                commands_string="config")
            if not ret5['success']:
                test_flag = False
            #判断存储卷类型 不阻塞后面的测试
            ret6 = verify_volumes(self.k8s_flannel_service, "host_path")
            if not ret6['success']:
                test_flag = False
            #判断是否有Metrics 不阻塞后面的测试
            ret7 = get_metrics(self.k8s_flannel_service)
            if not ret7['success']:
                test_flag = False
            # 停止服务 如果失败block后面操作
            ret8 = stop_app(self.k8s_flannel_service)
            self.assert_successful(ret8)
            #启动服务 如果失败block 后面操作
            ret9 = start_app(self.k8s_flannel_service, num=1)
            self.assert_successful(ret9)
            #scale up 服务,更新服务的数量和size,失败block后面操作
            ret10 = update_service(self.k8s_flannel_service, num=2, size="XS")
            self.assert_successful(ret10)
            #check 所有的容器都部署在指定的机器上 不阻塞后面的测试
            ret11 = check_node(self.k8s_flannel_service, self.node_tag)
            if not ret11['success']:
                test_flag = False
            # scale down 服务更新服务的数量和size  失败block后面操作
            ret12 = update_service(self.k8s_flannel_service, num=1, size="XXS")
            self.assert_successful(ret12)
            # check 所有的容器都部署在指定的机器上 不阻塞后面的测试
            ret13 = check_node(self.k8s_flannel_service, self.node_tag)
            if not ret13['success']:
                test_flag = False
            # check 服务的日志
            ret14 = get_logs(self.k8s_flannel_service)
            if not ret14['success']:
                test_flag = False
            #check 日志文件
            ret15 = get_logfile(self.k8s_flannel_service)
            if not ret15['success']:
                test_flag = False
            #删除服务
            ret16 = delete_app(self.k8s_flannel_service,
                               settings.SERVICE_CLAAS_REGION[0])
            if not ret16['success']:
                test_flag = False

            result = {
                'success': test_flag,
                "get haproxy id ": ret1,
                "create k8s haproxy service": ret2,
                "access sercie ": ret3,
                "get service env": ret4,
                "get servie config": ret5,
                "get service volume type": ret6,
                "get service metrics": ret7,
                "stop service": ret8,
                "start service": ret9,
                "scale up service": ret10,
                "check instance in node": ret11,
                "scale down service": ret12,
                "check instance in node": ret13,
                "get service log": ret14,
                "get service logfile": ret15,
                "delete service": ret16
            }
            self.assert_successful(result)
            return result
Ejemplo n.º 14
0
    def inner_elb_service_test__k8s_service(self):
        test_flag = True
        # 创建一个内网的ELB 失败返回
        ret1 = create_alb(self.k8s_internal_elb,
                          create_type='manual',
                          type='elb',
                          alb_region=settings.SERVICE_CLAAS_REGION[0],
                          address_type="internal")
        self.assert_successful(ret1)

        elb_data = data.ServiceData(self.k8s_innerelb_service,
                                    settings.CLAAS_NAMESPACE,
                                    settings.SERVICE_CLAAS_REGION[0],
                                    lb_type='elb',
                                    alb_name=self.k8s_internal_elb,
                                    lb_id=ret1['id'])
        # 创建一个使用ELB网络模式的服务 失败返回
        ret2 = create_service(self.k8s_innerelb_service,
                              elb_data.k8s_innerelb_service(),
                              settings.SERVICE_CLAAS_REGION[0])
        self.assert_successful(ret2)
        # 验证服务是否可以访问 失败继续测试
        ret3 = access_service(self.k8s_innerelb_service, self.k8s_internal_elb)
        if not ret3['success']:
            test_flag = False

        # 验证环境变量是否添加进去 失败可以继续后面测试
        ret4 = exec_feature(self.k8s_innerelb_service,
                            self.namespace,
                            command="'/bin/ls /'")
        if not ret4['success']:
            test_flag = False
        # 判断是否有Metrics 不阻塞后面的测试
        ret5 = get_metrics(self.k8s_innerelb_service)
        if not ret5['success']:
            test_flag = False
        # 停止服务 如果失败block后面操作
        ret6 = stop_app(self.k8s_innerelb_service)
        self.assert_successful(ret6)
        # 启动服务 如果失败block 后面操作
        ret7 = start_app(self.k8s_innerelb_service, num=1)
        self.assert_successful(ret7)
        # scale up 服务,更新服务的数量和size,失败block后面操作
        ret8 = update_service(self.k8s_innerelb_service, num=2, size="XS")
        self.assert_successful(ret8)
        # scale down 服务更新服务的数量和size  失败block后面操作
        ret9 = update_service(self.k8s_innerelb_service, num=1, size="XXS")
        self.assert_successful(ret9)

        # check 服务的日志
        # ret10 = get_logs(self.k8s_innerelb_service)
        # if not ret10['success']:
        #     test_flag = False

        ret11 = delete_alb(self.k8s_innerelb_service)
        self.assert_successful(ret11)

        ret12 = delete_app(self.k8s_innerelb_service)
        self.assert_successful(ret12)
        result = {
            'success': test_flag,
            "create elb": ret1,
            "create elb service": ret2,
            "access service": ret3,
            "service exec ": ret4,
            "get metrics": ret5,
            "stop service": ret6,
            "start service": ret7,
            "scale up service": ret8,
            "scale down service": ret9,
            # "get logs": ret10,
            "delete elb": ret11,
            "delete service": ret12
        }
        self.assert_successful(result)
        return result
Ejemplo n.º 15
0
    def k8s_host__k8s_service(self):
        if self.haproxy:
            #设置flag
            test_flag = True
            #创建部署服务需要的环境变量文件 创建失败就直接返回
            ret1 = create_envs(self.k8s_envfile)
            self.assert_successful(ret1)
            #创建部署服务需要的glustfs存储卷,创建失败直接返回
            ret2 = create_volume(self.gluster_name, 'glusterfs', None)
            self.assert_successful(ret2)
            #获取当前所在集群的Haproxy信息,获取失败直接返回
            ret3 = get_haproxy(self.haproxy)

            self.assert_successful(ret3)
            #获取创建服务需要的数据
            k8sFlannelData = data.ServiceData(self.k8s_host_service,
                                              self.namespace,
                                              settings.SERVICE_CLAAS_REGION[0],
                                              lb_type='haproxy',
                                              alb_name=self.haproxy,
                                              lb_id=ret3['haproxy_id'],
                                              volume_id=ret2['volume_id'],
                                              volume_name=self.gluster_name,
                                              envfile=self.k8s_envfile)
            #创建Host模式挂载环境变量文件和glustfs存储卷的服务
            ret4 = create_service(self.k8s_host_service,
                                  k8sFlannelData.k8s_host_service(),
                                  settings.SERVICE_CLAAS_REGION[0])
            if not ret4["success"]:
                delete_volume(ret2['volume_id'], self.gluster_name)
            self.assert_successful(ret4)
            #访问服务,及时失败也可以继续执行测试
            ret5 = access_service(self.k8s_host_service, self.haproxy)
            if not ret5['success']:
                test_flag = False
            # 验证环境变量是否添加进去 失败可以继续后面测试
            ret6 = exec_feature(self.k8s_host_service,
                                self.namespace,
                                command="env",
                                commands_string="key=value")
            if not ret6['success']:
                test_flag = False
            # 验证volume id是否一致
            ret7 = verify_volumes(self.k8s_host_service, ret2['volume_id'])
            if not ret7['success']:
                test_flag = False

            # 判断是否有Metrics 不阻塞后面的测试
            ret8 = get_metrics(self.k8s_host_service)
            if not ret8['success']:
                test_flag = False
            # 停止服务 如果失败block后面操作
            ret9 = stop_app(self.k8s_host_service)
            self.assert_successful(ret9)
            # 启动服务 如果失败block 后面操作
            ret10 = start_app(self.k8s_host_service, num=1)
            self.assert_successful(ret10)
            # scale up 服务,更新服务的数量和size,失败block后面操作
            ret11 = update_service(self.k8s_host_service, num=2, size="XS")
            self.assert_successful(ret11)
            # scale down 服务更新服务的数量和size  失败block后面操作
            ret12 = update_service(self.k8s_host_service, num=1, size="XXS")
            self.assert_successful(ret12)

            # check 服务的日志
            ret13 = get_logs(self.k8s_host_service)
            if not ret13['success']:
                test_flag = False

            ret14 = delete_app(self.k8s_host_service,
                               settings.SERVICE_CLAAS_REGION[0])
            if not ret14['success']:
                test_flag = False
            #删除volume
            sleep(30)
            delete_volume(ret2['volume_id'], self.gluster_name)

            result = {
                'success': test_flag,
                "create envfile ": ret1,
                "create glustfs volume": ret2,
                "get haproxy id ": ret3,
                "create service": ret4,
                "access service": ret5,
                "check envfile": ret6,
                "check volume": ret7,
                "check metrics": ret8,
                "stop service": ret9,
                "start service": ret10,
                "scale up": ret11,
                "scale down": ret12,
                "check log": ret13,
                "delete service": ret14
            }
            self.assert_successful(result)
            return result