def test_ec2_params()

in aws/hhvm1/lambdas/test.py [0:0]


  def test_ec2_params(self):
    ec2_params = activities.MakeBinaryPackage(
      {'version': '4.26.1', 'platform': 'ubuntu-18.04-bionic'}
    ).ec2_params()
    self.assertEqual(ec2_params['MinCount'], 1)
    self.assertEqual(ec2_params['InstanceType'], 'r6i.4xlarge')
    self.assertEqual(
      ec2_params['BlockDeviceMappings'][0]['DeviceName'],
      '/dev/sda1',
    )
    org = Config.override_org or 'hhvm'
    branch = Config.override_branch or 'master'
    expected_prefix = (
      '#!/bin/bash\n'
      '        ACTIVITY_ARN="arn:aws:states:us-west-2:223121549624:activity:'
        'hhvm-make-binary-package"\n'
      f'        SCRIPT_URL="https://raw.githubusercontent.com/{org}/packaging/'
        f'{branch}/aws/userdata/make-binary-package.sh"\n'
      '        INIT_URL=""\n'
      f'        AFTER_TASK_URL="https://raw.githubusercontent.com/{org}/packaging/'
        f'{branch}/aws/hhvm1/worker/after-task/make-binary-package.sh"\n'
      '        \n'
      '        #!/bin/bash\n'
    )
    self.assertEqual(
      ec2_params['UserData'][:len(expected_prefix)],
      expected_prefix,
    )

    # has INIT_URL
    ec2_params = activities.PublishBinaryPackages({}).ec2_params()
    expected_prefix = (
      '#!/bin/bash\n'
      '        ACTIVITY_ARN="arn:aws:states:us-west-2:223121549624:activity:'
        'hhvm-publish-binary-packages"\n'
      f'        SCRIPT_URL="https://raw.githubusercontent.com/{org}/packaging/'
        f'{branch}/aws/userdata/update-repos.sh"\n'
      f'        INIT_URL="https://raw.githubusercontent.com/{org}/packaging/'
        f'{branch}/aws/hhvm1/worker/init/update-repos.sh"\n'
      '        AFTER_TASK_URL=""\n'
      '        \n'
      '        #!/bin/bash\n'
    )
    self.assertEqual(
      ec2_params['UserData'][:len(expected_prefix)],
      expected_prefix
    )

    # overrides worker_env()
    ec2_params = activities.BuildAndPublishMacOS({}).ec2_params()
    expected_prefix = (
      '#!/bin/bash\n'
      '        ACTIVITY_ARN="arn:aws:states:us-west-2:223121549624:activity:'
        'hhvm-build-and-publish-macos"\n'
      f'        SCRIPT_URL="https://raw.githubusercontent.com/{org}/packaging/'
        f'{branch}/aws/userdata/trigger-macos-builds.sh"\n'
      '        INIT_URL=""\n'
      '        AFTER_TASK_URL=""\n'
      '        SKIP_SEND_TASK_SUCCESS="1"\n'
      '        #!/bin/bash\n'
    )
    self.assertEqual(
      ec2_params['UserData'][:len(expected_prefix)],
      expected_prefix
    )

    # fake_ec2 (should change SCRIPT_URL and remove AFTER_TASK_URL)
    ec2_params = activities.MakeBinaryPackage({
      'buildInput': {'debug': 'fake_ec2'},
      'version': '4.26.1',
      'platform': 'ubuntu-18.04-bionic',
    }).ec2_params()
    expected_prefix = (
      '#!/bin/bash\n'
      '        ACTIVITY_ARN="arn:aws:states:us-west-2:223121549624:activity:'
        'hhvm-make-binary-package"\n'
      f'        SCRIPT_URL="https://raw.githubusercontent.com/{org}/packaging/'
        f'{branch}/aws/hhvm1/worker/dummy-task.sh"\n'
      '        INIT_URL=""\n'
      f'        AFTER_TASK_URL=""\n'
      '        \n'
      '        #!/bin/bash\n'
    )
    self.assertEqual(
      ec2_params['UserData'][:len(expected_prefix)],
      expected_prefix,
    )

    # fake_ec2 (should change SCRIPT_URL and remove INIT_URL)
    ec2_params = activities.PublishBinaryPackages(
      {'buildInput': {'debug': 'fake_ec2'}}
    ).ec2_params()
    expected_prefix = (
      '#!/bin/bash\n'
      '        ACTIVITY_ARN="arn:aws:states:us-west-2:223121549624:activity:'
        'hhvm-publish-binary-packages"\n'
      f'        SCRIPT_URL="https://raw.githubusercontent.com/{org}/packaging/'
        f'{branch}/aws/hhvm1/worker/dummy-task.sh"\n'
      '        INIT_URL=""\n'
      '        AFTER_TASK_URL=""\n'
      '        \n'
      '        #!/bin/bash\n'
    )
    self.assertEqual(
      ec2_params['UserData'][:len(expected_prefix)],
      expected_prefix
    )

    # fake_ec2 (should change SCRIPT_URL and remove SKIP_SEND_TASK_SUCCESS)
    ec2_params = activities.BuildAndPublishMacOS(
      {'buildInput': {'debug': 'fake_ec2'}}
    ).ec2_params()
    expected_prefix = (
      '#!/bin/bash\n'
      '        ACTIVITY_ARN="arn:aws:states:us-west-2:223121549624:activity:'
        'hhvm-build-and-publish-macos"\n'
      f'        SCRIPT_URL="https://raw.githubusercontent.com/{org}/packaging/'
        f'{branch}/aws/hhvm1/worker/dummy-task.sh"\n'
      '        INIT_URL=""\n'
      '        AFTER_TASK_URL=""\n'
      '        \n'
      '        #!/bin/bash\n'
    )
    self.assertEqual(
      ec2_params['UserData'][:len(expected_prefix)],
      expected_prefix
    )