Tuesday, March 3, 2020

netsh portproxy WSL2

netsh interface portproxy show all
netsh interface portproxy add v4tov4 listenport=HOST_PublishPort listenaddress=0.0.0.0 connectport=WSL_Port connectaddress=WSL_IPAddress

ex:
netsh interface portproxy add v4tov4 listenport=8000 listenaddress=0.0.0.0 connectport=8000 connectaddress=172.28.81.216
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=8080 connectaddress=172.28.81.216
netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=172.28.81.216
netsh interface portproxy add v4tov4 listenport=5000 listenaddress=0.0.0.0 connectport=5000 connectaddress=172.28.81.216

Wednesday, February 26, 2020

Nginx redirect from http to https non-standard Port

create nginx config file on /etc/nginx/conf.d
ex. /etc/nginx/conf.d/redirect.conf


server {

        listen 80;
        server_name localhost;
        return 301 https://$host$request_uri;
}

server {

        listen 443 ssl;
        server_name localhost;
        ssl_certificate /etc/nginx/ssl/certs.crt;
        ssl_certificate_key /etc/nginx/ssl/key.key;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
        ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !RC4 !EXP !PSK !SRP !CAMELLIA !SEED';
        ssl_protocols TLSv1.2;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security max-age=15768000;
return 301 $scheme://$host:6081$request_uri;
}

server {

        listen 6081 ssl;
        server_name localhost;
        ssl_certificate /etc/nginx/ssl/certs.crt;
        ssl_certificate_key /etc/nginx/ssl/key.key;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
        ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !RC4 !EXP !PSK !SRP !CAMELLIA !SEED';
        ssl_protocols TLSv1.2;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security max-age=15768000;
        location / {
                include /etc/nginx/conf.d/common_location.conf;
                root /usr/share/nginx/html;
                index index.html index.htm;
                # proxy_pass http://11.11.11.250:5000; #pass_to_backendserver
        
        }

}

Friday, January 17, 2020

Using Vue Variable in Jinja Python Flask


- Using {% raw %} directive
ex.

<div id="app">
{% raw %}
{{ var_from_vue }}
{% endraw %}
</div>

- Using Vue delemiters in Vue Instant
ex.

var app = new Vue({
    el: '#app',
    data: {
        v1: 'variable 1'
    },
    delimiters: ['[[', ']]'] 
})

- Custom Directive in Python Flask Jinja
ex.

app = Flask(__name__)

jinja_options = app.jinja_options.copy()
jinja.options.update(dict(
    variable_start_string='[[',
    variable_end_string=']]'
))
app.jinja_options = jinja_options

Tuesday, December 3, 2019

How to Caching Post Requests to redis Server in Python Flask, Redis Using Decorators

from flask import Flask, jsonify, request
from functools import wraps
import redis
import json

r = redis.Redis('__ip_address_redis_server__')
cache_time = 10

def xcaching(f):
    @wraps(f)
    def decor(*args, **kwargs):
        check = request.get_json()
        get_from_redis = r.get(str(check))

        if get_from_redis:
            data = get_from_redis.decode('utf-8')
            ret = json.loads(data)
            r.expire(str(check), cache_time)
            return jsonify(ret)

        ret = f(*args, **kwargs)

        cache_to_redis = ret.get_data()
        r.set(str(check), cache_to_redis ex=cache_time)

        return ret
    return decor


@app.route('/search', methods=['POST'])
@xcaching
def main():
req = request.get_json()
ret = call_api_function(req)
return jsonify(ret)

'__repr__' example

class TestClass:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def __repr__(self):
        return '{self.__class__.__name__}({self.a}, {self.b})'.format(self=self)

Sunday, December 1, 2019

Convert dictionary 'key' in list to lowercase (python3)

Using List Comprehension and Dictionary Comprehension
>>> rs = [{'ABC': '123', 'DEF': '456'}]
>>> ret = [{k.lower():v for k,v in i.items()} for i in rs]
>>> ret
>>> [{'abc': '123', 'def': '456'}]

Using Lambda Function
>>> rs = list(map((lambda i: { k.lower(): v for k,v in i.items()}), rs))

ALCATEL 6900

write memory copy running certified reload from working no rollback-timeout