Puppet: cron schedule - "is not a valid hour" error - syntax

I need to schedule a cron job for daily running every 30 mins from 0 to 6 and from 13 to 23. I tried this code:
cron { "MyJob":
ensure => present,
command => "my-cron-command",
user => 'root',
hour => "0-6,13-23",
minute => '*/30',
environment => "MY_ENV"
}
This fails with
0-6,13-23 is not a valid hour
What hour format should I use? Do I need any other changes in cron clause?

Close, but no cigar.
cron { "MyJob":
ensure => present,
command => "my-cron-command",
user => 'root',
hour => [ "0-6", "13-23" ],
minute => '*/30',
environment => "MY_ENV"
}

If you are putting more than one values for any attributes. Put them in an array list. SO, the hour will be ['0-6','13-23']

Should just list the hours:
cron { "MyJob":
ensure => present,
command => "my-cron-command",
user => 'root',
hour => [0,1,2,3,4,5,6,13,14,15,16,17,18,19,20,21,22,23],
minute => '*/30',
environment => "MY_ENV"
}
Works, but hour => "0-6,13-23" does not.

Related

Logstash jdbc-input-plugin configuration for initial sql_last_value

I synchronise data in Oracle database and ElasticSearch instance.
Database table "SYNC_TABLE" has the following columns: "ID" which is a NUMBER, "LAST_MODIFICATION" - TIMESTAMP, "TEXT" - VARCHAR2.
I use Logstash with jdbc-input-plugin in order to perform data syncronisation on a regular basis.
This is the Logstash configuration file:
input {
jdbc {
jdbc_driver_library => "ojdbc6.jar"
jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
jdbc_connection_string => "jdbc:oracle:thin:#localhost:1521:XE"
jdbc_user => "******"
jdbc_password => "******"
schedule => "* * * * *"
statement => "SELECT * from SYNC_TABLE where LAST_MODIFICATION >= :sql_last_value"
tracking_column => "LAST_MODIFICATION"
tracking_column_type => "timestamp"
use_column_value => true
}
}
output {
elasticsearch {
index => "SYNC_TABLE"
document_type => "SYNCED_DATA"
document_id => "%{ID}"
hosts => "localhost:9200"
}
stdout { codec => rubydebug }
}
I'd like to import all the data on the first run and then syncronise only diff between the last run and current time.
So I expect Logstash to make the following queries:
SELECT * from SYNC_TABLE where LAST_MODIFICATION >= '1 January 1970 00:00'
and then regularly
SELECT * from SYNC_TABLE where LAST_MODIFICATION >= 'time of last run'
Documentation says that initial value for should be 1 January 1970, but I see in my logs that instead it takes current timestamp.
This is the first query:
SELECT * from SYNC_TABLE where LAST_MODIFICATION >= TIMESTAMP '2017-08-14 09:17:00.481000 +00:00'
Is there any mistake in logstash configuration file that makes the logstash use current timestamp instead of default ('1 January 1970 00:00')?
The problem was in .logstash_jdbc_last_run file that contained the sql_last_value from previous runs.
I've removed this file and restarted logstash.

Get the last and the previous "gold_id" of the previous day with mongo

I have this kind of data :
{"_id"=>BSON::ObjectId('560b5c5d80ec9700030035dc'), "active"=>true, "user_id"=>nil, "action"=>"connection", "shop_id"=>245929, "gold_id"=>23452349, "indexed"=>true, "created_at"=>2015-09-30 03:51:57 UTC}
I'm trying to get the first and last gold_id of the previous day. I'm getting arroung 10_000 logs per days.
I'm using the ruby driver
first_gold_in = Time.utc(Date.today.year, Date.today.month, (Date.today.day - 1), 00, 00)
first_gold_out = yesterday_o_clock + 5*60
first_gold_id = logs
.find("action" => "connection", "created_at" => {"$gte" => first_gold_in, "$lte" => first_gold_out} )
.first
.fetch("gold_id")
last_gold_in = Time.utc(Date.today.year, Date.today.month, (Date.today.day - 1), 23, 55)
last_gold_out = yesterday_o_clock + 5*60 - 1
last_gold_id = logs
.find("action" => "connection", "created_at" => {"$gte" => last_gold_in, "$lte" => last_gold_out} )
.first
.fetch("gold_id")
But It's very slow even with shorter date range. Is there a better way to do it?
Also is is possible to get the first and the last of the day in the same request?
Thanks

Using the betweenDate operation filter for the SoftLayer Ruby API includes values beyond my endDate

I'm trying to retrieve the invoices for a single month (beginning of one month and ending at the beginning of the next month). However, I get results for the first day of the ending month in my result set, which I'm not expecting.
Example, this will return invoices for December 1st:
account = SoftLayer::Service.new("...")
billing_invoice_service = softlayer_client.service_named("Billing_Invoice");
object_filter = SoftLayer::ObjectFilter.new
object_filter.set_criteria_for_key_path('invoices.createDate',
'operation' => 'betweenDate',
'options' => [{
'name' => 'startDate',
'value' => ["11/01/2015 00:00:00"]
},
{
'name' => 'endDate',
'value' => ["12/01/2015 00:00:00"]
}
]
)
invoices = account.result_limit(0,5000).object_filter(object_filter).object_mask("mask[id,closedDate,createDate]").getInvoices
If I run with the below filter I get no results for December 1st:
account = SoftLayer::Service.new("...")
billing_invoice_service = softlayer_client.service_named("Billing_Invoice");
object_filter = SoftLayer::ObjectFilter.new
object_filter.set_criteria_for_key_path('invoices.createDate',
'operation' => 'betweenDate',
'options' => [{
'name' => 'startDate',
'value' => ["12/01/2015 00:00:00"]
},
{
'name' => 'endDate',
'value' => ["12/01/2015 00:00:00"]
}
]
)
invoices = account.result_limit(0,5000).object_filter(object_filter).object_mask("mask[id,closedDate,createDate]").getInvoices
So I'm not sure why I get results for December 1st in my first filter when I specify an ending time of 00:00:00. Thank you.
Edit: Here is a tail of the results from the first filter above (minus the id):
...
{"closedDate"=>"2015-11-30T21:52:17+05:30",
"createDate"=>"2015-11-30T21:52:16+05:30"},
{"closedDate"=>"2015-11-30T23:22:14+05:30",
"createDate"=>"2015-11-30T23:22:13+05:30"},
{"closedDate"=>"2015-12-01T01:43:59+05:30",
"createDate"=>"2015-12-01T01:43:56+05:30"},
{"closedDate"=>"2015-12-01T01:45:36+05:30",
"createDate"=>"2015-12-01T01:45:34+05:30"},
{"closedDate"=>"2015-12-01T02:05:20+05:30",
"createDate"=>"2015-12-01T02:05:16+05:30"},
{"closedDate"=>"2015-12-01T02:12:22+05:30",
"createDate"=>"2015-12-01T02:12:22+05:30"},
{"closedDate"=>"2015-12-01T02:13:06+05:30",
"createDate"=>"2015-12-01T02:13:04+05:30"},
{"closedDate"=>"2015-12-01T02:13:07+05:30",
"createDate"=>"2015-12-01T02:13:04+05:30"},
{"closedDate"=>"2015-12-01T02:13:07+05:30",
"createDate"=>"2015-12-01T02:13:05+05:30"},
{"closedDate"=>"2015-12-01T02:13:08+05:30",
"createDate"=>"2015-12-01T02:13:06+05:30"},
{"closedDate"=>"2015-12-01T02:13:07+05:30",
"createDate"=>"2015-12-01T02:13:06+05:30"},
{"closedDate"=>"2015-12-01T02:21:34+05:30",
"createDate"=>"2015-12-01T02:21:32+05:30"},
{"closedDate"=>"2015-12-01T02:38:12+05:30",
"createDate"=>"2015-12-01T02:38:10+05:30"},
{"closedDate"=>"2015-12-01T03:36:07+05:30",
"createDate"=>"2015-12-01T03:36:06+05:30"},
{"closedDate"=>"2015-12-01T04:09:57+05:30",
"createDate"=>"2015-12-01T04:09:55+05:30"},
{"closedDate"=>"2015-12-01T04:37:45+05:30",
"createDate"=>"2015-12-01T04:37:43+05:30"},
{"closedDate"=>"2015-12-01T06:35:34+05:30",
"createDate"=>"2015-12-01T06:35:33+05:30"},
{"closedDate"=>"2015-12-01T07:00:09+05:30",
"createDate"=>"2015-12-01T07:00:06+05:30"},
{"closedDate"=>"2015-12-01T08:00:32+05:30",
"createDate"=>"2015-12-01T08:00:30+05:30"}]
The error might be due to the timezone, the filter does not take in account your current timezone, it only filters the data stored in the database, when the data is displayed it is converted to your current timezone. I suggest you change your end date value considering the timezone difference between the stored data in softlayer and your current timezone

Get product id from recurring profile Array

I am Using an Observer on Place Order for Recurring Profile
public function SubscribePlan($observer){
$profileIds = Mage::getSingleton('checkout/session')->getLastRecurringProfileIds();
if ($profileIds && is_array($profileIds)) {
$collection = Mage::getModel('sales/recurring_profile')->getCollection()
->addFieldToFilter('profile_id', array('in' => $profileIds))
;
$profiles = array();
foreach ($collection as $profile) {
$profiles[]= $profile;
}
echo"<pre>"; print_r($profiles); echo"</pre>"; die('dead');
}
and Printing Array , It Give me Array like this
[profile_id] => 53
[state] => active
[customer_id] => 10
[store_id] => 1
[method_code] => paypal_express
[created_at] => 2014-06-25 06:04:43
[updated_at] => 2014-06-25 06:04:44
[reference_id] => I-KJXWM42XC01K
[subscriber_name] =>
[start_datetime] => 2014-06-25 06:04:44
[internal_reference_id] => 53-4ba91ddd43b6d2d377378a5aba7f3908
[schedule_description] => One Year
[suspension_threshold] => 5
[bill_failed_later] => 0
[period_unit] => year
[period_frequency] => 1
[period_max_cycles] =>
[billing_amount] => 100.0000
[trial_period_unit] =>
[trial_period_frequency] =>
[trial_period_max_cycles] =>
[trial_billing_amount] =>
[currency_code] => USD
[shipping_amount] => 5.0000
[tax_amount] =>
[init_amount] =>
[init_may_fail] => 0
[order_info] => a:56:{s:9:"entity_id";s:2:"72";s:8:"store_id";s:1:"1";s:10:"created_at";s:19:"2014-06-25 06:03:28";s:10:"updated_at";s:19:"2014-06-25 06:04:38";s:12:"converted_at";N;s:9:"is_active";s:1:"1";s:10:"is_virtual";s:1:"0";s:17:"is_multi_shipping";s:1:"0";s:11:"items_count";i:1;s:9:"items_qty";d:1;s:13:"orig_order_id";s:1:"0";s:18:"store_to_base_rate";s:6:"1.0000";s:19:"store_to_quote_rate";s:6:"1.0000";s:18:"base_currency_code";s:3:"USD";s:19:"store_currency_code";s:3:"USD";s:19:"quote_currency_code";s:3:"USD";s:11:"grand_total";d:0;s:16:"base_grand_total";d:0;s:15:"checkout_method";N;s:11:"customer_id";s:2:"10";s:21:"customer_tax_class_id";s:1:"3";s:17:"customer_group_id";s:1:"1";s:14:"customer_email";s:17:"krn#ocodewire.com";s:15:"customer_prefix";N;s:18:"customer_firstname";s:5:"Karan";s:19:"customer_middlename";N;s:17:"customer_lastname";s:8:"Adhikari";s:15:"customer_suffix";N;s:12:"customer_dob";N;s:13:"customer_note";N;s:20:"customer_note_notify";s:1:"1";s:17:"customer_is_guest";s:1:"0";s:9:"remote_ip";s:14:"112.196.22.234";s:16:"applied_rule_ids";s:0:"";s:17:"reserved_order_id";s:9:"100000057";s:13:"password_hash";N;s:11:"coupon_code";N;s:20:"global_currency_code";s:3:"USD";s:19:"base_to_global_rate";s:6:"1.0000";s:18:"base_to_quote_rate";s:6:"1.0000";s:15:"customer_taxvat";N;s:15:"customer_gender";s:4:"male";s:8:"subtotal";d:0;s:13:"base_subtotal";d:0;s:22:"subtotal_with_discount";d:0;s:27:"base_subtotal_with_discount";d:0;s:10:"is_changed";s:1:"1";s:17:"trigger_recollect";i:0;s:17:"ext_shipping_info";N;s:15:"gift_message_id";N;s:13:"is_persistent";s:1:"0";s:15:"x_forwarded_for";N;s:17:"virtual_items_qty";i:0;s:15:"taxes_for_items";a:0:{}s:14:"can_apply_msrp";b:0;s:21:"totals_collected_flag";b:1;}
[order_item_info] => a:74:{s:7:"item_id";s:2:"88";s:8:"quote_id";s:2:"72";s:10:"created_at";s:19:"2014-06-25 06:03:28";s:10:"updated_at";s:19:"2014-06-25 06:03:28";s:10:"product_id";s:1:"6";s:8:"store_id";s:1:"1";s:14:"parent_item_id";N;s:10:"is_virtual";s:1:"0";s:3:"sku";s:10:"one-yr-sub";s:4:"name";s:8:"One Year";s:11:"description";N;s:16:"applied_rule_ids";s:0:"";s:15:"additional_data";N;s:13:"free_shipping";s:1:"0";s:14:"is_qty_decimal";s:1:"0";s:11:"no_discount";s:1:"0";s:6:"weight";s:6:"0.0010";s:3:"qty";i:1;s:5:"price";d:100;s:10:"base_price";d:100;s:12:"custom_price";N;s:16:"discount_percent";i:0;s:15:"discount_amount";i:0;s:20:"base_discount_amount";i:0;s:11:"tax_percent";i:0;s:10:"tax_amount";i:0;s:15:"base_tax_amount";i:0;s:9:"row_total";d:100;s:14:"base_row_total";d:100;s:23:"row_total_with_discount";s:6:"0.0000";s:10:"row_weight";d:0.001000000000000000020816681711721685132943093776702880859375;s:12:"product_type";s:6:"simple";s:24:"base_tax_before_discount";N;s:19:"tax_before_discount";N;s:21:"original_custom_price";N;s:12:"redirect_url";N;s:9:"base_cost";N;s:14:"price_incl_tax";d:100;s:19:"base_price_incl_tax";d:100;s:18:"row_total_incl_tax";d:100;s:23:"base_row_total_incl_tax";d:100;s:17:"hidden_tax_amount";i:0;s:22:"base_hidden_tax_amount";i:0;s:15:"gift_message_id";N;s:20:"weee_tax_disposition";i:0;s:24:"weee_tax_row_disposition";i:0;s:25:"base_weee_tax_disposition";i:0;s:29:"base_weee_tax_row_disposition";i:0;s:16:"weee_tax_applied";s:6:"a:0:{}";s:23:"weee_tax_applied_amount";i:0;s:27:"weee_tax_applied_row_amount";i:0;s:28:"base_weee_tax_applied_amount";i:0;s:30:"base_weee_tax_applied_row_amnt";N;s:11:"qty_options";a:0:{}s:12:"tax_class_id";s:1:"0";s:12:"is_recurring";s:1:"1";s:9:"has_error";b:0;s:10:"is_nominal";b:1;s:22:"base_calculation_price";d:100;s:17:"calculation_price";d:100;s:15:"converted_price";d:100;s:19:"base_original_price";d:100;s:14:"taxable_amount";d:100;s:19:"base_taxable_amount";d:100;s:17:"is_price_incl_tax";b:0;s:14:"original_price";d:100;s:32:"base_weee_tax_applied_row_amount";i:0;s:25:"discount_tax_compensation";i:0;s:20:"base_shipping_amount";d:5;s:15:"shipping_amount";d:5;s:17:"nominal_row_total";d:105;s:22:"base_nominal_row_total";d:105;s:21:"nominal_total_details";a:0:{}s:15:"info_buyRequest";s:225:"a:4:{s:4:"uenc";s:124:"aHR0cDovL2J3Y211bHRpbWVkaWEuY29tL0UvZXh0ZW5zaW9udGVzdC9pbmRleC5waHAvbXVsdGl2ZW5kb3IvdmVuZG9ycHJvZHVjdHMvc3Vic2NyaXB0aW9uLw,,";s:7:"product";s:1:"6";s:8:"form_key";s:16:"be2eDRXu1MC7OXfK";s:3:"qty";i:1;}";}
[billing_address_info] => a:97:{s:10:"address_id";s:3:"145";s:8:"quote_id";s:2:"72";s:10:"created_at";s:19:"2014-06-25 06:03:28";s:10:"updated_at";s:19:"2014-06-25 06:04:38";s:11:"customer_id";s:2:"10";s:20:"save_in_address_book";s:1:"0";s:19:"customer_address_id";N;s:12:"address_type";s:7:"billing";s:5:"email";s:23:"sukhwantc#ocodewire.com";s:6:"prefix";N;s:9:"firstname";s:4:"test";s:10:"middlename";N;s:8:"lastname";s:4:"test";s:6:"suffix";N;s:7:"company";s:9:"OcodeTest";s:6:"street";s:9:"1 Main St";s:4:"city";s:8:"San Jose";s:6:"region";s:10:"California";s:9:"region_id";s:2:"12";s:8:"postcode";s:5:"95131";s:10:"country_id";s:2:"US";s:9:"telephone";s:10:"9085656554";s:3:"fax";N;s:15:"same_as_billing";s:1:"1";s:13:"free_shipping";i:0;s:22:"collect_shipping_rates";s:1:"0";s:15:"shipping_method";N;s:20:"shipping_description";N;s:6:"weight";i:0;s:8:"subtotal";i:0;s:13:"base_subtotal";i:0;s:22:"subtotal_with_discount";s:6:"0.0000";s:27:"base_subtotal_with_discount";s:6:"0.0000";s:10:"tax_amount";i:0;s:15:"base_tax_amount";i:0;s:15:"shipping_amount";i:0;s:20:"base_shipping_amount";i:0;s:19:"shipping_tax_amount";i:0;s:24:"base_shipping_tax_amount";i:0;s:15:"discount_amount";i:0;s:20:"base_discount_amount";i:0;s:11:"grand_total";d:0;s:16:"base_grand_total";d:0;s:14:"customer_notes";N;s:13:"applied_taxes";s:6:"a:0:{}";s:20:"discount_description";N;s:24:"shipping_discount_amount";N;s:29:"base_shipping_discount_amount";N;s:17:"subtotal_incl_tax";i:0;s:28:"base_subtotal_total_incl_tax";N;s:17:"hidden_tax_amount";N;s:22:"base_hidden_tax_amount";N;s:26:"shipping_hidden_tax_amount";N;s:29:"base_shipping_hidden_tax_amnt";N;s:17:"shipping_incl_tax";i:0;s:22:"base_shipping_incl_tax";i:0;s:6:"vat_id";N;s:12:"vat_is_valid";N;s:14:"vat_request_id";N;s:16:"vat_request_date";N;s:19:"vat_request_success";N;s:15:"gift_message_id";N;s:24:"should_ignore_validation";b:1;s:16:"extra_tax_amount";i:0;s:21:"base_extra_tax_amount";i:0;s:28:"recurring_initial_fee_amount";i:0;s:33:"base_recurring_initial_fee_amount";i:0;s:16:"cached_items_all";a:0:{}s:20:"cached_items_nominal";a:0:{}s:23:"cached_items_nonnominal";a:0:{}s:30:"recurring_trial_payment_amount";i:0;s:35:"base_recurring_trial_payment_amount";i:0;s:23:"nominal_subtotal_amount";i:0;s:28:"base_nominal_subtotal_amount";i:0;s:9:"total_qty";i:0;s:19:"base_virtual_amount";i:0;s:14:"virtual_amount";i:0;s:22:"base_subtotal_incl_tax";i:0;s:23:"nominal_discount_amount";i:0;s:28:"base_nominal_discount_amount";i:0;s:16:"applied_rule_ids";s:0:"";s:19:"nominal_weee_amount";i:0;s:24:"base_nominal_weee_amount";i:0;s:18:"nominal_tax_amount";i:0;s:23:"base_nominal_tax_amount";i:0;s:11:"msrp_amount";i:0;s:16:"base_msrp_amount";i:0;s:19:"freeshipping_amount";i:0;s:24:"base_freeshipping_amount";i:0;s:11:"weee_amount";i:0;s:16:"base_weee_amount";i:0;s:18:"free_method_weight";i:0;s:19:"tax_shipping_amount";i:0;s:24:"base_tax_shipping_amount";i:0;s:16:"shipping_taxable";i:0;s:21:"base_shipping_taxable";i:0;s:20:"is_shipping_incl_tax";b:0;}
[shipping_address_info] => a:103:{s:10:"address_id";s:3:"146";s:8:"quote_id";s:2:"72";s:10:"created_at";s:19:"2014-06-25 06:03:28";s:10:"updated_at";s:19:"2014-06-25 06:04:38";s:11:"customer_id";s:2:"10";s:20:"save_in_address_book";s:1:"0";s:19:"customer_address_id";N;s:12:"address_type";s:8:"shipping";s:5:"email";s:23:"sukhwantc#ocodewire.com";s:6:"prefix";N;s:9:"firstname";s:4:"test";s:10:"middlename";N;s:8:"lastname";s:4:"test";s:6:"suffix";N;s:7:"company";s:9:"OcodeTest";s:6:"street";s:9:"1 Main St";s:4:"city";s:8:"San Jose";s:6:"region";s:10:"California";s:9:"region_id";s:2:"12";s:8:"postcode";s:5:"95131";s:10:"country_id";s:2:"US";s:9:"telephone";s:10:"9085656554";s:3:"fax";N;s:15:"same_as_billing";s:1:"0";s:13:"free_shipping";i:0;s:22:"collect_shipping_rates";b:1;s:15:"shipping_method";s:17:"flatrate_flatrate";s:20:"shipping_description";s:17:"Flat Rate - Fixed";s:6:"weight";i:0;s:8:"subtotal";i:0;s:13:"base_subtotal";i:0;s:22:"subtotal_with_discount";s:6:"0.0000";s:27:"base_subtotal_with_discount";s:6:"0.0000";s:10:"tax_amount";i:0;s:15:"base_tax_amount";i:0;s:15:"shipping_amount";i:0;s:20:"base_shipping_amount";i:0;s:19:"shipping_tax_amount";i:0;s:24:"base_shipping_tax_amount";i:0;s:15:"discount_amount";i:0;s:20:"base_discount_amount";i:0;s:11:"grand_total";d:0;s:16:"base_grand_total";d:0;s:14:"customer_notes";N;s:13:"applied_taxes";s:6:"a:0:{}";s:20:"discount_description";s:0:"";s:24:"shipping_discount_amount";i:0;s:29:"base_shipping_discount_amount";i:0;s:17:"subtotal_incl_tax";i:0;s:28:"base_subtotal_total_incl_tax";N;s:17:"hidden_tax_amount";i:0;s:22:"base_hidden_tax_amount";i:0;s:26:"shipping_hidden_tax_amount";i:0;s:29:"base_shipping_hidden_tax_amnt";N;s:17:"shipping_incl_tax";i:0;s:22:"base_shipping_incl_tax";i:0;s:6:"vat_id";N;s:12:"vat_is_valid";N;s:14:"vat_request_id";N;s:16:"vat_request_date";N;s:19:"vat_request_success";N;s:15:"gift_message_id";N;s:24:"should_ignore_validation";b:1;s:16:"extra_tax_amount";i:0;s:21:"base_extra_tax_amount";i:0;s:28:"recurring_initial_fee_amount";i:0;s:33:"base_recurring_initial_fee_amount";i:0;s:16:"cached_items_all";a:0:{}s:20:"cached_items_nominal";a:0:{}s:23:"cached_items_nonnominal";a:0:{}s:30:"recurring_trial_payment_amount";i:0;s:35:"base_recurring_trial_payment_amount";i:0;s:23:"nominal_subtotal_amount";i:0;s:28:"base_nominal_subtotal_amount";i:0;s:9:"total_qty";i:0;s:19:"base_virtual_amount";i:0;s:14:"virtual_amount";i:0;s:22:"base_subtotal_incl_tax";i:0;s:15:"rounding_deltas";a:0:{}s:23:"nominal_discount_amount";i:0;s:28:"base_nominal_discount_amount";i:0;s:16:"cart_fixed_rules";a:0:{}s:16:"applied_rule_ids";s:0:"";s:19:"nominal_weee_amount";i:0;s:24:"base_nominal_weee_amount";i:0;s:19:"applied_taxes_reset";b:1;s:18:"nominal_tax_amount";i:0;s:23:"base_nominal_tax_amount";i:0;s:31:"base_shipping_hidden_tax_amount";i:0;s:18:"free_method_weight";i:0;s:8:"item_qty";i:1;s:11:"region_code";s:2:"CA";s:11:"msrp_amount";i:0;s:16:"base_msrp_amount";i:0;s:19:"freeshipping_amount";i:0;s:24:"base_freeshipping_amount";i:0;s:11:"weee_amount";i:0;s:16:"base_weee_amount";i:0;s:19:"tax_shipping_amount";i:0;s:24:"base_tax_shipping_amount";i:0;s:16:"shipping_taxable";i:0;s:21:"base_shipping_taxable";i:0;s:20:"is_shipping_incl_tax";b:0;}
[profile_vendor_info] =>
[additional_info] =>
Now I want to Pick Product id From That array ,How can i Do So?
I've spent some time digging through a few print_r($array) outputs and it is never much fun. Have you tried anything in particular that hasn't worked? Be sure to let us know what you've tried and what you've come up with.
I think I may be able to help you though.
I'm pretty sure that this will get you what you want:
$profiles[order_item_info][product_id]
I had to try this out using the terminal and I had to put the names in quotes like the following or I got a "undefined constant" error for my test values so if that throws an error like that, then try this:
$profiles['order_item_info']['product_id']
I've been away from PHP for a while but I'm pretty sure you can get what you need by digging into this multi-dimensional array.

using get_metric_statistics in simple_aws using ruby

I am trying to explore the simple_aws gem. When I connect to cloudwatch to get the metric statistics I get an error as follows:
cw.get_metric_statistics(
:metric_name => metric_name,
:period => period,
:start_time => start_time,
:end_time => end_time,
:statistics => "Average",
:namespace => "AWS/EC2"
)
SimpleAWS::UnsuccessfulResponse: MissingParameter (400):
The parameter Namespace is required.
The parameter MetricName is required.
The parameter StartTime is required.
The parameter EndTime is required.
The parameter Period is required.
The parameter Statistics is required.
Later, I tried this:
cw.get_metric_statistics(
options => [
{:metric_name=>"CPUUtilization",
:period=>60,
:start_time => Time.now()-86400,
:end_time => Time.now()-3600,
:statistics => "Average"
}
]
)
But got the following error:
URI::InvalidComponentError: bad component(expected query component):
Action=GetMetricStatistics&{:metric_name=>"CPUUtilization"}.1.metric_name=CPUUtilization&{:metric_name=>"CPUUtilization"}.1.period=60&{:metric_name=>"CPUUtilization"}.1.start_time=2012-05-06%2014%3A25%3A28%20%2B0530&{:metric_name=>"CPUUtilization"}.1.end_time=2012-05-07%2013%3A25%3A28%20%2B0530&{:metric_name=>"CPUUtilization"}.1.statistics=Average&AWSAccessKeyId=AccessKey&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-05-07T08%3A55%3A28Z&Version=2010-08-01&Signature=Signature
one more try:
cw.get_metric_statistics(
namespace: 'AWS/EC2',
measure_name: 'CPUUtilization',
statistics: 'Average',
start_time: time-1000,
dimensions: "InstanceId=#{instance_id}"
)
ArgumentError: comparison of Array with Array failed
Can anybody please help find the correct syntax for issuing this command.
result = cw.get_metric_statistics(step,
start_time,
end_time,
metric,
'AWS/RDS',
'Average',
dimensions={'DBInstanceIdentifier': [indentifier]})
This also worked for me
I found that this works;
lat = cw.get_metric_statistics(
'MetricName' => 'Latency',
'Period' => 60,
'StartTime' => (Time.now() - 3600).iso8601,
'EndTime' => Time.now().iso8601,
'Statistics.member.1' => "Average",
'Namespace' => "AWS/ELB",
'Unit' => 'Seconds'
)
Firstly that the datetime is required in ISO8601 format, secondly that the parameters need to be cased correctly, thirdly the Unit parameter is required, and finally that Statistics needed a namespace(?) after it.
Hope this helps, even if it is a little late.

Resources