Ejemplo n.º 1
0
    def test_get_platform_version(self):
        self.create_config_file()
        fileoperations.write_config_setting('global', 'platform_version',
                                            'my-platform-version')

        self.assertEqual('my-platform-version',
                         fileoperations.get_platform_version())
Ejemplo n.º 2
0
def get_version_status(version):
    platform_name = fileoperations.get_platform_name()

    if version is None:
        version = fileoperations.get_platform_version()

    if version is None:
        version = _get_latest_version(platform_name)
        fileoperations.update_platform_version(version)

    if version is None:
        raise InvalidPlatformVersionError(
            strings['exit.nosuchplatformversion'])

    arn = _version_to_arn(version)

    _, platform_name, platform_version = PlatformVersion.arn_to_platform(arn)

    platform = describe_custom_platform_version(
        platform_arn=arn,
        owner=Constants.OWNED_BY_SELF,
        platform_name=platform_name,
        platform_version=platform_version,
    )

    if not platform:
        raise InvalidPlatformVersionError(
            strings['exit.nosuchplatformversion'])

    created = platform.get('DateCreated')
    description = platform.get('Description')
    maintainer = platform.get('Maintainer')
    status = platform.get('PlatformStatus')
    updated = platform.get('DateUpdated')
    framework_name = platform.get('FrameworkName')
    framework_version = platform.get('FrameworkVersion')
    os_name = platform.get('OperatingSystemName')
    os_version = platform.get('OperatingSystemVersion')
    language_name = platform.get('ProgrammingLanguageName')
    language_version = platform.get('ProgrammingLanguageVersion')
    supported_tiers = platform.get('SupportedTierList')

    io.echo('Platform: ', arn)
    io.echo('Name: ', platform_name)
    io.echo('Version: ', version)
    io.echo('Maintainer: ', maintainer) if maintainer else None
    io.echo('Description: ', description) if description else None
    io.echo('Framework: ', framework_name) if framework_name else None
    io.echo('Framework: ', framework_name) if framework_name else None
    io.echo('Framework Version: ',
            framework_version) if framework_version else None
    io.echo('Operating System: ', os_name) if os_name else None
    io.echo('Operating System Version: ', os_version) if os_version else None
    io.echo('Programming Language: ', language_name) if language_name else None
    io.echo('Programming Language Version: ',
            language_version) if language_version else None
    io.echo('Supported Tiers: ', supported_tiers) if supported_tiers else None
    io.echo('Status: ', status)
    io.echo('Created: ', created)
    io.echo('Updated: ', updated)
Ejemplo n.º 3
0
    def get_platform_name_and_version(self):
        # Get app name from command line arguments
        platform_name = self.app.pargs.platform_name
        interactive = self.app.pargs.interactive
        version = None

        # Get app name from config file, if exists
        if not platform_name:
            try:
                platform_name = fileoperations.get_platform_name(default=None)
                version = fileoperations.get_platform_version()
            except NotInitializedError:
                platform_name = None

        # Ask for app name
        if not platform_name or interactive:
            platform_name, version = platformops.get_platform_name_and_version_interactive(
            )

        if sys.version_info[0] < 3 and isinstance(platform_name, unicode):
            try:
                platform_name.encode('utf8')
                platform_name = platform_name.encode('utf8')
            except UnicodeDecodeError:
                pass

        return platform_name, version
Ejemplo n.º 4
0
def show_platform_events(follow, version):
    platform_name = fileoperations.get_platform_name()

    if version is None:
        version = fileoperations.get_platform_version()

        if version is None:
            raise InvalidPlatformVersionError(
                strings['exit.nosuchplatformversion'])

        platform = _get_platform(platform_name,
                                 version,
                                 owner=Constants.OWNED_BY_SELF)

        if platform is None:
            raise InvalidPlatformVersionError(
                strings['exit.nosuchplatformversion'])

        arn = platform['PlatformArn']
    else:
        arn = _version_to_arn(version)

    if arn is None:
        raise InvalidPlatformVersionError(
            strings['exit.nosuchplatformversion'])

    print_events(follow=follow, platform_arn=arn, app_name=None, env_name=None)
Ejemplo n.º 5
0
    def do_command(self):
        version = self.app.pargs.version
        stream = self.app.pargs.stream

        if version is None:
            platform_name = fileoperations.get_platform_name()
            version = fileoperations.get_platform_version()
        else:
            platform_name = fileoperations.get_platform_name()

            if VALID_PLATFORM_VERSION_FORMAT.match(version):
                pass
            elif PlatformVersion.is_valid_arn(version):
                _, platform_name, version = PlatformVersion.arn_to_platform(version)
            elif VALID_PLATFORM_SHORT_FORMAT.match(version):
                match = VALID_PLATFORM_SHORT_FORMAT.match(version)
                platform_name, version = match.group(1, 2)
            else:
                raise InvalidPlatformVersionError(strings['exit.invalidversion'])

        io.echo('Retrieving logs...')

        if stream:
            try:
                logsops.stream_platform_logs(
                    platform_name,
                    version,
                    log_name="%s/%s" % (platform_name, version),
                    formatter=platformops.PackerStreamFormatter())
            except NotFoundError:
                raise NotFoundError('Unable to find logs in CloudWatch.')
        else:
            paginate_cloudwatch_logs(platform_name, version)
Ejemplo n.º 6
0
    def get_platform_name_and_version(self):
        # Get app name from command line arguments
        platform_name = self.app.pargs.platform_name
        interactive = self.app.pargs.interactive
        version = None

        # Get app name from config file, if exists
        if not platform_name:
            try:
                platform_name = fileoperations.get_platform_name(default=None)
                version = fileoperations.get_platform_version()
            except NotInitializedError:
                platform_name = None

        # Ask for app name
        if not platform_name or interactive:
            platform_name, version = platformops.get_platform_name_and_version_interactive()

        if sys.version_info[0] < 3 and isinstance(platform_name, unicode):
            try:
                platform_name.encode('utf8')
                platform_name = platform_name.encode('utf8')
            except UnicodeDecodeError:
                pass

        return platform_name, version
Ejemplo n.º 7
0
    def do_command(self):
        version = self.app.pargs.version
        stream = self.app.pargs.stream

        if version is None:
            platform_name = fileoperations.get_platform_name()
            version = fileoperations.get_platform_version()
        else:
            platform_name = fileoperations.get_platform_name()

            if VALID_PLATFORM_VERSION_FORMAT.match(version):
                pass
            elif PlatformVersion.is_valid_arn(version):
                _, platform_name, version = PlatformVersion.arn_to_platform(version)
            elif VALID_PLATFORM_SHORT_FORMAT.match(version):
                match = VALID_PLATFORM_SHORT_FORMAT.match(version)
                platform_name, version = match.group(1, 2)
            else:
                raise InvalidPlatformVersionError(strings['exit.invalidversion'])

        io.echo('Retrieving logs...')

        if stream:
            try:
                logsops.stream_platform_logs(
                    platform_name,
                    version,
                    log_name="%s/%s" % (platform_name, version),
                    # Packer is our only builder type at this point
                    formatter=platformops.PackerStreamFormatter())
            except NotFoundError:
                raise NotFoundError('Unable to find logs in CloudWatch.')
        else:
            # print with paginator
            paginate_cloudwatch_logs(platform_name, version)
Ejemplo n.º 8
0
def get_version_status(version):
    platform_name = fileoperations.get_platform_name()

    if version is None:
        version = fileoperations.get_platform_version()

    if version is None:
        version = _get_latest_version(platform_name)
        fileoperations.update_platform_version(version)

    if version is None:
        raise InvalidPlatformVersionError(strings['exit.nosuchplatformversion'])

    arn = _version_to_arn(version)

    _, platform_name, platform_version = PlatformVersion.arn_to_platform(arn)

    platform = describe_custom_platform_version(
        platform_arn=arn,
        owner=Constants.OWNED_BY_SELF,
        platform_name=platform_name,
        platform_version=platform_version,
    )

    if not platform:
        raise InvalidPlatformVersionError(strings['exit.nosuchplatformversion'])

    created = platform.get('DateCreated')
    description = platform.get('Description')
    maintainer = platform.get('Maintainer')
    status = platform.get('PlatformStatus')
    updated = platform.get('DateUpdated')
    framework_name = platform.get('FrameworkName')
    framework_version = platform.get('FrameworkVersion')
    os_name = platform.get('OperatingSystemName')
    os_version = platform.get('OperatingSystemVersion')
    language_name = platform.get('ProgrammingLanguageName')
    language_version = platform.get('ProgrammingLanguageVersion')
    supported_tiers = platform.get('SupportedTierList')

    io.echo('Platform: ', arn)
    io.echo('Name: ', platform_name)
    io.echo('Version: ', version)
    io.echo('Maintainer: ', maintainer) if maintainer else None
    io.echo('Description: ', description) if description else None
    io.echo('Framework: ', framework_name) if framework_name else None
    io.echo('Framework: ', framework_name) if framework_name else None
    io.echo('Framework Version: ', framework_version) if framework_version else None
    io.echo('Operating System: ', os_name) if os_name else None
    io.echo('Operating System Version: ', os_version) if os_version else None
    io.echo('Programming Language: ', language_name) if language_name else None
    io.echo('Programming Language Version: ', language_version) if language_version else None
    io.echo('Supported Tiers: ', supported_tiers) if supported_tiers else None
    io.echo('Status: ', status)
    io.echo('Created: ', created)
    io.echo('Updated: ', updated)
Ejemplo n.º 9
0
def get_platform_name_and_version(platform_name):
    version = None

    if not platform_name:
        try:
            platform_name = fileoperations.get_platform_name(default=None)
            version = fileoperations.get_platform_version()
        except NotInitializedError:
            platform_name, version = platformops.get_platform_name_and_version_interactive()

    if sys.version_info[0] < 3 and isinstance(platform_name, unicode):
        try:
            platform_name.encode('utf8')
            platform_name = platform_name.encode('utf8')
        except UnicodeDecodeError:
            pass

    return platform_name, version
Ejemplo n.º 10
0
def show_platform_events(follow, version):
    platform_name = fileoperations.get_platform_name()

    if version is None:
        version = fileoperations.get_platform_version()

        if version is None:
            raise InvalidPlatformVersionError(strings['exit.nosuchplatformversion'])

        platform = describe_custom_platform_version(
            platform_name=platform_name,
            platform_version=version,
            owner=Constants.OWNED_BY_SELF
        )

        if platform is None:
            raise InvalidPlatformVersionError(strings['exit.nosuchplatformversion'])

        arn = platform['PlatformArn']
    else:
        arn = _version_to_arn(version)

    print_events(follow=follow, platform_arn=arn, app_name=None, env_name=None)
Ejemplo n.º 11
0
    def test_update_platform_version(self):
        self.create_config_file()

        fileoperations.update_platform_version('my-platform-version')
        self.assertEqual('my-platform-version',
                         fileoperations.get_platform_version())
Ejemplo n.º 12
0
 def test_get_platform_version__directory_not_initialized(self):
     self.assertIsNone(fileoperations.get_platform_version())
Ejemplo n.º 13
0
def get_version_status(version):
    platform_name = fileoperations.get_platform_name()

    if version is None:
        version = fileoperations.get_platform_version()

    if version is None:
        version = _get_latest_version(platform_name)
        fileoperations.update_platform_version(version)

    if version is None:
        raise InvalidPlatformVersionError(
            strings['exit.nosuchplatformversion'])

    arn = _version_to_arn(version)

    if arn is None:
        raise InvalidPlatformVersionError(
            strings['exit.nosuchplatformversion'])

    _, platform_name, platform_version = PlatformVersion.arn_to_platform(arn)

    platform = _get_platform(platform_name,
                             platform_version,
                             owner=Constants.OWNED_BY_SELF)
    platform_status = elasticbeanstalk.list_platform_versions(
        platform_name=platform_name,
        platform_version=platform_version,
        owner=Constants.OWNED_BY_SELF)

    if platform is None:
        raise InvalidPlatformVersionError(
            strings['exit.nosuchplatformversion'])

    try:
        description = platform['Description']
    except KeyError:
        description = None

    status = platform['PlatformStatus']
    created = platform['DateCreated']
    updated = platform['DateUpdated']

    io.echo('Platform: ', arn)
    io.echo('Name: ', platform_name)
    io.echo('Version: ', version)

    # TODO: Cleanup this odd pattern used here.
    try:
        io.echo('Maintainer: ', platform['Maintainer'])
    except KeyError:
        pass

    if description:
        io.echo('Description: ', description)

    if platform_status:
        platform_status = platform_status[0]

        try:
            io.echo('Framework: ', platform_status['FrameworkName'])
        except KeyError:
            pass

        try:
            io.echo('Framework Version: ', platform_status['FrameworkVersion'])
        except KeyError:
            pass

        try:
            io.echo('Operating System: ',
                    platform_status['OperatingSystemName'])
        except KeyError:
            pass

        try:
            io.echo('Operating System Version: ',
                    platform_status['OperatingSystemVersion'])
        except KeyError:
            pass

        try:
            io.echo('Programming Language: ',
                    platform_status['ProgrammingLanguageName'])
        except KeyError:
            pass

        try:
            io.echo('Programming Language Version: ',
                    platform_status['ProgrammingLanguageVersion'])
        except KeyError:
            pass

        try:
            io.echo('Supported Tiers: ',
                    str.join(',', platform_status['SupportedTierList']))
        except KeyError:
            pass

    io.echo('Status: ', status)
    io.echo('Created: ', created)
    io.echo('Updated: ', updated)