我想存储我们在SVN中制作的Felix配置,并将它们应用于自动构建生成的包中的CQ.为此,我一直按照CQ5 OSGI配置文档中的说明创建sling:OsgiConfig配置节点,它们被检入SVN.
如何存储特定于环境的配置?例如,我希望DEV环境的日志配置与PROD环境将使用的配置不同.我想在SVN中理想地存储两个环境的配置,并让环境选择基于环境以某种方式使用的配置.
我该怎么做 - 或者我是否应该使用不同的方法来进行特定于环境的配置?
我正在使用Adobe CQ5中的JSP.在我不熟悉的其中一个JSP中,有一个CQ includeClientLib标记,它在页面上包含一个CQ客户端库:
<cq:includeClientLib categories="someCategory"/>
Run Code Online (Sandbox Code Playgroud)
如何确定/查找此引用中包含的所有文件? 本质上,我需要在CQ存储库中找到所有cq:ClientLibraryFolder节点,这些节点具有使用值"someCategory"定义的"categories"属性.我已经在Content Explorer和CRXDE Lite中进行了搜索,但是这些搜索找到了"someCategory"的所有匹配项,即使它们不是使用"categories"属性标记的ClientLibraryFolders,在我的情况下,只有太多的误报手动筛选.所以我正在寻找一种方法来过滤匹配只有这个标签包含的那些.
我有一个特定的Adobe CQ5(5.5)内容模板,作者将用它来创建页面.我想从调度程序缓存中排除从此模板创建的任何页面.据我所知,目前我知道阻止缓存的唯一方法是将dispatcher.any配置为不缓存特定的URL.但在这种情况下,在Web作者使用模板创建页面之前,URL是未知的.我不希望每次创建页面时都返回并修改dispatcher.any - 或者至少我想在没有其他方法的情况下自动执行此操作.我正在使用IIS作为调度程序.我不想缓存页面的原因是因为为这些页面呈现内容的底层JSP产生动态内容,并且页面不使用查询字符串并且不携带认证头.页面将在不可预测的目录中创建,因此我不知道提前的URL模式.
如何配置事物,以便从调度程序缓存中自动排除从某个模板创建的任何页面?
似乎CQ应该有一些机制来尊重HTTP响应/缓存头.如果HTTP响应头指定不应该缓存响应,则调度程序似乎不应该缓存它 - 无论dispatcher.any说什么.这是我参考过的CQ5文档.
我想测试一些错误处理逻辑,所以我想在单元测试中模拟特定的异常类型。我正在模拟对 boto3 的调用,但我想进行该模拟以引发异常ParameterNotFound。我正在测试的代码遵循以下模式:
boto3_client = boto3.client('ssm')
try:
temp_var = boto3_client.get_parameter(Name="Something not found")['Parameter']['Value']
except boto3_client.exceptions.ParameterNotFound:
... [logic I want to test]
Run Code Online (Sandbox Code Playgroud)
我创建了一个单元测试模拟,但我不知道如何使其引发异常作为此 ParameterNotFound 异常。我尝试了以下方法,但它不起作用,因为在评估 except 子句时它得到“异常必须从基类派生”:
@patch('patching_config.boto3.client')
def test_sample(self, mock_boto3_client):
mock_boto3_client.return_value = mock_boto3_client
def get_parameter_side_effect(**kwargs):
raise boto3.client.exceptions.ParameterNotFound()
mock_boto3_client.get_parameter.side_effect = get_parameter_side_effect
Run Code Online (Sandbox Code Playgroud)
如何在单元测试中模拟 ParameterNotFound boto3 异常?
我正在将 .zip 文件上传到 AWS Lambda,其中包含 .py 文件。上传后我收到这样的错误:
\nattempt to write a readonly database\n[ERROR] OperationalError: table "AuData1" already exists\nTraceback (most recent call last):\n\xc2\xa0\xc2\xa0File "/var/task/lambda_function.py", line 15, in lambda_handler\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0cur.execute('''END RequestId: f5539447-a6d8-47ed-b415-5e2971923357\nRun Code Online (Sandbox Code Playgroud)\n.py 文件的代码是:
\ndef lambda_handler(event,context):\n try:\n conn = sqlite3.connect('SearchResultData.db')\n cur = conn.cursor()\n cur.execute('DROP TABLE IF EXISTS AuData1')\n except Exception as e:\n print(e)\n\n cur.execute('''\n CREATE TABLE "AuData1" (\n.......\nRun Code Online (Sandbox Code Playgroud)\n所以基本上文件夹中存在的 sqlite 数据库包含此表“AuData1”,但我希望它删除该表并创建一个新表。但是,该数据库无法访问,因为它显示为“只读数据库”。\n如果有任何可用的解决方案,请提供帮助。先感谢您
\n我想检查更新是否可用,如果有,请在安装更新之前执行一些步骤。我运行yum check-updates查看可用于已安装软件包的更新列表,但我希望grep获得一个可用于脚本中某些逻辑的计数bash。因此,理想情况下,如果没有更新,我希望grep输出并返回 0,或者如果有五个更新可用,那么我希望返回 5。check-updatesgrep
我怎样才能 grep 这个来返回计数?