open-consul/ui/packages/consul-ui/mock-api/v1/health/service/_
John Cowen eeb04ae436
ui: Partitions Application Layer (#11017)
* Add Partition to all our models

* Add partitions into our serializers/fingerprinting

* Make some amends to a few adapters ready for partitions

* Amend blueprints to avoid linting error

* Update all  our repositories to include partitions, also

Remove enabled/disable nspace repo and just use a nspace with
conditionals

* Ensure nspace and parition parameters always return '' no matter what

* Ensure data-sink finds the model properly

This will later be replaced by a @dataSink decorator but we are find
kicking that can down the road a little more

* Add all the new partition data layer

* Add a way to set the title of the page from inside the route

and make it accessibile via a route announcer

* Make the Consul Route the default/basic one

* Tweak nspace and partition abilities not to check the length

* Thread partition through all the components that need it

* Some ACL tweaks

* Move the entire app to use partitions

* Delete all the tests we no longer need

* Update some Unit tests to use partition

* Fix up KV title tests

* Fix up a few more acceptance tests

* Fixup and temporarily ignore some acceptance tests

* Stop using ember-cli-page-objects fillable as it doesn't seem to work

* Fix lint error

* Remove old ACL related test

* Add a tick after filling out forms

* Fix token warning modal

* Found some more places where we need a partition var

* Fixup some more acceptance tests

* Tokens still needs a repo service for CRUD

* Remove acceptance tests we no longer need

* Fixup and "FIXME ignore" a few tests

* Remove an s

* Disable blocking queries for KV to revert to previous release for now

* Fixup adapter tests to follow async/function resolving interface

* Fixup all the serializer integration tests

* Fixup service/repo integration tests

* Fixup deleting acceptance test

* Fixup some ent tests

* Make sure nspaces passes the dc through for when thats important

* ...aaaand acceptance nspaces with the extra dc param
2021-09-15 19:50:11 +01:00

186 lines
6.8 KiB
Plaintext

[
${
range(
env(
'CONSUL_NODE_COUNT',
Math.floor(
(
Math.random() * env('CONSUL_NODE_MAX', 10)
) + parseInt(env('CONSUL_NODE_MIN', 1))
)
)
).map(
function(item, i)
{
const node = `node-${i}`;
const service = location.pathname.slice(4);
const ip = fake.internet.ip();
const proxy = service.indexOf('-proxy')
const sidecar = service.indexOf('-sidecar-proxy')
const id = (proxy !== -1 ? service.slice(0, -6) + '-with-id-proxy' : service + '-with-id');
let kind = '';
switch(true) {
case service.endsWith('-mesh-gateway'):
kind = 'mesh-gateway';
break;
case service.endsWith('-terminating-gateway'):
kind = 'terminating-gateway';
break;
case service.endsWith('-ingress-gateway'):
kind = 'ingress-gateway';
break;
case service.endsWith('-proxy'):
kind = 'connect-proxy';
break;
}
return `
{
"Node":{
"ID":"7037e928-d9e8-3b58-4712-6f5ded209002",
"Node":"${node}",
"Address":"${ip}",
"Datacenter":"dc1",
"TaggedAddresses":{"lan":"${ip}","wan":"${ip}"},
"Meta":{"${service}-network-segment":""},
"CreateIndex":5,
"ModifyIndex":6
},
"Service":{
"ID": "${ i === 0 ? id : fake.helpers.randomize([service, service + '-ID'])}",
"Service":"${service}",
${typeof location.search.ns !== 'undefined' ? `
"Namespace": "${location.search.ns}",
` : ``}
${typeof location.search.partition !== 'undefined' ? `
"Partition": "${location.search.partition}",
` : ``}
"Tags":[
${
range(
env(
'CONSUL_TAG_COUNT',
Math.floor(
(
Math.random() * env('CONSUL_TAG_MAX', 10)
) + parseInt(env('CONSUL_TAG_MIN', 1))
)
)
).map(
function(item, i)
{
return `"${fake.hacker.noun()}"`;
}
)
}
],
"Weights": {
"Passing": 1,
"Warning": 1
},
${ fake.random.number({min: 1, max: 10}) > 2 ? `
"Meta": {
"consul-dashboard-url": "${fake.internet.protocol()}://${fake.internet.domainName()}/?id={{Service}}",
"external-source": "${fake.helpers.randomize(['vault', 'consul', 'nomad', 'terraform', 'kubernetes', 'aws', ''])}"
},
` : `
"Meta": null,
` }
${ false ? `
"Address":"${fake.internet.ip()}",
"Port":${fake.random.number({min: 0, max: 65535})},
` : `
"Address":"",
"SocketPath": "/${fake.lorem.words(fake.random.number({min: 1, max: 5})).split(' ').join('/')}${fake.random.boolean() ? fake.system.fileName() : ''}",
` }
"Connect": {},
${kind !== '' ? `
"Kind": "${kind}",
` : `` }
"Proxy": {
${proxy !== -1 && sidecar === -1 ? `
"DestinationServiceName": "${service.substr(0, proxy)}",
` : `
"Expose": {},
"MeshGateway": {},
"Mode": "",
"TransparentProxy": ""
`}
${sidecar !== -1 ? `
"DestinationServiceName": "${service.substr(0, sidecar)}",
"DestinationServiceID": "${service.substr(0, sidecar)}-ID",
"LocalServiceAddress": "${fake.internet.ip()}",
"LocalServicePort": ${fake.random.number({min: 0, max: 65535})},
` : ``}
${proxy !== -1 ? `
"Expose": {
"Checks": true,
"Paths": [
${range(env('CONSUL_EXPOSED_COUNT', 3)).map((i) => `
{
"Path": "/${fake.lorem.words(fake.random.number({min: 1, max: 5})).split(' ').join('/')}${fake.random.boolean() ? fake.system.fileName() : ''}",
"Protocol": "${fake.helpers.randomize(['http', 'http2', 'grpc'])}",
"LocalPathPort": ${fake.random.number({min: 0, max: 65535})},
"ListenerPort": ${fake.random.number({min: 0, max: 65535})}
}
`)}
]
},
"Upstreams": [
${range(env('CONSUL_UPSTREAM_COUNT', 10)).map((item, j) => `
{
"Datacenter": "${fake.address.countryCode().toLowerCase()} ${ i % 2 ? "west" : "east"}-${j}",
"DestinationName": "${fake.hacker.noun()}",
"DestinationNamespace": "${fake.hacker.noun()}",
"DestinationType": "${fake.helpers.randomize(['service', 'prepared_query'])}",
${ false ? `
"LocalBindAddress": "${fake.internet.ip()}",
"LocalBindPort": ${fake.random.number({min: 0, max: 65535})}
` : `
"LocalBindSocketMode": "0600",
"LocalBindSocketPath": "/${fake.lorem.words(fake.random.number({min: 1, max: 5})).split(' ').join('/')}${fake.random.boolean() ? fake.system.fileName() : ''}"
` }
}
`)}
]
` : ``}
},
"ProxyDestination": "",
"EnableTagOverride":false,
"CreateIndex":5,
"ModifyIndex":5
},
"Checks":[
${
range(env('CONSUL_CHECK_COUNT', 10)).map(
function(item, j) {
const passing = i > 7 || j > fake.random.number(4);
const id = fake.helpers.randomize([service, '']);
return `
{
"Node":"${node}",
"CheckID":"${fake.hacker.noun()}Health",
"Name":"${fake.hacker.noun()} Status",
"Type": "${j === 0 ? 'ttl' : (j === 1 ? 'http' : fake.helpers.randomize(['script', 'http', 'tcp', 'ttl', 'docker', 'grpc', 'alias']))}",
"Status":"${j < 2 ? 'critical' : (passing ? "passing" : fake.helpers.randomize(['warning', 'critical']))}",
"Notes":"${fake.lorem.paragraph()}",
"Output":"${fake.internet.ipv6()} ${fake.internet.protocol()}://${fake.internet.userName()}:${fake.internet.password()}@${fake.internet.domainName()} ${fake.internet.userAgent()}",
"ServiceID":"${j < 2 ? service : id}",
"ServiceName":"",
"ServiceTags":["Tag"],
"Definition":{},
"CreateIndex":5,
"ModifyIndex":5
}
`;
}
)
}
]
}
`;
}
)
}
]