mirror of
https://github.com/ansible/awx.git
synced 2026-03-11 14:39:30 -02:30
make it so that repeated runs do not cause problems
This commit is contained in:
3
Makefile
3
Makefile
@@ -508,6 +508,9 @@ test_jenkins : test_coverage
|
|||||||
|
|
||||||
# Make fake data
|
# Make fake data
|
||||||
bulk_data:
|
bulk_data:
|
||||||
|
@if [ "$(VENV_BASE)" ]; then \
|
||||||
|
. $(VENV_BASE)/tower/bin/activate; \
|
||||||
|
fi; \
|
||||||
$(PYTHON) tools/data_generators/rbac_dummy_data_generator.py
|
$(PYTHON) tools/data_generators/rbac_dummy_data_generator.py
|
||||||
|
|
||||||
# l10n TASKS
|
# l10n TASKS
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ try:
|
|||||||
for i in xrange(n_organizations):
|
for i in xrange(n_organizations):
|
||||||
sys.stdout.write('\r%d ' % (i + 1))
|
sys.stdout.write('\r%d ' % (i + 1))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
org = Organization.objects.create(name='%s Organization %d' % (prefix, i))
|
org, _ = Organization.objects.get_or_create(name='%s Organization %d' % (prefix, i))
|
||||||
organizations.append(org)
|
organizations.append(org)
|
||||||
if i == 0:
|
if i == 0:
|
||||||
org.admin_role.members.add(org_admin)
|
org.admin_role.members.add(org_admin)
|
||||||
@@ -189,7 +189,7 @@ try:
|
|||||||
user_id = ids['user']
|
user_id = ids['user']
|
||||||
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, organizations[org_idx].name, i+ 1))
|
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, organizations[org_idx].name, i+ 1))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
user = User.objects.create(username='%suser-%d' % (prefix, user_id))
|
user, _ = User.objects.get_or_create(username='%suser-%d' % (prefix, user_id))
|
||||||
organizations[org_idx].member_role.members.add(user)
|
organizations[org_idx].member_role.members.add(user)
|
||||||
users.append(user)
|
users.append(user)
|
||||||
org_idx += 1
|
org_idx += 1
|
||||||
@@ -204,7 +204,7 @@ try:
|
|||||||
team_id = ids['team']
|
team_id = ids['team']
|
||||||
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, org.name, i+ 1))
|
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, org.name, i+ 1))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
team = Team.objects.create(name='%s Team %d Org %d' % (prefix, team_id, org_idx), organization=org)
|
team, _ = Team.objects.get_or_create(name='%s Team %d Org %d' % (prefix, team_id, org_idx), organization=org)
|
||||||
teams.append(team)
|
teams.append(team)
|
||||||
org_idx += 1
|
org_idx += 1
|
||||||
print('')
|
print('')
|
||||||
@@ -240,7 +240,7 @@ try:
|
|||||||
sys.stdout.write('\r %d ' % (ids['credential']))
|
sys.stdout.write('\r %d ' % (ids['credential']))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
credential_id = ids['credential']
|
credential_id = ids['credential']
|
||||||
credential = Credential.objects.create(name='%s Credential %d User %d' % (prefix, credential_id, user_idx))
|
credential, _ = Credential.objects.get_or_create(name='%s Credential %d User %d' % (prefix, credential_id, user_idx))
|
||||||
credential.admin_role.members.add(user)
|
credential.admin_role.members.add(user)
|
||||||
credentials.append(credential)
|
credentials.append(credential)
|
||||||
user_idx += 1
|
user_idx += 1
|
||||||
@@ -256,7 +256,7 @@ try:
|
|||||||
sys.stdout.write('\r %d ' % (ids['credential'] - starting_credential_id))
|
sys.stdout.write('\r %d ' % (ids['credential'] - starting_credential_id))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
credential_id = ids['credential']
|
credential_id = ids['credential']
|
||||||
credential = Credential.objects.create(name='%s Credential %d team %d' % (prefix, credential_id, team_idx))
|
credential, _ = Credential.objects.get_or_create(name='%s Credential %d team %d' % (prefix, credential_id, team_idx))
|
||||||
credential.admin_role.parents.add(team.member_role)
|
credential.admin_role.parents.add(team.member_role)
|
||||||
credentials.append(credential)
|
credentials.append(credential)
|
||||||
team_idx += 1
|
team_idx += 1
|
||||||
@@ -271,7 +271,7 @@ try:
|
|||||||
project_id = ids['project']
|
project_id = ids['project']
|
||||||
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, org.name, i+ 1))
|
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, org.name, i+ 1))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
project = Project.objects.create(name='%s Project %d Org %d' % (prefix, project_id, org_idx), organization=org)
|
project, _ = Project.objects.get_or_create(name='%s Project %d Org %d' % (prefix, project_id, org_idx), organization=org)
|
||||||
projects.append(project)
|
projects.append(project)
|
||||||
if org_idx == 0 and i == 0:
|
if org_idx == 0 and i == 0:
|
||||||
project.admin_role.members.add(prj_admin)
|
project.admin_role.members.add(prj_admin)
|
||||||
@@ -289,7 +289,7 @@ try:
|
|||||||
inventory_id = ids['inventory']
|
inventory_id = ids['inventory']
|
||||||
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, org.name, i+ 1))
|
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, org.name, i+ 1))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
inventory = Inventory.objects.create(name='%s Inventory %d Org %d' % (prefix, inventory_id, org_idx), organization=org)
|
inventory, _ = Inventory.objects.get_or_create(name='%s Inventory %d Org %d' % (prefix, inventory_id, org_idx), organization=org)
|
||||||
inventories.append(inventory)
|
inventories.append(inventory)
|
||||||
if org_idx == 0 and i == 0:
|
if org_idx == 0 and i == 0:
|
||||||
inventory.admin_role.members.add(inv_admin)
|
inventory.admin_role.members.add(inv_admin)
|
||||||
@@ -308,7 +308,7 @@ try:
|
|||||||
group_id = ids['group']
|
group_id = ids['group']
|
||||||
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, inventory.name, i+ 1))
|
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, inventory.name, i+ 1))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
group = Group.objects.create(
|
group, _ = Group.objects.get_or_create(
|
||||||
name='%s Group %d Inventory %d' % (prefix, group_id, inv_idx),
|
name='%s Group %d Inventory %d' % (prefix, group_id, inv_idx),
|
||||||
inventory=inventory,
|
inventory=inventory,
|
||||||
)
|
)
|
||||||
@@ -335,7 +335,7 @@ try:
|
|||||||
host_id = ids['host']
|
host_id = ids['host']
|
||||||
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, group.name, i+ 1))
|
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, group.name, i+ 1))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
host = Host.objects.create(name='%s.host-%06d.group-%05d.dummy' % (prefix, host_id, group_idx), inventory=group.inventory)
|
host, _ = Host.objects.get_or_create(name='%s.host-%06d.group-%05d.dummy' % (prefix, host_id, group_idx), inventory=group.inventory)
|
||||||
# Add the host to up to 3 groups
|
# Add the host to up to 3 groups
|
||||||
host.groups.add(group)
|
host.groups.add(group)
|
||||||
for m in range(2):
|
for m in range(2):
|
||||||
@@ -363,7 +363,7 @@ try:
|
|||||||
if org_inv_count > 0:
|
if org_inv_count > 0:
|
||||||
inventory = project.organization.inventories.all()[inv_idx % org_inv_count]
|
inventory = project.organization.inventories.all()[inv_idx % org_inv_count]
|
||||||
|
|
||||||
job_template = JobTemplate.objects.create(
|
job_template, _ = JobTemplate.objects.get_or_create(
|
||||||
name='%s Job Template %d Project %d' % (prefix, job_template_id, project_idx),
|
name='%s Job Template %d Project %d' % (prefix, job_template_id, project_idx),
|
||||||
inventory=inventory,
|
inventory=inventory,
|
||||||
project=project,
|
project=project,
|
||||||
@@ -383,19 +383,21 @@ try:
|
|||||||
for i in range(n):
|
for i in range(n):
|
||||||
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, job_template.name, i+ 1))
|
sys.stdout.write('\r Assigning %d to %s: %d ' % (n, job_template.name, i+ 1))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
job = Job.objects.create(job_template=job_template)
|
job, _ = Job.objects.get_or_create(job_template=job_template)
|
||||||
|
job._is_new = _
|
||||||
jobs.append(job)
|
jobs.append(job)
|
||||||
|
|
||||||
if job_template.inventory:
|
with transaction.atomic():
|
||||||
inv_groups = [g for g in job_template.inventory.groups.all()]
|
if job_template.inventory:
|
||||||
if len(inv_groups):
|
inv_groups = [g for g in job_template.inventory.groups.all()]
|
||||||
JobHostSummary.objects.bulk_create([
|
if len(inv_groups) and job._is_new:
|
||||||
JobHostSummary(
|
JobHostSummary.objects.bulk_create([
|
||||||
job=job, host=h, host_name=h.name, processed=1,
|
JobHostSummary(
|
||||||
created=now(), modified=now()
|
job=job, host=h, host_name=h.name, processed=1,
|
||||||
)
|
created=now(), modified=now()
|
||||||
for h in inv_groups[group_idx % len(inv_groups)].hosts.all()[:100]
|
)
|
||||||
])
|
for h in inv_groups[group_idx % len(inv_groups)].hosts.all()[:100]
|
||||||
|
])
|
||||||
group_idx += 1
|
group_idx += 1
|
||||||
job_template_idx += 1
|
job_template_idx += 1
|
||||||
if n:
|
if n:
|
||||||
@@ -407,15 +409,17 @@ try:
|
|||||||
job = jobs[job_idx]
|
job = jobs[job_idx]
|
||||||
sys.stdout.write('\r Creating %d job events for job %d' % (n, job.id))
|
sys.stdout.write('\r Creating %d job events for job %d' % (n, job.id))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
JobEvent.objects.bulk_create([
|
# Check if job already has events, for idempotence
|
||||||
JobEvent(
|
if job._is_new:
|
||||||
created=now(),
|
JobEvent.objects.bulk_create([
|
||||||
modified=now(),
|
JobEvent(
|
||||||
job=job,
|
created=now(),
|
||||||
event='runner_on_ok'
|
modified=now(),
|
||||||
)
|
job=job,
|
||||||
for i in range(n)
|
event='runner_on_ok'
|
||||||
])
|
)
|
||||||
|
for i in range(n)
|
||||||
|
])
|
||||||
job_idx += 1
|
job_idx += 1
|
||||||
if n:
|
if n:
|
||||||
print('')
|
print('')
|
||||||
|
|||||||
Reference in New Issue
Block a user