Exemplo n.º 1
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
Exemplo n.º 2
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
Exemplo n.º 3
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
Exemplo n.º 4
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
Exemplo n.º 5
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
Exemplo n.º 6
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
Exemplo n.º 7
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
Exemplo n.º 8
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
Exemplo n.º 9
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
Exemplo n.º 10
0
class ResponseKeypair(Model):
    name = KubeName(required=True, min_length=3)
    public_key = StringType(required=True)
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, keypair: Keypair):
        model = cls()
        model.name = keypair.name
        model.public_key = keypair.public_key
        model.created_at = keypair.created_at
        model.updated_at = keypair.updated_at

        return model
Exemplo n.º 11
0
class ResponseBuiltInUser(Model):
    id = UUIDType(required=True)
    username = StringType(required=True)
    roles = ListType(StringType())
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, user: BuiltInUser):
        model = cls()
        model.id = user.id
        model.username = user.username
        model.roles = user.roles
        model.created_at = user.created_at
        model.updated_at = user.updated_at

        return model
Exemplo 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
Exemplo n.º 13
0
class ResponseServiceAccount(Model):
    service_account_id = UUIDType(required=True)
    name = StringType(required=True)
    project_id = UUIDType(required=True)
    role_id = UUIDType(required=True)
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, service_account: AuthNServiceAccount):
        model = cls()
        model.service_account_id = service_account.id
        model.name = service_account.name
        model.project_id = service_account.project_id
        model.role_id = service_account.role_id
        model.created_at = service_account.created_at
        model.updated_at = service_account.updated_at

        return model
Exemplo n.º 14
0
class ResponseFlavor(Model):
    name = KubeName(required=True, min_length=3)
    vcpus = IntType(required=True)
    ram = IntType(required=True)
    disk = IntType(required=True)
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, flavor: Flavor):
        model = cls()
        model.name = flavor.name
        model.vcpus = flavor.vcpus
        model.ram = flavor.ram
        model.disk = flavor.disk
        model.created_at = flavor.created_at
        model.updated_at = flavor.updated_at

        return model
Exemplo n.º 15
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
Exemplo n.º 16
0
class ResponseProject(Model):
    name = ProjectName(required=True, min_length=3)
    created_at = ArrowType(required=True)

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

        return project_model
Exemplo n.º 17
0
class ResponsePolicy(Model):
    id = UUIDType(required=True)
    name = StringType(required=True)
    description = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, policy: AuthZPolicy):
        policy_model = cls()
        policy_model.id = policy.id
        policy_model.name = policy.name
        policy_model.description = policy.description
        if policy_model.description is None:
            policy_model.description = ""

        policy_model.created_at = policy.created_at
        policy_model.updated_at = policy.updated_at

        return policy_model
Exemplo n.º 18
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
Exemplo n.º 19
0
class ResponsePolicy(Model):
    resource_version = StringType(required=True)
    bindings = ListType(ModelType(PolicyBinding), required=True)
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, policy: IAMPolicy):
        model = cls()
        model.resource_version = policy.resource_version

        model.bindings = []

        for binding in policy.bindings:
            binding_model = PolicyBinding()
            binding_model.role = binding['role']
            binding_model.members = binding['members']
            model.bindings.append(binding_model)

        model.created_at = policy.created_at
        model.updated_at = policy.updated_at
        return model
Exemplo n.º 20
0
class ResponseRole(Model):
    id = UUIDType(required=True)
    name = StringType(required=True)
    project_id = UUIDType()
    description = StringType()
    created_at = ArrowType(required=True)
    updated_at = ArrowType(required=True)

    @classmethod
    def from_database(cls, role: AuthZRole):
        role_model = cls()
        role_model.id = role.id
        role_model.name = role.name
        role_model.project_id = role.project_id
        role_model.description = role.description
        if role_model.description is None:
            role_model.description = ''

        role_model.created_at = role.created_at
        role_model.updated_at = role.updated_at

        return role_model
Exemplo n.º 21
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
Exemplo n.º 22
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
Exemplo n.º 23
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
Exemplo n.º 24
0
class ResponseOAuthToken(Model):
    access_token = StringType(required=True)
    expiry = ArrowType(required=True)