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