CORD-445 - abstract out restart and check with versions

Change-Id: I69d27e8013bfa7577b9fa5ffca478b8a2b47339c
diff --git a/roles/maas/files/restart-maas.yml b/roles/maas/files/restart-maas.yml
new file mode 100644
index 0000000..72ff5a0
--- /dev/null
+++ b/roles/maas/files/restart-maas.yml
@@ -0,0 +1,30 @@
+---
+- name: Restart MAAS Services
+  become: yes
+  service:
+    name={{ item }}
+    state=restarted
+  with_items:
+    - maas-proxy
+    - maas-regiond
+    - maas-clusterd
+    - maas-dhcpd
+    - bind9
+  tags:
+    - maas_restart
+
+- name: Wait for MAAS to Intialize (start)
+  pause:
+    seconds=60
+  changed_when: false
+  tags:
+    - maas_restart
+
+- name: Verify MAAS Accepting API Requests
+  action: uri url='http://{{ mgmt_ip_address.stdout }}/MAAS/api/1.0/version/' method=GET validate_certs=no return_content=no status_code=200
+  retries: 50
+  delay: 30
+  register: api_test
+  until: api_test.status is defined and api_test.status == 200
+  tags:
+    - maas_restart
diff --git a/roles/maas/tasks/main.yml b/roles/maas/tasks/main.yml
index f001e1b..024ef0d 100644
--- a/roles/maas/tasks/main.yml
+++ b/roles/maas/tasks/main.yml
@@ -170,34 +170,10 @@
     state: present
 
 - name: Restart MAAS Services
-  become: yes
-  service:
-    name={{ item }}
-    state=restarted
-  with_items:
-    - maas-proxy
-    - maas-regiond
-    - maas-clusterd
-    - maas-dhcpd
-    - bind9
+  include: restart-maas.yml
   tags:
     - maas_restart
 
-- name: Wait for MAAS to Intialize (start)
-  pause:
-    seconds=30
-  changed_when: false
-  tags:
-    - maas_restart
-
-- name: MAAS Accepting API Requests
-  action: get_url url=http://{{ mgmt_ip_address.stdout }}/MAAS/api/1.0/maas/ dest=/tmp
-  register: api_test
-  until: api_test.status_code is defined and api_test.status_code == 403
-  retries: 5
-  delay: 60
-  failed_when: api_test.status_code is not defined or api_test.status_code != 403
-
 - name: Configure MAAS
   become: yes
   command: docker run docker-registry:5000/cord-maas-bootstrap:{{ docker.image_version }} --apikey='{{apikey.stdout}}' --sshkey='{{maas.user_sshkey}}' --url='http://{{mgmt_ip_address.stdout}}/MAAS/api/1.0' --network='{{networks.management}}' --interface='{{interfaces.management}}' --zone='administrative' --cluster='Cluster master' --domain='{{maas.domain}}'
@@ -269,33 +245,10 @@
   when: ns_nameserver.changed or ns_search.changed
 
 - name: Restart MAAS Services
-  become: yes
-  service:
-    name={{ item }}
-    state=restarted
-  with_items:
-    - maas-proxy
-    - maas-regiond
-    - maas-clusterd
-    - maas-dhcpd
+  include: restart-maas.yml
   tags:
     - maas_restart
 
-- name: Wait for MAAS to Intialize (start)
-  pause:
-    seconds=30
-  changed_when: false
-  tags:
-    - maas_restart
-
-- name: MAAS Accepting API Requests
-  action: get_url url=http://{{ mgmt_ip_address.stdout }}/MAAS/api/1.0/maas/ dest=/tmp
-  register: api_test2
-  until: api_test2.status_code is defined and api_test2.status_code == 403
-  retries: 5
-  delay: 60
-  failed_when: api_test2.status_code is not defined or api_test2.status_code != 403
-
 - name: Ensure Boot Resource Import Started
   become: yes
   shell: maas login cord http://localhost/MAAS/api/1.0/ "{{apikey.stdout}}" && maas cord boot-resources import && maas logout cord