Exemplo n.º 1
0
    def main(self, name, metadata_path):
        self.setup_logger()
        self.log.info("Registering new application using metadata at "
                      "%s" % metadata_path)

        try:
            with open(metadata_path) as m:
                meta = m.read()
            MetadataConfig.from_file(metadata_path)
        except:
            self.log.error("Invalid metadata in %s" % metadata_path)
            return ExitCodes.command_error

        self.api_connect(self.parent.config.server.login,
                         self.parent.config.server.apikey,
                         self.parent.config.server.url)

        try:
            self.api.application.post({'name': name,
                                       'metadata': meta})
        except SlumberHttpBaseException as e:
            self.handle_error(e)
            return ExitCodes.command_error
        else:
            self.log.info("Application '%s' created successfully" % name)
Exemplo n.º 2
0
 def clean_metadata(self):
     metadata = self.cleaned_data['metadata']
     try:
         meta = metadata.read()
         MetadataConfig.from_string(meta)
         metadata = meta
     except Exception as e:
         raise forms.ValidationError(_("%s" % e))
     return metadata
Exemplo n.º 3
0
    def main(self, name, metadata_path):
        self.setup_logger()
        self.log.info("Registering new application using metadata at "
                      "%s" % metadata_path)

        meta = MetadataConfig.from_file(metadata_path)

        self.api_connect(self.parent.config.server.login,
                         self.parent.config.server.apikey,
                         self.parent.config.server.url)

        try:
            resp = self.api.application.get(name=name)
        except SlumberHttpBaseException as e:
            self.handle_error(e)
        else:
            if not resp.get('objects'):
                self.log.error("No such application registered: %s" % name)
                return ExitCodes.notfound_error

            app = resp['objects'][0]

            try:
                self.api.application(app['id']).patch(
                    {'metadata': meta.dump_string()})
            except SlumberHttpBaseException as e:
                self.handle_error(e)
            else:
                self.log.info("Application '%s' metadata updated "
                              "successfully" % name)
Exemplo n.º 4
0
def metadata_detect(request):
    return MetadataConfig.from_string('''
interpreter:
  type: ruby
  versions:
    - 2.1.0

repository:
  clone: echo "Cloned"
  update: echo "Updated"
''')
Exemplo n.º 5
0
def test_builder(builder_config):
    metadata_path = os.path.join(os.path.dirname(__file__),
                                 'mock_metadata.yml')
    metadata = MetadataConfig.from_file(metadata_path)
    builder = Builder(builder_config, metadata)
    for build_result in builder.build_package():
        continue
    assert build_result.progress == 100
    assert build_result.parent is None
    assert build_result.interpreter_version == '1.8.7'
    assert build_result.filename
    assert build_result.checksum
    assert build_result.bytes > 0
Exemplo n.º 6
0
 def obj_create(self, bundle, request=None, **kwargs):
     # TODO use MongoCleanedDataFormValidation ??
     metadata = bundle.data.get('metadata')
     if not metadata:
         raise exceptions.ValidationError(_('Missing metadata'))
     try:
         MetadataConfig.from_string(metadata)
     except Exception as e:
         raise exceptions.ValidationError(
             _('Invalid metadata: {err}').format(err=e))
     log.debug(_("Going to create new application for user "
                 "'{name}'").format(name=bundle.request.user.username))
     try:
         return super(MongoEngineResource, self).obj_create(
             bundle, request=request, owner=bundle.request.user, **kwargs)
     except mongoengine.ValidationError as e:
         log.warning(_("Can't create new application, invalid data "
                       "payload: {msg}").format(msg=e.message))
         raise exceptions.ValidationError(e.message)
     except mongoengine.NotUniqueError as e:
         log.warning(_("Can't create new application, duplicated fields: "
                       "{msg}").format(msg=e.message))
         raise exceptions.ValidationError(e.message)
Exemplo n.º 7
0
def test_supported_versions_major(interpreters_config):
    metadata = MetadataConfig.from_string('''
interpreter:
  type: ruby
  versions:
    - '2'

repository:
  clone: echo "Cloned"
  update: echo "Updated"
''')
    valid = supported_versions(interpreters_config, metadata)
    assert len(valid.keys()) == 2
    assert '2.0' in valid
    assert '2.1' in valid
Exemplo n.º 8
0
def metadata_manual(request):
    return MetadataConfig.from_string('''
interpreter:
  type: ruby
  versions:
    - 2.1.0

repository:
  clone: echo "Cloned"
  update: echo "Updated"
  revision:
    id: revision id cmd
    author: author cmd
    date: date cmd
    description: description cmd
    changelog: changelog cmd
''')
Exemplo n.º 9
0
 def metadata_config(self):
     if self.metadata:
         return MetadataConfig.from_string(self.metadata)
     return {}