Thursday, November 21, 2013

[Python2] Everything you want to know about argparse standard lib

To see all kwargs that you can pass to ArgumentParser.add_argument(), run python/ipython and type:

>>> import argparse
>>> help(argparse.Action)

Regarding to action kwarg, below is all action that you can pass:
        # register actions
        self.register('action', None, _StoreAction)
        self.register('action', 'store', _StoreAction)
        self.register('action', 'store_const', _StoreConstAction)
        self.register('action', 'store_true', _StoreTrueAction)
        self.register('action', 'store_false', _StoreFalseAction)
        self.register('action', 'append', _AppendAction)
        self.register('action', 'append_const', _AppendConstAction)
        self.register('action', 'count', _CountAction)
        self.register('action', 'help', _HelpAction)
        self.register('action', 'version', _VersionAction)
        self.register('action', 'parsers', _SubParsersAction)
Example:
parser.add_argument("-v", "--verbose", action="store_true",
                    help="increase output verbosity")
 

Sunday, November 17, 2013

[Debug] Postfix, Dovecot, OpenLDAP

Vài khái niệm/ câu lệnh quan trọng khi debug stack : postfix - dovecot - openldap, với dovecot là imap server đồng thời thực hiện SASL authenticate sử dụng backend LDAP.

1. Tắt hết TLS / SSL option đi.
2. Kiểm tra xem LDAP có hoạt động bình thường không
NOTE: nếu dùng TLS, LDAP vẫn listen ở port 389
Dùng SSL mới listen 636.

$ ldapsearch -x -H ldap://127.0.0.1 -D 'uid=hvn@example.com,ou=people,dc=example,dc=com' -W -ZZ -b'dc=example,dc=com' # (bỏ -ZZ nếu chỉ dùng LDAP không SSL/TLS)

3. Bật verbose cho slapd: đặt oldLog = 16383

Sau khi ldap đã hoạt động bình thường, kiểm tra dovecot.

Dùng dovecot -a để xem cấu hình của dovecot hiện tại.


4. Thử telnet với postfix: