foreman_acd 0.2.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -56
  3. data/app/controllers/foreman_acd/ansible_playbooks_controller.rb +199 -0
  4. data/app/controllers/foreman_acd/api/v2/ansible_playbooks_controller.rb +72 -0
  5. data/app/controllers/foreman_acd/api/v2/app_definitions_controller.rb +1 -0
  6. data/app/controllers/foreman_acd/api/v2/app_instances_controller.rb +62 -0
  7. data/app/controllers/foreman_acd/app_definitions_controller.rb +19 -10
  8. data/app/controllers/foreman_acd/app_instances_controller.rb +111 -137
  9. data/app/controllers/foreman_acd/concerns/ansible_playbook_parameters.rb +23 -0
  10. data/app/controllers/foreman_acd/concerns/app_definition_parameters.rb +1 -1
  11. data/app/controllers/foreman_acd/concerns/app_instance_parameters.rb +1 -1
  12. data/app/controllers/foreman_acd/remote_execution_controller.rb +62 -0
  13. data/app/controllers/ui_acd_controller.rb +20 -3
  14. data/app/lib/actions/foreman_acd/deploy_all_hosts.rb +47 -0
  15. data/app/lib/actions/foreman_acd/run_configurator.rb +44 -0
  16. data/app/models/concerns/foreman_acd/host_managed_extensions.rb +51 -0
  17. data/app/models/foreman_acd/acd_provider.rb +36 -0
  18. data/app/models/foreman_acd/ansible_playbook.rb +68 -0
  19. data/app/models/foreman_acd/app_definition.rb +25 -0
  20. data/app/models/foreman_acd/app_instance.rb +42 -0
  21. data/app/models/foreman_acd/foreman_host.rb +23 -0
  22. data/app/models/foreman_acd/taxonomy_extensions.rb +17 -0
  23. data/app/services/foreman_acd/acd_proxy_proxy_selector.rb +17 -0
  24. data/app/services/foreman_acd/app_configurator.rb +98 -0
  25. data/app/services/foreman_acd/app_deployer.rb +157 -0
  26. data/app/services/foreman_acd/inventory_creator.rb +68 -0
  27. data/app/views/foreman_acd/ansible_playbooks/_form.html.erb +64 -0
  28. data/app/views/foreman_acd/ansible_playbooks/edit.html.erb +11 -0
  29. data/app/views/foreman_acd/ansible_playbooks/index.html.erb +30 -0
  30. data/app/views/foreman_acd/ansible_playbooks/new.html.erb +3 -0
  31. data/app/views/foreman_acd/api/v2/ansible_playbooks/base.json.rabl +5 -0
  32. data/app/views/foreman_acd/api/v2/ansible_playbooks/index.json.rabl +5 -0
  33. data/app/views/foreman_acd/api/v2/ansible_playbooks/show.json.rabl +9 -0
  34. data/app/views/foreman_acd/api/v2/app_definitions/base.json.rabl +5 -0
  35. data/app/views/foreman_acd/api/v2/app_definitions/index.json.rabl +5 -0
  36. data/app/views/foreman_acd/api/v2/app_definitions/show.json.rabl +9 -0
  37. data/app/views/foreman_acd/api/v2/app_instances/base.json.rabl +5 -0
  38. data/app/views/foreman_acd/api/v2/app_instances/index.json.rabl +5 -0
  39. data/app/views/foreman_acd/api/v2/app_instances/show.json.rabl +5 -0
  40. data/app/views/foreman_acd/app_definitions/_form.html.erb +34 -12
  41. data/app/views/foreman_acd/app_definitions/edit.html.erb +10 -0
  42. data/app/views/foreman_acd/app_definitions/index.html.erb +4 -4
  43. data/app/views/foreman_acd/app_instances/_form.html.erb +11 -9
  44. data/app/views/foreman_acd/app_instances/edit.html.erb +10 -0
  45. data/app/views/foreman_acd/app_instances/index.html.erb +89 -10
  46. data/app/views/foreman_acd/app_instances/report.html.erb +6 -3
  47. data/app/views/templates/job/run_acd_ansible_playbook.erb +62 -0
  48. data/app/views/ui_acd/ansible_data.json.rabl +6 -0
  49. data/app/views/ui_acd/app.json.rabl +6 -2
  50. data/app/views/ui_acd/app_definition.json.rabl +1 -1
  51. data/app/views/ui_acd/{fdata.json.rabl → foreman_data.json.rabl} +1 -1
  52. data/config/routes.rb +32 -2
  53. data/db/migrate/20200916091018_create_ansible_playbooks.rb +20 -0
  54. data/db/migrate/20200917120220_add_ansible_playbook_id.rb +14 -0
  55. data/db/migrate/20201016002819_add_ansible_vars_all_to_app_definitions.rb +8 -0
  56. data/db/migrate/20201016104338_add_ansible_vars_all_to_app_instances.rb +8 -0
  57. data/db/migrate/20210112111548_add_organization_to_app_instance.rb +22 -0
  58. data/db/migrate/20210112113853_add_location_to_app_instance.rb +8 -0
  59. data/db/migrate/20210202141658_create_foreman_hosts.rb +24 -0
  60. data/db/migrate/20210204111306_remove_hosts_from_app_instances.rb +8 -0
  61. data/db/migrate/20210209091014_rename_acd_tables.rb +16 -0
  62. data/db/migrate/20210216083522_add_last_progress_report.rb +8 -0
  63. data/db/migrate/20210216091529_add_last_deploy_task.rb +8 -0
  64. data/db/migrate/20210316151145_add_git_commit_to_ansible_playbooks.rb +8 -0
  65. data/db/migrate/20210503122809_add_git_url_to_ansible_playbooks.rb +8 -0
  66. data/db/seeds.d/62_acd_proxy_feature.rb +4 -0
  67. data/db/seeds.d/75-job_templates.rb +13 -0
  68. data/lib/foreman_acd.rb +12 -0
  69. data/lib/foreman_acd/engine.rb +43 -3
  70. data/lib/foreman_acd/plugin.rb +88 -22
  71. data/lib/foreman_acd/version.rb +1 -1
  72. data/lib/tasks/foreman_acd_tasks.rake +0 -12
  73. data/locale/en/foreman_acd.edit.po +326 -0
  74. data/locale/en/foreman_acd.po +232 -2
  75. data/locale/en/foreman_acd.po.time_stamp +0 -0
  76. data/locale/foreman_acd.pot +343 -8
  77. data/package.json +9 -9
  78. data/test/controllers/ansible_playbooks_controller_test.rb +27 -0
  79. data/test/controllers/app_instances_controller_test.rb +8 -3
  80. data/test/controllers/ui_acd_controller_test.rb +22 -6
  81. data/test/factories/foreman_acd_factories.rb +18 -4
  82. data/test/models/acd_provider_test.rb +37 -0
  83. data/test/models/ansible_playbook_test.rb +11 -0
  84. data/test/models/app_definition_test.rb +1 -1
  85. data/test/models/app_instance_test.rb +2 -0
  86. data/test/models/concerns/host_extensions_test.rb +26 -0
  87. data/test/models/foreman_host_test.rb +12 -0
  88. data/webpack/__mocks__/foremanReact/API.js +2 -0
  89. data/webpack/__mocks__/foremanReact/common/I18n.js +3 -0
  90. data/webpack/__mocks__/foremanReact/common/helpers.js +2 -0
  91. data/webpack/__mocks__/foremanReact/components/ForemanModal.js +7 -0
  92. data/webpack/__mocks__/foremanReact/components/common/forms/CommonForm.js +2 -0
  93. data/webpack/__mocks__/foremanReact/components/common/forms/TextInput.js +2 -0
  94. data/webpack/__mocks__/foremanReact/components/hosts/powerStatus.js +1 -0
  95. data/webpack/__snapshots__/helper.test.js.snap +14 -0
  96. data/webpack/components/ApplicationDefinition/ApplicationDefinition.js +159 -29
  97. data/webpack/components/ApplicationDefinition/ApplicationDefinitionActions.js +106 -14
  98. data/webpack/components/ApplicationDefinition/ApplicationDefinitionConstants.js +8 -2
  99. data/webpack/components/ApplicationDefinition/ApplicationDefinitionHelper.js +26 -0
  100. data/webpack/components/ApplicationDefinition/ApplicationDefinitionReducer.js +143 -21
  101. data/webpack/components/ApplicationDefinition/ApplicationDefinitionSelectors.js +3 -0
  102. data/webpack/components/ApplicationDefinition/__fixtures__/applicationDefinitionConfData_1.fixtures.js +288 -0
  103. data/webpack/components/ApplicationDefinition/__fixtures__/applicationDefinitionReducer.fixtures.js +79 -0
  104. data/webpack/components/ApplicationDefinition/__tests__/ApplicationDefinition.test.js +25 -0
  105. data/webpack/components/ApplicationDefinition/__tests__/ApplicationDefinitionReducer.test.js +119 -0
  106. data/webpack/components/ApplicationDefinition/__tests__/ApplicationDefinitionSelectors.test.js +41 -0
  107. data/webpack/components/ApplicationDefinition/__tests__/__snapshots__/ApplicationDefinition.test.js.snap +200 -0
  108. data/webpack/components/ApplicationDefinition/__tests__/__snapshots__/ApplicationDefinitionReducer.test.js.snap +3033 -0
  109. data/webpack/components/ApplicationDefinition/__tests__/__snapshots__/ApplicationDefinitionSelectors.test.js.snap +299 -0
  110. data/webpack/components/ApplicationDefinition/components/AnsiblePlaybookSelector.js +50 -0
  111. data/webpack/components/ApplicationDefinition/components/__tests__/AnsiblePlaybookSelector.test.js +41 -0
  112. data/webpack/components/ApplicationDefinition/components/__tests__/__snapshots__/AnsiblePlaybookSelector.test.js.snap +121 -0
  113. data/webpack/components/ApplicationDefinition/index.js +6 -0
  114. data/webpack/components/ApplicationInstance/ApplicationInstance.js +151 -44
  115. data/webpack/components/ApplicationInstance/ApplicationInstanceActions.js +47 -10
  116. data/webpack/components/ApplicationInstance/ApplicationInstanceConstants.js +5 -2
  117. data/webpack/components/ApplicationInstance/ApplicationInstanceReducer.js +114 -28
  118. data/webpack/components/ApplicationInstance/ApplicationInstanceSelectors.js +3 -1
  119. data/webpack/components/ApplicationInstance/__fixtures__/applicationInstanceConfData_1.fixtures.js +263 -0
  120. data/webpack/components/ApplicationInstance/__fixtures__/applicationInstanceReducer.fixtures.js +78 -0
  121. data/webpack/components/ApplicationInstance/__tests__/ApplicationInstance.test.js +23 -0
  122. data/webpack/components/ApplicationInstance/__tests__/ApplicationInstanceReducer.test.js +119 -0
  123. data/webpack/components/ApplicationInstance/__tests__/ApplicationInstanceSelectors.test.js +44 -0
  124. data/webpack/components/ApplicationInstance/__tests__/__snapshots__/ApplicationInstance.test.js.snap +209 -0
  125. data/webpack/components/ApplicationInstance/__tests__/__snapshots__/ApplicationInstanceReducer.test.js.snap +2719 -0
  126. data/webpack/components/ApplicationInstance/__tests__/__snapshots__/ApplicationInstanceSelectors.test.js.snap +276 -0
  127. data/webpack/components/ApplicationInstance/components/Service.js +1 -1
  128. data/webpack/components/ApplicationInstance/index.js +4 -0
  129. data/webpack/components/ApplicationInstanceReport/ApplicationInstanceReport.js +53 -60
  130. data/webpack/components/ApplicationInstanceReport/ApplicationInstanceReport.scss +17 -0
  131. data/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportActions.js +7 -51
  132. data/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportConstants.js +2 -4
  133. data/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportReducer.js +4 -18
  134. data/webpack/components/ApplicationInstanceReport/ApplicationInstanceReportSelectors.js +0 -1
  135. data/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportData_1.fixtures.js +349 -0
  136. data/webpack/components/ApplicationInstanceReport/__fixtures__/applicationInstanceReportReducer.fixtures.js +20 -0
  137. data/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReport.test.js +47 -0
  138. data/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReportReducer.test.js +41 -0
  139. data/webpack/components/ApplicationInstanceReport/__tests__/ApplicationInstanceReportSelectors.test.js +26 -0
  140. data/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReport.test.js.snap +130 -0
  141. data/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportReducer.test.js.snap +718 -0
  142. data/webpack/components/ApplicationInstanceReport/__tests__/__snapshots__/ApplicationInstanceReportSelectors.test.js.snap +347 -0
  143. data/webpack/components/ApplicationInstanceReport/components/ReportViewer.js +1 -1
  144. data/webpack/components/ApplicationInstanceReport/components/__tests__/ReportViewer.test.js +24 -0
  145. data/webpack/components/ApplicationInstanceReport/components/__tests__/__snapshots__/ReportViewer.test.js.snap +24 -0
  146. data/webpack/components/ApplicationInstanceReport/index.js +0 -2
  147. data/webpack/components/ParameterSelection/ParameterSelection.js +85 -50
  148. data/webpack/components/ParameterSelection/ParameterSelectionActions.js +68 -62
  149. data/webpack/components/ParameterSelection/ParameterSelectionConstants.js +6 -3
  150. data/webpack/components/ParameterSelection/ParameterSelectionHelper.js +0 -32
  151. data/webpack/components/ParameterSelection/ParameterSelectionReducer.js +47 -35
  152. data/webpack/components/ParameterSelection/ParameterSelectionSelectors.js +2 -2
  153. data/webpack/components/ParameterSelection/__fixtures__/parameterSelectionData_1.fixtures.js +116 -84
  154. data/webpack/components/ParameterSelection/__fixtures__/parameterSelectionReducer.fixtures.js +10 -4
  155. data/webpack/components/ParameterSelection/__tests__/ParameterSelection.test.js +36 -46
  156. data/webpack/components/ParameterSelection/__tests__/ParameterSelectionReducer.test.js +31 -25
  157. data/webpack/components/ParameterSelection/__tests__/ParameterSelectionSelectors.test.js +6 -6
  158. data/webpack/components/ParameterSelection/__tests__/__snapshots__/ParameterSelection.test.js.snap +2 -126
  159. data/webpack/components/ParameterSelection/__tests__/__snapshots__/ParameterSelectionReducer.test.js.snap +1483 -872
  160. data/webpack/components/ParameterSelection/__tests__/__snapshots__/ParameterSelectionSelectors.test.js.snap +117 -79
  161. data/webpack/components/ParameterSelection/index.js +4 -4
  162. data/webpack/components/SyncGitRepo/SyncGitRepo.js +210 -0
  163. data/webpack/components/SyncGitRepo/SyncGitRepo.scss +1 -0
  164. data/webpack/components/SyncGitRepo/SyncGitRepoActions.js +124 -0
  165. data/webpack/components/SyncGitRepo/SyncGitRepoConstants.js +9 -0
  166. data/webpack/components/SyncGitRepo/SyncGitRepoReducer.js +80 -0
  167. data/webpack/components/SyncGitRepo/SyncGitRepoSelectors.js +6 -0
  168. data/webpack/components/SyncGitRepo/__fixtures__/syncGitRepoConfData_1.fixtures.js +7 -0
  169. data/webpack/components/SyncGitRepo/__fixtures__/syncGitRepoReducer.fixtures.js +44 -0
  170. data/webpack/components/SyncGitRepo/__tests__/SyncGitRepo.test.js +27 -0
  171. data/webpack/components/SyncGitRepo/__tests__/SyncGitRepoReducer.test.js +95 -0
  172. data/webpack/components/SyncGitRepo/__tests__/SyncGitRepoSelectors.test.js +32 -0
  173. data/webpack/components/SyncGitRepo/__tests__/__snapshots__/SyncGitRepo.test.js.snap +30 -0
  174. data/webpack/components/SyncGitRepo/__tests__/__snapshots__/SyncGitRepoReducer.test.js.snap +137 -0
  175. data/webpack/components/SyncGitRepo/__tests__/__snapshots__/SyncGitRepoSelectors.test.js.snap +13 -0
  176. data/webpack/components/SyncGitRepo/components/FormTextInput.js +42 -0
  177. data/webpack/components/SyncGitRepo/components/ScmTypeSelector.js +46 -0
  178. data/webpack/components/SyncGitRepo/index.js +28 -0
  179. data/webpack/components/common/DeleteTableEntry.js +3 -3
  180. data/webpack/components/common/EditTableEntry.js +50 -0
  181. data/webpack/components/common/ExtTextInput.js +43 -0
  182. data/webpack/components/common/LockTableEntry.js +60 -0
  183. data/webpack/components/common/__tests__/EditTableEntry.test.js +53 -0
  184. data/webpack/components/common/__tests__/LockTableEntry.test.js +35 -0
  185. data/webpack/components/common/__tests__/__snapshots__/DeleteTableEntry.test.js.snap +2 -2
  186. data/webpack/components/common/__tests__/__snapshots__/EditTableEntry.test.js.snap +81 -0
  187. data/webpack/components/common/__tests__/__snapshots__/LockTableEntry.test.js.snap +60 -0
  188. data/webpack/helper.js +15 -1
  189. data/webpack/helper.test.js +37 -0
  190. data/webpack/index.js +2 -0
  191. data/webpack/reducer.js +18 -11
  192. metadata +184 -10
  193. data/app/views/foreman_acd/app_instances/deploy.html.erb +0 -19
  194. data/webpack/components/common/__tests__/__snapshots__/AddParameter.test.js.snap +0 -35
  195. data/webpack/components/common/__tests__/__snapshots__/DeleteParameter.test.js.snap +0 -41
@@ -0,0 +1,20 @@
1
+ import Immutable from 'seamless-immutable';
2
+ import {
3
+ cloneDeep,
4
+ findIndex,
5
+ findLastIndex,
6
+ } from 'lodash';
7
+
8
+ import {
9
+ applicationInstanceReportData_1,
10
+ } from '../__fixtures__/applicationInstanceReportData_1.fixtures';
11
+
12
+ export const successState = Immutable(applicationInstanceReportData_1);
13
+
14
+ const ACTIVE_HOST_ID = 2;
15
+
16
+ // Payload Data
17
+ export const initApplicationInstanceReportPayload = applicationInstanceReportData_1;
18
+ export const setActiveHostPayload = {
19
+ activeHostId: ACTIVE_HOST_ID,
20
+ };
@@ -0,0 +1,47 @@
1
+ import { testComponentSnapshotsWithFixtures } from 'react-redux-test-utils';
2
+
3
+ import ApplicationInstanceReport from '../ApplicationInstanceReport';
4
+
5
+ const noop = () => {};
6
+
7
+ const hostData = [
8
+ {
9
+ "id": 8,
10
+ "name": "great-web-app-db-1",
11
+ "build": false,
12
+ "hostUrl": "/hosts/great-web-app-db-1.deploy3.dev.atix",
13
+ "progress_report": [],
14
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-db-1.deploy3.dev.atix/power"
15
+ },
16
+ {
17
+ "id": 9,
18
+ "name": "great-web-app-web-1",
19
+ "build": false,
20
+ "hostUrl": "/hosts/great-web-app-web-1.deploy3.dev.atix",
21
+ "progress_report": [],
22
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-web-1.deploy3.dev.atix/power"
23
+ },
24
+ {
25
+ "id": 10,
26
+ "name": "great-web-app-web-2",
27
+ "build": false,
28
+ "hostUrl": "/hosts/great-web-app-web-2.deploy3.dev.atix",
29
+ "progress_report": [],
30
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-web-2.deploy3.dev.atix/power"
31
+ }
32
+ ];
33
+
34
+ const fixtures = {
35
+ 'should render application instance report': {
36
+ data: {
37
+ appInstanceName: "instance name",
38
+ deployTaskUrl: "deploy/task/url",
39
+ configureJobUrl: "configure/job/url",
40
+ hosts: hostData,
41
+ },
42
+ initApplicationInstanceReport: noop,
43
+ },
44
+ };
45
+
46
+ describe('ApplicationInstanceReport', () =>
47
+ testComponentSnapshotsWithFixtures(ApplicationInstanceReport, fixtures));
@@ -0,0 +1,41 @@
1
+ import { testReducerSnapshotWithFixtures } from 'react-redux-test-utils';
2
+ import reducer, { initialState } from '../ApplicationInstanceReportReducer';
3
+
4
+ import {
5
+ successState,
6
+ initApplicationInstanceReportPayload,
7
+ setActiveHostPayload,
8
+ } from '../__fixtures__/applicationInstanceReportReducer.fixtures';
9
+
10
+ import {
11
+ APPLICATION_INSTANCE_REPORT_INIT,
12
+ APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST,
13
+ } from '../ApplicationInstanceReportConstants';
14
+
15
+ const fixtures = {
16
+ 'should return initial state': {
17
+ state: initialState,
18
+ action: {
19
+ type: undefined,
20
+ payload: {},
21
+ },
22
+ },
23
+
24
+ 'should initialize component': {
25
+ state: initialState,
26
+ action: {
27
+ type: APPLICATION_INSTANCE_REPORT_INIT,
28
+ payload: initApplicationInstanceReportPayload,
29
+ },
30
+ },
31
+ 'should set active host': {
32
+ state: successState,
33
+ action: {
34
+ type: APPLICATION_INSTANCE_REPORT_SET_ACTIVE_HOST,
35
+ payload: setActiveHostPayload,
36
+ },
37
+ },
38
+ };
39
+
40
+ describe('ApplicationInstanceReport', () =>
41
+ testReducerSnapshotWithFixtures(reducer, fixtures));
@@ -0,0 +1,26 @@
1
+ import { testSelectorsSnapshotWithFixtures } from 'react-redux-test-utils';
2
+
3
+ import {
4
+ selectHosts,
5
+ selectActiveHostId,
6
+ } from '../ApplicationInstanceReportSelectors';
7
+
8
+ import {
9
+ applicationInstanceReportData_1,
10
+ } from '../__fixtures__/applicationInstanceReportData_1.fixtures';
11
+
12
+ const stateFactory = obj => ({
13
+ foremanAcd: {
14
+ applicationInstanceReport: obj,
15
+ },
16
+ });
17
+
18
+ const fixtures = {
19
+ 'should return hosts from applicationInstanceReportData_1 fixtures': () =>
20
+ selectHosts(stateFactory(applicationInstanceReportData_1)),
21
+ 'should return activeHostId from applicationInstanceReportData_1 fixtures': () =>
22
+ selectActiveHostId(stateFactory(applicationInstanceReportData_1)),
23
+ };
24
+
25
+ describe('ApplicationInstanceSelectors', () =>
26
+ testSelectorsSnapshotWithFixtures(fixtures));
@@ -0,0 +1,130 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ApplicationInstanceReport should render application instance report 1`] = `
4
+ <span>
5
+ <div
6
+ className="deploy_status"
7
+ >
8
+ <div>
9
+ <div
10
+ className="deploy_status_head"
11
+ >
12
+ Deployment task
13
+ </div>
14
+ <div
15
+ className="deploy_status_content"
16
+ >
17
+ <a
18
+ href="deploy/task/url"
19
+ >
20
+ Last deployment task
21
+ </a>
22
+ </div>
23
+ </div>
24
+ <div>
25
+ <div
26
+ className="deploy_status_head"
27
+ >
28
+ Configuration job
29
+ </div>
30
+ <div
31
+ className="deploy_status_content"
32
+ >
33
+ <a
34
+ href="configure/job/url"
35
+ >
36
+ Configuration jobs
37
+ </a>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ <div
42
+ className="deploy_report_hosts"
43
+ >
44
+ Hosts
45
+ <VerticalTabs
46
+ activeTab={false}
47
+ className=""
48
+ id="vertical_tabs"
49
+ restrictTabs={false}
50
+ >
51
+ <VerticalTabsTab
52
+ active={true}
53
+ className=""
54
+ hasActiveDescendant={false}
55
+ id={0}
56
+ key="vt_tab_0"
57
+ onActivate={[Function]}
58
+ shown={false}
59
+ title="great-web-app-db-1"
60
+ wrapStyle="nowrap"
61
+ />
62
+ <VerticalTabsTab
63
+ active={false}
64
+ className=""
65
+ hasActiveDescendant={false}
66
+ id={1}
67
+ key="vt_tab_1"
68
+ onActivate={[Function]}
69
+ shown={false}
70
+ title="great-web-app-web-1"
71
+ wrapStyle="nowrap"
72
+ />
73
+ <VerticalTabsTab
74
+ active={false}
75
+ className=""
76
+ hasActiveDescendant={false}
77
+ id={2}
78
+ key="vt_tab_2"
79
+ onActivate={[Function]}
80
+ shown={false}
81
+ title="great-web-app-web-2"
82
+ wrapStyle="nowrap"
83
+ />
84
+ </VerticalTabs>
85
+ </div>
86
+ <div
87
+ className="deploy_report_status"
88
+ >
89
+ <div>
90
+ <span>
91
+ Host:
92
+ <a
93
+ href="/hosts/great-web-app-db-1.deploy3.dev.atix"
94
+ >
95
+ great-web-app-db-1
96
+ </a>
97
+ </span>
98
+ <span>
99
+  | 
100
+ </span>
101
+ <span>
102
+ State:
103
+ Deployed
104
+ </span>
105
+ <span>
106
+  | 
107
+ </span>
108
+ <span>
109
+ Power Status:
110
+ <Component
111
+ data={
112
+ Object {
113
+ "id": 8,
114
+ "url": "/api/v2/hosts/great-web-app-db-1.deploy3.dev.atix/power",
115
+ }
116
+ }
117
+ key="power_status_8"
118
+ />
119
+ </span>
120
+ </div>
121
+ </div>
122
+ <div
123
+ className="deploy_report_tasks"
124
+ >
125
+ <ReportViewer
126
+ report={Array []}
127
+ />
128
+ </div>
129
+ </span>
130
+ `;
@@ -0,0 +1,718 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ApplicationInstanceReport should initialize component 1`] = `
4
+ Object {
5
+ "error": Object {
6
+ "errorMsg": "",
7
+ "status": "",
8
+ "statusText": "",
9
+ },
10
+ "hosts": Array [
11
+ Object {
12
+ "build": false,
13
+ "hostUrl": "/hosts/great-web-app-db-1.deploy3.dev.atix",
14
+ "id": 8,
15
+ "name": "great-web-app-db-1",
16
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-db-1.deploy3.dev.atix/power",
17
+ "progress_report": Array [
18
+ Object {
19
+ "created": 1615542728.8466988,
20
+ "id": "Set up compute instance great-web-app-db-1.deploy3.dev.atix",
21
+ "name": "Set up compute instance great-web-app-db-1.deploy3.dev.atix",
22
+ "priority": 3,
23
+ "status": "completed",
24
+ "timestamp": "2021-03-12T09:52:10.190Z",
25
+ },
26
+ Object {
27
+ "created": 1615542728.8474095,
28
+ "id": "Query instance details for great-web-app-db-1.deploy3.dev.atix",
29
+ "name": "Query instance details for great-web-app-db-1.deploy3.dev.atix",
30
+ "priority": 5,
31
+ "status": "completed",
32
+ "timestamp": "2021-03-12T09:52:10.385Z",
33
+ },
34
+ Object {
35
+ "created": 1615542728.0081317,
36
+ "id": "dhcp_create_192.168.171.103",
37
+ "name": "Create DHCP Settings for great-web-app-db-1.deploy3.dev.atix",
38
+ "priority": 10,
39
+ "status": "completed",
40
+ "timestamp": "2021-03-12T09:52:10.584Z",
41
+ },
42
+ Object {
43
+ "created": 1615542728.04177,
44
+ "id": "Create IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix",
45
+ "name": "Create IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix",
46
+ "priority": 10,
47
+ "status": "completed",
48
+ "timestamp": "2021-03-12T09:52:10.679Z",
49
+ },
50
+ Object {
51
+ "created": 1615542728.0424814,
52
+ "id": "Create Reverse IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix",
53
+ "name": "Create Reverse IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix",
54
+ "priority": 10,
55
+ "status": "completed",
56
+ "timestamp": "2021-03-12T09:52:10.798Z",
57
+ },
58
+ Object {
59
+ "created": 1615542728.0881674,
60
+ "id": "Deploy TFTP PXELinux config for great-web-app-db-1.deploy3.dev.atix",
61
+ "name": "Deploy TFTP PXELinux config for great-web-app-db-1.deploy3.dev.atix",
62
+ "priority": 20,
63
+ "status": "completed",
64
+ "timestamp": "2021-03-12T09:52:11.178Z",
65
+ },
66
+ Object {
67
+ "created": 1615542728.0883749,
68
+ "id": "Deploy TFTP PXEGrub2 config for great-web-app-db-1.deploy3.dev.atix",
69
+ "name": "Deploy TFTP PXEGrub2 config for great-web-app-db-1.deploy3.dev.atix",
70
+ "priority": 20,
71
+ "status": "completed",
72
+ "timestamp": "2021-03-12T09:52:11.615Z",
73
+ },
74
+ Object {
75
+ "created": 1615542728.088634,
76
+ "id": "Deploy TFTP PXEGrub config for great-web-app-db-1.deploy3.dev.atix",
77
+ "name": "Deploy TFTP PXEGrub config for great-web-app-db-1.deploy3.dev.atix",
78
+ "priority": 20,
79
+ "status": "completed",
80
+ "timestamp": "2021-03-12T09:52:11.642Z",
81
+ },
82
+ Object {
83
+ "created": 1615542728.0888274,
84
+ "id": "Deploy TFTP iPXE config for great-web-app-db-1.deploy3.dev.atix",
85
+ "name": "Deploy TFTP iPXE config for great-web-app-db-1.deploy3.dev.atix",
86
+ "priority": 20,
87
+ "status": "completed",
88
+ "timestamp": "2021-03-12T09:52:11.874Z",
89
+ },
90
+ Object {
91
+ "created": 1615542728.0894718,
92
+ "id": "Fetch TFTP boot files for great-web-app-db-1.deploy3.dev.atix",
93
+ "name": "Fetch TFTP boot files for great-web-app-db-1.deploy3.dev.atix",
94
+ "priority": 25,
95
+ "status": "completed",
96
+ "timestamp": "2021-03-12T09:52:11.981Z",
97
+ },
98
+ Object {
99
+ "created": 1615542728.8482428,
100
+ "id": "Power up compute instance great-web-app-db-1.deploy3.dev.atix",
101
+ "name": "Power up compute instance great-web-app-db-1.deploy3.dev.atix",
102
+ "priority": 1000,
103
+ "status": "completed",
104
+ "timestamp": "2021-03-12T09:52:12.950Z",
105
+ },
106
+ Object {
107
+ "created": 1615542728.8508224,
108
+ "id": "Cleanup PuppetCA certificates for great-web-app-db-1.deploy3.dev.atix",
109
+ "name": "Cleanup PuppetCA certificates for great-web-app-db-1.deploy3.dev.atix",
110
+ "priority": 51,
111
+ "status": "completed",
112
+ "timestamp": "2021-03-12T09:52:13.390Z",
113
+ },
114
+ Object {
115
+ "created": 1615542728.8514216,
116
+ "id": "Enable PuppetCA autosigning for great-web-app-db-1.deploy3.dev.atix",
117
+ "name": "Enable PuppetCA autosigning for great-web-app-db-1.deploy3.dev.atix",
118
+ "priority": 55,
119
+ "status": "completed",
120
+ "timestamp": "2021-03-12T09:52:13.442Z",
121
+ },
122
+ ],
123
+ },
124
+ Object {
125
+ "build": false,
126
+ "hostUrl": "/hosts/great-web-app-web-1.deploy3.dev.atix",
127
+ "id": 9,
128
+ "name": "great-web-app-web-1",
129
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-web-1.deploy3.dev.atix/power",
130
+ "progress_report": Array [
131
+ Object {
132
+ "created": 1615542733.824889,
133
+ "id": "Set up compute instance great-web-app-web-1.deploy3.dev.atix",
134
+ "name": "Set up compute instance great-web-app-web-1.deploy3.dev.atix",
135
+ "priority": 3,
136
+ "status": "completed",
137
+ "timestamp": "2021-03-12T09:52:14.825Z",
138
+ },
139
+ Object {
140
+ "created": 1615542733.825672,
141
+ "id": "Query instance details for great-web-app-web-1.deploy3.dev.atix",
142
+ "name": "Query instance details for great-web-app-web-1.deploy3.dev.atix",
143
+ "priority": 5,
144
+ "status": "completed",
145
+ "timestamp": "2021-03-12T09:52:15.007Z",
146
+ },
147
+ Object {
148
+ "created": 1615542733.5710943,
149
+ "id": "dhcp_create_192.168.171.104",
150
+ "name": "Create DHCP Settings for great-web-app-web-1.deploy3.dev.atix",
151
+ "priority": 10,
152
+ "status": "completed",
153
+ "timestamp": "2021-03-12T09:52:15.181Z",
154
+ },
155
+ Object {
156
+ "created": 1615542733.599793,
157
+ "id": "Create IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix",
158
+ "name": "Create IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix",
159
+ "priority": 10,
160
+ "status": "completed",
161
+ "timestamp": "2021-03-12T09:52:15.251Z",
162
+ },
163
+ Object {
164
+ "created": 1615542733.600369,
165
+ "id": "Create Reverse IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix",
166
+ "name": "Create Reverse IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix",
167
+ "priority": 10,
168
+ "status": "completed",
169
+ "timestamp": "2021-03-12T09:52:15.328Z",
170
+ },
171
+ Object {
172
+ "created": 1615542733.6356068,
173
+ "id": "Deploy TFTP PXELinux config for great-web-app-web-1.deploy3.dev.atix",
174
+ "name": "Deploy TFTP PXELinux config for great-web-app-web-1.deploy3.dev.atix",
175
+ "priority": 20,
176
+ "status": "completed",
177
+ "timestamp": "2021-03-12T09:52:15.681Z",
178
+ },
179
+ Object {
180
+ "created": 1615542733.635817,
181
+ "id": "Deploy TFTP PXEGrub2 config for great-web-app-web-1.deploy3.dev.atix",
182
+ "name": "Deploy TFTP PXEGrub2 config for great-web-app-web-1.deploy3.dev.atix",
183
+ "priority": 20,
184
+ "status": "completed",
185
+ "timestamp": "2021-03-12T09:52:16.152Z",
186
+ },
187
+ Object {
188
+ "created": 1615542733.6360064,
189
+ "id": "Deploy TFTP PXEGrub config for great-web-app-web-1.deploy3.dev.atix",
190
+ "name": "Deploy TFTP PXEGrub config for great-web-app-web-1.deploy3.dev.atix",
191
+ "priority": 20,
192
+ "status": "completed",
193
+ "timestamp": "2021-03-12T09:52:16.183Z",
194
+ },
195
+ Object {
196
+ "created": 1615542733.6362345,
197
+ "id": "Deploy TFTP iPXE config for great-web-app-web-1.deploy3.dev.atix",
198
+ "name": "Deploy TFTP iPXE config for great-web-app-web-1.deploy3.dev.atix",
199
+ "priority": 20,
200
+ "status": "completed",
201
+ "timestamp": "2021-03-12T09:52:16.417Z",
202
+ },
203
+ Object {
204
+ "created": 1615542733.6365006,
205
+ "id": "Fetch TFTP boot files for great-web-app-web-1.deploy3.dev.atix",
206
+ "name": "Fetch TFTP boot files for great-web-app-web-1.deploy3.dev.atix",
207
+ "priority": 25,
208
+ "status": "completed",
209
+ "timestamp": "2021-03-12T09:52:16.523Z",
210
+ },
211
+ Object {
212
+ "created": 1615542733.8267431,
213
+ "id": "Power up compute instance great-web-app-web-1.deploy3.dev.atix",
214
+ "name": "Power up compute instance great-web-app-web-1.deploy3.dev.atix",
215
+ "priority": 1000,
216
+ "status": "completed",
217
+ "timestamp": "2021-03-12T09:52:17.533Z",
218
+ },
219
+ Object {
220
+ "created": 1615542733.8292165,
221
+ "id": "Cleanup PuppetCA certificates for great-web-app-web-1.deploy3.dev.atix",
222
+ "name": "Cleanup PuppetCA certificates for great-web-app-web-1.deploy3.dev.atix",
223
+ "priority": 51,
224
+ "status": "completed",
225
+ "timestamp": "2021-03-12T09:52:17.944Z",
226
+ },
227
+ Object {
228
+ "created": 1615542733.8294067,
229
+ "id": "Enable PuppetCA autosigning for great-web-app-web-1.deploy3.dev.atix",
230
+ "name": "Enable PuppetCA autosigning for great-web-app-web-1.deploy3.dev.atix",
231
+ "priority": 55,
232
+ "status": "completed",
233
+ "timestamp": "2021-03-12T09:52:17.995Z",
234
+ },
235
+ ],
236
+ },
237
+ Object {
238
+ "build": false,
239
+ "hostUrl": "/hosts/great-web-app-web-2.deploy3.dev.atix",
240
+ "id": 10,
241
+ "name": "great-web-app-web-2",
242
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-web-2.deploy3.dev.atix/power",
243
+ "progress_report": Array [
244
+ Object {
245
+ "created": 1615542738.3446305,
246
+ "id": "Set up compute instance great-web-app-web-2.deploy3.dev.atix",
247
+ "name": "Set up compute instance great-web-app-web-2.deploy3.dev.atix",
248
+ "priority": 3,
249
+ "status": "completed",
250
+ "timestamp": "2021-03-12T09:52:19.221Z",
251
+ },
252
+ Object {
253
+ "created": 1615542738.3449144,
254
+ "id": "Query instance details for great-web-app-web-2.deploy3.dev.atix",
255
+ "name": "Query instance details for great-web-app-web-2.deploy3.dev.atix",
256
+ "priority": 5,
257
+ "status": "completed",
258
+ "timestamp": "2021-03-12T09:52:19.419Z",
259
+ },
260
+ Object {
261
+ "created": 1615542738.1321318,
262
+ "id": "dhcp_create_192.168.171.105",
263
+ "name": "Create DHCP Settings for great-web-app-web-2.deploy3.dev.atix",
264
+ "priority": 10,
265
+ "status": "completed",
266
+ "timestamp": "2021-03-12T09:52:19.668Z",
267
+ },
268
+ Object {
269
+ "created": 1615542738.1576574,
270
+ "id": "Create IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix",
271
+ "name": "Create IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix",
272
+ "priority": 10,
273
+ "status": "completed",
274
+ "timestamp": "2021-03-12T09:52:19.749Z",
275
+ },
276
+ Object {
277
+ "created": 1615542738.1582346,
278
+ "id": "Create Reverse IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix",
279
+ "name": "Create Reverse IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix",
280
+ "priority": 10,
281
+ "status": "completed",
282
+ "timestamp": "2021-03-12T09:52:19.859Z",
283
+ },
284
+ Object {
285
+ "created": 1615542738.1885784,
286
+ "id": "Deploy TFTP PXELinux config for great-web-app-web-2.deploy3.dev.atix",
287
+ "name": "Deploy TFTP PXELinux config for great-web-app-web-2.deploy3.dev.atix",
288
+ "priority": 20,
289
+ "status": "completed",
290
+ "timestamp": "2021-03-12T09:52:20.221Z",
291
+ },
292
+ Object {
293
+ "created": 1615542738.1888642,
294
+ "id": "Deploy TFTP PXEGrub2 config for great-web-app-web-2.deploy3.dev.atix",
295
+ "name": "Deploy TFTP PXEGrub2 config for great-web-app-web-2.deploy3.dev.atix",
296
+ "priority": 20,
297
+ "status": "completed",
298
+ "timestamp": "2021-03-12T09:52:20.604Z",
299
+ },
300
+ Object {
301
+ "created": 1615542738.1890883,
302
+ "id": "Deploy TFTP PXEGrub config for great-web-app-web-2.deploy3.dev.atix",
303
+ "name": "Deploy TFTP PXEGrub config for great-web-app-web-2.deploy3.dev.atix",
304
+ "priority": 20,
305
+ "status": "completed",
306
+ "timestamp": "2021-03-12T09:52:20.636Z",
307
+ },
308
+ Object {
309
+ "created": 1615542738.1892834,
310
+ "id": "Deploy TFTP iPXE config for great-web-app-web-2.deploy3.dev.atix",
311
+ "name": "Deploy TFTP iPXE config for great-web-app-web-2.deploy3.dev.atix",
312
+ "priority": 20,
313
+ "status": "completed",
314
+ "timestamp": "2021-03-12T09:52:20.895Z",
315
+ },
316
+ Object {
317
+ "created": 1615542738.1898031,
318
+ "id": "Fetch TFTP boot files for great-web-app-web-2.deploy3.dev.atix",
319
+ "name": "Fetch TFTP boot files for great-web-app-web-2.deploy3.dev.atix",
320
+ "priority": 25,
321
+ "status": "completed",
322
+ "timestamp": "2021-03-12T09:52:20.992Z",
323
+ },
324
+ Object {
325
+ "created": 1615542738.3453662,
326
+ "id": "Power up compute instance great-web-app-web-2.deploy3.dev.atix",
327
+ "name": "Power up compute instance great-web-app-web-2.deploy3.dev.atix",
328
+ "priority": 1000,
329
+ "status": "completed",
330
+ "timestamp": "2021-03-12T09:52:21.864Z",
331
+ },
332
+ Object {
333
+ "created": 1615542738.34748,
334
+ "id": "Cleanup PuppetCA certificates for great-web-app-web-2.deploy3.dev.atix",
335
+ "name": "Cleanup PuppetCA certificates for great-web-app-web-2.deploy3.dev.atix",
336
+ "priority": 51,
337
+ "status": "completed",
338
+ "timestamp": "2021-03-12T09:52:22.316Z",
339
+ },
340
+ Object {
341
+ "created": 1615542738.3476808,
342
+ "id": "Enable PuppetCA autosigning for great-web-app-web-2.deploy3.dev.atix",
343
+ "name": "Enable PuppetCA autosigning for great-web-app-web-2.deploy3.dev.atix",
344
+ "priority": 55,
345
+ "status": "completed",
346
+ "timestamp": "2021-03-12T09:52:22.368Z",
347
+ },
348
+ ],
349
+ },
350
+ ],
351
+ "name": false,
352
+ }
353
+ `;
354
+
355
+ exports[`ApplicationInstanceReport should return initial state 1`] = `
356
+ Object {
357
+ "error": Object {
358
+ "errorMsg": "",
359
+ "status": "",
360
+ "statusText": "",
361
+ },
362
+ "name": false,
363
+ }
364
+ `;
365
+
366
+ exports[`ApplicationInstanceReport should set active host 1`] = `
367
+ Object {
368
+ "activeHostId": 2,
369
+ "error": Object {
370
+ "errorMsg": "",
371
+ "status": "",
372
+ "statusText": "",
373
+ },
374
+ "hosts": Array [
375
+ Object {
376
+ "build": false,
377
+ "hostUrl": "/hosts/great-web-app-db-1.deploy3.dev.atix",
378
+ "id": 8,
379
+ "name": "great-web-app-db-1",
380
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-db-1.deploy3.dev.atix/power",
381
+ "progress_report": Array [
382
+ Object {
383
+ "created": 1615542728.8466988,
384
+ "id": "Set up compute instance great-web-app-db-1.deploy3.dev.atix",
385
+ "name": "Set up compute instance great-web-app-db-1.deploy3.dev.atix",
386
+ "priority": 3,
387
+ "status": "completed",
388
+ "timestamp": "2021-03-12T09:52:10.190Z",
389
+ },
390
+ Object {
391
+ "created": 1615542728.8474095,
392
+ "id": "Query instance details for great-web-app-db-1.deploy3.dev.atix",
393
+ "name": "Query instance details for great-web-app-db-1.deploy3.dev.atix",
394
+ "priority": 5,
395
+ "status": "completed",
396
+ "timestamp": "2021-03-12T09:52:10.385Z",
397
+ },
398
+ Object {
399
+ "created": 1615542728.0081317,
400
+ "id": "dhcp_create_192.168.171.103",
401
+ "name": "Create DHCP Settings for great-web-app-db-1.deploy3.dev.atix",
402
+ "priority": 10,
403
+ "status": "completed",
404
+ "timestamp": "2021-03-12T09:52:10.584Z",
405
+ },
406
+ Object {
407
+ "created": 1615542728.04177,
408
+ "id": "Create IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix",
409
+ "name": "Create IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix",
410
+ "priority": 10,
411
+ "status": "completed",
412
+ "timestamp": "2021-03-12T09:52:10.679Z",
413
+ },
414
+ Object {
415
+ "created": 1615542728.0424814,
416
+ "id": "Create Reverse IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix",
417
+ "name": "Create Reverse IPv4 DNS record for great-web-app-db-1.deploy3.dev.atix",
418
+ "priority": 10,
419
+ "status": "completed",
420
+ "timestamp": "2021-03-12T09:52:10.798Z",
421
+ },
422
+ Object {
423
+ "created": 1615542728.0881674,
424
+ "id": "Deploy TFTP PXELinux config for great-web-app-db-1.deploy3.dev.atix",
425
+ "name": "Deploy TFTP PXELinux config for great-web-app-db-1.deploy3.dev.atix",
426
+ "priority": 20,
427
+ "status": "completed",
428
+ "timestamp": "2021-03-12T09:52:11.178Z",
429
+ },
430
+ Object {
431
+ "created": 1615542728.0883749,
432
+ "id": "Deploy TFTP PXEGrub2 config for great-web-app-db-1.deploy3.dev.atix",
433
+ "name": "Deploy TFTP PXEGrub2 config for great-web-app-db-1.deploy3.dev.atix",
434
+ "priority": 20,
435
+ "status": "completed",
436
+ "timestamp": "2021-03-12T09:52:11.615Z",
437
+ },
438
+ Object {
439
+ "created": 1615542728.088634,
440
+ "id": "Deploy TFTP PXEGrub config for great-web-app-db-1.deploy3.dev.atix",
441
+ "name": "Deploy TFTP PXEGrub config for great-web-app-db-1.deploy3.dev.atix",
442
+ "priority": 20,
443
+ "status": "completed",
444
+ "timestamp": "2021-03-12T09:52:11.642Z",
445
+ },
446
+ Object {
447
+ "created": 1615542728.0888274,
448
+ "id": "Deploy TFTP iPXE config for great-web-app-db-1.deploy3.dev.atix",
449
+ "name": "Deploy TFTP iPXE config for great-web-app-db-1.deploy3.dev.atix",
450
+ "priority": 20,
451
+ "status": "completed",
452
+ "timestamp": "2021-03-12T09:52:11.874Z",
453
+ },
454
+ Object {
455
+ "created": 1615542728.0894718,
456
+ "id": "Fetch TFTP boot files for great-web-app-db-1.deploy3.dev.atix",
457
+ "name": "Fetch TFTP boot files for great-web-app-db-1.deploy3.dev.atix",
458
+ "priority": 25,
459
+ "status": "completed",
460
+ "timestamp": "2021-03-12T09:52:11.981Z",
461
+ },
462
+ Object {
463
+ "created": 1615542728.8482428,
464
+ "id": "Power up compute instance great-web-app-db-1.deploy3.dev.atix",
465
+ "name": "Power up compute instance great-web-app-db-1.deploy3.dev.atix",
466
+ "priority": 1000,
467
+ "status": "completed",
468
+ "timestamp": "2021-03-12T09:52:12.950Z",
469
+ },
470
+ Object {
471
+ "created": 1615542728.8508224,
472
+ "id": "Cleanup PuppetCA certificates for great-web-app-db-1.deploy3.dev.atix",
473
+ "name": "Cleanup PuppetCA certificates for great-web-app-db-1.deploy3.dev.atix",
474
+ "priority": 51,
475
+ "status": "completed",
476
+ "timestamp": "2021-03-12T09:52:13.390Z",
477
+ },
478
+ Object {
479
+ "created": 1615542728.8514216,
480
+ "id": "Enable PuppetCA autosigning for great-web-app-db-1.deploy3.dev.atix",
481
+ "name": "Enable PuppetCA autosigning for great-web-app-db-1.deploy3.dev.atix",
482
+ "priority": 55,
483
+ "status": "completed",
484
+ "timestamp": "2021-03-12T09:52:13.442Z",
485
+ },
486
+ ],
487
+ },
488
+ Object {
489
+ "build": false,
490
+ "hostUrl": "/hosts/great-web-app-web-1.deploy3.dev.atix",
491
+ "id": 9,
492
+ "name": "great-web-app-web-1",
493
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-web-1.deploy3.dev.atix/power",
494
+ "progress_report": Array [
495
+ Object {
496
+ "created": 1615542733.824889,
497
+ "id": "Set up compute instance great-web-app-web-1.deploy3.dev.atix",
498
+ "name": "Set up compute instance great-web-app-web-1.deploy3.dev.atix",
499
+ "priority": 3,
500
+ "status": "completed",
501
+ "timestamp": "2021-03-12T09:52:14.825Z",
502
+ },
503
+ Object {
504
+ "created": 1615542733.825672,
505
+ "id": "Query instance details for great-web-app-web-1.deploy3.dev.atix",
506
+ "name": "Query instance details for great-web-app-web-1.deploy3.dev.atix",
507
+ "priority": 5,
508
+ "status": "completed",
509
+ "timestamp": "2021-03-12T09:52:15.007Z",
510
+ },
511
+ Object {
512
+ "created": 1615542733.5710943,
513
+ "id": "dhcp_create_192.168.171.104",
514
+ "name": "Create DHCP Settings for great-web-app-web-1.deploy3.dev.atix",
515
+ "priority": 10,
516
+ "status": "completed",
517
+ "timestamp": "2021-03-12T09:52:15.181Z",
518
+ },
519
+ Object {
520
+ "created": 1615542733.599793,
521
+ "id": "Create IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix",
522
+ "name": "Create IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix",
523
+ "priority": 10,
524
+ "status": "completed",
525
+ "timestamp": "2021-03-12T09:52:15.251Z",
526
+ },
527
+ Object {
528
+ "created": 1615542733.600369,
529
+ "id": "Create Reverse IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix",
530
+ "name": "Create Reverse IPv4 DNS record for great-web-app-web-1.deploy3.dev.atix",
531
+ "priority": 10,
532
+ "status": "completed",
533
+ "timestamp": "2021-03-12T09:52:15.328Z",
534
+ },
535
+ Object {
536
+ "created": 1615542733.6356068,
537
+ "id": "Deploy TFTP PXELinux config for great-web-app-web-1.deploy3.dev.atix",
538
+ "name": "Deploy TFTP PXELinux config for great-web-app-web-1.deploy3.dev.atix",
539
+ "priority": 20,
540
+ "status": "completed",
541
+ "timestamp": "2021-03-12T09:52:15.681Z",
542
+ },
543
+ Object {
544
+ "created": 1615542733.635817,
545
+ "id": "Deploy TFTP PXEGrub2 config for great-web-app-web-1.deploy3.dev.atix",
546
+ "name": "Deploy TFTP PXEGrub2 config for great-web-app-web-1.deploy3.dev.atix",
547
+ "priority": 20,
548
+ "status": "completed",
549
+ "timestamp": "2021-03-12T09:52:16.152Z",
550
+ },
551
+ Object {
552
+ "created": 1615542733.6360064,
553
+ "id": "Deploy TFTP PXEGrub config for great-web-app-web-1.deploy3.dev.atix",
554
+ "name": "Deploy TFTP PXEGrub config for great-web-app-web-1.deploy3.dev.atix",
555
+ "priority": 20,
556
+ "status": "completed",
557
+ "timestamp": "2021-03-12T09:52:16.183Z",
558
+ },
559
+ Object {
560
+ "created": 1615542733.6362345,
561
+ "id": "Deploy TFTP iPXE config for great-web-app-web-1.deploy3.dev.atix",
562
+ "name": "Deploy TFTP iPXE config for great-web-app-web-1.deploy3.dev.atix",
563
+ "priority": 20,
564
+ "status": "completed",
565
+ "timestamp": "2021-03-12T09:52:16.417Z",
566
+ },
567
+ Object {
568
+ "created": 1615542733.6365006,
569
+ "id": "Fetch TFTP boot files for great-web-app-web-1.deploy3.dev.atix",
570
+ "name": "Fetch TFTP boot files for great-web-app-web-1.deploy3.dev.atix",
571
+ "priority": 25,
572
+ "status": "completed",
573
+ "timestamp": "2021-03-12T09:52:16.523Z",
574
+ },
575
+ Object {
576
+ "created": 1615542733.8267431,
577
+ "id": "Power up compute instance great-web-app-web-1.deploy3.dev.atix",
578
+ "name": "Power up compute instance great-web-app-web-1.deploy3.dev.atix",
579
+ "priority": 1000,
580
+ "status": "completed",
581
+ "timestamp": "2021-03-12T09:52:17.533Z",
582
+ },
583
+ Object {
584
+ "created": 1615542733.8292165,
585
+ "id": "Cleanup PuppetCA certificates for great-web-app-web-1.deploy3.dev.atix",
586
+ "name": "Cleanup PuppetCA certificates for great-web-app-web-1.deploy3.dev.atix",
587
+ "priority": 51,
588
+ "status": "completed",
589
+ "timestamp": "2021-03-12T09:52:17.944Z",
590
+ },
591
+ Object {
592
+ "created": 1615542733.8294067,
593
+ "id": "Enable PuppetCA autosigning for great-web-app-web-1.deploy3.dev.atix",
594
+ "name": "Enable PuppetCA autosigning for great-web-app-web-1.deploy3.dev.atix",
595
+ "priority": 55,
596
+ "status": "completed",
597
+ "timestamp": "2021-03-12T09:52:17.995Z",
598
+ },
599
+ ],
600
+ },
601
+ Object {
602
+ "build": false,
603
+ "hostUrl": "/hosts/great-web-app-web-2.deploy3.dev.atix",
604
+ "id": 10,
605
+ "name": "great-web-app-web-2",
606
+ "powerStatusUrl": "/api/v2/hosts/great-web-app-web-2.deploy3.dev.atix/power",
607
+ "progress_report": Array [
608
+ Object {
609
+ "created": 1615542738.3446305,
610
+ "id": "Set up compute instance great-web-app-web-2.deploy3.dev.atix",
611
+ "name": "Set up compute instance great-web-app-web-2.deploy3.dev.atix",
612
+ "priority": 3,
613
+ "status": "completed",
614
+ "timestamp": "2021-03-12T09:52:19.221Z",
615
+ },
616
+ Object {
617
+ "created": 1615542738.3449144,
618
+ "id": "Query instance details for great-web-app-web-2.deploy3.dev.atix",
619
+ "name": "Query instance details for great-web-app-web-2.deploy3.dev.atix",
620
+ "priority": 5,
621
+ "status": "completed",
622
+ "timestamp": "2021-03-12T09:52:19.419Z",
623
+ },
624
+ Object {
625
+ "created": 1615542738.1321318,
626
+ "id": "dhcp_create_192.168.171.105",
627
+ "name": "Create DHCP Settings for great-web-app-web-2.deploy3.dev.atix",
628
+ "priority": 10,
629
+ "status": "completed",
630
+ "timestamp": "2021-03-12T09:52:19.668Z",
631
+ },
632
+ Object {
633
+ "created": 1615542738.1576574,
634
+ "id": "Create IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix",
635
+ "name": "Create IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix",
636
+ "priority": 10,
637
+ "status": "completed",
638
+ "timestamp": "2021-03-12T09:52:19.749Z",
639
+ },
640
+ Object {
641
+ "created": 1615542738.1582346,
642
+ "id": "Create Reverse IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix",
643
+ "name": "Create Reverse IPv4 DNS record for great-web-app-web-2.deploy3.dev.atix",
644
+ "priority": 10,
645
+ "status": "completed",
646
+ "timestamp": "2021-03-12T09:52:19.859Z",
647
+ },
648
+ Object {
649
+ "created": 1615542738.1885784,
650
+ "id": "Deploy TFTP PXELinux config for great-web-app-web-2.deploy3.dev.atix",
651
+ "name": "Deploy TFTP PXELinux config for great-web-app-web-2.deploy3.dev.atix",
652
+ "priority": 20,
653
+ "status": "completed",
654
+ "timestamp": "2021-03-12T09:52:20.221Z",
655
+ },
656
+ Object {
657
+ "created": 1615542738.1888642,
658
+ "id": "Deploy TFTP PXEGrub2 config for great-web-app-web-2.deploy3.dev.atix",
659
+ "name": "Deploy TFTP PXEGrub2 config for great-web-app-web-2.deploy3.dev.atix",
660
+ "priority": 20,
661
+ "status": "completed",
662
+ "timestamp": "2021-03-12T09:52:20.604Z",
663
+ },
664
+ Object {
665
+ "created": 1615542738.1890883,
666
+ "id": "Deploy TFTP PXEGrub config for great-web-app-web-2.deploy3.dev.atix",
667
+ "name": "Deploy TFTP PXEGrub config for great-web-app-web-2.deploy3.dev.atix",
668
+ "priority": 20,
669
+ "status": "completed",
670
+ "timestamp": "2021-03-12T09:52:20.636Z",
671
+ },
672
+ Object {
673
+ "created": 1615542738.1892834,
674
+ "id": "Deploy TFTP iPXE config for great-web-app-web-2.deploy3.dev.atix",
675
+ "name": "Deploy TFTP iPXE config for great-web-app-web-2.deploy3.dev.atix",
676
+ "priority": 20,
677
+ "status": "completed",
678
+ "timestamp": "2021-03-12T09:52:20.895Z",
679
+ },
680
+ Object {
681
+ "created": 1615542738.1898031,
682
+ "id": "Fetch TFTP boot files for great-web-app-web-2.deploy3.dev.atix",
683
+ "name": "Fetch TFTP boot files for great-web-app-web-2.deploy3.dev.atix",
684
+ "priority": 25,
685
+ "status": "completed",
686
+ "timestamp": "2021-03-12T09:52:20.992Z",
687
+ },
688
+ Object {
689
+ "created": 1615542738.3453662,
690
+ "id": "Power up compute instance great-web-app-web-2.deploy3.dev.atix",
691
+ "name": "Power up compute instance great-web-app-web-2.deploy3.dev.atix",
692
+ "priority": 1000,
693
+ "status": "completed",
694
+ "timestamp": "2021-03-12T09:52:21.864Z",
695
+ },
696
+ Object {
697
+ "created": 1615542738.34748,
698
+ "id": "Cleanup PuppetCA certificates for great-web-app-web-2.deploy3.dev.atix",
699
+ "name": "Cleanup PuppetCA certificates for great-web-app-web-2.deploy3.dev.atix",
700
+ "priority": 51,
701
+ "status": "completed",
702
+ "timestamp": "2021-03-12T09:52:22.316Z",
703
+ },
704
+ Object {
705
+ "created": 1615542738.3476808,
706
+ "id": "Enable PuppetCA autosigning for great-web-app-web-2.deploy3.dev.atix",
707
+ "name": "Enable PuppetCA autosigning for great-web-app-web-2.deploy3.dev.atix",
708
+ "priority": 55,
709
+ "status": "completed",
710
+ "timestamp": "2021-03-12T09:52:22.368Z",
711
+ },
712
+ ],
713
+ },
714
+ ],
715
+ "loading": true,
716
+ "name": false,
717
+ }
718
+ `;