Ejemplo n.º 1
0
    def env_info(self, request, project_id, instance_id, name):
        container_id = self.get_container_id(request)

        params = self.compose_pod_params(request, project_id, instance_id)
        env_resp = exec_command(request.user.token.access_token, project_id, params['cluster_id'], container_id, 'env')

        # parse and compose the return data
        try:
            # docker env format: key=val
            data = [dict(zip(['name', 'value'], info.split('=', 1))) for info in env_resp.splitlines() if info]
        except Exception as err:
            # not raise error, record log
            logger.error('parse the env data error, detial: %s', err)
            data = []

        return response.Response(data)
Ejemplo n.º 2
0
    def env_info(self, request, project_id, cluster_id, namespace, pod_name, container_id):
        """ 获取 Pod 环境变量配置信息 """
        env_resp = exec_command(request.user.token.access_token, project_id, cluster_id, container_id, 'env')

        try:
            # docker 环境变量格式: key=val
            response_data = []
            for info in env_resp.splitlines():
                if not info:
                    continue
                partition_ret = info.partition('=')
                response_data.append({'name': partition_ret[0], 'value': partition_ret[2]})
        except Exception as e:
            # 若解析失败,仅保留错误信息,不抛出异常
            logger.error('解析容器环境变量失败: %s', e)
            response_data = []

        return Response(response_data)