name "DVR RightLink Add Tags" rs_pt_ver 20180301 type "policy" short_description "DVR tag policy." long_description "" severity "medium" category "Cost" info( version: "1.5", provider: "Flexera Cloud Management", service: "", policy_set: "" ) permission "perm_instances" do label "Permissions for instances" actions "rs_cm.index", "rs_cm.show" resources "rs_cm.instances" end auth "auth_rs", type: "rightscale" resources "clouds", type: "rs_cm.clouds" resources "instances", type: "rs_cm.instances" do iterate @clouds cloud_href href(iter_item) filter do state "provisioned" end tags 'qad:opportunity=PCPLAT' end datasource "ds_instances" do iterate @instances field "resource_uid", val(iter_item, "resource_uid") field "name", val(iter_item, "name") field "href", href(iter_item) field "tags", val(iter_item, "tags") end datasource "ds_filtered_instances" do run_script $js_filtered_instances, $ds_instances end script "js_filtered_instances", type: "javascript" do parameters "instances" result "filtered_instances" code <<-EOS var filtered_instances = [] for ( i = 0; i < instances.length; i++ ) { filtered_instances.push({ resource_uid: instances[i]["resource_uid"], name: instances[i]["name"], href: instances[i]["href"], tags: instances[i]["tags"] }) }; EOS end escalation "report_downsize_instance_add_tag" do automatic true label "Send Email" description "Send incident email" email "dvr@qad.com" end escalation "add_downsize_instance_tag" do automatic false #automatic contains($param_automatic_action, "Tag Instances") label "Add downsize instance tag" description " Added downsize tag in the instance" run "downsize_instances", data end define downsize_instances($data) do foreach $item in $data do @instance = rs_cm.get(href: $item["href"]) rs_cm.tags.multi_add(resource_hrefs: [@instance.href], tags: "qad:dvr=test") end end policy "policy_rightsize" do validate_each $ds_filtered_instances do summary_template "{{ rs_project_name }} (Account ID: {{ rs_project_id }}): Downsize Policy: Instances Added" escalate $report_downsize_instance_add_tag escalate $add_downsize_instance_tag check false export do resource_level true field "rs_project_name" do label "Account" end field "name" do label "Instance Name" end field "id" do label "Resource UID" path "resource_uid" end field "href" do label "Href" end field "tags" do label "Tags" end field "date_tag" do label "Date Tag" end field "check_date" do label "Check Date" end end end end