Module: StackMate::Resolver

Constant Summary collapse

STRINGEXP =

comes from awsapi reference

/.+/
INTEXP =
/[0-9]+/
UUIDEXP =
/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/

Instance Method Summary collapse

Instance Method Details

#get_named_tag(tag_name, properties, workitem, default) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/stackmate/resolver.rb', line 93

def get_named_tag(tag_name,properties,workitem,default)
  result = default
  unless properties['Tags'].nil?
    properties['Tags'].each do |tag|
      k = tag['Key']
      v = tag['Value']
      if k.eql?(tag_name)
        result = get_resolved(v,workitem)
      end
    end
  end
  result
end

#get_resolved(lookup_data, workitem) ⇒ Object



41
42
43
44
45
46
47
48
# File 'lib/stackmate/resolver.rb', line 41

def get_resolved(lookup_data,workitem)
  case lookup_data
  when String
    lookup_data
  when Hash
    intrinsic(lookup_data,workitem)
  end
end

#resolve_tags(tags_array, workitem) ⇒ Object



107
108
109
110
111
112
113
114
115
116
# File 'lib/stackmate/resolver.rb', line 107

def resolve_tags(tags_array,workitem)
  result = {}
  tags_array.each do |tag|
    k = tag['key']
    v = tag['value']
    resolved_v = get_resolved(v,workitem)
    result[k] = resolved_v
  end
  result
end

#resolve_to_deviceid(devicename) ⇒ Object



118
119
120
# File 'lib/stackmate/resolver.rb', line 118

def resolve_to_deviceid(devicename)
  @devicename_map[devicename.downcase]
end

#validate_param(value, type) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/stackmate/resolver.rb', line 50

def validate_param(value,type)
  return true
  begin
    case type
    when "boolean"
      ["true","false"].include?(value)
    when "date"
      true
    when "imageformat"
      ["vhd","qcow"].include?(value)
    when "int"
      !INTEXP.match(value).nil?
    when "integer"
      !INTEXP.match(value).nil?
    when "list"
      #eval(value).kind_of?(Array)
      true
    when "long"
      !INTEXP.match(value).nil?
    when "map"
      #eval(value).kind_of?(Hash)
      true
    when "set"
      #eval(value).kind_of?(Array) and eval(value).uniq == eval(value)
      true
    when "short"
      !INTEXP.match(value).nil?
    when "state"
      true
    when "string"
      value.kind_of?(String)
    when "tzdate"
      true
    when "uuid"
      !UUIDEXP.match(value).nil?
    else
      true
    end
  rescue Exception => e
    false
  end
end