Exemple #1
0
def prepare_lun_parameters(**kwargs):
    sp = kwargs.get('sp')
    if isinstance(sp, UnityStorageProcessor):
        sp_node = sp.to_node_enum()
    elif isinstance(sp, NodeEnum):
        sp_node = sp
    else:
        sp_node = NodeEnum.parse(sp)
    NodeEnum.verify(sp_node)

    TieringPolicyEnum.verify(kwargs.get('tiering_policy'))

    lun_parameters = UnityClient.make_body(
        isThinEnabled=kwargs.get('is_thin'),
        isCompressionEnabled=kwargs.get('is_compression'),
        size=kwargs.get('size'),
        pool=kwargs.get('pool'),
        defaultNode=sp_node,
        fastVPParameters=UnityClient.make_body(
            tieringPolicy=kwargs.get('tiering_policy')),
        ioLimitParameters=UnityClient.make_body(
            ioLimitPolicy=kwargs.get('io_limit_policy')))

    # Empty host access can be used to wipe the host_access
    host_access = UnityClient.make_body(kwargs.get('host_access'),
                                        allow_empty=True)

    if host_access is not None:
        lun_parameters['hostAccess'] = host_access
    return lun_parameters
Exemple #2
0
    def _compose_lun_parameter(cli, **kwargs):
        sp = kwargs.get('sp')
        if isinstance(sp, UnityStorageProcessor):
            sp_node = sp.to_node_enum()
        else:
            sp_node = None

        TieringPolicyEnum.verify(kwargs.get('tiering_policy'))
        NodeEnum.verify(sp_node)

        # TODO:iolimit_policy and snap_schedule
        req_body = cli.make_body(
            name=kwargs.get('name'),
            description=kwargs.get('description'),
            replicationParameters=cli.make_body(
                isReplicationDestination=kwargs.get('is_repl_dst')),
            lunParameters=cli.make_body(
                isThinEnabled=kwargs.get('is_thin'),
                size=kwargs.get('size'),
                pool=kwargs.get('pool'),
                defaultNode=sp_node,
                fastVPParameters=cli.make_body(
                    tieringPolicy=kwargs.get('tiering_policy')),
            ))

        # Empty host access can be used to wipe the host_access
        if 'lunParameters' not in req_body:
            req_body['lunParameters'] = {}
        req_body['lunParameters']['hostAccess'] = cli.make_body(
            kwargs.get('host_access'), allow_empty=True)

        return req_body
Exemple #3
0
    def _compose_lun_parameter(cli, **kwargs):
        sp = kwargs.get('sp')
        if isinstance(sp, UnityStorageProcessor):
            sp_node = sp.to_node_enum()
        else:
            sp_node = None

        TieringPolicyEnum.verify(kwargs.get('tiering_policy'))
        NodeEnum.verify(sp_node)

        # TODO:iolimit_policy and snap_schedule
        req_body = cli.make_body(
            name=kwargs.get('name'),
            description=kwargs.get('description'),
            replicationParameters=cli.make_body(
                isReplicationDestination=kwargs.get('is_repl_dst')
            ),
            lunParameters=cli.make_body(
                isThinEnabled=kwargs.get('is_thin'),
                size=kwargs.get('size'),
                pool=kwargs.get('pool'),
                defaultNode=sp_node,
                fastVPParameters=cli.make_body(
                    tieringPolicy=kwargs.get('tiering_policy')),
            )
        )

        # Empty host access can be used to wipe the host_access
        if 'lunParameters' not in req_body:
            req_body['lunParameters'] = {}
        req_body['lunParameters']['hostAccess'] = cli.make_body(
            kwargs.get('host_access'), allow_empty=True)

        return req_body
Exemple #4
0
 def to_node_enum(self):
     if self.name in ['SP A']:
         value = 0
     elif self.name in ['SP B']:
         value = 1
     else:
         # NodeEnum.Unknown
         value = 2989
     return NodeEnum.parse(value)
Exemple #5
0
 def to_node_enum(self):
     if self.name in ['SP A']:
         value = 0
     elif self.name in ['SP B']:
         value = 1
     else:
         # NodeEnum.Unknown
         value = 2989
     return NodeEnum.parse(value)
Exemple #6
0
def prepare_lun_parameters(cli=None, **kwargs):
    @version('<4.3')
    def make_compression_body(cli=None, is_compression=None):
        return UnityClient.make_body(isCompressionEnabled=is_compression)

    @version('>=4.3')  # noqa
    def make_compression_body(cli=None, is_compression=None):
        return UnityClient.make_body(isDataReductionEnabled=is_compression)

    sp = kwargs.get('sp')
    if isinstance(sp, UnityStorageProcessor):
        sp_node = sp.to_node_enum()
    elif isinstance(sp, NodeEnum):
        sp_node = sp
    else:
        sp_node = NodeEnum.parse(sp)
    NodeEnum.verify(sp_node)

    TieringPolicyEnum.verify(kwargs.get('tiering_policy'))

    lun_parameters = UnityClient.make_body(
        isThinEnabled=kwargs.get('is_thin'),
        size=kwargs.get('size'),
        pool=kwargs.get('pool'),
        defaultNode=sp_node,
        fastVPParameters=UnityClient.make_body(
            tieringPolicy=kwargs.get('tiering_policy')),
        ioLimitParameters=UnityClient.make_body(
            ioLimitPolicy=kwargs.get('io_limit_policy')),
        isAdvancedDedupEnabled=kwargs.get('is_advanced_dedup_enabled'))

    compression_body = make_compression_body(cli, kwargs.get('is_compression'))

    lun_parameters.update(compression_body)

    # Empty host access can be used to wipe the host_access
    host_access = UnityClient.make_body(kwargs.get('host_access'),
                                        allow_empty=True)

    if host_access is not None:
        lun_parameters['hostAccess'] = host_access
    return lun_parameters