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  }