github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/ui/mirage/factories/job-version.js (about) 1 import { Factory } from 'ember-cli-mirage'; 2 3 import faker from 'nomad-ui/mirage/faker'; 4 5 const REF_TIME = new Date(); 6 7 export default Factory.extend({ 8 stable: faker.random.boolean, 9 submitTime: () => faker.date.past(2 / 365, REF_TIME) * 1000000, 10 diff() { 11 return generateDiff(this.jobId); 12 }, 13 14 jobId: null, 15 version: 0, 16 17 // ID is used for record tracking within Mirage, 18 // but Nomad uses the JobID as the version ID. 19 tempVersionId() { 20 return this.job.id; 21 }, 22 23 // Directive to restrict any related deployments from having a 'running' status 24 noActiveDeployment: false, 25 26 // Directive to restrict any related deployments from having a status other than 'running' 27 activeDeployment: false, 28 29 afterCreate(version, server) { 30 const args = [ 31 'deployment', 32 version.noActiveDeployment && 'notActive', 33 version.activeDeployment && 'active', 34 { 35 jobId: version.jobId, 36 namespace: version.job.namespace, 37 versionNumber: version.version, 38 }, 39 ].compact(); 40 server.create(...args); 41 }, 42 }); 43 44 export function generateDiff(id) { 45 return { 46 Fields: null, 47 ID: id, 48 Objects: null, 49 TaskGroups: [ 50 { 51 Fields: [ 52 { 53 Annotations: null, 54 Name: 'Count', 55 New: '2', 56 Old: '4', 57 Type: 'Edited', 58 }, 59 ], 60 Name: 'cache', 61 Objects: [ 62 { 63 Fields: [ 64 { 65 Annotations: null, 66 Name: 'Attempts', 67 New: '15', 68 Old: '10', 69 Type: 'Edited', 70 }, 71 { 72 Annotations: null, 73 Name: 'Delay', 74 New: '25000000000', 75 Old: '25000000000', 76 Type: 'None', 77 }, 78 { 79 Annotations: null, 80 Name: 'Interval', 81 New: '900000000000', 82 Old: '900000000000', 83 Type: 'None', 84 }, 85 { 86 Annotations: null, 87 Name: 'Mode', 88 New: 'delay', 89 Old: 'delay', 90 Type: 'None', 91 }, 92 ], 93 Name: 'RestartPolicy', 94 Objects: null, 95 Type: 'Edited', 96 }, 97 ], 98 Tasks: [ 99 { 100 Annotations: null, 101 Fields: null, 102 Name: 'redis', 103 Objects: [ 104 { 105 Fields: [ 106 { 107 Annotations: null, 108 Name: 'CPU', 109 New: '500', 110 Old: '500', 111 Type: 'None', 112 }, 113 { 114 Annotations: null, 115 Name: 'DiskMB', 116 New: '0', 117 Old: '0', 118 Type: 'None', 119 }, 120 { 121 Annotations: null, 122 Name: 'IOPS', 123 New: '0', 124 Old: '0', 125 Type: 'None', 126 }, 127 { 128 Annotations: null, 129 Name: 'MemoryMB', 130 New: '512', 131 Old: '256', 132 Type: 'Edited', 133 }, 134 ], 135 Name: 'Resources', 136 Objects: null, 137 Type: 'Edited', 138 }, 139 { 140 Fields: [ 141 { 142 Annotations: null, 143 Name: 'MaxFileSizeMB', 144 New: '15', 145 Old: '10', 146 Type: 'Edited', 147 }, 148 { 149 Annotations: null, 150 Name: 'MaxFiles', 151 New: '10', 152 Old: '10', 153 Type: 'None', 154 }, 155 ], 156 Name: 'LogConfig', 157 Objects: null, 158 Type: 'Edited', 159 }, 160 { 161 Fields: [ 162 { 163 Annotations: null, 164 Name: 'AddressMode', 165 New: 'auto', 166 Old: 'auto', 167 Type: 'None', 168 }, 169 { 170 Annotations: null, 171 Name: 'Name', 172 New: 'redis-cache', 173 Old: 'redis-cache', 174 Type: 'None', 175 }, 176 { 177 Annotations: null, 178 Name: 'PortLabel', 179 New: 'db', 180 Old: 'db', 181 Type: 'None', 182 }, 183 ], 184 Name: 'Service', 185 Objects: [ 186 { 187 Fields: [ 188 { 189 Annotations: null, 190 Name: 'Command', 191 New: '', 192 Old: '', 193 Type: 'None', 194 }, 195 { 196 Annotations: null, 197 Name: 'InitialStatus', 198 New: '', 199 Old: '', 200 Type: 'None', 201 }, 202 { 203 Annotations: null, 204 Name: 'Interval', 205 New: '10000000000', 206 Old: '10000000000', 207 Type: 'None', 208 }, 209 { 210 Annotations: null, 211 Name: 'Method', 212 New: '', 213 Old: '', 214 Type: 'None', 215 }, 216 { 217 Annotations: null, 218 Name: 'Name', 219 New: 'alive', 220 Old: 'alive', 221 Type: 'None', 222 }, 223 { 224 Annotations: null, 225 Name: 'Path', 226 New: '', 227 Old: '', 228 Type: 'None', 229 }, 230 { 231 Annotations: null, 232 Name: 'PortLabel', 233 New: '', 234 Old: '', 235 Type: 'None', 236 }, 237 { 238 Annotations: null, 239 Name: 'Protocol', 240 New: '', 241 Old: '', 242 Type: 'None', 243 }, 244 { 245 Annotations: null, 246 Name: 'TLSSkipVerify', 247 New: 'false', 248 Old: 'false', 249 Type: 'None', 250 }, 251 { 252 Annotations: null, 253 Name: 'Timeout', 254 New: '3000000000', 255 Old: '2000000000', 256 Type: 'Edited', 257 }, 258 { 259 Annotations: null, 260 Name: 'Type', 261 New: 'tcp', 262 Old: 'tcp', 263 Type: 'None', 264 }, 265 ], 266 Name: 'Check', 267 Objects: null, 268 Type: 'Edited', 269 }, 270 ], 271 Type: 'Edited', 272 }, 273 ], 274 Type: 'Edited', 275 }, 276 ], 277 Type: 'Edited', 278 Updates: null, 279 }, 280 ], 281 Type: 'Edited', 282 }; 283 }