class NexusAPI::ParameterBuilder

Public Class Methods

docker_group(name, members, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 3
def self.docker_group(name, members, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'docker' => {
      'v1Enabled' => false,
      'forceBasicAuth' => true
    },
    'group' => {}
  }
  apply_changes(default: default_options, override: options, name: name, members: members)
end
docker_hosted(name, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 19
def self.docker_hosted(name, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true,
      'writePolicy' => 'allow_once'
    },
    'cleanup' => {
      'policyNames' => []
    },
    'docker' => {
      'v1Enabled' => false,
      'forceBasicAuth' => true
    }
  }
  apply_changes(default: default_options, override: options, name: name)
end
docker_proxy(name, remote_url, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 38
def self.docker_proxy(name, remote_url, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'proxy' => {
      'contentMaxAge' => 1440,
      'metadataMaxAge' => 1440
    },
    'negativeCache' => {
      'enabled' => true,
      'timeToLive' => 1440
    },
    'httpClient' => {
      'blocked' => false,
      'autoBlock' => true
    },
    'docker' => {
      'v1Enabled' => false,
      'forceBasicAuth' => true
    },
    'dockerProxy' => {
      'indexType' => 'REGISTRY'
    }
  }
  apply_changes(default: default_options, override: options, name: name, url: remote_url)
end
maven_group(name, members, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 68
def self.maven_group(name, members, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'group' => {}
  }
  apply_changes(default: default_options, override: options, name: name, members: members)
end
maven_hosted(name, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 80
def self.maven_hosted(name, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true,
      'writePolicy' => 'allow_once'
    },
    'cleanup' => {
      'policyNames' => []
    },
    'maven' => {
      'versionPolicy' => 'RELEASE',
      'layoutPolicy' => 'STRICT'
    }
  }
  apply_changes(default: default_options, override: options, name: name)
end
maven_proxy(name, remote_url, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 99
def self.maven_proxy(name, remote_url, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'cleanup' => {
      'policyNames' => []
    },
    'proxy' => {
      'contentMaxAge' => 1440,
      'metadataMaxAge' => 1440
    },
    'negativeCache' => {
      'enabled' => true,
      'timeToLive' => 1440
    },
    'httpClient' => {
      'blocked' => false,
      'autoBlock' => true,
    },
    'maven' => {
      'versionPolicy' => 'RELEASE',
      'layoutPolicy' => 'STRICT'
    }
  }
  apply_changes(default: default_options, override: options, name: name, url: remote_url)
end
npm_group(name, members, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 129
def self.npm_group(name, members, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'group' => {}
  }
  apply_changes(default: default_options, override: options, name: name, members: members)
end
npm_hosted(name, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 141
def self.npm_hosted(name, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true,
      'writePolicy' => 'allow_once'
    },
    'cleanup' => {
      'policyNames' => []
    }
  }
  apply_changes(default: default_options, override: options, name: name)
end
npm_proxy(name, remote_url, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 156
def self.npm_proxy(name, remote_url, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'cleanup' => {
      'policyNames' => []
    },
    'proxy' => {
      'contentMaxAge' => 1440,
      'metadataMaxAge' => 1440
    },
    'negativeCache' => {
      'enabled' => true,
      'timeToLive' => 1440
    },
    'httpClient' => {
      'blocked' => false,
      'autoBlock' => true,
    },
  }
  apply_changes(default: default_options, override: options, name: name, url: remote_url)
end
pypi_group(name, members, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 182
def self.pypi_group(name, members, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'group' => {}
  }
  apply_changes(default: default_options, override: options, name: name, members: members)
end
pypi_hosted(name, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 194
def self.pypi_hosted(name, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true,
      'writePolicy' => 'allow_once'
    },
    'cleanup' => {
      'policyNames' => []
    }
  }
  apply_changes(default: default_options, override: options, name: name)
end
pypi_proxy(name, remote_url, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 209
def self.pypi_proxy(name, remote_url, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'cleanup' => {
      'policyNames' => []
    },
    'proxy' => {
      'contentMaxAge' => 1440,
      'metadataMaxAge' => 1440
    },
    'negativeCache' => {
      'enabled' => true,
      'timeToLive' => 1440
    },
    'httpClient' => {
      'blocked' => false,
      'autoBlock' => true,
    },
  }
  apply_changes(default: default_options, override: options, name: name, url: remote_url)
end
raw_group(name, members, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 235
def self.raw_group(name, members, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'group' => {}
  }
  apply_changes(default: default_options, override: options, name: name, members: members)
end
raw_hosted(name, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 247
def self.raw_hosted(name, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true,
      'writePolicy' => 'allow_once'
    },
    'cleanup' => {
      'policyNames' => []
    }
  }
  apply_changes(default: default_options, override: options, name: name)
end
raw_proxy(name, remote_url, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 262
def self.raw_proxy(name, remote_url, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'cleanup' => {
      'policyNames' => []
    },
    'proxy' => {
      'contentMaxAge' => 1440,
      'metadataMaxAge' => 1440
    },
    'negativeCache' => {
      'enabled' => true,
      'timeToLive' => 1440
    },
    'httpClient' => {
      'blocked' => false,
      'autoBlock' => true,
    }
  }
  apply_changes(default: default_options, override: options, name: name, url: remote_url)
end
rubygems_group(name, members, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 288
def self.rubygems_group(name, members, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'group' => {}
  }
  apply_changes(default: default_options, override: options, name: name, members: members)
end
rubygems_hosted(name, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 300
def self.rubygems_hosted(name, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true,
      'writePolicy' => 'allow_once'
    },
    'cleanup' => {
      'policyNames' => []
    }
  }
  apply_changes(default: default_options, override: options, name: name)
end
rubygems_proxy(name, remote_url, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 315
def self.rubygems_proxy(name, remote_url, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'cleanup' => {
      'policyNames' => []
    },
    'proxy' => {
      'contentMaxAge' => 1440,
      'metadataMaxAge' => 1440
    },
    'negativeCache' => {
      'enabled' => true,
      'timeToLive' => 1440
    },
    'httpClient' => {
      'blocked' => false,
      'autoBlock' => true,
    },
  }
  apply_changes(default: default_options, override: options, name: name, url: remote_url)
end
yum_group(name, members, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 341
def self.yum_group(name, members, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'group' => {}
  }
  apply_changes(default: default_options, override: options, name: name, members: members)
end
yum_hosted(name, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 353
def self.yum_hosted(name, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true,
      'writePolicy' => 'allow_once'
    },
    'cleanup' => {
      'policyNames' => []
    },
    'yum' => {
      'repodataDepth' => 3,
      'deployPolicy' => 'STRICT'
    }
  }
  apply_changes(default: default_options, override: options, name: name)
end
yum_proxy(name, remote_url, options) click to toggle source
# File lib/utilities/parameter_builder.rb, line 372
def self.yum_proxy(name, remote_url, options)
  default_options = {
    'online' => true,
    'storage' => {
      'blobStoreName' => 'default',
      'strictContentTypeValidation' => true
    },
    'cleanup' => {
      'policyNames' => []
    },
    'proxy' => {
      'contentMaxAge' => 1440,
      'metadataMaxAge' => 1440
    },
    'negativeCache' => {
      'enabled' => true,
      'timeToLive' => 1440
    },
    'httpClient' => {
      'blocked' => false,
      'autoBlock' => true,
    },
  }
  apply_changes(default: default_options, override: options, name: name, url: remote_url)
end

Private Class Methods

apply_changes(default:, override:, name:, url: nil, members: nil) click to toggle source
# File lib/utilities/parameter_builder.rb, line 424
def self.apply_changes(default:, override:, name:, url: nil, members: nil)
  options = deep_merge(default, override)
  options['name'] = name
  options['proxy']['remoteUrl'] = url unless url.nil?
  options['group']['memberNames'] = members unless members.nil?
  return options
end
deep_merge(default_hash, hash) click to toggle source
# File lib/utilities/parameter_builder.rb, line 401
def self.deep_merge(default_hash, hash)
  full_hash = {}

  default_hash.each do |key, value|
    if hash[key].nil?
      full_hash[key] = value
    else
      if value.is_a?(Hash)
        full_hash[key] = deep_merge(value, hash[key])
      else
        full_hash[key] = hash[key]
      end
      hash.delete(key)
    end
  end

  hash.each do |key, value|
    full_hash[key] = value
  end

  return full_hash
end