Sha256: 70cf93c470043573d4687d612e1de0b582b2da8cf586029e29c72f3954e84053
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
class OctopusApi include API RESOURCE_TYPES = ['Environments','Projects','ProjectGroups','NugetFeeds','LibraryVariableSets','Machines','Lifecycles','Users','Releases','Deployments'] def initialize create_api(ConfigStore.octopus) end def create_resource(type, query) check_type type request(:post, "/#{type}", query) end def remove_resource(type, id) check_type type request(:delete, "/#{type}/#{id}") end def get_resource(type) check_type type return request(:get, "/#{type}/all") end def resource_exists?(type, name) resource = get_resource_by_type_and_name(type, name) return (resource && resource != []) end def get_resource_by_type_and_name(type, name = nil) resources = get_resource(type) if name && name != '' filter = [*name].join("|") filtered_resources = resources.select do |resource| resource['Name'] =~ /#{filter}/ end if filtered_resources.any? Log.info "#{filtered_resources.count} resources found with filter #{filter}" filtered_resources else Log.info "No #{type} found with filter #{filter}" return nil end else resources end end def check_type(type) raise NameError, "Invalid resource type supplied: '#{type}'" unless RESOURCE_TYPES.include? type end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
api_deploy-0.1.0 | lib/octopus_api.rb |