590 lines
54 KiB
HTML
590 lines
54 KiB
HTML
|
|
|
|
<!DOCTYPE html>
|
|
<html class="writer-html5" lang="en" data-content_root="../../../">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>amqp.model.model — AMQ Adapter Python 1.0 documentation</title>
|
|
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=03e43079" />
|
|
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
|
|
|
|
|
|
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
|
|
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
<script src="../../../_static/documentation_options.js?v=f2a433a1"></script>
|
|
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
|
|
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
<script src="../../../_static/js/theme.js"></script>
|
|
<link rel="index" title="Index" href="../../../genindex.html" />
|
|
<link rel="search" title="Search" href="../../../search.html" />
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav">
|
|
<div class="wy-grid-for-nav">
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
<div class="wy-side-scroll">
|
|
<div class="wy-side-nav-search" >
|
|
|
|
|
|
|
|
<a href="../../../index.html" class="icon icon-home">
|
|
AMQ Adapter Python
|
|
</a>
|
|
<div role="search">
|
|
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
<input type="hidden" name="area" value="default" />
|
|
</form>
|
|
</div>
|
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../../modules/amqp.html">AMQP Package</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../../modules/amqp.config.html">Configuration Module</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../../modules/amqp.adapter.html">Adapter Module</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../../modules/amqp.service.html">Service Module</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../../modules/amqp.router.html">Router Module</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../../modules/amqp.model.html">Model Module</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="../../../modules/amqp.rabbitmq.html">RabbitMQ Module</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="../../../index.html">AMQ Adapter Python</a>
|
|
</nav>
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content">
|
|
<div role="navigation" aria-label="Page navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
|
|
<li class="breadcrumb-item active">amqp.model.model</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
</div>
|
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
<div itemprop="articleBody">
|
|
|
|
<h1>Source code for amqp.model.model</h1><div class="highlight"><pre>
|
|
<span></span><span class="kn">import</span><span class="w"> </span><span class="nn">base64</span>
|
|
<span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">dataclasses</span><span class="w"> </span><span class="kn">import</span> <span class="n">dataclass</span><span class="p">,</span> <span class="n">field</span>
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">enum</span><span class="w"> </span><span class="kn">import</span> <span class="n">Enum</span>
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">List</span>
|
|
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">aio_pika.abc</span><span class="w"> </span><span class="kn">import</span> <span class="n">AbstractRobustConnection</span>
|
|
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">amqp.model.service_message_type</span><span class="w"> </span><span class="kn">import</span> <span class="n">ServiceMessageType</span>
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">amqp.model.snowflake_id</span><span class="w"> </span><span class="kn">import</span> <span class="n">SnowflakeId</span>
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">amqp.router.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">sanitize_as_rabbitmq_name</span>
|
|
|
|
<span class="n">RS</span> <span class="o">=</span> <span class="s2">":"</span>
|
|
|
|
|
|
<span class="sd">"""</span>
|
|
<span class="sd">Define the structure of messages used in Clever Micro</span>
|
|
<span class="sd">"""</span>
|
|
|
|
|
|
<div class="viewcode-block" id="DataMessageMagicByte">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataMessageMagicByte">[docs]</a>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">DataMessageMagicByte</span><span class="p">(</span><span class="n">Enum</span><span class="p">):</span>
|
|
<span class="n">HTTP_REQUEST</span> <span class="o">=</span> <span class="s2">"A"</span>
|
|
<span class="n">RPC_REQUEST</span> <span class="o">=</span> <span class="s2">"R"</span></div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage">[docs]</a>
|
|
<span class="nd">@dataclass</span>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">CleverMicroMessage</span><span class="p">:</span>
|
|
<span class="n">DEFAULT_CONTENT_TYPE</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"application/octet-stream"</span><span class="p">]</span>
|
|
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The common structure of a message that transfers the user request to the Service and back. All data related messages</span>
|
|
<span class="sd"> conform to this base structure:</span>
|
|
|
|
<span class="sd"> magic - identifies the message type (REST, RPC, DataResponse)</span>
|
|
<span class="sd"> id - unique message ID</span>
|
|
<span class="sd"> m_field - method name (for REST style calls) or service name (for RPC style calls) or response code for DataResponse</span>
|
|
<span class="sd"> d_field - domain name (for REST style calls) or module name (for RPC style calls) or error code for DataResponse</span>
|
|
<span class="sd"> p_field - path (for REST style calls) or method name (for RPC style calls) or error cause for DataResponse</span>
|
|
<span class="sd"> headers - headers of the message (e.g. Content-Type, Accept, etc.)</span>
|
|
<span class="sd"> trace_info - trace information (e.g. trace ID, span ID, etc. for Jaeger trace monitor)</span>
|
|
<span class="sd"> base64body - the body of the message encoded in base64</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.__init__">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.__init__">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="p">,</span>
|
|
<span class="n">magic</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="nb">id</span><span class="p">:</span> <span class="n">SnowflakeId</span><span class="p">,</span>
|
|
<span class="n">m_field</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">d_field</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">p_field</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">headers</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]],</span>
|
|
<span class="n">trace_info</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span>
|
|
<span class="n">base64body</span><span class="p">:</span> <span class="nb">bytes</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_magic</span> <span class="o">=</span> <span class="n">magic</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_id</span><span class="p">:</span> <span class="n">SnowflakeId</span> <span class="o">=</span> <span class="nb">id</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_m_field</span> <span class="o">=</span> <span class="n">m_field</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_d_field</span> <span class="o">=</span> <span class="n">d_field</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_p_field</span> <span class="o">=</span> <span class="n">p_field</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_headers</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">headers</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_trace_info</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">trace_info</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_base64body</span><span class="p">:</span> <span class="nb">bytes</span> <span class="o">=</span> <span class="n">base64body</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.magic">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.magic">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">magic</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_magic</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.id">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.id">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">id</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_id</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.m_field">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.m_field">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">m_field</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_m_field</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.d_field">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.d_field">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">d_field</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_d_field</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.p_field">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.p_field">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">p_field</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_p_field</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.headers">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.headers">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">headers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_headers</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.trace_info">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.trace_info">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">trace_info</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_trace_info</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.base64body">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.base64body">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">base64body</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bytes</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_base64body</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.body">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.body">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">body</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bytes</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">base64</span><span class="o">.</span><span class="n">b64decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base64body</span><span class="p">())</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.content_type">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.content_type">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">content_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">headers</span><span class="p">()</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"Content-Type"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">DEFAULT_CONTENT_TYPE</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="CleverMicroMessage.return_address">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.CleverMicroMessage.return_address">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">return_address</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">headers</span><span class="p">()</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"Return-Address"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span></div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="DataMessage">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataMessage">[docs]</a>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">DataMessage</span><span class="p">(</span><span class="n">CleverMicroMessage</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The class represents a structure of a message that transfers the user request to the Service.</span>
|
|
<span class="sd"> It may also be used to make a call/request between services.</span>
|
|
<span class="sd"> The response to this call is in format of DataResponse class.</span>
|
|
|
|
<span class="sd"> See DataMessageFactory for code to instantiate, serialize and deserialize the class</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<div class="viewcode-block" id="DataMessage.__init__">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataMessage.__init__">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="p">,</span>
|
|
<span class="n">magic</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="nb">id</span><span class="p">:</span> <span class="n">SnowflakeId</span><span class="p">,</span>
|
|
<span class="n">method</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">domain</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">headers</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]],</span>
|
|
<span class="n">trace_info</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span>
|
|
<span class="n">base64body</span><span class="p">:</span> <span class="nb">bytes</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">magic</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="n">domain</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">headers</span><span class="p">,</span> <span class="n">trace_info</span><span class="p">,</span> <span class="n">base64body</span><span class="p">)</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="DataMessage.method">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataMessage.method">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">m_field</span><span class="p">()</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="DataMessage.domain">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataMessage.domain">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">domain</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_field</span><span class="p">()</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="DataMessage.path">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataMessage.path">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">path</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_field</span><span class="p">()</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="DataMessage.routing_key">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataMessage.routing_key">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">routing_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">sanitize_as_rabbitmq_name</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">d_field</span><span class="p">()</span><span class="si">}</span><span class="s2">.</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">p_field</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span></div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="MultipartDataMessage">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.MultipartDataMessage">[docs]</a>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">MultipartDataMessage</span><span class="p">(</span><span class="n">DataMessage</span><span class="p">):</span>
|
|
<div class="viewcode-block" id="MultipartDataMessage.__init__">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.MultipartDataMessage.__init__">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="n">DataMessage</span><span class="p">,</span> <span class="n">extra_data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">):</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span>
|
|
<span class="n">message</span><span class="o">.</span><span class="n">magic</span><span class="p">(),</span>
|
|
<span class="n">message</span><span class="o">.</span><span class="n">id</span><span class="p">(),</span>
|
|
<span class="n">message</span><span class="o">.</span><span class="n">method</span><span class="p">(),</span>
|
|
<span class="n">message</span><span class="o">.</span><span class="n">domain</span><span class="p">(),</span>
|
|
<span class="n">message</span><span class="o">.</span><span class="n">path</span><span class="p">(),</span>
|
|
<span class="n">message</span><span class="o">.</span><span class="n">headers</span><span class="p">(),</span>
|
|
<span class="n">message</span><span class="o">.</span><span class="n">trace_info</span><span class="p">(),</span>
|
|
<span class="n">message</span><span class="o">.</span><span class="n">base64body</span><span class="p">(),</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">extra_data</span> <span class="o">=</span> <span class="n">extra_data</span></div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="AMQMessage">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.AMQMessage">[docs]</a>
|
|
<span class="nd">@dataclass</span>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">AMQMessage</span><span class="p">(</span><span class="n">DataMessage</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Expand the core DataMessage type to include the channel, which is required to create a dedicated queue</span>
|
|
<span class="sd"> in case the response should initiate file download.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">_connection</span><span class="p">:</span> <span class="n">AbstractRobustConnection</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="nb">repr</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="c1"># Don't show in repr</span>
|
|
|
|
<div class="viewcode-block" id="AMQMessage.__init__">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.AMQMessage.__init__">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_message</span><span class="p">:</span> <span class="n">DataMessage</span><span class="p">,</span> <span class="n">connection</span><span class="p">:</span> <span class="n">AbstractRobustConnection</span><span class="p">):</span>
|
|
<span class="c1"># Initialize the parent DataMessage with all properties from the input data_message</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span>
|
|
<span class="n">magic</span><span class="o">=</span><span class="n">data_message</span><span class="o">.</span><span class="n">magic</span><span class="p">(),</span>
|
|
<span class="nb">id</span><span class="o">=</span><span class="n">data_message</span><span class="o">.</span><span class="n">id</span><span class="p">(),</span>
|
|
<span class="n">method</span><span class="o">=</span><span class="n">data_message</span><span class="o">.</span><span class="n">method</span><span class="p">(),</span>
|
|
<span class="n">domain</span><span class="o">=</span><span class="n">data_message</span><span class="o">.</span><span class="n">domain</span><span class="p">(),</span>
|
|
<span class="n">path</span><span class="o">=</span><span class="n">data_message</span><span class="o">.</span><span class="n">path</span><span class="p">(),</span>
|
|
<span class="n">headers</span><span class="o">=</span><span class="n">data_message</span><span class="o">.</span><span class="n">headers</span><span class="p">(),</span>
|
|
<span class="n">trace_info</span><span class="o">=</span><span class="n">data_message</span><span class="o">.</span><span class="n">trace_info</span><span class="p">(),</span>
|
|
<span class="n">base64body</span><span class="o">=</span><span class="n">data_message</span><span class="o">.</span><span class="n">base64body</span><span class="p">(),</span>
|
|
<span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_connection</span> <span class="o">=</span> <span class="n">connection</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">extra_data</span> <span class="o">=</span> <span class="n">data_message</span><span class="o">.</span><span class="n">extra_data</span> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data_message</span><span class="p">,</span> <span class="s2">"extra_data"</span><span class="p">)</span> <span class="k">else</span> <span class="p">{}</span></div>
|
|
|
|
|
|
<span class="nd">@property</span>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">connection</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">AbstractRobustConnection</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""Get the AMQP connection associated with this message"""</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_connection</span></div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="DataResponse">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataResponse">[docs]</a>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">DataResponse</span><span class="p">(</span><span class="n">CleverMicroMessage</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The response message to REST & RPC style calls (note: the request is made with DataMessage)</span>
|
|
|
|
<span class="sd"> See DataResponseFactory for code to instantiate, serialize and deserialize the class</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<div class="viewcode-block" id="DataResponse.__init__">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataResponse.__init__">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="p">,</span>
|
|
<span class="n">magic</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="nb">id</span><span class="p">:</span> <span class="n">SnowflakeId</span><span class="p">,</span>
|
|
<span class="n">response_code</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">content_type</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">error</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">error_cause</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">headers</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]],</span>
|
|
<span class="n">trace_info</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span>
|
|
<span class="n">base64body</span><span class="p">:</span> <span class="nb">bytes</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="k">if</span> <span class="n">headers</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="n">headers</span> <span class="o">=</span> <span class="p">{}</span>
|
|
<span class="n">headers</span><span class="p">[</span><span class="s2">"Content-Type"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">content_type</span><span class="p">]</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span>
|
|
<span class="n">magic</span><span class="p">,</span>
|
|
<span class="nb">id</span><span class="p">,</span>
|
|
<span class="n">response_code</span><span class="p">,</span>
|
|
<span class="n">error</span><span class="p">,</span>
|
|
<span class="n">error_cause</span><span class="p">,</span>
|
|
<span class="n">headers</span><span class="p">,</span>
|
|
<span class="n">trace_info</span><span class="p">,</span>
|
|
<span class="n">base64body</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="DataResponse.response_code">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataResponse.response_code">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">response_code</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">m_field</span><span class="p">()</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="DataResponse.error">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataResponse.error">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">error</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">d_field</span><span class="p">()</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="DataResponse.error_cause">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.DataResponse.error_cause">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">error_cause</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">p_field</span><span class="p">()</span></div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="AMQRoute">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.AMQRoute">[docs]</a>
|
|
<span class="nd">@dataclass</span><span class="p">(</span><span class="n">frozen</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">AMQRoute</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Configuration item representing one AMQRoute. Adapter uses this to declare the Exchange</span>
|
|
<span class="sd"> and/or queue and bind the key as routing expression.</span>
|
|
|
|
<span class="sd"> :param component_name: a service/component name that this route points to (owner of the route)</span>
|
|
<span class="sd"> :param exchange: RabbitMQ exchange name</span>
|
|
<span class="sd"> :param queue: RabbitMQ queue name</span>
|
|
<span class="sd"> :param key: RabbitMQ TOPIC Exchange routing key</span>
|
|
<span class="sd"> :param timeout: Timeout in milliseconds, how long to wait for reply, or not waiting if less then 1</span>
|
|
<span class="sd"> :param valid_until: optional timestamp (millis from epoch) after which the route is ignored</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">component_name</span><span class="p">:</span> <span class="nb">str</span>
|
|
<span class="n">exchange</span><span class="p">:</span> <span class="nb">str</span>
|
|
<span class="n">queue</span><span class="p">:</span> <span class="nb">str</span>
|
|
<span class="n">key</span><span class="p">:</span> <span class="nb">str</span>
|
|
<span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span>
|
|
<span class="n">valid_until</span><span class="p">:</span> <span class="nb">int</span>
|
|
|
|
<span class="n">FORMAT</span> <span class="o">=</span> <span class="s2">"Component-Name:Exchange-Name:Queue-Name:Routing-Key:Timeout:Valid-Until"</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="p">(</span>
|
|
<span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">component_name</span><span class="si">}{</span><span class="n">RS</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">exchange</span><span class="si">}{</span><span class="n">RS</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">queue</span><span class="si">}{</span><span class="n">RS</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span>
|
|
<span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">RS</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">timeout</span><span class="si">}{</span><span class="n">RS</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">valid_until</span><span class="si">}</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">AMQRoute</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">component_name</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">component_name</span>
|
|
<span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">queue</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">queue</span>
|
|
<span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">key</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">key</span>
|
|
<span class="p">)</span>
|
|
<span class="k">return</span> <span class="kc">False</span>
|
|
|
|
<span class="nd">@property</span>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">primary_key</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Build the unique identifier of the route</span>
|
|
<span class="sd"> :return primary key</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">component_name</span><span class="si">}{</span><span class="n">RS</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">queue</span><span class="si">}{</span><span class="n">RS</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span>
|
|
|
|
<div class="viewcode-block" id="AMQRoute.as_string">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.AMQRoute.as_string">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">as_string</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="fm">__str__</span><span class="p">()</span></div>
|
|
</div>
|
|
|
|
|
|
|
|
<span class="c1"># Ensure backward compatibility</span>
|
|
<span class="n">AMQResponse</span> <span class="o">=</span> <span class="n">DataResponse</span>
|
|
|
|
|
|
<div class="viewcode-block" id="ServiceMessage">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.ServiceMessage">[docs]</a>
|
|
<span class="nd">@dataclass</span><span class="p">(</span><span class="n">frozen</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ServiceMessage</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The CleverMicro service message that is used to communicate the internal state of the AMQ channel.</span>
|
|
<span class="sd"> In v0.2 it supports service discovery / route registration and Backpressure status notification.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="nb">id</span><span class="p">:</span> <span class="n">SnowflakeId</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="n">payload_type</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="n">message_type</span><span class="p">:</span> <span class="n">ServiceMessageType</span> <span class="o">=</span> <span class="n">ServiceMessageType</span><span class="o">.</span><span class="n">UNKNOWN</span>
|
|
<span class="n">recipient_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="n">reply_to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="n">trace_info</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
|
|
<span class="n">message</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span>
|
|
|
|
<div class="viewcode-block" id="ServiceMessage.is_valid">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.ServiceMessage.is_valid">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">is_valid</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">message_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span></div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="ScalingRequestAlert">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.ScalingRequestAlert">[docs]</a>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ScalingRequestAlert</span><span class="p">(</span><span class="n">Enum</span><span class="p">):</span>
|
|
<span class="n">OVERLOAD</span> <span class="o">=</span> <span class="s2">"OVERLOAD"</span>
|
|
<span class="n">IDLE</span> <span class="o">=</span> <span class="s2">"IDLE"</span>
|
|
<span class="n">UPDATE</span> <span class="o">=</span> <span class="s2">"UPDATE"</span>
|
|
<span class="n">SCALE_UP</span> <span class="o">=</span> <span class="s2">"SCALE_UP"</span>
|
|
<span class="n">SCALE_DOWN</span> <span class="o">=</span> <span class="s2">"SCALE_DOWN"</span></div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="ScalingRequest">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.ScalingRequest">[docs]</a>
|
|
<span class="nd">@dataclass</span><span class="p">(</span><span class="n">frozen</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ScalingRequest</span><span class="p">:</span>
|
|
<span class="n">service_id</span><span class="p">:</span> <span class="nb">str</span>
|
|
<span class="n">task_id</span><span class="p">:</span> <span class="nb">str</span>
|
|
<span class="n">max_availability</span><span class="p">:</span> <span class="nb">int</span>
|
|
<span class="n">current_availability</span><span class="p">:</span> <span class="nb">int</span>
|
|
<span class="n">request_type</span><span class="p">:</span> <span class="n">ScalingRequestAlert</span>
|
|
<span class="n">version</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span>
|
|
|
|
<div class="viewcode-block" id="ScalingRequest.to_json">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.ScalingRequest.to_json">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">to_json</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""Converts the object to a JSON string matching the Java structure"""</span>
|
|
<span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span>
|
|
<span class="p">{</span>
|
|
<span class="s2">"version"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">version</span><span class="p">,</span>
|
|
<span class="s2">"serviceId"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">service_id</span><span class="p">,</span>
|
|
<span class="s2">"taskId"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">task_id</span><span class="p">,</span>
|
|
<span class="s2">"maxAvailability"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_availability</span><span class="p">,</span>
|
|
<span class="s2">"currentAvailability"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">current_availability</span><span class="p">,</span>
|
|
<span class="s2">"requestType"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">request_type</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="c1"># Using .value for Enum serialization</span>
|
|
<span class="p">},</span>
|
|
<span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
|
|
<span class="p">)</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="ScalingRequest.from_json">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.ScalingRequest.from_json">[docs]</a>
|
|
<span class="nd">@classmethod</span>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">from_json</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">json_str</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"ScalingRequest"</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""Creates a ScalingRequest from a JSON string"""</span>
|
|
<span class="n">data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">json_str</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="bp">cls</span><span class="p">(</span>
|
|
<span class="n">service_id</span><span class="o">=</span><span class="n">data</span><span class="p">[</span><span class="s2">"serviceId"</span><span class="p">],</span>
|
|
<span class="n">task_id</span><span class="o">=</span><span class="n">data</span><span class="p">[</span><span class="s2">"taskId"</span><span class="p">],</span>
|
|
<span class="n">max_availability</span><span class="o">=</span><span class="n">data</span><span class="p">[</span><span class="s2">"maxAvailability"</span><span class="p">],</span>
|
|
<span class="n">current_availability</span><span class="o">=</span><span class="n">data</span><span class="p">[</span><span class="s2">"currentAvailability"</span><span class="p">],</span>
|
|
<span class="n">request_type</span><span class="o">=</span><span class="n">ScalingRequestAlert</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s2">"requestType"</span><span class="p">]),</span> <span class="c1"># Convert string to Enum</span>
|
|
<span class="p">)</span></div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="viewcode-block" id="AMQErrorMessage">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.AMQErrorMessage">[docs]</a>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">AMQErrorMessage</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The error response message to RPC style call (note: the request is made with DataMessage)</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<div class="viewcode-block" id="AMQErrorMessage.__init__">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.AMQErrorMessage.__init__">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="p">,</span>
|
|
<span class="n">response_code</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
|
<span class="n">error</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">detail</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
|
<span class="n">content_type</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"application/json"</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">response_code</span> <span class="o">=</span> <span class="n">response_code</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">error</span> <span class="o">=</span> <span class="n">error</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">detail</span> <span class="o">=</span> <span class="n">detail</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">content_type</span> <span class="o">=</span> <span class="n">content_type</span></div>
|
|
|
|
|
|
<div class="viewcode-block" id="AMQErrorMessage.serialize">
|
|
<a class="viewcode-back" href="../../../modules/amqp.model.html#amqp.model.model.AMQErrorMessage.serialize">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">serialize</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bytes</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span>
|
|
<span class="p">{</span>
|
|
<span class="s2">"response_code"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">response_code</span><span class="p">,</span>
|
|
<span class="s2">"error"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">error</span><span class="p">,</span>
|
|
<span class="s2">"detail"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">detail</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
<span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s2">"utf-8"</span><span class="p">)</span></div>
|
|
</div>
|
|
|
|
</pre></div>
|
|
|
|
</div>
|
|
</div>
|
|
<footer>
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<p>© Copyright 2024, CleverThis.</p>
|
|
</div>
|
|
|
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
|
|
|
|
</footer>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<script>
|
|
jQuery(function () {
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|