diff --git a/.gitignore b/.gitignore index bfd0f28e..f819c139 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,6 @@ -results/ -experiments/state/ - .ipynb_checkpoints -inventory/aws_ec2.yml +src/inventory/aws_ec2.yml ### Ansible ### *.retry diff --git a/ansible.cfg b/ansible.cfg index fc0b82f7..57c1771e 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -1,10 +1,10 @@ [defaults] -INVENTORY = inventory +INVENTORY = src/inventory +DEFAULT_ROLES_PATH = src/roles:demo_project/does_config/roles ANSIBLE_CALLBACKS_ENABLED = community.general.selective inventory_ignore_extensions = ~, .orig, .bak, .ini, .cfg, .retry, .pyc, .pyo, .j2 ansible_ssh_common_args = '-o StrictHostKeyChecking=no -o ForwardAgent=yes' - # TODO: activate / deactivate to only show the pretty log output stdout_callback = community.general.selective diff --git a/demo/client.py b/demo_project/client.py similarity index 100% rename from demo/client.py rename to demo_project/client.py diff --git a/demo_project/does_config/designs/demo.yml b/demo_project/does_config/designs/demo.yml new file mode 100644 index 00000000..fbdef942 --- /dev/null +++ b/demo_project/does_config/designs/demo.yml @@ -0,0 +1,66 @@ +# AUTOGENERATED FROM experiments/table/{demo_exp1, demo_exp2}.yml WITH build_config_product(...) + +# TODO [nku] needs to be updated + +demo_exp1: + n_repetitions: 2 + common_roles: + - setup-common + host_types: + client: + n: 1 + init_role: setup-client + server: + n: 1 + check_status: false + init_role: setup-server + base_experiment: + w: 13 + x: $FACTOR$ + host_vars: + client: + y: abc + server: + z: $FACTOR$ + factor_levels: + - x: 4 + host_vars: + server: + z: 1 + + +demo_exp2: + n_repetitions: 2 + common_roles: + - setup-common + host_types: + client: + n: 1 + init_role: setup-client + server: + n: 1 + init_role: setup-server + base_experiment: + $CMD$: echo hello [% my_run.a %] + a: 10 + b: info + c: $FACTOR$ + d: $FACTOR$ + host_vars: + client: + e: $FACTOR$ + test: + f: cinfo + server: + g: ginfo + factor_levels: + - c: 1 + d: 4 + host_vars: + client: + e: V1 + - c: 1 + d: 4 + host_vars: + client: + e: V2 \ No newline at end of file diff --git a/experiments/designs/example-complex.yml b/demo_project/does_config/designs/example-complex.yml similarity index 100% rename from experiments/designs/example-complex.yml rename to demo_project/does_config/designs/example-complex.yml diff --git a/experiments/designs/example-minimal.yml b/demo_project/does_config/designs/example-minimal.yml similarity index 100% rename from experiments/designs/example-minimal.yml rename to demo_project/does_config/designs/example-minimal.yml diff --git a/experiments/designs/example-multi.yml b/demo_project/does_config/designs/example-multi.yml similarity index 100% rename from experiments/designs/example-multi.yml rename to demo_project/does_config/designs/example-multi.yml diff --git a/experiments/designs/example-single.yml b/demo_project/does_config/designs/example-single.yml similarity index 100% rename from experiments/designs/example-single.yml rename to demo_project/does_config/designs/example-single.yml diff --git a/experiments/designs/example.yml b/demo_project/does_config/designs/example.yml similarity index 100% rename from experiments/designs/example.yml rename to demo_project/does_config/designs/example.yml diff --git a/demo_project/does_config/designs/simple.yml b/demo_project/does_config/designs/simple.yml new file mode 100644 index 00000000..fe822a69 --- /dev/null +++ b/demo_project/does_config/designs/simple.yml @@ -0,0 +1,25 @@ +# AUTOGENERATED FROM experiments/table/{simple}.yml WITH build_config_product(...) + +# TODO [nku] needs to be updated + + +simple: + n_repetitions: 2 + common_roles: + - setup-common + host_types: + single: + n: 1 + base_experiment: + seed: 1234 + payload_size_mb: $FACTOR$ + opt: $FACTOR$ + factor_levels: + - payload_size_mb: 1 + opt: true + - payload_size_mb: 1 + opt: false + - payload_size_mb: 128 + opt: true + - payload_size_mb: 128 + opt: false diff --git a/demo_project/does_config/group_vars/.gitignore b/demo_project/does_config/group_vars/.gitignore new file mode 100644 index 00000000..04676a6d --- /dev/null +++ b/demo_project/does_config/group_vars/.gitignore @@ -0,0 +1,7 @@ +# The following files are ignored because they are generated by the repotemplate.py script. +# For your own experiments, remove this .gitignore file to commit hand-written experiment configurations. +all +ansible_controller +client +server +simple diff --git a/roles/setup-client/tasks/main.yml b/demo_project/does_config/roles/setup-client/tasks/main.yml similarity index 100% rename from roles/setup-client/tasks/main.yml rename to demo_project/does_config/roles/setup-client/tasks/main.yml diff --git a/roles/setup-common/tasks/main.yml b/demo_project/does_config/roles/setup-common/tasks/main.yml similarity index 100% rename from roles/setup-common/tasks/main.yml rename to demo_project/does_config/roles/setup-common/tasks/main.yml diff --git a/roles/setup-server/tasks/main.yml b/demo_project/does_config/roles/setup-server/tasks/main.yml similarity index 100% rename from roles/setup-server/tasks/main.yml rename to demo_project/does_config/roles/setup-server/tasks/main.yml diff --git a/experiments/table/demo_exp1.yml b/demo_project/does_config/table/demo_exp1.yml similarity index 100% rename from experiments/table/demo_exp1.yml rename to demo_project/does_config/table/demo_exp1.yml diff --git a/experiments/table/demo_exp2.yml b/demo_project/does_config/table/demo_exp2.yml similarity index 100% rename from experiments/table/demo_exp2.yml rename to demo_project/does_config/table/demo_exp2.yml diff --git a/experiments/table/simple.yml b/demo_project/does_config/table/simple.yml similarity index 100% rename from experiments/table/simple.yml rename to demo_project/does_config/table/simple.yml diff --git a/scripts-demo.ipynb b/demo_project/scripts-demo.ipynb similarity index 100% rename from scripts-demo.ipynb rename to demo_project/scripts-demo.ipynb diff --git a/demo/server.py b/demo_project/server.py similarity index 100% rename from demo/server.py rename to demo_project/server.py diff --git a/roles/ansible-controller-clear/tasks/main.yml b/roles/ansible-controller-clear/tasks/main.yml deleted file mode 100644 index af3d6259..00000000 --- a/roles/ansible-controller-clear/tasks/main.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- - -- name: Set instance tags to remove (without ansible controller) - ansible.builtin.set_fact: - instance_tags: "{{ groups.keys() }}" - when: awsclean - -- name: Set instance tags to remove (with ansible controller) - ansible.builtin.set_fact: - instance_tags: "{{ groups.keys() + [ ec2_tag_name_prefix + 'ansible_controller' ] }}" - when: awscleanall | default(false) - -- name: Collect info about running ec2 instances - community.aws.ec2_instance_info: - region: "{{ exp_base.aws_region }}" - filters: - "tag:Name": "{{ instance_tag | split(ec2_tag_name_prefix) | last }}" - when: instance_tag is match(ec2_tag_name_prefix + prj_id + '_*') - loop: "{{ instance_tags }}" - loop_control: - loop_var: instance_tag - register: ec2_instances - -- name: Extract instance ids of ec2 instances to remove - ansible.builtin.set_fact: - ec2_instance_ids: "{{ ec2_instances | json_query('results[*].instances[*].instance_id') | list | flatten }}" - -- ansible.builtin.pause: - seconds: 10 - prompt: | - "Removing instances with the following ids: - {{ ec2_instance_ids }} - - If the above instance IDs are wrong, abort now! (CTRL+C followed by 'A')" - tags: [print_action] - -- name: Cleanup AWS - community.aws.ec2_instance: - instance_ids: "{{ ec2_instance_ids }}" - region: "{{ exp_base.aws_region }}" - state: absent - when: (ec2_instance_ids | length) > 0 - -- name: Remove AWS VPC - ansible.builtin.include_role: - name: suite-aws-vpc-delete diff --git a/ansible-controller.yml b/src/ansible-controller.yml similarity index 100% rename from ansible-controller.yml rename to src/ansible-controller.yml diff --git a/clear.yml b/src/clear.yml similarity index 100% rename from clear.yml rename to src/clear.yml diff --git a/experiment-suite.yml b/src/experiment-suite.yml similarity index 93% rename from experiment-suite.yml rename to src/experiment-suite.yml index f3415212..eee4cf10 100644 --- a/experiment-suite.yml +++ b/src/experiment-suite.yml @@ -1,5 +1,15 @@ --- + +########################################################################## +# Load Experiment State and Setup AWS # +########################################################################## +- name: Load group_vars from non-standard location + hosts: localhost + + tasks: + - include_vars: "{{ external_group_vars_dir }}/all/main.yml" + ########################################################################## # Load Experiment State and Setup AWS # ########################################################################## diff --git a/filter_plugins/helpers.py b/src/filter_plugins/helpers.py similarity index 100% rename from filter_plugins/helpers.py rename to src/filter_plugins/helpers.py diff --git a/src/group_vars/all/main.yml b/src/group_vars/all/main.yml new file mode 100644 index 00000000..0b174c58 --- /dev/null +++ b/src/group_vars/all/main.yml @@ -0,0 +1,3 @@ +does_project_dir: "{{ lookup('env', 'DOES_PROJECT_DIR') }}" +does_config_dir: "{{ does_project_dir }}/does_config" +external_group_vars_dir: "{{ does_config_dir }}/group_vars" diff --git a/inventory/.gitignore b/src/inventory/.gitignore similarity index 100% rename from inventory/.gitignore rename to src/inventory/.gitignore diff --git a/inventory/.keep b/src/inventory/.keep similarity index 100% rename from inventory/.keep rename to src/inventory/.keep diff --git a/resources/awscli/aws_cli_team_gpg_key.pub b/src/resources/awscli/aws_cli_team_gpg_key.pub similarity index 100% rename from resources/awscli/aws_cli_team_gpg_key.pub rename to src/resources/awscli/aws_cli_team_gpg_key.pub diff --git a/resources/flask.png b/src/resources/flask.png similarity index 100% rename from resources/flask.png rename to src/resources/flask.png diff --git a/resources/inventory/aws_ec2.yml.j2 b/src/resources/inventory/aws_ec2.yml.j2 similarity index 100% rename from resources/inventory/aws_ec2.yml.j2 rename to src/resources/inventory/aws_ec2.yml.j2 diff --git a/resources/repotemplate/group_vars/all/main.yml.j2 b/src/resources/repotemplate/group_vars/all/main.yml.j2 similarity index 83% rename from resources/repotemplate/group_vars/all/main.yml.j2 rename to src/resources/repotemplate/group_vars/all/main.yml.j2 index ee60e8d9..804b4f38 100644 --- a/resources/repotemplate/group_vars/all/main.yml.j2 +++ b/src/resources/repotemplate/group_vars/all/main.yml.j2 @@ -10,7 +10,6 @@ git_remote_repository: <> # TODO: set remote repository ( # The experiments are mostly run concurrently (apart from the setup and cleanup parts). Thus, the experiment with the most jobs defines the # maximal duration. But as experiments usually use fewer than 'job_n_tries' tries, an experiment with few long-running jobs can be the bottleneck too. job_n_tries: <> # should be max 1000 (otherwise playbook freezes -> unsure why) - # TODO [mh]: must be tested if this is still an issue, I switched to an `until` loop job_check_wait_time: <> remote: @@ -19,7 +18,8 @@ remote: exp_code_dir: "{{ remote.dir }}/code" local: - results_dir: "./results" + results_dir: "{{ does_project_dir }}/does_results" + designs_dir: "{{ does_config_dir }}/designs" exp_base: key_name: <> # TODO: add key pair name @@ -31,10 +31,3 @@ exp_base: vpc_subnet_cidr: 10.100.0.0/24 sg_name: "{{ prj_id }}_sg" sg_desc: "{{ prj_id }} security group" - -separator: '_SEP_' - -# This prefix (incl. the capitalization) is chosen by the ec2 plugin -ec2_tag_name_prefix: 'tag_Name_' -ec2_tag_prj_prefix: 'tag_Prj_' -ec2_tag_exp_prefix: 'tag_Exp_' diff --git a/resources/repotemplate/group_vars/ansible_controller/main.yml.j2 b/src/resources/repotemplate/group_vars/ansible_controller/main.yml.j2 similarity index 100% rename from resources/repotemplate/group_vars/ansible_controller/main.yml.j2 rename to src/resources/repotemplate/group_vars/ansible_controller/main.yml.j2 diff --git a/resources/repotemplate/group_vars/host_type/main.yml.j2 b/src/resources/repotemplate/group_vars/host_type/main.yml.j2 similarity index 100% rename from resources/repotemplate/group_vars/host_type/main.yml.j2 rename to src/resources/repotemplate/group_vars/host_type/main.yml.j2 diff --git a/roles/abc/defaults/main.yml b/src/roles/abc/defaults/main.yml similarity index 100% rename from roles/abc/defaults/main.yml rename to src/roles/abc/defaults/main.yml diff --git a/roles/abc/tasks/main.yml b/src/roles/abc/tasks/main.yml similarity index 99% rename from roles/abc/tasks/main.yml rename to src/roles/abc/tasks/main.yml index 2294a536..a33d007e 100644 --- a/roles/abc/tasks/main.yml +++ b/src/roles/abc/tasks/main.yml @@ -1,5 +1,4 @@ - - name: Create folder for ABC ansible.builtin.file: path: "{{ ABC_INSTALL_PATH }}" diff --git a/src/roles/ansible-controller-clear/tasks/main.yml b/src/roles/ansible-controller-clear/tasks/main.yml new file mode 100644 index 00000000..e4dbcd81 --- /dev/null +++ b/src/roles/ansible-controller-clear/tasks/main.yml @@ -0,0 +1,40 @@ +--- + +- name: Collect info about running ec2 instances + community.aws.ec2_instance_info: + region: "{{ exp_base.aws_region }}" + filters: + "tag:name": "{{ ansible_controller }}" + register: ec2_instance_info + +# TODO: remove +- debug: + msg: "ec2_instance_info: {{ ec2_instance_info }}" + +- name: Extract instance ids of ec2 instances to remove + ansible.builtin.set_fact: + ec2_instance_ids: "{{ ec2_instance_info | json_query('*.instances[*].instance_id') | list | flatten }}" + +# TODO: remove +- debug: + msg: "ec2_instance_ids: {{ ec2_instance_ids }}" + +- ansible.builtin.pause: + seconds: 10 + prompt: | + "Removing instances with the following ids: + {{ ec2_instance_ids }} + + If the above instance IDs are wrong, abort now! (CTRL+C followed by 'A')" + tags: [print_action] + +- name: Cleanup AWS + community.aws.ec2_instance: + instance_ids: "{{ ec2_instance_ids }}" + region: "{{ exp_base.aws_region }}" + state: absent + when: (ec2_instance_ids | length) > 0 + +- name: Remove AWS VPC + ansible.builtin.include_role: + name: suite-aws-vpc-delete diff --git a/roles/ansible-controller-ec2/tasks/main.yml b/src/roles/ansible-controller-ec2/tasks/main.yml similarity index 100% rename from roles/ansible-controller-ec2/tasks/main.yml rename to src/roles/ansible-controller-ec2/tasks/main.yml diff --git a/roles/ansible-controller-setup/tasks/configure_aws.yml b/src/roles/ansible-controller-setup/tasks/configure_aws.yml similarity index 100% rename from roles/ansible-controller-setup/tasks/configure_aws.yml rename to src/roles/ansible-controller-setup/tasks/configure_aws.yml diff --git a/roles/ansible-controller-setup/tasks/fetch_does_repo.yml b/src/roles/ansible-controller-setup/tasks/fetch_does_repo.yml similarity index 100% rename from roles/ansible-controller-setup/tasks/fetch_does_repo.yml rename to src/roles/ansible-controller-setup/tasks/fetch_does_repo.yml diff --git a/roles/ansible-controller-setup/tasks/install_awscli.yml b/src/roles/ansible-controller-setup/tasks/install_awscli.yml similarity index 100% rename from roles/ansible-controller-setup/tasks/install_awscli.yml rename to src/roles/ansible-controller-setup/tasks/install_awscli.yml diff --git a/roles/ansible-controller-setup/tasks/install_boto3.yml b/src/roles/ansible-controller-setup/tasks/install_boto3.yml similarity index 100% rename from roles/ansible-controller-setup/tasks/install_boto3.yml rename to src/roles/ansible-controller-setup/tasks/install_boto3.yml diff --git a/roles/ansible-controller-setup/tasks/main.yml b/src/roles/ansible-controller-setup/tasks/main.yml similarity index 100% rename from roles/ansible-controller-setup/tasks/main.yml rename to src/roles/ansible-controller-setup/tasks/main.yml diff --git a/roles/ansible-controller-setup/tasks/prepare_ansible.yml b/src/roles/ansible-controller-setup/tasks/prepare_ansible.yml similarity index 100% rename from roles/ansible-controller-setup/tasks/prepare_ansible.yml rename to src/roles/ansible-controller-setup/tasks/prepare_ansible.yml diff --git a/roles/ansible-controller-setup/tasks/prerequisites.yml b/src/roles/ansible-controller-setup/tasks/prerequisites.yml similarity index 100% rename from roles/ansible-controller-setup/tasks/prerequisites.yml rename to src/roles/ansible-controller-setup/tasks/prerequisites.yml diff --git a/roles/ansible-controller-setup/tasks/ssh_setup.yml b/src/roles/ansible-controller-setup/tasks/ssh_setup.yml similarity index 100% rename from roles/ansible-controller-setup/tasks/ssh_setup.yml rename to src/roles/ansible-controller-setup/tasks/ssh_setup.yml diff --git a/roles/experiment-job/filter_plugins/helpers.py b/src/roles/experiment-job/filter_plugins/helpers.py similarity index 100% rename from roles/experiment-job/filter_plugins/helpers.py rename to src/roles/experiment-job/filter_plugins/helpers.py diff --git a/roles/experiment-job/library/tsp.py b/src/roles/experiment-job/library/tsp.py similarity index 100% rename from roles/experiment-job/library/tsp.py rename to src/roles/experiment-job/library/tsp.py diff --git a/roles/experiment-job/library/tsp_info.py b/src/roles/experiment-job/library/tsp_info.py similarity index 100% rename from roles/experiment-job/library/tsp_info.py rename to src/roles/experiment-job/library/tsp_info.py diff --git a/roles/experiment-job/tasks/main.yml b/src/roles/experiment-job/tasks/main.yml similarity index 98% rename from roles/experiment-job/tasks/main.yml rename to src/roles/experiment-job/tasks/main.yml index 22957c51..b9073e19 100644 --- a/roles/experiment-job/tasks/main.yml +++ b/src/roles/experiment-job/tasks/main.yml @@ -117,8 +117,8 @@ cmd: "{{ job.exp_run_cmd }}" cmd_label: "{{ job.job_info | to_json | string }}" cmd_working_dir: "{{ job.exp_working_dir }}" - cmd_stdout_file: results/stdout.log # relative path compared to working dir - cmd_stderr_file: results/stderr.log + cmd_stdout_file: "{{ local.results_dir }}/stdout.log" # relative path compared to working dir + cmd_stderr_file: "{{ local.results_dir }}/stderr.log" delegate_to: "{{ job.host_info.public_dns_name }}" loop: "{{ exp_jobs_to_enqueue }}" loop_control: @@ -266,4 +266,4 @@ msg: "{{ suite_progress_info[item] }}" loop: "{{ suite_progress_info.keys() | sort }}" tags: [print_action] -# TEMPORARY END \ No newline at end of file +# TEMPORARY END diff --git a/roles/experiment-job/templates/config.json.j2 b/src/roles/experiment-job/templates/config.json.j2 similarity index 100% rename from roles/experiment-job/templates/config.json.j2 rename to src/roles/experiment-job/templates/config.json.j2 diff --git a/roles/experiment-state/tasks/main.yml b/src/roles/experiment-state/tasks/main.yml similarity index 100% rename from roles/experiment-state/tasks/main.yml rename to src/roles/experiment-state/tasks/main.yml diff --git a/roles/experiment-state/templates/state.yml.j2 b/src/roles/experiment-state/templates/state.yml.j2 similarity index 100% rename from roles/experiment-state/templates/state.yml.j2 rename to src/roles/experiment-state/templates/state.yml.j2 diff --git a/roles/load-group-vars/tasks/main.yml b/src/roles/load-group-vars/tasks/main.yml similarity index 100% rename from roles/load-group-vars/tasks/main.yml rename to src/roles/load-group-vars/tasks/main.yml diff --git a/roles/seal/defaults/main.yml b/src/roles/seal/defaults/main.yml similarity index 100% rename from roles/seal/defaults/main.yml rename to src/roles/seal/defaults/main.yml diff --git a/roles/seal/tasks/install_seal.yml b/src/roles/seal/tasks/install_seal.yml similarity index 100% rename from roles/seal/tasks/install_seal.yml rename to src/roles/seal/tasks/install_seal.yml diff --git a/roles/seal/tasks/main.yml b/src/roles/seal/tasks/main.yml similarity index 100% rename from roles/seal/tasks/main.yml rename to src/roles/seal/tasks/main.yml diff --git a/roles/seal/tasks/prerequisites.yml b/src/roles/seal/tasks/prerequisites.yml similarity index 100% rename from roles/seal/tasks/prerequisites.yml rename to src/roles/seal/tasks/prerequisites.yml diff --git a/roles/setup-ssh/tasks/main.yml b/src/roles/setup-ssh/tasks/main.yml similarity index 100% rename from roles/setup-ssh/tasks/main.yml rename to src/roles/setup-ssh/tasks/main.yml diff --git a/roles/setup-suite/tasks/main.yml b/src/roles/setup-suite/tasks/main.yml similarity index 100% rename from roles/setup-suite/tasks/main.yml rename to src/roles/setup-suite/tasks/main.yml diff --git a/roles/suite-aws-ec2-create/filter_plugins/helpers.py b/src/roles/suite-aws-ec2-create/filter_plugins/helpers.py similarity index 100% rename from roles/suite-aws-ec2-create/filter_plugins/helpers.py rename to src/roles/suite-aws-ec2-create/filter_plugins/helpers.py diff --git a/roles/suite-aws-ec2-create/tasks/main.yml b/src/roles/suite-aws-ec2-create/tasks/main.yml similarity index 99% rename from roles/suite-aws-ec2-create/tasks/main.yml rename to src/roles/suite-aws-ec2-create/tasks/main.yml index 25cab500..eeeefdc9 100644 --- a/roles/suite-aws-ec2-create/tasks/main.yml +++ b/src/roles/suite-aws-ec2-create/tasks/main.yml @@ -17,7 +17,7 @@ block: - name: Loop over different host types and load group vars from file. include_vars: - file: "group_vars/{{ host_type }}/main.yml" + file: "{{ external_group_vars_dir }}/{{ host_type }}/main.yml" name: host_type_specific_vars loop: "{{ host_types.keys() }}" loop_control: diff --git a/roles/suite-aws-ec2-delete/tasks/main.yml b/src/roles/suite-aws-ec2-delete/tasks/main.yml similarity index 100% rename from roles/suite-aws-ec2-delete/tasks/main.yml rename to src/roles/suite-aws-ec2-delete/tasks/main.yml diff --git a/roles/suite-aws-ec2-launch/tasks/main.yml b/src/roles/suite-aws-ec2-launch/tasks/main.yml similarity index 100% rename from roles/suite-aws-ec2-launch/tasks/main.yml rename to src/roles/suite-aws-ec2-launch/tasks/main.yml diff --git a/roles/suite-aws-vpc-create/tasks/main.yml b/src/roles/suite-aws-vpc-create/tasks/main.yml similarity index 100% rename from roles/suite-aws-vpc-create/tasks/main.yml rename to src/roles/suite-aws-vpc-create/tasks/main.yml diff --git a/roles/suite-aws-vpc-delete/tasks/main.yml b/src/roles/suite-aws-vpc-delete/tasks/main.yml similarity index 100% rename from roles/suite-aws-vpc-delete/tasks/main.yml rename to src/roles/suite-aws-vpc-delete/tasks/main.yml diff --git a/roles/suite-load-post-aws/action_plugins/suite_design_extend.py b/src/roles/suite-load-post-aws/action_plugins/suite_design_extend.py similarity index 100% rename from roles/suite-load-post-aws/action_plugins/suite_design_extend.py rename to src/roles/suite-load-post-aws/action_plugins/suite_design_extend.py diff --git a/roles/suite-load-post-aws/library/suite_design_extend.py b/src/roles/suite-load-post-aws/library/suite_design_extend.py similarity index 100% rename from roles/suite-load-post-aws/library/suite_design_extend.py rename to src/roles/suite-load-post-aws/library/suite_design_extend.py diff --git a/roles/suite-load-post-aws/tasks/main.yml b/src/roles/suite-load-post-aws/tasks/main.yml similarity index 100% rename from roles/suite-load-post-aws/tasks/main.yml rename to src/roles/suite-load-post-aws/tasks/main.yml diff --git a/roles/suite-load-pre-aws/action_plugins/suite_design_validate.py b/src/roles/suite-load-pre-aws/action_plugins/suite_design_validate.py similarity index 100% rename from roles/suite-load-pre-aws/action_plugins/suite_design_validate.py rename to src/roles/suite-load-pre-aws/action_plugins/suite_design_validate.py diff --git a/roles/suite-load-pre-aws/filter_plugins/helpers.py b/src/roles/suite-load-pre-aws/filter_plugins/helpers.py similarity index 100% rename from roles/suite-load-pre-aws/filter_plugins/helpers.py rename to src/roles/suite-load-pre-aws/filter_plugins/helpers.py diff --git a/roles/suite-load-pre-aws/library/suite_design_validate.py b/src/roles/suite-load-pre-aws/library/suite_design_validate.py similarity index 100% rename from roles/suite-load-pre-aws/library/suite_design_validate.py rename to src/roles/suite-load-pre-aws/library/suite_design_validate.py diff --git a/roles/suite-load-pre-aws/tasks/main.yml b/src/roles/suite-load-pre-aws/tasks/main.yml similarity index 98% rename from roles/suite-load-pre-aws/tasks/main.yml rename to src/roles/suite-load-pre-aws/tasks/main.yml index 1acb61ba..44fdd6be 100644 --- a/roles/suite-load-pre-aws/tasks/main.yml +++ b/src/roles/suite-load-pre-aws/tasks/main.yml @@ -81,7 +81,7 @@ - name: validate the suite design and set default values suite_design_validate: - src: experiments/designs/example.yml + src: "{{ local.designs_dir }}/{{ suite }}.yml" dest: "{{ suite_design_dir }}/suite_design.yml" when: id == 'new' # only validate and resolve defaults for new (otherwise load the old already checked version) diff --git a/scripts/expdesign.py b/src/scripts/expdesign.py similarity index 97% rename from scripts/expdesign.py rename to src/scripts/expdesign.py index 3e2e68c0..30d18e58 100644 --- a/scripts/expdesign.py +++ b/src/scripts/expdesign.py @@ -10,7 +10,7 @@ def main(): parser.add_argument('--exps', help='experiment name(s) (experiment file name without .yml ending)', nargs="+", type=str, required=True) - parser.add_argument('--inputdir', help='path to folder of experiment in "table" form', type=str, default="experiments/table") + parser.add_argument('--inputdir', help='path to folder of experiment in "table" form', type=str, default="does_config/table") parser.add_argument('--outpath', help='output path for generated of experiment in "design" form', type=str) @@ -25,7 +25,7 @@ def main(): suite = exps[0] if not outpath: - outpath = f"experiments/designs/{suite}.yml" + outpath = f"does_config/designs/{suite}.yml" with open(outpath, 'w') as out_fp: print(f"Writing experiment design to: {outpath}\n") diff --git a/scripts/repotemplate.py b/src/scripts/repotemplate.py similarity index 97% rename from scripts/repotemplate.py rename to src/scripts/repotemplate.py index 4321dc4d..bf72775a 100644 --- a/scripts/repotemplate.py +++ b/src/scripts/repotemplate.py @@ -9,8 +9,9 @@ DEFAULT_HOST_TYPE = "host_type" -vars_base_path = "group_vars" -templates_base_path = "resources/repotemplate/group_vars" +vars_base_path = os.environ["DOES_PROJECT_FOLDER"] + "/does_config/group_vars" +src_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) +templates_base_path = src_path + "/resources/repotemplate/group_vars" groups = ["all", "server", "client", "ansible_controller"] template_name = "main.yml.j2" # The template path is assumed to be: f"{templates_base_path}/<>", where diff --git a/scripts/results.py b/src/scripts/results.py similarity index 100% rename from scripts/results.py rename to src/scripts/results.py