Skip to content

Instantly share code, notes, and snippets.

@viggin543
viggin543 / OMFG
Created April 1, 2020 17:44
omfg.js
calculateSubscriberVideoPanelElement(stream: any, isMemberStream: boolean) {
const { callModel, cameraModel, medium, isSupervisor } = this.props;
if (isNil(stream)) {
if (isMemberStream) {
if (callModel && callModel.sirenEndTime) {
return <SirenCounter callModel={callModel} withTokboxWrapper={true} />;
} else {
return <NoVideo medium={medium} cameraModel={cameraModel} />;
}
} else {
@viggin543
viggin543 / server.kt
Created April 17, 2020 18:29
a simple vert.x/netty web server written in kotlin
import io.vertx.core.Vertx
import io.vertx.ext.web.Router
import java.time.Instant.now
import kotlin.math.pow
fun main() {
println("starting application ${now().epochSecond}")
val now = now()
val cores = Runtime.getRuntime().availableProcessors()
val ram = Runtime.getRuntime().maxMemory().toDouble()
@viggin543
viggin543 / deploy.yml
Created April 17, 2020 18:31
a fragment of the deployment yaml
#deployment.yaml
resources:
limits:
memory: "256Mi"
cpu: "500"
requests:
memory: "256Mi"
cpu: "150m"
...
livenessProbe:
@viggin543
viggin543 / collect_metric.sh
Created April 17, 2020 18:37
call k8s metrics service directly
kubectl get --raw /apis/metrics.k8s.io/v1beta1/namespaces/${NAMESPACE_NAME}/pods/${POD_NAME} | jq .
{
"kind": "PodMetrics",
"apiVersion": "metrics.k8s.io/v1beta1",
"metadata": {
"name": "PODNAME",
"namespace": "NAMESPACE",
"selfLink": "/apis/metrics.k8s.io/v1beta1/namespaces/NAMESPACE/pods/PODNAME",
"creationTimestamp": "2020-04-15T10:53:04Z"
},
@viggin543
viggin543 / get_pod_startup.sh
Created April 17, 2020 18:40
get_pod_startup.sh
# pod schedualed event timestamp
kubectl get pod $pod -o json | jq -r '.status.conditions[] | select(.type=="PodScheduled") | .lastTransitionTime
class BananaApi {
fun getBanana(id: String): Banana {
return Banana(Color.GREEN, 0.5, id)
}
fun deleteBanana(id: String) {
println("delete banana with id $id")
}
service Banana {
rpc GetBanana (GetBananaRequest) returns (BananaResponse) {}
rpc CreateBanana (CreateBananaRequest) returns (BananaResponse) {}
}
message GetBananaRequest {
string id = 1;
}
message BananaResponse {
import "google/api/annotations.proto";
service Banana {
rpc CreateBanana (CreateBananaRequest) returns (BananaResponse) {
option (google.api.http) = {
post: "/v1/example/echo"
body: "*"
};
}
import io.swagger.v3.oas.annotations.OpenAPIDefinition
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.Parameter
import io.swagger.v3.oas.annotations.enums.ParameterIn
import io.swagger.v3.oas.annotations.info.Info
import io.swagger.v3.oas.annotations.media.Content
import io.swagger.v3.oas.annotations.media.Schema
import io.swagger.v3.oas.annotations.parameters.RequestBody
import io.swagger.v3.oas.annotations.responses.ApiResponse
import javax.ws.rs.GET
// build.gradle
resolve {
outputFileName = 'swagger'
outputFormat = 'JSON' // or YAML
prettyPrint = 'TRUE'
classpath = sourceSets.main.runtimeClasspath
resourcePackages = ['com.banana'] // packages with service definitions
outputDir = file('open-api')
readAllResources = true
}