Add the creation/deletion of image in the pipeline 31/50731/12
authorzhihui wu <wu.zhihui1@zte.com.cn>
Wed, 17 Jan 2018 08:09:08 +0000 (16:09 +0800)
committerzhihui wu <wu.zhihui1@zte.com.cn>
Sun, 11 Feb 2018 03:05:15 +0000 (11:05 +0800)
- Specify image download and upload details

JIRA: QTIP-291

Change-Id: I9f4e0d179f7d907b448b716274348fb6c71dd3bc
Signed-off-by: zhihui wu <wu.zhihui1@zte.com.cn>
resources/ansible_roles/openstack/defaults/main.yml
resources/ansible_roles/openstack/tasks/create_image.yml [new file with mode: 0644]
resources/ansible_roles/openstack/tasks/create_stack.yml [new file with mode: 0644]
resources/ansible_roles/openstack/tasks/delete_image.yml [new file with mode: 0644]
resources/ansible_roles/openstack/tasks/delete_stack.yml [new file with mode: 0644]
resources/ansible_roles/openstack/tasks/main.yml
resources/ansible_roles/qtip-generator/defaults/main.yml
resources/ansible_roles/qtip-generator/files/compute/heat_template.yml [moved from resources/ansible_roles/openstack/templates/heat_template.yml with 97% similarity]
resources/ansible_roles/qtip-generator/files/compute/setup.yml
resources/ansible_roles/qtip-generator/files/compute/teardown.yml

index 3b83d6c..19af96b 100644 (file)
 
 stack_name: qtip_stack
 image_name: qtip_image
-flavor_name: m1.large
+flavor_name: qtip_flavor
 net_name: qtip_net
 subnet_name: qtip_subnet
-instance_name: qtip_vm
\ No newline at end of file
+inst_name: qtip
+image_url: https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
+checksum: 9cb8ed487ad8fbc8b7d082968915c4fd
+download_dest: /tmp/qtip/images
\ No newline at end of file
diff --git a/resources/ansible_roles/openstack/tasks/create_image.yml b/resources/ansible_roles/openstack/tasks/create_image.yml
new file mode 100644 (file)
index 0000000..b67595c
--- /dev/null
@@ -0,0 +1,32 @@
+##############################################################################
+# Copyright (c) 2018 ZTE Corporation and others.
+# taseer94@gmail.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+
+- name: create directories for image
+  file:
+    path: "{{ download_dest }}"
+    state: directory
+
+- name: download image as qtip image
+  get_url:
+    url: "{{ image_url }}"
+    dest: "{{ download_dest }}/{{ image_name }}.img"
+    checksum: "md5:{{ checksum }}"
+  when: image_url | search("https://")
+
+- name: upload qtip image
+  os_image:
+    name: "{{ image_name }}"
+    container_format: bare
+    disk_format: qcow2
+    state: present
+    endpoint_type: admin
+    filename: "{{ download_dest }}/{{ image_name }}.img"
+
diff --git a/resources/ansible_roles/openstack/tasks/create_stack.yml b/resources/ansible_roles/openstack/tasks/create_stack.yml
new file mode 100644 (file)
index 0000000..33e8f14
--- /dev/null
@@ -0,0 +1,24 @@
+##############################################################################
+# Copyright (c) 2017 ZTE Corporation and others.
+# taseer94@gmail.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+
+- name: create qtip stack
+  os_stack:
+    name: "{{ stack_name }}"
+    state: present
+    template: ../template/heat_template.yml
+    endpoint_type: admin
+    parameters:
+      image_name: "{{ image_name }}"
+      flavor_name: "{{ flavor_name }}"
+      net_name: "{{ net_name }}"
+      subnet_name: "{{ subnet_name }}"
+      instance_name: "{{ inst_name }}"
+    timeout: 600
diff --git a/resources/ansible_roles/openstack/tasks/delete_image.yml b/resources/ansible_roles/openstack/tasks/delete_image.yml
new file mode 100644 (file)
index 0000000..4665308
--- /dev/null
@@ -0,0 +1,17 @@
+##############################################################################
+# Copyright (c) 2018 ZTE Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+
+- name: delete qtip image
+  os_image:
+    name: "{{ image_name }}"
+    state: absent
+    endpoint_type: admin
+
diff --git a/resources/ansible_roles/openstack/tasks/delete_stack.yml b/resources/ansible_roles/openstack/tasks/delete_stack.yml
new file mode 100644 (file)
index 0000000..6373934
--- /dev/null
@@ -0,0 +1,16 @@
+##############################################################################
+# Copyright (c) 2018 ZTE Corporation and others.
+# wu.zhihui1@zte.com.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+
+- name: cleanup qtip stack
+  os_stack:
+    name: "{{ stack_name }}"
+    state: absent
+    endpoint_type: admin
index f4d3d18..0b84923 100644 (file)
@@ -1,6 +1,6 @@
 ##############################################################################
-# Copyright (c) 2017 ZTE Corporation and others.
-# taseer94@gmail.com
+# Copyright (c) 2018 ZTE Corporation and others.
+#
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
 # which accompanies this distribution, and is available at
@@ -9,14 +9,4 @@
 
 ---
 
-- name: create qtip stack
-  os_stack:
-    name: "{{ stack_name }}"
-    state: present
-    template: heat_template.yml
-    parameters:
-      image_name: "{{ image_name }}"
-      flavor_name: "{{ flavor_name }}"
-      net_name: "{{ net_name }}"
-      subnet_name: "{{ subnet_name }}"
-      instance_name: "{{ inst_name }}"
+- include_tasks: "{{ tasks }}.yml"
index 344feb5..b761648 100644 (file)
@@ -22,3 +22,6 @@ project_template: 'compute'
 qtip_package: ../../..
 qtip_cache: .qtip-cache
 cwd: .
+
+# TODO(zhihui) temporarily hardcode
+sut_type: vnf
\ No newline at end of file
@@ -63,7 +63,7 @@ resources:
   my_instance:
     type: OS::Nova::Server
     properties:
-      name: { get_param: inst_name }
+      name: { get_param: instance_name }
       image: { get_param: image_name }
       flavor: { get_param: flavor_name }
       networks:
index f5920c1..d7f2b87 100644 (file)
 # Prepare connection to SUT (System Under Test)
 
 ---
+
+{% if sut_type == 'vnf' %}
+- hosts: localhost
+  gather_facts: no
+  roles:
+    - { role: openstack, tasks: create_image }
+{% endif %}
+
 {% if installer_type == 'manual' %}
 - hosts: localhost
   gather_facts: no
index dc65993..84d9c8c 100644 (file)
@@ -7,8 +7,18 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+{% if sut_type == 'vnf' %}
+- hosts: localhost
+  gather_facts: no
+  roles:
+    - { role: openstack, tasks: delete_image }
+{% endif %}
+
 - hosts: SUT
 
   roles:
   # teardown environment
   - { role: qtip, tasks: teardown }
+
+
+