Add DumpsStore API calls

Ties in API requests to the Dumps page and adds ability to:
- Create new System or BMC dump
- Delete single or multiple BMC dumps. Uses ClearLog service to
  delete all and DELETE request for single dump deletion

Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: Iae928fa3b8fab00e549c33c0ab914a4b04de0f40
diff --git a/src/env/components/Dumps/DumpsForm.vue b/src/env/components/Dumps/DumpsForm.vue
index ed81b3a..9dc8bcb 100644
--- a/src/env/components/Dumps/DumpsForm.vue
+++ b/src/env/components/Dumps/DumpsForm.vue
@@ -21,20 +21,28 @@
           {{ $t('global.form.required') }}
         </b-form-invalid-feedback>
       </b-form-group>
+      <alert variant="info" class="mb-3" :show="selectedDumpType === 'system'">
+        {{ $t('pageDumps.form.systemDumpInfo') }}
+      </alert>
       <b-button variant="primary" type="submit" form="form-new-dump">
-        {{ $t('pageDumps.form.createNewDump') }}
+        {{ $t('pageDumps.form.initiateDump') }}
       </b-button>
     </b-form>
+    <modal-confirmation @ok="createSystemDump" />
   </div>
 </template>
 
 <script>
 import { required } from 'vuelidate/lib/validators';
 
+import ModalConfirmation from './DumpsModalConfirmation';
+import Alert from '@/components/Global/Alert';
+
 import BVToastMixin from '@/components/Mixins/BVToastMixin';
 import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
 
 export default {
+  components: { Alert, ModalConfirmation },
   mixins: [BVToastMixin, VuelidateMixin],
   data() {
     return {
@@ -54,7 +62,33 @@
     handleSubmit() {
       this.$v.$touch();
       if (this.$v.$invalid) return;
-      this.successToast(this.$t('pageDumps.toast.successStartDump'));
+      if (this.selectedDumpType === 'system') {
+        this.showConfirmationModal();
+      } else {
+        this.$store
+          .dispatch('dumps/createBmcDump')
+          .then(() =>
+            this.infoToast(
+              this.$t('pageDumps.toast.successStartBmcDump'),
+              this.$t('pageDumps.toast.successStartBmcDumpTitle')
+            )
+          )
+          .catch(({ message }) => this.errorToast(message));
+      }
+    },
+    showConfirmationModal() {
+      this.$bvModal.show('modal-confirmation');
+    },
+    createSystemDump() {
+      this.$store
+        .dispatch('dumps/createSystemDump')
+        .then(() =>
+          this.infoToast(
+            this.$t('pageDumps.toast.successStartSystemDump'),
+            this.$t('pageDumps.toast.successStartSystemDumpTitle')
+          )
+        )
+        .catch(({ message }) => this.errorToast(message));
     },
   },
 };