Skip to content
Snippets Groups Projects
Commit 3658cc6b authored by root's avatar root
Browse files

DeviceBlock and DeviceType for device

parent 254ddc14
No related branches found
No related tags found
1 merge request!4Device product and initial workflow
from orchestrator import OrchestratorCore
from orchestrator.cli.main import app as core_cli
from orchestrator.settings import AppSettings
#import products
#import workflows
# import products
# import workflows
app = OrchestratorCore(base_settings=AppSettings())
......
from typing import Optional
from orchestrator.domain.base import ProductBlockModel
from orchestrator.types import SubscriptionLifecycle
import ipaddress
class DeviceBlockInactive(ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="DeviceBlock"):
fqdn: Optional[str] = None
ts_address: Optional[str] = None
ts_port: Optional[int] = None
lo_ipv4_address: Optional[ipaddress.IPv4Address] = None
lo_ipv6_address: Optional[ipaddress.IPv6Address] = None
lo_iso_address: Optional[str] = None
si_ipv4_network: Optional[ipaddress.IPv4Network] = None
ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None
ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None
site_city: Optional[str] = None
site_country: Optional[str] = None
site_country_code: Optional[str] = None
site_latitude: Optional[str] = None
site_longitude: Optional[str] = None
snmp_location: Optional[str] = None
class DeviceBlockProvisioning(DeviceBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
fqdn: str
ts_address: str
ts_port: str
lo_ipv4_address: Optional[ipaddress.IPv4Address] = None
lo_ipv6_address: Optional[ipaddress.IPv6Address] = None
lo_iso_address: Optional[str] = None
si_ipv4_network: Optional[ipaddress.IPv4Network] = None
ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None
ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None
site_city: Optional[str] = None
site_country: Optional[str] = None
site_country_code: Optional[str] = None
site_latitude: Optional[str] = None
site_longitude: Optional[str] = None
snmp_location: Optional[str] = None
class DeviceBlock(DeviceBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
fqdn: str
ts_address: str
ts_port: str
lo_ipv4_address: ipaddress.IPv4Address
lo_ipv6_address: ipaddress.IPv6Address
lo_iso_address: str
si_ipv4_network: ipaddress.IPv4Network
ias_lt_ipv4_network: ipaddress.IPv4Network
ias_lt_ipv6_network: ipaddress.IPv6Network
site_city: str
site_country: str
site_country_code: str
site_latitude: str
site_longitude: str
snmp_location: str
from orchestrator.domain.base import SubscriptionModel
from orchestrator.types import SubscriptionLifecycle, strEnum
from products.product_blocks.device import DeviceBlock, DeviceBlockInactive, DeviceBlockProvisioning
class DeviceType(strEnum):
router = "router"
switch= "switch"
class DeviceVendor(strEnum):
Juniper = "juniper"
Newvendor= "newvendor"
class DeviceInactive(SubscriptionModel, is_base=True):
device_type: DeviceType
device_vendor: DeviceVendor
device: DeviceBlockInactive
class DeviceProvisioning(DeviceInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
device_type: DeviceType
device_vendor: DeviceVendor
device: DeviceBlockProvisioning
class Device(DeviceProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
device_type: DeviceType
device_vendor: DeviceVendor
device: DeviceBlock
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment