Ejemplo n.º 1
0
class ResponseImage(Model):
    id = UUIDType(required=True)
    name = StringType(required=True, min_length=3)
    file_name = StringType(required=True)
    locked = BooleanType(required=True)
    visibility = EnumType(ImageVisibility, required=True)
    region_id = UUIDType(required=True)
    state = EnumType(ImageState, required=True)
    current_task_id = UUIDType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, image: Image):
        image_model = cls()
        image_model.id = image.id
        image_model.name = image.name

        image_model.file_name = image.file_name
        image_model.visibility = image.visibility
        image_model.locked = image.locked
        image_model.region_id = image.region_id
        image_model.state = image.state
        image_model.current_task_id = image.current_task_id

        image_model.created_at = image.created_at
        image_model.updated_at = image.updated_at

        return image_model
Ejemplo n.º 2
0
class ResponseVolume(Model):
    name = KubeName(required=True, min_length=3)
    zone_name = UUIDType(required=True)
    size = IntType(required=True)
    attached_to = UUIDType()
    state = EnumType(ResourceState, required=True)
    task = EnumType(VolumeTask)
    error_message = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, volume: Volume):
        model = cls()
        model.name = volume.name
        model.zone_name = volume.zone_name
        model.size = volume.size
        model.state = volume.state
        model.attached_to = volume.attached_to_name
        model.task = volume.task
        model.error_message = volume.error_message
        model.created_at = volume.created_at
        model.updated_at = volume.updated_at

        return model
Ejemplo n.º 3
0
class ResponseInstance(Model):
    name = KubeName(required=True, min_length=3)
    image_name = KubeName()
    network_port_id = KubeName(required=True)
    region_name = KubeName(required=True)
    zone_name = KubeName()
    service_account_name = KubeName()
    keypair_names = ListType(KubeName, default=list)
    state = EnumType(ResourceState, required=True)
    power_state = EnumType(VMPowerState, required=True)

    flavor_name = KubeName(required=True)
    vcpus = IntType(required=True)
    ram = IntType(required=True)
    disk = IntType(required=True)

    task = EnumType(VMTask)
    tags = DictType(KubeString, default=dict)
    user_data = StringType()
    error_message = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, instance: Instance):
        instance_model = cls()
        instance_model.name = instance.name
        instance_model.image_name = instance.image_name

        instance_model.network_port_id = instance.network_port_id
        instance_model.service_account_name = instance.service_account_name

        instance_model.region_name = instance.region_name
        if instance.zone_name is not None:
            instance_model.zone_name = instance.zone_name

        for keypair_name in instance.keypair_names:
            instance_model.keypair_names.append(keypair_name)

        instance_model.state = instance.state
        if instance.error_message != "":
            instance_model.error_message = instance.error_message

        instance_model.power_state = instance.power_state

        if instance.flavor_name is not None:
            instance_model.flavor_name = instance.flavor_name

        instance_model.vcpus = instance.vcpus
        instance_model.ram = instance.ram
        instance_model.disk = instance.disk

        instance_model.task = instance.task

        instance_model.tags = instance.tags
        instance_model.user_data = instance.user_data
        instance_model.created_at = instance.created_at
        instance_model.updated_at = instance.updated_at
        return instance_model
Ejemplo n.º 4
0
class ResponseZone(Model):
    id = UUIDType(required=True)
    name = StringType(required=True, min_length=3)
    region_id = UUIDType(required=True)
    vm_cluster = StringType(required=True)
    vm_datastore = StringType(required=True)
    vm_folder = StringType()
    core_provision_percent = IntType(required=True)
    ram_provision_percent = IntType(required=True)
    schedulable = BooleanType(required=True)
    state = EnumType(ZoneState, required=True)
    current_task_id = UUIDType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, zone: Zone):
        zone_model = cls()
        zone_model.id = zone.id
        zone_model.name = zone.name
        zone_model.region_id = zone.region_id
        zone_model.vm_cluster = zone.vm_cluster
        zone_model.vm_datastore = zone.vm_datastore
        zone_model.vm_folder = zone.vm_folder
        zone_model.core_provision_percent = zone.core_provision_percent
        zone_model.ram_provision_percent = zone.ram_provision_percent
        zone_model.schedulable = zone.schedulable

        zone_model.state = zone.state
        zone_model.current_task_id = zone.current_task_id

        zone_model.created_at = zone.created_at
        zone_model.updated_at = zone.updated_at

        return zone_model
Ejemplo n.º 5
0
class ResponseZone(Model):
    name = KubeName(required=True, min_length=3)
    region_name = KubeName()
    vm_cluster = StringType(required=True)
    vm_datastore = StringType(required=True)
    vm_folder = StringType()
    core_provision_percent = IntType(required=True)
    ram_provision_percent = IntType(required=True)
    schedulable = BooleanType(required=True)
    state = EnumType(ResourceState, required=True)
    error_message = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, zone: Zone):
        zone_model = cls()
        zone_model.name = zone.name
        zone_model.region_name = zone.region_name
        zone_model.vm_cluster = zone.vm_cluster
        zone_model.vm_datastore = zone.vm_datastore
        zone_model.vm_folder = zone.vm_folder
        zone_model.core_provision_percent = zone.core_provision_percent
        zone_model.ram_provision_percent = zone.ram_provision_percent
        zone_model.schedulable = zone.schedulable

        zone_model.state = zone.state
        if zone.error_message != "":
            zone_model.error_message = zone.error_message
        zone_model.created_at = zone.created_at
        zone_model.updated_at = zone.updated_at

        return zone_model
Ejemplo n.º 6
0
class ResponseNetwork(Model):
    name = KubeName(required=True, min_length=3)
    port_group = StringType(required=True)
    cidr = IPv4NetworkType(required=True)
    gateway = IPv4AddressType(required=True)
    dns_servers = ListType(IPv4AddressType, min_size=1, required=True)
    pool_start = IPv4AddressType(required=True)
    pool_end = IPv4AddressType(required=True)
    region_name = KubeName()
    state = EnumType(ResourceState, required=True)
    error_message = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, network: Network):
        network_model = cls()
        network_model.name = network.name

        network_model.port_group = network.port_group
        network_model.cidr = network.cidr
        network_model.gateway = network.gateway
        network_model.dns_servers = network.dns_servers
        network_model.pool_start = network.pool_start
        network_model.pool_end = network.pool_end
        network_model.region_name = network.region_name

        network_model.state = network.state
        if network.error_message != "":
            network_model.error_message = network.error_message
        network_model.created_at = network.created_at
        network_model.updated_at = network.updated_at

        return network_model
Ejemplo n.º 7
0
class ResponseRegion(Model):
    name = KubeName(required=True, min_length=3)
    datacenter = StringType(required=True, )
    image_datastore = StringType(required=True)
    image_folder = StringType()
    schedulable = BooleanType(required=True)
    state = EnumType(ResourceState, required=True)
    error_message = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, region: Region):
        region_model = cls()
        region_model.name = region.name
        region_model.datacenter = region.datacenter
        region_model.image_datastore = region.image_datastore
        region_model.image_folder = region.image_folder
        region_model.schedulable = region.schedulable

        region_model.state = region.state
        if region.error_message != "":
            region_model.error_message = region.error_message

        region_model.created_at = region.created_at
        region_model.updated_at = region.updated_at

        return region_model
Ejemplo n.º 8
0
class ResponseImage(Model):
    project_name = StringType(required=True)
    name = KubeName(required=True, min_length=3)
    file_name = StringType()
    region_name = StringType(required=True)
    state = EnumType(ResourceState, required=True)
    error_message = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, image: Image):
        image_model = cls()
        image_model.project_name = image.project_name
        image_model.name = image.name

        image_model.file_name = image.file_name
        image_model.region_name = image.region_name

        image_model.state = image.state
        if image.error_message != "":
            image_model.error_message = image.error_message
        image_model.created_at = image.created_at
        image_model.updated_at = image.updated_at

        return image_model
Ejemplo n.º 9
0
class ResponseRegion(Model):
    id = UUIDType(required=True)
    name = StringType(required=True, min_length=3)
    datacenter = StringType(required=True, )
    image_datastore = StringType(required=True)
    image_folder = StringType()
    schedulable = BooleanType(required=True)
    state = EnumType(RegionState, required=True)
    current_task_id = UUIDType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, region: Region):
        region_model = cls()
        region_model.id = region.id
        region_model.name = region.name
        region_model.datacenter = region.datacenter
        region_model.image_datastore = region.image_datastore
        region_model.image_folder = region.image_folder
        region_model.schedulable = region.schedulable

        region_model.state = region.state
        region_model.current_task_id = region.current_task_id

        region_model.created_at = region.created_at
        region_model.updated_at = region.updated_at

        return region_model
Ejemplo n.º 10
0
class ResponseRole(Model):
    name = KubeName(required=True, min_length=3)
    permissions = ListType(StringType, default=list)
    state = EnumType(ResourceState, required=True)
    created_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, role):
        model = cls()
        model.name = role.name
        model.permissions = role.permissions
        model.state = role.state
        model.created_at = role.created_at

        return model
Ejemplo n.º 11
0
class ResponseServiceAccount(Model):
    name = KubeName(required=True, min_length=3)
    email = EmailType(required=True)
    keys = DictType(ArrowType, required=True)
    state = EnumType(ResourceState, required=True)
    created_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, service_account):
        model = cls()
        model.name = service_account.name
        model.email = service_account.email
        model.keys = service_account.keys
        model.state = service_account.state
        model.created_at = service_account.created_at

        return model
Ejemplo n.º 12
0
class ResponseProject(Model):
    id = UUIDType(required=True)
    name = StringType(required=True, min_length=3)
    state = EnumType(ProjectState, required=True)
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, project: Project):
        project_model = cls()
        project_model.id = project.id
        project_model.name = project.name
        project_model.state = project.state

        project_model.created_at = project.created_at
        project_model.updated_at = project.updated_at

        return project_model
Ejemplo n.º 13
0
class ResponseNetworkPort(Model):
    id = UUIDType(required=True)
    network_name = KubeName(required=True)
    ip_address = IPv4AddressType(required=True)
    state = EnumType(ResourceState, required=True)
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, network_port: NetworkPort):
        model = cls()
        model.id = network_port.name
        model.network_name = network_port.network_name
        model.ip_address = network_port.ip_address
        model.state = network_port.state
        model.created_at = network_port.created_at
        model.updated_at = network_port.updated_at

        return model
Ejemplo n.º 14
0
class TaskModel(Model):
    id = UUIDType(required=True)
    name = StringType(required=True)
    state = EnumType(TaskState)
    error_message = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)
    stopped_at = ArrowType()

    @classmethod
    def from_database(cls, task: Task):
        task_model = cls()
        task_model.id = task.id
        task_model.name = task.name
        task_model.state = task.state
        task_model.error_message = task.error_message
        task_model.created_at = task.created_at
        task_model.updated_at = task.updated_at
        task_model.stopped_at = task.stopped_at

        return task_model
Ejemplo n.º 15
0
class ResponseInstance(Model):
    id = UUIDType(required=True)
    name = StringType(required=True, min_length=3)
    image_id = UUIDType(required=True)
    network_port_id = UUIDType(required=True)
    region_id = UUIDType(required=True)
    zone_id = UUIDType()
    service_account_id = UUIDType()
    keypair_ids = ListType(UUIDType, default=list)
    state = EnumType(InstanceState, required=True)
    tags = DictType(StringType, default=dict)

    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, instance: Instance):
        instance_model = cls()
        instance_model.id = instance.id
        instance_model.name = instance.name
        instance_model.image_id = instance.image_id
        instance_model.network_port_id = instance.network_port_id
        instance_model.state = instance.state
        instance_model.tags = instance.tags
        instance_model.service_account_id = instance.service_account_id

        instance_model.region_id = instance.region_id
        if instance.zone_id is not None:
            instance_model.zone_id = instance.zone_id

        for keypair in instance.keypairs:
            instance_model.keypair_ids.append(keypair.id)

        instance_model.created_at = instance.created_at
        instance_model.updated_at = instance.updated_at

        return instance_model
Ejemplo n.º 16
0
class RequestCreateImage(Model):
    name = StringType(required=True, min_length=3)
    file_name = StringType(required=True)
    visibility = EnumType(ImageVisibility, required=True)
    region_id = UUIDType(required=True)
Ejemplo n.º 17
0
class RequestInstanceImage(Model):
    name = StringType(required=True)
    visibility = EnumType(ImageVisibility, required=True)
Ejemplo n.º 18
0
class RequestCreateRole(Model):
    name = StringType(required=True, min_length=3)
    type = EnumType(RoleType, required=True)
    description = StringType()
Ejemplo n.º 19
0
class ParamsListRole(Model):
    type = EnumType(RoleType, required=True)
    limit = IntType(default=100, max_value=100, min_value=1)
    marker = UUIDType()