小编Chr*_*vey的帖子

blockinfile继续添加块

我想使用blockinfile为我的ElasticSearch配置添加一个文本块,但每次运行我的playbook时,该块都会被添加到文件中 - 即使它已经存在.这是一个问题,因为ElasticSearch不只是取最后一个值,它在启动时会说"你有这个值的多个条目"(或类似的东西).

我的游戏看起来像这样:

  - name: configure elasticsearch
    blockinfile:
      dest: /etc/elasticsearch/elasticsearch.yml
      marker: "## added by ansible configuration"
      block: |
        network.host: 0.0.0.0
        path.data: /var/lib
        path.logs: /var/log/elasticsearch
        path.repo: /home/chris/elastic-backups
      state: present
Run Code Online (Sandbox Code Playgroud)

但在第二次运行我的剧本后,我的elasticsearch.yml文件看起来像:

## added by ansible configuration
network.host: 0.0.0.0
path.data: /var/lib
path.logs: /var/log/elasticsearch
path.repo: /home/chris/elastic-backups
## added by ansible configuration
network.host: 0.0.0.0
path.data: /var/lib
path.logs: /var/log/elasticsearch
path.repo: /home/chris/elastic-backups
## added by ansible configuration
Run Code Online (Sandbox Code Playgroud)

有没有办法只添加块,如果它还不存在?

ansible

6
推荐指数
2
解决办法
5133
查看次数

如何在截止日期前找到 github 问题?

有没有办法获得在日期或接近日期关闭的 GitHub 问题?我的代码库中有一个没有引用问题的提交,我想知道它是否是为了响应特定问题而完成的。

理想情况下,我想说“向我展示 8 月 10 日之后关闭的问题”

github

6
推荐指数
2
解决办法
1606
查看次数

如何在我的XSLT文本输出中包含节点XML?

我正在尝试使用XSLT将XML文件转换为扁平的,管道分隔的文件(用于批量加载到Postgres中).我希望输出中的最后一列是节点的实际XML(用于其他后处理和调试).例如:

<Library>
  <Book id="123">
    <Title>Python Does Everythig</Title>
    <Author>Smith</Author>
  </Book>

  <Book id="456">
    <Title>Postgres is Neat</Title>
    <Author>Wesson</Author>
  </Book>
</Library>
Run Code Online (Sandbox Code Playgroud)

应该生成

Python Does Everything|Smith|<Book id="123"><Title>Python Does Everythig</Title>Author>Smith</Author></Book>
Postgres is Neat|Wesson|<Book id="456"><Title>Postgres is Neat</Title><Author>Wesson</Author></Book>
Run Code Online (Sandbox Code Playgroud)

我目前的XSL是

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:strip-space elements="*" />
  <xsl:output method="text" omit-xml-declaration="yes" indent="no" /> 
  <xsl:template match="//Book">
    <xsl:value-of select="Title" />
    <xsl:text>|</xsl:text>
    <xsl:value-of select="Author" />

    <!-- put in the newline -->
    <xsl:text>&#xa;</xsl:text>
  </xsl:template>
</xsl:stylesheet>    
Run Code Online (Sandbox Code Playgroud)

xslt

5
推荐指数
2
解决办法
8507
查看次数

从postgres中的路径中分割出文件名

我有一个包含Windows文件路径的字段,如下所示:

\\fs1\foo\bar\snafu.txt
c:\this\is\why\i\drink\snafu.txt
\\fs2\bippity\baz.zip
\\fs3\boppity\boo\baz.zip
c:\users\chris\donut.c
Run Code Online (Sandbox Code Playgroud)

我需要做的是找到重复文件名的数量(无论它们在哪个目录中).所以我想找到"snafu.txt"和"baz.zip",但不是donut.c.

PostgreSQL(8.4)中有没有办法找到文件路径的最后一部分?如果我能做到这一点,那么我可以使用count/group来找到我的问题孩子.

sql postgresql

5
推荐指数
2
解决办法
5513
查看次数

为什么python报道说错过了线?

我正在尝试使用Django覆盖,但我似乎得到了不正确的结果.我的应用名为"stats",我有这个测试:

class ListSchoolsTest(TestCase):
    def test_initial_list(self):
        self.client.login(username='skeezy', password='skeezy')
        resp = self.client.get("/stats/list_schools/")
        self.assertEqual(resp.status_code, 200)
Run Code Online (Sandbox Code Playgroud)

在命令行上,我运行:

coverage run --source="." manage.py test stats
Run Code Online (Sandbox Code Playgroud)

测试通过了.我的所有观点目前都在stats/views.py中

但是,当我运行"报道报告"时,我得到这一行:

Name                 Stmts   Miss  Cover
----------------------------------------
<snip>
stats/views            110    110     0%
Run Code Online (Sandbox Code Playgroud)

任何想法我(不)这样做会导致报告报告stats/views.py中遗漏的所有行,即使它必须被击中以便测试通过?(就像腰带和吊带一样,我在我的视图中放了一个印刷声明,它肯定会被击中.)

django coverage.py python-coverage

5
推荐指数
1
解决办法
796
查看次数

CONN_MAX_AGE如何在Django中工作

有人ELI5有什么CONN_MAX_AGE吗?我认为它的工作原理如下:

1)请求#1进入,打开数据库连接1

2)请求#1使用连接1做一些工作

3)请求#1完成.由于CONN_MAX_AGE非零(并且尚未达到年龄),因此连接保持打开状态.

4)请求#2进入,Django重新使用连接#1到数据库.

但这似乎并没有发生.我的网站上有一个页面,每15秒进行一次AJAX轮询.在我的开发环境中,我看到开放连接(select count(*) from pg_stat_activity)的数量,慢慢增长,直到最终我得到

OperationalError: FATAL:  sorry, too many clients already
Run Code Online (Sandbox Code Playgroud)

所以我想知道我哪里出错了.CONN_MAX_AGE是否仅用于在单个HTTP请求中保持连接打开?

更新:

仔细查看文档,我看到了:

开发服务器为它处理的每个请求创建一个新线程,否定持久连接的影响.在开发过程中不要启用它们.

啊,所以这似乎意味着一个连接"属于"一个线程.(并且线程可以基于CONN_MAX_AGE的值打开/关闭连接).

django-orm django-postgresql

5
推荐指数
0
解决办法
961
查看次数

Google Cloud 上的动态 DNS?

我有一堆服务器想要在 Google Cloud 上启动。我保留了一个静态 IP,这是我系统的“公共”入口点。

但我还需要能够直接访问所有其他服务器。我并不真正关心分配给它们的临时 IP,但是能够通过名称引用它们会非常方便(而不必从控制台复制并粘贴 IP 地址)。

我看到这个答案,但我希望在某个地方有一个不涉及脚本编写的配置选项。

google-cloud-platform

5
推荐指数
1
解决办法
8573
查看次数

为什么 Django 开发服务器不重新加载?

我已经使用 django 开发服务器多年了。我开始他们

python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

当我更改任何 python 代码时,它们会很好地重新启动。

现在我继承了别人的项目进行维护,无论出于什么原因,我更改了Python代码,服务器没有重新启动。我似乎找不到任何类型的配置选项会导致这种情况。

我没有--noreload设置标志,这是我的证明:

$ ps -ef | grep runserver
chris     290898  250765  1 11:55 pts/6    00:00:00 python manage.py runserver
chris     290914  290898  5 11:55 pts/6    00:00:01 /home/chris/.virtualenvs/my-webapp-4cLYw-9X/bin/python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

以前有人遇到过这个吗?

  • Python 3.9.5
  • 姜戈3.2.6
  • 使用 Pipenv 管理我的虚拟环境

更新

更多信息...同样奇怪

该项目是这样设置的

src/manage.py
src/myproject (contains settings.py, urls.py, etc)
src/apps/app_one (contains models.py, tests.py, etc)
src/apps/app_two (contains models.py, tests.py, etc)
Run Code Online (Sandbox Code Playgroud)

如果我编辑 src/myproject 下的任何文件,那么服务器将按预期重新启动。但是,如果我编辑 app_one 或 app_two 下的文件,则服务器不会重新启动。

更新#2

在它让我发疯之前复活它(可能为时已晚)。

我添加django.utils.autoreload': {'level': 'DEBUG'},settings.LOGGING …

django

5
推荐指数
2
解决办法
3283
查看次数

创建组的Django数据迁移的正确方法?

我想创建可以创建权限和组的数据迁移,以便其他开发人员可以运行迁移并进行所有设置。我能够创建迁移并很好地运行它们,但是现在运行测试时出现错误。

但是,如果我这样做:

from django.contrib.auth.models import Group

def add_operations_group(apps, schema_editor):
    Group.objects.get_or_create(name='operations')
Run Code Online (Sandbox Code Playgroud)

我得到:

django.db.utils.OperationalError: no such table: auth_group
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

def add_operations_group(apps, schema_editor):
    Group = apps.get_model("django.contrib.auth", "group")
    Group.objects.get_or_create(name='operations')
Run Code Online (Sandbox Code Playgroud)

我得到:

LookupError: No installed app with label 'django.contrib.auth'
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?还是有一种“ Django方式”来确保创建权限和组之类的东西?

django django-migrations

4
推荐指数
2
解决办法
2828
查看次数

有没有办法让 FactoryBoy 将参数传递给我的 Django 模型的 save() 方法?

我有一个像这样的 Django 模型:

class NicePerson(models.Model):
    last_name = models.CharField(max_length=100)

    def save(self, make_irish=False, *args, **kwargs):
        """if make_irish is True, prepend last_name with O'"
        if make_irish:
            self.last_name = "O'" + self.last_name

        super(MyModel, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我有一个 FactoryBoy 类来构建 NicePerson 实例

class NicePersonFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = NicePerson
Run Code Online (Sandbox Code Playgroud)

我知道我可以像这样一起使用它们:

nice_person = NicePersonFactory(last_name='Shea')
Run Code Online (Sandbox Code Playgroud)

但是如何将“make_irish”参数传递给我的save()方法呢?

factory-boy

3
推荐指数
1
解决办法
1792
查看次数