aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/Prox_Heat_L2FWD_Packet_Touch-4Port-1507804802428.json
diff options
context:
space:
mode:
authorEmma Foley <emma.l.foley@intel.com>2018-10-17 12:00:59 +0100
committerAbhijit Sinha <abhijit.sinha@intel.com>2018-10-26 10:58:10 +0000
commit1daf5b71fb2b0b79b0459cca7046e96cd20eda1d (patch)
tree20ffe2b45c298dcce795dc9afb42ff71ce7e325d /dashboard/Prox_Heat_L2FWD_Packet_Touch-4Port-1507804802428.json
parenta4084d27de22c64ecb690369c7bed49175703adf (diff)
Proposing Volodymyr Mytnyk as a committer to Yardstick
Volodymyr has contributed to Yardstick in the following ways over the last year: * Regular reviews * Validation of changes * Bug fixes across different contexts, TGs and SampleVNFs * Tested and updated many sample testcases for NSB * Installer improvements Change-Id: I9a28ac15bd6ceb5f5c599e602fb2651bd7b9e622 Signed-off-by: Emma Foley <emma.l.foley@intel.com>
Diffstat (limited to 'dashboard/Prox_Heat_L2FWD_Packet_Touch-4Port-1507804802428.json')
0 files changed, 0 insertions, 0 deletions
c } /* Generic.Emph */ .highlight .gi { color: #a6e22e } /* Generic.Inserted */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #75715e } /* Generic.Subheading */ .highlight .kc { color: #66d9ef } /* Keyword.Constant */ .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ .highlight .kn { color: #f92672 } /* Keyword.Namespace */ .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ .highlight .kt { color: #66d9ef } /* Keyword.Type */ .highlight .ld { color: #e6db74 } /* Literal.Date */ .highlight .m { color: #ae81ff } /* Literal.Number */ .highlight .s { color: #e6db74 } /* Literal.String */ .highlight .na { color: #a6e22e } /* Name.Attribute */ .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ .highlight .nc { color: #a6e22e } /* Name.Class */ .highlight .no { color: #66d9ef } /* Name.Constant */ .highlight .nd { color: #a6e22e } /* Name.Decorator */ .highlight .ni { color: #f8f8f2 } /* Name.Entity */ .highlight .ne { color: #a6e22e } /* Name.Exception */ .highlight .nf { color: #a6e22e } /* Name.Function */ .highlight .nl { color: #f8f8f2 } /* Name.Label */ .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ .highlight .nx { color: #a6e22e } /* Name.Other */ .highlight .py { color: #f8f8f2 } /* Name.Property */ .highlight .nt { color: #f92672 } /* Name.Tag */ .highlight .nv { color: #f8f8f2 } /* Name.Variable */ .highlight .ow { color: #f92672 } /* Operator.Word */ .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ .highlight .mb { color: #ae81ff } /* Literal.Number.Bin */ .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ .highlight .sa { color: #e6db74 } /* Literal.String.Affix */ .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ .highlight .sc { color: #e6db74 } /* Literal.String.Char */ .highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */ .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ .highlight .se { color: #ae81ff } /* Literal.String.Escape */ .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ .highlight .sx { color: #e6db74 } /* Literal.String.Other */ .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #a6e22e } /* Name.Function.Magic */ .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ .highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */ .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ } @media (prefers-color-scheme: light) { .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

======================
Get valid server state
======================

Related Blueprints:
===================

https://blueprints.launchpad.net/nova/+spec/get-valid-server-state

Problem description
===================

Previously when the owner of a VM has queried his VMs, he has not received
enough state information, states have not changed fast enough in the VIM and
they have not been accurate in some scenarios. With this change this gap is now
closed.

A typical case is that, in case of a fault of a host, the user of a high
availability service running on top of that host, needs to make an immediate
switch over from the faulty host to an active standby host. Now, if the compute
host is forced down [1] as a result of that fault, the user has to be notified
about this state change such that the user can react accordingly. Similarly,
a change of the host state to "maintenance" should also be notified to the
users.

What is changed
===============

A new ``host_status`` parameter is added to the ``/servers/{server_id}`` and
``/servers/detail`` endpoints in microversion 2.16. By this new parameter
user can get additional state information about the host.

``host_status`` possible values where next value in list can override the
previous:

- ``UP`` if nova-compute is up.
- ``UNKNOWN`` if nova-compute status was not reported by servicegroup driver
  within configured time period. Default is within 60 seconds,
  but can be changed with ``service_down_time`` in nova.conf.
- ``DOWN`` if nova-compute was forced down.
- ``MAINTENANCE`` if nova-compute was disabled. MAINTENANCE in API directly
  means nova-compute service is disabled. Different wording is used to avoid
  the impression that the whole host is down, as only scheduling of new VMs
  is disabled.
- Empty string indicates there is no host for server.

``host_status`` is returned in the response in case the policy permits. By
default the policy is for admin only in Nova policy.json::

  "os_compute_api:servers:show:host_status": "rule:admin_api"

For an NFV use case this has to also be enabled for the owner of the VM::

  "os_compute_api:servers:show:host_status": "rule:admin_or_owner"

REST API examples:
==================

Case where nova-compute is enabled and reporting normally::

    GET /v2.1/{tenant_id}/servers/{server_id}

    200 OK
    {
      "server": {
        "host_status": "UP",
        ...
      }
    }

Case where nova-compute is enabled, but not reporting normally::

    GET /v2.1/{tenant_id}/servers/{server_id}

    200 OK
    {
      "server": {
        "host_status": "UNKNOWN",
        ...
      }
    }

Case where nova-compute is enabled, but forced_down::

    GET /v2.1/{tenant_id}/servers/{server_id}

    200 OK
    {
      "server": {
        "host_status": "DOWN",
        ...
      }
    }

Case where nova-compute is disabled::

    GET /v2.1/{tenant_id}/servers/{server_id}

    200 OK
    {
      "server": {
        "host_status": "MAINTENANCE",
        ...
      }
    }

Host Status is also visible in python-novaclient::

  +-------+------+--------+------------+-------------+----------+-------------+
  | ID    | Name | Status | Task State | Power State | Networks | Host Status |
  +-------+------+--------+------------+-------------+----------+-------------+
  | 9a... | vm1  | ACTIVE | -          | RUNNING     | xnet=... | UP          |
  +-------+------+--------+------------+-------------+----------+-------------+

Links:
======

[1] Manual for OpenStack NOVA API for marking host down
http://artifacts.opnfv.org/doctor/docs/manuals/mark-host-down_manual.html

[2] OpenStack compute manual page
http://developer.openstack.org/api-ref-compute-v2.1.html#compute-v2.1