Add job to generate rust code
Change-Id: I322d117a7cce23c96331f2f294374cde87325c99
This commit is contained in:
parent
c2980a28c4
commit
5420dbb0c9
@ -82,7 +82,7 @@ class ManilaGenerator(OpenStackServerSourceBase):
|
||||
impl_path = Path(
|
||||
work_dir,
|
||||
"openapi_specs",
|
||||
"shared_file_system",
|
||||
"shared-file-system",
|
||||
f"v{self.api_version}.yaml",
|
||||
)
|
||||
impl_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
1809
metadata/shared-file-system_metadata.yaml
Normal file
1809
metadata/shared-file-system_metadata.yaml
Normal file
File diff suppressed because it is too large
Load Diff
6
playbooks/codegenerator/pre.yaml
Normal file
6
playbooks/codegenerator/pre.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
- hosts: all
|
||||
roles:
|
||||
- ensure-pip
|
||||
- ensure-virtualenv
|
||||
- ensure-codegenerator
|
@ -1,11 +1,9 @@
|
||||
---
|
||||
- hosts: all
|
||||
vars:
|
||||
dest: "{{ zuul.project.src_dir }}/doc/build/html"
|
||||
tasks:
|
||||
- name: Precreate directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ dest }}/specs/{{ zj_artifact.metadata.service_type }}"
|
||||
path: "{{ openapi_dest }}/{{ zj_artifact.metadata.service_type }}"
|
||||
state: "directory"
|
||||
loop: "{{ zuul.artifacts }}"
|
||||
loop_control:
|
||||
@ -19,7 +17,7 @@
|
||||
- name: Download specs
|
||||
ansible.builtin.uri:
|
||||
url: "{{ zj_artifact.url }}"
|
||||
dest: "{{ dest }}/specs/{{ zj_artifact.metadata.service_type }}"
|
||||
dest: "{{ openapi_dest }}/{{ zj_artifact.metadata.service_type }}"
|
||||
loop: "{{ zuul.artifacts }}"
|
||||
loop_control:
|
||||
loop_var: zj_artifact
|
||||
|
15
playbooks/rust/all.yaml
Normal file
15
playbooks/rust/all.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
- hosts: all
|
||||
roles:
|
||||
- "ensure-rust"
|
||||
tasks:
|
||||
- name: Generate Rust code
|
||||
ansible.builtin.include_role:
|
||||
name: codegenerator
|
||||
vars:
|
||||
codegenerator_target: "{{ zj_item.1 }}"
|
||||
codegenerator_metadata: "{{ zj_item.0.metadata }}"
|
||||
codegenerator_service_type: "{{ zj_item.0.service }}"
|
||||
loop: "{{ codegenerator_service_metadata_target_map | subelements('targets') }}"
|
||||
loop_control:
|
||||
loop_var: zj_item
|
4
roles/codegenerator/defaults/main.yaml
Normal file
4
roles/codegenerator/defaults/main.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
codegenerator_src: "{{ zuul.projects['opendev.org/openstack/codegenerator'].src_dir }}"
|
||||
codegenerator_venv: "{{ ansible_user_dir }}/.venv"
|
||||
codegenerator_work_dir: wrk
|
16
roles/codegenerator/tasks/main.yaml
Normal file
16
roles/codegenerator/tasks/main.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: Invoke openstack-codegenerator
|
||||
args:
|
||||
chdir: "{{ codegenerator_base_dir }}"
|
||||
executable: "/bin/bash"
|
||||
ansible.builtin.shell: >-
|
||||
source {{ codegenerator_venv }}/bin/activate;
|
||||
openstack-codegenerator
|
||||
--work-dir {{ codegenerator_base_dir }}/{{ codegenerator_work_dir }}
|
||||
--target {{ codegenerator_target }}
|
||||
{% if codegenerator_metadata is defined%}
|
||||
--metadata {{ codegenerator_metadata }}
|
||||
{% endif %}
|
||||
{% if codegenerator_service_type is defined %}
|
||||
--service {{ codegenerator_service_type }}
|
||||
{% endif %}
|
3
roles/ensure-codegenerator/defaults/main.yaml
Normal file
3
roles/ensure-codegenerator/defaults/main.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
codegenerator_src: "{{ zuul.projects['opendev.org/openstack/codegenerator'].src_dir }}"
|
||||
codegenerator_venv: "{{ ansible_user_dir }}/.venv"
|
6
roles/ensure-codegenerator/tasks/main.yaml
Normal file
6
roles/ensure-codegenerator/tasks/main.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Install openstack-codegenerator from sources
|
||||
ansible.builtin.pip:
|
||||
chdir: "{{ codegenerator_src }}"
|
||||
name: "."
|
||||
virtualenv: "{{ codegenerator_venv }}"
|
@ -42,7 +42,7 @@
|
||||
- name: openstack/cinder
|
||||
|
||||
vars:
|
||||
openapi_service: volume
|
||||
openapi_service: block-storage
|
||||
install_additional_projects:
|
||||
- project: "opendev.org/openstack/cinder"
|
||||
name: "."
|
||||
@ -307,3 +307,4 @@
|
||||
- playbooks/openapi/fetch.yaml
|
||||
vars:
|
||||
tox_envlist: publish-openapi-specs
|
||||
openapi_dest: "{{ zuul.project.src_dir }}/doc/build/html/specs"
|
||||
|
@ -16,6 +16,7 @@
|
||||
- codegenerator-openapi-placement-tips-with-api-ref
|
||||
- codegenerator-openapi-shared-file-system-tips-with-api-ref
|
||||
- codegenerator-tox-publish-openapi-specs
|
||||
- codegenerator-rust-all
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tox-pep8
|
||||
@ -30,3 +31,4 @@
|
||||
- codegenerator-openapi-placement-tips-with-api-ref
|
||||
- codegenerator-openapi-shared-file-system-tips-with-api-ref
|
||||
- codegenerator-tox-publish-openapi-specs
|
||||
- codegenerator-rust-all
|
||||
|
66
zuul.d/rust.yaml
Normal file
66
zuul.d/rust.yaml
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
- job:
|
||||
name: codegenerator-rust-base
|
||||
parent: unittests
|
||||
description: |
|
||||
Base job for generation of the Rust code
|
||||
attempts: 1
|
||||
timeout: 1800
|
||||
pre-run:
|
||||
- playbooks/codegenerator/pre.yaml
|
||||
vars:
|
||||
codegenerator_service_metadata_target_map:
|
||||
- service: "block-storage"
|
||||
metadata: "metadata/block-storage_metadata.yaml"
|
||||
targets: ["rust-sdk", "rust-cli"]
|
||||
- service: "compute"
|
||||
metadata: "metadata/compute_metadata.yaml"
|
||||
targets: ["rust-sdk", "rust-cli"]
|
||||
- service: "identity"
|
||||
metadata: "metadata/identity_metadata.yaml"
|
||||
targets: ["rust-sdk", "rust-cli"]
|
||||
- service: "image"
|
||||
metadata: "metadata/image_metadata.yaml"
|
||||
targets: ["rust-sdk", "rust-cli"]
|
||||
- service: "load-balancer"
|
||||
metadata: "metadata/load-balancer_metadata.yaml"
|
||||
targets: ["rust-sdk", "rust-cli"]
|
||||
- service: "network"
|
||||
metadata: "metadata/network_metadata.yaml"
|
||||
targets: ["rust-sdk", "rust-cli"]
|
||||
- service: "object-store"
|
||||
metadata: "metadata/object-store_metadata.yaml"
|
||||
targets: ["rust-sdk"]
|
||||
# - service: "shared-file-system"
|
||||
# metadata: "metadata/shared-file-system_metadata.yaml"
|
||||
# targets: ["rust-sdk"]
|
||||
|
||||
- job:
|
||||
name: codegenerator-rust-all
|
||||
parent: codegenerator-rust-base
|
||||
description: |
|
||||
Generate Rust SDK/CLI
|
||||
dependencies:
|
||||
- name: codegenerator-openapi-block-storage-tips-with-api-ref
|
||||
soft: true
|
||||
- name: codegenerator-openapi-compute-tips-with-api-ref
|
||||
soft: true
|
||||
- name: codegenerator-openapi-identity-tips-with-api-ref
|
||||
soft: true
|
||||
- name: codegenerator-openapi-image-tips-with-api-ref
|
||||
soft: true
|
||||
- name: codegenerator-openapi-load-balancing-tips-with-api-ref
|
||||
soft: true
|
||||
- name: codegenerator-openapi-network-tips-with-api-ref
|
||||
soft: true
|
||||
- name: codegenerator-openapi-object-store-static
|
||||
soft: true
|
||||
- name: codegenerator-openapi-placement-tips-with-api-ref
|
||||
soft: true
|
||||
- name: codegenerator-openapi-shared-file-system-tips-with-api-ref
|
||||
soft: true
|
||||
pre-run: playbooks/openapi/fetch.yaml
|
||||
run: playbooks/rust/all.yaml
|
||||
vars:
|
||||
codegenerator_base_dir: "{{ zuul.project.src_dir }}"
|
||||
openapi_dest: "{{ codegenerator_base_dir }}/wrk/openapi_specs"
|
Loading…
x
Reference in New Issue
Block a user