src/app/instance/shared/instance.service.ts
Methods |
|
Public create | |||||||||||||||
create(clusterName: string, host: string, port: string, enabled: boolean)
|
|||||||||||||||
Parameters :
Returns :
any
|
Public disable |
disable(clusterName: string, instanceName: string)
|
Returns :
any
|
Public enable |
enable(clusterName: string, instanceName: string)
|
Returns :
any
|
Public get |
get(clusterName: string, instanceName: string)
|
Returns :
any
|
Public getAll | ||||||
getAll(clusterName: string)
|
||||||
Parameters :
Returns :
any
|
Public remove |
remove(clusterName: string, instanceName: string)
|
Returns :
any
|
Public can |
can()
|
Inherited from
HelixService
|
Defined in
HelixService:14
|
Returns :
Observable<any>
|
Protected delete | ||||||
delete(path: string)
|
||||||
Inherited from
HelixService
|
||||||
Defined in
HelixService:48
|
||||||
Parameters :
Returns :
Observable<any>
|
Protected errorHandler | ||||||
errorHandler(error: any)
|
||||||
Inherited from
HelixService
|
||||||
Defined in
HelixService:68
|
||||||
Parameters :
Returns :
any
|
Protected getHeaders |
getHeaders()
|
Inherited from
HelixService
|
Defined in
HelixService:61
|
Returns :
any
|
Protected getHelixKey |
getHelixKey()
|
Inherited from
HelixService
|
Defined in
HelixService:56
|
Returns :
string
|
Protected post |
post(path: string, data: any)
|
Inherited from
HelixService
|
Defined in
HelixService:32
|
Returns :
Observable<any>
|
Protected put |
put(path: string, data: string)
|
Inherited from
HelixService
|
Defined in
HelixService:40
|
Returns :
Observable<any>
|
Protected request |
request(path: string, helix?: string)
|
Inherited from
HelixService
|
Defined in
HelixService:20
|
Returns :
Observable<any>
|
import { map } from 'rxjs/operators';
import { Injectable } from '@angular/core';
import { Instance } from './instance.model';
import { HelixService } from '../../core/helix.service';
import { Node } from '../../shared/models/node.model';
@Injectable()
export class InstanceService extends HelixService {
public getAll(clusterName: string) {
return this.request(`/clusters/${clusterName}/instances`).pipe(
map((data) => {
const onlineInstances = data.online;
const disabledInstances = data.disabled;
return data.instances
.sort()
.map(
(name) =>
new Instance(
name,
clusterName,
disabledInstances.indexOf(name) < 0,
onlineInstances.indexOf(name) >= 0
)
);
})
);
}
public get(clusterName: string, instanceName: string) {
return this.request(
`/clusters/${clusterName}/instances/${instanceName}`
).pipe(
map((data) => {
const liveInstance = data.liveInstance;
const config = data.config;
// there are two cases meaning enabled both:
// HELIX_ENABLED: true or no such configuration
const enabled =
config &&
config.simpleFields &&
config.simpleFields.HELIX_ENABLED != 'false';
return liveInstance && liveInstance.simpleFields
? new Instance(
data.id,
clusterName,
enabled,
liveInstance.simpleFields.LIVE_INSTANCE,
liveInstance.simpleFields.SESSION_ID,
liveInstance.simpleFields.HELIX_VERSION
)
: new Instance(data.id, clusterName, enabled, null);
})
);
}
public create(
clusterName: string,
host: string,
port: string,
enabled: boolean
) {
const name = `${host}_${port}`;
const node = new Node(null);
node.appendSimpleField('HELIX_ENABLED', enabled ? 'true' : 'false');
node.appendSimpleField('HELIX_HOST', host);
node.appendSimpleField('HELIX_PORT', port);
return this.put(
`/clusters/${clusterName}/instances/${name}`,
JSON.parse(node.json(name))
);
}
public remove(clusterName: string, instanceName: string) {
return this.delete(`/clusters/${clusterName}/instances/${instanceName}`);
}
public enable(clusterName: string, instanceName: string) {
return this.post(
`/clusters/${clusterName}/instances/${instanceName}?command=enable`,
null
);
}
public disable(clusterName: string, instanceName: string) {
return this.post(
`/clusters/${clusterName}/instances/${instanceName}?command=disable`,
null
);
}
}