Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
590 changes: 124 additions & 466 deletions README.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions cloudshell/shell/standards/pdu/attribute_names.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from __future__ import annotations

API_PORT = "Web API Port"
API_SCHEME = "Protocol Scheme"
12 changes: 8 additions & 4 deletions cloudshell/shell/standards/pdu/autoload_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
ResourceAttribute,
)

__all__ = ["GenericResourceModel", "PDUPowerSocket", "PDUResourceModel"]
__all__ = ["GenericResourceModel", "PowerSocket", "PDUResourceModel"]

from cloudshell.shell.standards.core.namespace_type import NameSpaceType


class PDUPowerSocket(AbstractResource):
_RESOURCE_MODEL = "PDUPowerSocket"
class PowerSocket(AbstractResource):
_RESOURCE_MODEL = "PowerSocket"
_RELATIVE_ADDRESS_PREFIX = "PS"
_NAME_TEMPLATE = "Power Socket {}"
_FAMILY_NAME = "CS_PowerSocket"
Expand All @@ -31,6 +31,10 @@ class PDUResourceModel(GenericResourceModel):
@property
def entities(self):
class _PDUEntities:
PowerSocket = PDUPowerSocket
PowerSocket = PowerSocket

return _PDUEntities

def connect_power_socket(self, power_socket: PowerSocket) -> None:
"""Connect power socket sub resource."""
self._add_sub_resource_with_type_restrictions(power_socket, [PowerSocket])
13 changes: 13 additions & 0 deletions cloudshell/shell/standards/pdu/resource_config.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,29 @@
from __future__ import annotations

from attrs import define
from attrs.validators import ge

from cloudshell.shell.standards import attribute_names as attr_name
from cloudshell.shell.standards.core.resource_conf import BaseConfig, attr
from cloudshell.shell.standards.resource_config_generic_models import (
GenericCLIConfig,
GenericConsoleServerConfig,
GenericSnmpConfig,
)

from cloudshell.shell.standards.pdu import attribute_names as api_attr_name


@define(slots=False, str=False)
class PDUResourceConfig(
GenericSnmpConfig, GenericCLIConfig, GenericConsoleServerConfig
):
...


@define(slots=False, str=False)
class RESTAPIPDUResourceConfig(BaseConfig):
api_user: str = attr(attr_name.USER)
api_password: str = attr(attr_name.PASSWORD, is_password=True)
api_port: int = attr(api_attr_name.API_PORT, validator=ge(0))
api_scheme: str = attr(api_attr_name.API_SCHEME)
20 changes: 8 additions & 12 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
import os

from setuptools import find_packages, setup

with open(os.path.join("version.txt")) as version_file:
version_from_file = version_file.read().strip()

with open("requirements.txt") as f_required:
required = f_required.read().splitlines()
def read_file(file_name: str) -> str:
with open(file_name) as fo:
return fo.read().strip()

with open("test_requirements.txt") as f_tests:
required_for_tests = f_tests.read().splitlines()

setup(
name="cloudshell-shell-pdu-standard",
url="https://www.quali.com/",
author="Quali",
author_email="info@quali.com",
packages=find_packages(),
install_requires=required,
tests_require=required_for_tests,
python_requires="~=3.7",
version=version_from_file,
install_requires=read_file("requirements.txt"),
tests_require=read_file("test_requirements.txt"),
python_requires="~=3.9",
version=read_file("version.txt"),
package_data={"": ["*.txt"]},
description="QualiSystems Shells PDU Standard Package",
long_description="QualiSystems Shells PDU Standard Package",
include_package_data=True,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
from cloudshell.shell.standards.pdu.autoload_model import (
PDUPowerSocket,
PDUResourceModel,
)
from cloudshell.shell.standards.pdu.autoload_model import PDUResourceModel, PowerSocket


def test_resource_model(api):
Expand All @@ -18,7 +15,7 @@ def test_resource_model(api):
assert resource.resource_model == "GenericResource"
assert resource.cloudshell_model_name == f"{shell_name}.{resource.resource_model}"

assert resource.entities.PowerSocket == PDUPowerSocket
assert resource.entities.PowerSocket == PowerSocket

assert isinstance(resource.unique_identifier, str)
assert resource.unique_identifier
2 changes: 2 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,6 @@ max-line-length = 88
;we don't need have docstrings in every func, class and package
;and W503 is not PEP 8 compliant
ignore = D100,D101,D102,D103,D104,D105,D106,D107,D401,W503,E203
requirements-file = requirements.txt
per-file-ignores = tests/*:I900
known-modules = cloudshell-shell-standards:[cloudshell.shell.standards]
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.0.0
1.0.1
Loading