Ejemplo n.º 1
0
 def set_as_super_admin(self):
     self.set_as_anonymous()
     self.testbed.setup_env(USER_EMAIL='*****@*****.**',
                            overwrite=True)
     auth_testing.reset_local_state()
     auth_testing.mock_get_current_identity(
         self, auth.Identity.from_bytes('user:'******'USER_EMAIL']))
Ejemplo n.º 2
0
    def setUp(self):
        super(BotAuthTest, self).setUp()

        self.logs = []
        self.mock(logging, 'error', lambda l, *_args: self.logs.append(l))

        auth.bootstrap_ip_whitelist(auth.BOTS_IP_WHITELIST,
                                    ['1.2.3.4', '1.2.3.5'])
        auth.bootstrap_ip_whitelist('ip_whitelist', ['1.1.1.1', '1.2.3.4'])

        auth_testing.reset_local_state()
Ejemplo n.º 3
0
    def setUp(self):
        super(BotAuthTest, self).setUp()

        # Mock this out, otherwise it tries to fetch settings.cfg.
        self.mock(srv_cfg, 'get_ui_client_id', lambda: None)

        self.logs = []
        self.mock(logging, 'error',
                  lambda l, *_args: self.logs.append(l % _args))

        auth.bootstrap_ip_whitelist(auth.bots_ip_whitelist(),
                                    ['1.2.3.4', '1.2.3.5'])
        auth.bootstrap_ip_whitelist('ip_whitelist', ['1.1.1.1', '1.2.3.4'])

        auth_testing.reset_local_state()
Ejemplo n.º 4
0
    def setUp(self):
        super(AclTest, self).setUp()

        def settings():
            return config_pb2.SettingsCfg(auth=config_pb2.AuthSettings(
                admins_group='admins',
                bot_bootstrap_group='bot_bootstrap',
                privileged_users_group='privileged_users',
                users_group='users',
                view_all_bots_group='view_all_bots',
                view_all_tasks_group='view_all_tasks'))

        self.mock(config, 'settings', settings)
        auth_testing.reset_local_state()
        self._task_owned = task_request.TaskRequest(
            authenticated=auth.get_current_identity())
        self._task_other = task_request.TaskRequest(
            authenticated=auth.Identity(auth.IDENTITY_USER, 'larry@localhost'))
Ejemplo n.º 5
0
 def _add_to_group(group):
     auth.bootstrap_group(group, [auth.get_current_identity()])
     auth_testing.reset_local_state()
Ejemplo n.º 6
0
 def set_as_anonymous(self):
     """Removes all IPs from the whitelist."""
     self.testbed.setup_env(USER_EMAIL='', overwrite=True)
     auth.ip_whitelist_key(auth.bots_ip_whitelist()).delete()
     auth_testing.reset_local_state()
     auth_testing.mock_get_current_identity(self, auth.Anonymous)
Ejemplo n.º 7
0
 def set_as_bot(self):
     self.set_as_anonymous()
     auth.bootstrap_ip_whitelist(auth.bots_ip_whitelist(), [self.source_ip])
     auth_testing.reset_local_state()
     auth_testing.mock_get_current_identity(self,
                                            auth.IP_WHITELISTED_BOT_ID)
Ejemplo n.º 8
0
    def setUp(self):
        super(SwarmbucketApiTest, self).setUp()

        self.patch('components.utils.utcnow',
                   autospec=True,
                   return_value=datetime.datetime(2015, 11, 30))

        self.patch(
            'google.appengine.api.app_identity.get_default_version_hostname',
            return_value='cr-buildbucket.appspot.com')

        self.patch('creation._should_be_canary', side_effect=lambda p: p > 50)

        auth_testing.reset_local_state()
        auth.bootstrap_group('all', [auth.Anonymous])
        user.clear_request_cache()

        chromium_cfg = test_util.parse_bucket_cfg('''
          name: "luci.chromium.try"
          acls {
            role: SCHEDULER
            group: "all"
          }
          swarming {
            hostname: "swarming.example.com"
            builders {
              name: "linux"
              swarming_host: "swarming.example.com"
              category: "Chromium"
              build_numbers: YES
              recipe {
                cipd_package: "infra/recipe_bundle"
                cipd_version: "refs/heads/master"
                name: "presubmit"
                properties: "foo:bar"
                properties_j: "baz:1"
              }
              dimensions: "foo:bar"
              dimensions: "baz:baz"
              auto_builder_dimension: YES

              # Override builder cache without timeout to make tests
              # simpler.
              caches {
                path: "builder"
                name: "builder_cache_name"
              }
            }
            builders {
              name: "windows"
              category: "Chromium"
              swarming_host: "swarming.example.com"
              recipe {
                cipd_package: "infra/recipe_bundle"
                cipd_version: "refs/heads/master"
                name: "presubmit"
              }

              # Override builder cache without timeout to make tests
              # simpler.
              caches {
                path: "builder"
                name: "builder_cache_name"
              }
            }
          }
    ''')
        config.put_bucket('chromium', 'deadbeef', chromium_cfg)

        v8_cfg = test_util.parse_bucket_cfg('''
      name: "luci.v8.try"
      acls {
        role: READER
        group: "all"
      }
    ''')
        config.put_bucket('v8', 'deadbeef', v8_cfg)

        props_def = {
            'extra_args': [
                'cook',
                '-recipe',
                '${recipe}',
                '-properties',
                '${properties_json}',
                '-logdog-project',
                '${project}',
            ],
            'cipd_input': {
                'packages': [
                    {
                        'package_name': 'infra/test/bar/${os_ver}',
                        'path': '.',
                        'version': 'latest',
                    },
                    {
                        'package_name': 'infra/test/foo/${platform}',
                        'path': 'third_party',
                        'version': 'stable',
                    },
                ],
            },
        }
        self.task_template = {
            'name':
            'bb-${build_id}-${project}-${builder}',
            'task_slices': [{
                'properties': props_def,
                'wait_for_capacity': False,
            }],
        }

        self.patch(
            'swarming._get_task_template',
            autospec=True,
            return_value=('rev', self.task_template),
        )

        self.settings = service_config_pb2.SettingsCfg(
            swarming=dict(
                milo_hostname='milo.example.com',
                luci_runner_package=dict(
                    package_name='infra/tools/luci_runner',
                    version='luci-runner-version',
                ),
                kitchen_package=dict(
                    package_name='infra/tools/kitchen',
                    version='kitchen-version',
                ),
                user_packages=[
                    dict(
                        package_name='infra/tools/git',
                        version='git-version',
                    ),
                ],
            ),
            logdog=dict(hostname='logdog.example.com'),
        )
        self.patch(
            'config.get_settings_async',
            autospec=True,
            return_value=future(self.settings),
        )
Ejemplo n.º 9
0
 def set_as_privileged_user(self):
   self.set_as_anonymous()
   self.testbed.setup_env(USER_EMAIL='*****@*****.**', overwrite=True)
   auth_testing.reset_local_state()
   auth_testing.mock_get_current_identity(
       self, auth.Identity.from_bytes('user:'******'USER_EMAIL']))
Ejemplo n.º 10
0
 def set_as_bot(self):
   self.set_as_anonymous()
   auth.bootstrap_ip_whitelist(auth.BOTS_IP_WHITELIST, [self.source_ip])
   auth_testing.reset_local_state()
   auth_testing.mock_get_current_identity(
       self, auth.Identity.from_bytes('bot:' + self.source_ip))
Ejemplo n.º 11
0
 def set_as_anonymous(self):
     """Removes all IPs from the whitelist."""
     self.testbed.setup_env(USER_EMAIL='', overwrite=True)
     auth.ip_whitelist_key(auth.BOTS_IP_WHITELIST).delete()
     auth_testing.reset_local_state()
Ejemplo n.º 12
0
 def set_as_bot(self):
     self.set_as_anonymous()
     auth.bootstrap_ip_whitelist(auth.BOTS_IP_WHITELIST, [self.source_ip])
     auth_testing.reset_local_state()
     auth_testing.mock_get_current_identity(
         self, auth.Identity.from_bytes('bot:' + self.source_ip))
Ejemplo n.º 13
0
    def setUp(self):
        super(SwarmbucketApiTest, self).setUp()

        self.patch('components.utils.utcnow',
                   autospec=True,
                   return_value=datetime.datetime(2015, 11, 30))

        self.patch(
            'google.appengine.api.app_identity.get_default_version_hostname',
            return_value='cr-buildbucket.appspot.com')

        self.patch('creation._should_be_canary', side_effect=lambda p: p > 50)

        auth_testing.reset_local_state()
        auth.bootstrap_group('all', [auth.Anonymous])
        user.clear_request_cache()

        chromium_cfg = test_util.parse_bucket_cfg('''
          name: "luci.chromium.try"
          acls {
            role: SCHEDULER
            group: "all"
          }
          swarming {
            hostname: "swarming.example.com"
            builders {
              name: "linux"
              swarming_host: "swarming.example.com"
              category: "Chromium"
              build_numbers: YES
              recipe {
                cipd_package: "infra/recipe_bundle"
                cipd_version: "refs/heads/master"
                name: "presubmit"
                properties: "foo:bar"
                properties_j: "baz:1"
              }
              dimensions: "foo:bar"
              dimensions: "baz:baz"
              auto_builder_dimension: YES

              # Override builder cache without timeout to make tests
              # simpler.
              caches {
                path: "builder"
                name: "builder_cache_name"
              }
            }
            builders {
              name: "windows"
              category: "Chromium"
              swarming_host: "swarming.example.com"
              recipe {
                cipd_package: "infra/recipe_bundle"
                cipd_version: "refs/heads/master"
                name: "presubmit"
              }

              # Override builder cache without timeout to make tests
              # simpler.
              caches {
                path: "builder"
                name: "builder_cache_name"
              }
            }
          }
    ''')
        config.put_bucket('chromium', 'deadbeef', chromium_cfg)

        v8_cfg = test_util.parse_bucket_cfg('''
      name: "luci.v8.try"
      acls {
        role: READER
        group: "all"
      }
    ''')
        config.put_bucket('v8', 'deadbeef', v8_cfg)

        self.settings = service_config_pb2.SettingsCfg(
            swarming=dict(
                milo_hostname='milo.example.com',
                bbagent_package=dict(
                    package_name='infra/tools/bbagent',
                    version='luci-runner-version',
                ),
                kitchen_package=dict(
                    package_name='infra/tools/kitchen',
                    version='kitchen-version',
                ),
                user_packages=[
                    dict(
                        package_name='infra/tools/git',
                        version='git-version',
                    ),
                ],
            ),
            logdog=dict(hostname='logdog.example.com'),
        )
        self.patch(
            'config.get_settings_async',
            autospec=True,
            return_value=future(self.settings),
        )
 def set_as_anonymous(self):
     self.testbed.setup_env(USER_EMAIL='', overwrite=True)
     auth.ip_whitelist_key(auth.bots_ip_whitelist()).delete()
     auth_testing.reset_local_state()
Ejemplo n.º 15
0
 def set_as_anonymous(self):
   """Removes all IPs from the whitelist."""
   self.testbed.setup_env(USER_EMAIL='', overwrite=True)
   auth.ip_whitelist_key(auth.BOTS_IP_WHITELIST).delete()
   auth_testing.reset_local_state()
   auth_testing.mock_get_current_identity(self, auth.Anonymous)
Ejemplo n.º 16
0
 def set_as_anonymous(self):
   self.testbed.setup_env(USER_EMAIL='', overwrite=True)
   auth.ip_whitelist_key(auth.BOTS_IP_WHITELIST).delete()
   auth_testing.reset_local_state()
Ejemplo n.º 17
0
  def setUp(self):
    super(SwarmbucketApiTest, self).setUp()

    self.patch(
        'components.utils.utcnow', autospec=True,
        return_value=datetime.datetime(2015, 11, 30))

    auth_testing.reset_local_state()
    auth.bootstrap_group('all', [auth.Anonymous])

    chromium_cfg = '''
      name: "luci.chromium.try"
      acls {
        role: SCHEDULER
        group: "all"
      }
      swarming {
        hostname: "swarming.example.com"
        builders {
          name: "linux_chromium_rel_ng"
          category: "Chromium"
          build_numbers: true
          recipe {
            repository: "https://example.com"
            name: "presubmit"
          }
        }
        builders {
          name: "win_chromium_rel_ng"
          category: "Chromium"
        }
      }
    '''
    config.Bucket(
        id='luci.chromium.try',
        project_id='chromium',
        revision='deadbeef',
        config_content=chromium_cfg,
        config_content_binary=config_test.text_to_binary(chromium_cfg),
    ).put()

    v8_cfg = '''
      name: "luci.v8.try"
      acls {
        role: READER
        group: "all"
      }
    '''
    config.Bucket(
        id='luci.v8.try',
        project_id='v8',
        revision='deadbeef',
        config_content=v8_cfg,
        config_content_binary=config_test.text_to_binary(v8_cfg),
    ).put()

    self.task_template = {
      'name': 'buildbucket:${bucket}:${builder}',
      'priority': '100',
      'expiration_secs': '3600',
      'properties': {
        'execution_timeout_secs': '3600',
        'extra_args': [
          'cook',
          '-repository', '${repository}',
          '-revision', '${revision}',
          '-recipe', '${recipe}',
          '-properties', '${properties_json}',
          '-logdog-project', '${project}',
        ],
        'caches': [
          {'path': '${cache_dir}/builder', 'name': 'builder_${builder_hash}'},
        ],
        'cipd_input': {
          'packages': [
            {
              'package_name': 'infra/test/bar/${os_ver}',
              'path': '.',
              'version': 'latest',
            },
            {
              'package_name': 'infra/test/foo/${platform}',
              'path': 'third_party',
              'version': 'stable',
            },
          ],
        },
      }
    }

    self.patch(
        'swarming.swarming.get_task_template_async',
        return_value=future(('rev', self.task_template, False)))