def run_command_keys(options, reactor=None, **kwargs): """ Subcommand "crossbar keys". """ log = make_logger() # Release (public) key release_pubkey = _read_release_pubkey() # Node (public) key node_pubkey = _read_node_pubkey(options.cbdir) log.info(release_pubkey[u'qrcode']) log.info(' Release key: {release_pubkey}', release_pubkey=release_pubkey[u'base64']) log.info('') log.info(node_pubkey[u'qrcode']) log.info(' Node key: {node_pubkey}', node_pubkey=node_pubkey[u'hex']) log.info('')
def run_command_version(options, reactor=None, **kwargs): """ Subcommand "crossbar version". """ log = make_logger() # Python py_ver = '.'.join([str(x) for x in list(sys.version_info[:3])]) py_ver_string = "[%s]" % sys.version.replace('\n', ' ') if 'pypy_version_info' in sys.__dict__: py_ver_detail = "{}-{}".format(platform.python_implementation(), '.'.join(str(x) for x in sys.pypy_version_info[:3])) else: py_ver_detail = platform.python_implementation() # Pyinstaller (frozen EXE) py_is_frozen = getattr(sys, 'frozen', False) # Twisted / Reactor tx_ver = "%s-%s" % (get_version('twisted'), reactor.__class__.__name__) tx_loc = "[%s]" % qual(reactor.__class__) # txaio txaio_ver = get_version('txaio') # Autobahn ab_ver = get_version('autobahn') ab_loc = "[%s]" % qual(WebSocketProtocol) # UTF8 Validator s = qual(Utf8Validator) if 'wsaccel' in s: utf8_ver = 'wsaccel-%s' % get_version('wsaccel') elif s.startswith('autobahn'): utf8_ver = 'autobahn' else: # could not detect UTF8 validator type/version utf8_ver = '?' utf8_loc = "[%s]" % qual(Utf8Validator) # XOR Masker s = qual(XorMaskerNull) if 'wsaccel' in s: xor_ver = 'wsaccel-%s' % get_version('wsaccel') elif s.startswith('autobahn'): xor_ver = 'autobahn' else: # could not detect XOR masker type/version xor_ver = '?' xor_loc = "[%s]" % qual(XorMaskerNull) # JSON Serializer supported_serializers = ['JSON'] from autobahn.wamp.serializer import JsonObjectSerializer json_ver = JsonObjectSerializer.JSON_MODULE.__name__ # If it's just 'json' then it's the stdlib one... if json_ver == 'json': json_ver = 'stdlib' else: json_ver = (json_ver + "-%s") % get_version(json_ver) # MsgPack Serializer try: import umsgpack # noqa msgpack_ver = 'u-msgpack-python-%s' % get_version(umsgpack) supported_serializers.append('MessagePack') except ImportError: msgpack_ver = '-' # CBOR Serializer try: import cbor # noqa cbor_ver = 'cbor-%s' % get_version(cbor) supported_serializers.append('CBOR') except ImportError: cbor_ver = '-' # UBJSON Serializer try: import ubjson # noqa ubjson_ver = 'ubjson-%s' % get_version(ubjson) supported_serializers.append('UBJSON') except ImportError: ubjson_ver = '-' # LMDB try: import lmdb # noqa lmdb_lib_ver = '.'.join([str(x) for x in lmdb.version()]) lmdb_ver = '{}/lmdb-{}'.format(get_version(lmdb), lmdb_lib_ver) except ImportError: lmdb_ver = '-' # crossbarfabric (only Crossbar.io FABRIC) try: from crossbarfabric._version import __version__ as crossbarfabric_ver # noqa except ImportError: crossbarfabric_ver = '-' # crossbarfabriccenter (only Crossbar.io FABRIC CENTER) try: from crossbarfabriccenter._version import __version__ as crossbarfabriccenter_ver # noqa except ImportError: crossbarfabriccenter_ver = '-' # txaio-etcd (only Crossbar.io FABRIC CENTER) try: import txaioetcd # noqa txaioetcd_ver = get_version(txaioetcd) except ImportError: txaioetcd_ver = '-' # Release Public Key from crossbar.controller.node import _read_release_pubkey release_pubkey = _read_release_pubkey() def decorate(text): return click.style(text, fg='yellow', bold=True) Node = get_installed_personalities()[options.personality].NodeKlass for line in Node.BANNER.splitlines(): log.info(decorate("{:>40}".format(line))) pad = " " * 22 log.info(" Crossbar.io : {ver} ({personality})", ver=decorate(crossbar.__version__), personality=Node.PERSONALITY) log.info(" Autobahn : {ver} (with {serializers})", ver=decorate(ab_ver), serializers=', '.join(supported_serializers)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(ab_loc)) log.debug(" txaio : {ver}", ver=decorate(txaio_ver)) log.debug(" UTF8 Validator : {ver}", ver=decorate(utf8_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(utf8_loc)) log.debug(" XOR Masker : {ver}", ver=decorate(xor_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(xor_loc)) log.debug(" JSON Codec : {ver}", ver=decorate(json_ver)) log.debug(" MsgPack Codec : {ver}", ver=decorate(msgpack_ver)) log.debug(" CBOR Codec : {ver}", ver=decorate(cbor_ver)) log.debug(" UBJSON Codec : {ver}", ver=decorate(ubjson_ver)) log.info(" Twisted : {ver}", ver=decorate(tx_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(tx_loc)) log.info(" LMDB : {ver}", ver=decorate(lmdb_ver)) log.info(" Python : {ver}/{impl}", ver=decorate(py_ver), impl=decorate(py_ver_detail)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(py_ver_string)) if options.personality in (u'fabric', u'fabriccenter'): log.info(" Crossbar.io Fabric : {ver}", ver=decorate(crossbarfabric_ver)) if options.personality == u'fabriccenter': log.info(" Crossbar.io FC : {ver}", ver=decorate(crossbarfabriccenter_ver)) log.debug(" txaioetcd : {ver}", ver=decorate(txaioetcd_ver)) log.info(" Frozen executable : {py_is_frozen}", py_is_frozen=decorate('yes' if py_is_frozen else 'no')) log.info(" Operating system : {ver}", ver=decorate(platform.platform())) log.info(" Host machine : {ver}", ver=decorate(platform.machine())) log.info(" Release key : {release_pubkey}", release_pubkey=decorate(release_pubkey[u'base64'])) log.info("")
def run_command_version(options, reactor=None, **kwargs): """ Subcommand "crossbar version". """ log = make_logger() # Python py_ver = '.'.join([str(x) for x in list(sys.version_info[:3])]) py_ver_string = "[%s]" % sys.version.replace('\n', ' ') if 'pypy_version_info' in sys.__dict__: py_ver_detail = "{}-{}".format(platform.python_implementation(), '.'.join(str(x) for x in sys.pypy_version_info[:3])) else: py_ver_detail = platform.python_implementation() # Twisted / Reactor tx_ver = "%s-%s" % (pkg_resources.require("Twisted")[0].version, reactor.__class__.__name__) tx_loc = "[%s]" % qual(reactor.__class__) # txaio txaio_ver = '%s' % pkg_resources.require("txaio")[0].version # Autobahn ab_ver = pkg_resources.require("autobahn")[0].version ab_loc = "[%s]" % qual(WebSocketProtocol) # UTF8 Validator s = qual(Utf8Validator) if 'wsaccel' in s: utf8_ver = 'wsaccel-%s' % pkg_resources.require('wsaccel')[0].version elif s.startswith('autobahn'): utf8_ver = 'autobahn' else: # could not detect UTF8 validator type/version utf8_ver = '?' utf8_loc = "[%s]" % qual(Utf8Validator) # XOR Masker s = qual(XorMaskerNull) if 'wsaccel' in s: xor_ver = 'wsaccel-%s' % pkg_resources.require('wsaccel')[0].version elif s.startswith('autobahn'): xor_ver = 'autobahn' else: # could not detect XOR masker type/version xor_ver = '?' xor_loc = "[%s]" % qual(XorMaskerNull) # JSON Serializer supported_serializers = ['JSON'] from autobahn.wamp.serializer import JsonObjectSerializer json_ver = JsonObjectSerializer.JSON_MODULE.__name__ # If it's just 'json' then it's the stdlib one... if json_ver == 'json': json_ver = 'stdlib' else: json_ver = (json_ver + "-%s") % pkg_resources.require(json_ver)[0].version # MsgPack Serializer try: import umsgpack # noqa msgpack_ver = 'u-msgpack-python-%s' % pkg_resources.require('u-msgpack-python')[0].version supported_serializers.append('MessagePack') except ImportError: msgpack_ver = '-' # CBOR Serializer try: import cbor # noqa cbor_ver = 'cbor-%s' % pkg_resources.require('cbor')[0].version supported_serializers.append('CBOR') except ImportError: cbor_ver = '-' # UBJSON Serializer try: import ubjson # noqa ubjson_ver = 'ubjson-%s' % pkg_resources.require('py-ubjson')[0].version supported_serializers.append('UBJSON') except ImportError: ubjson_ver = '-' # LMDB try: import lmdb # noqa lmdb_lib_ver = '.'.join([str(x) for x in lmdb.version()]) lmdb_ver = '{}/lmdb-{}'.format(pkg_resources.require('lmdb')[0].version, lmdb_lib_ver) except ImportError: lmdb_ver = '-' # crossbarfabric (only Crossbar.io FABRIC) try: import crossbarfabric # noqa crossbarfabric_ver = '%s' % pkg_resources.require('crossbarfabric')[0].version except ImportError: crossbarfabric_ver = '-' # crossbarfabriccenter (only Crossbar.io FABRIC CENTER) try: import crossbarfabriccenter # noqa crossbarfabriccenter_ver = '%s' % pkg_resources.require('crossbarfabriccenter')[0].version except ImportError: crossbarfabriccenter_ver = '-' # txaio-etcd (only Crossbar.io FABRIC CENTER) try: import txaioetcd # noqa txaioetcd_ver = '%s' % pkg_resources.require('txaioetcd')[0].version except ImportError: txaioetcd_ver = '-' # Release Public Key release_pubkey = _read_release_pubkey() def decorate(text): return click.style(text, fg='yellow', bold=True) Node = node_classes[options.personality][u'class'] for line in Node.BANNER.splitlines(): log.info(decorate("{:>40}".format(line))) pad = " " * 22 log.info(" Crossbar.io : {ver} ({personality})", ver=decorate(crossbar.__version__), personality=Node.PERSONALITY) log.info(" Autobahn : {ver} (with {serializers})", ver=decorate(ab_ver), serializers=', '.join(supported_serializers)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(ab_loc)) log.debug(" txaio : {ver}", ver=decorate(txaio_ver)) log.debug(" UTF8 Validator : {ver}", ver=decorate(utf8_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(utf8_loc)) log.debug(" XOR Masker : {ver}", ver=decorate(xor_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(xor_loc)) log.debug(" JSON Codec : {ver}", ver=decorate(json_ver)) log.debug(" MsgPack Codec : {ver}", ver=decorate(msgpack_ver)) log.debug(" CBOR Codec : {ver}", ver=decorate(cbor_ver)) log.debug(" UBJSON Codec : {ver}", ver=decorate(ubjson_ver)) log.info(" Twisted : {ver}", ver=decorate(tx_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(tx_loc)) log.info(" LMDB : {ver}", ver=decorate(lmdb_ver)) log.info(" Python : {ver}/{impl}", ver=decorate(py_ver), impl=decorate(py_ver_detail)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(py_ver_string)) if options.personality in (u'fabric', u'fabriccenter'): log.info(" Crossbar.io Fabric : {ver}", ver=decorate(crossbarfabric_ver)) if options.personality == u'fabriccenter': log.info(" Crossbar.io FC : {ver}", ver=decorate(crossbarfabriccenter_ver)) log.debug(" txaioetcd : {ver}", ver=decorate(txaioetcd_ver)) log.info(" OS : {ver}", ver=decorate(platform.platform())) log.info(" Machine : {ver}", ver=decorate(platform.machine())) log.info(" Release key : {release_pubkey}", release_pubkey=decorate(release_pubkey[u'base64'])) log.info("")
def run_command_version(options, reactor=None, **kwargs): """ Subcommand "crossbar version". """ log = make_logger() # Python py_ver = '.'.join([str(x) for x in list(sys.version_info[:3])]) py_ver_string = "[%s]" % sys.version.replace('\n', ' ') if 'pypy_version_info' in sys.__dict__: py_ver_detail = "{}-{}".format( platform.python_implementation(), '.'.join(str(x) for x in sys.pypy_version_info[:3])) else: py_ver_detail = platform.python_implementation() # Twisted / Reactor tx_ver = "%s-%s" % (pkg_resources.require("Twisted")[0].version, reactor.__class__.__name__) tx_loc = "[%s]" % qual(reactor.__class__) # txaio txaio_ver = '%s' % pkg_resources.require("txaio")[0].version # Autobahn ab_ver = pkg_resources.require("autobahn")[0].version ab_loc = "[%s]" % qual(WebSocketProtocol) # UTF8 Validator s = qual(Utf8Validator) if 'wsaccel' in s: utf8_ver = 'wsaccel-%s' % pkg_resources.require('wsaccel')[0].version elif s.startswith('autobahn'): utf8_ver = 'autobahn' else: # could not detect UTF8 validator type/version utf8_ver = '?' utf8_loc = "[%s]" % qual(Utf8Validator) # XOR Masker s = qual(XorMaskerNull) if 'wsaccel' in s: xor_ver = 'wsaccel-%s' % pkg_resources.require('wsaccel')[0].version elif s.startswith('autobahn'): xor_ver = 'autobahn' else: # could not detect XOR masker type/version xor_ver = '?' xor_loc = "[%s]" % qual(XorMaskerNull) # JSON Serializer supported_serializers = ['JSON'] json_ver = 'stdlib' # MsgPack Serializer try: import umsgpack # noqa msgpack_ver = 'u-msgpack-python-%s' % pkg_resources.require( 'u-msgpack-python')[0].version supported_serializers.append('MessagePack') except ImportError: msgpack_ver = '-' # CBOR Serializer try: import cbor # noqa cbor_ver = 'cbor-%s' % pkg_resources.require('cbor')[0].version supported_serializers.append('CBOR') except ImportError: cbor_ver = '-' # UBJSON Serializer try: import ubjson # noqa ubjson_ver = 'ubjson-%s' % pkg_resources.require( 'py-ubjson')[0].version supported_serializers.append('UBJSON') except ImportError: ubjson_ver = '-' # LMDB try: import lmdb # noqa lmdb_lib_ver = '.'.join([str(x) for x in lmdb.version()]) lmdb_ver = '{}/lmdb-{}'.format( pkg_resources.require('lmdb')[0].version, lmdb_lib_ver) except ImportError: lmdb_ver = '-' # Release Public Key release_pubkey = _read_release_pubkey() def decorate(text): return click.style(text, fg='yellow', bold=True) for line in BANNER.splitlines(): log.info(decorate("{:>40}".format(line))) pad = " " * 22 log.info(" Crossbar.io : {ver}", ver=decorate(crossbar.__version__)) log.info(" Autobahn : {ver} (with {serializers})", ver=decorate(ab_ver), serializers=', '.join(supported_serializers)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(ab_loc)) log.debug(" txaio : {ver}", ver=decorate(txaio_ver)) log.debug(" UTF8 Validator : {ver}", ver=decorate(utf8_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(utf8_loc)) log.debug(" XOR Masker : {ver}", ver=decorate(xor_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(xor_loc)) log.debug(" JSON Codec : {ver}", ver=decorate(json_ver)) log.debug(" MessagePack Codec : {ver}", ver=decorate(msgpack_ver)) log.debug(" CBOR Codec : {ver}", ver=decorate(cbor_ver)) log.debug(" UBJSON Codec : {ver}", ver=decorate(ubjson_ver)) log.info(" Twisted : {ver}", ver=decorate(tx_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(tx_loc)) log.info(" LMDB : {ver}", ver=decorate(lmdb_ver)) log.info(" Python : {ver}/{impl}", ver=decorate(py_ver), impl=decorate(py_ver_detail)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(py_ver_string)) log.info(" OS : {ver}", ver=decorate(platform.platform())) log.info(" Machine : {ver}", ver=decorate(platform.machine())) log.info(" Release key : {release_pubkey}", release_pubkey=decorate(release_pubkey[u'base64'])) log.info("")