apiotics 0.1.36 → 0.1.37

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec59851725501c613a71d7f571d6e9bc066b7651
4
- data.tar.gz: b79092af7968395a9046f413bf26a0145f6f281e
3
+ metadata.gz: 7d3f9c7b4169da3b3e7774bb0310cdb56f9b6307
4
+ data.tar.gz: af686841990496ddfc778cc0f15ba8f99f721566
5
5
  SHA512:
6
- metadata.gz: 9ef6e28662d7e3c0d9681af6122474d32473c66b0f64a0e0f5318b3ecb2035309ebf4f8ea960e464380a0fa3eb590bde44c2ecbc89c4b39e8e0bd3fea856d573
7
- data.tar.gz: 28e5f4e640d6ef9056e727701ad8389c6e690b4bb20a319d69888adef4ba8428f09dd3811eb65e1cf0a6d97a649eacc6ec0e068fb67fa2d5cb09d8954dd446b2
6
+ metadata.gz: c01ebd06d73be068c04fae9c1f33c1058ba37973eaf278e72e90260d0440d950d171de085044d1be3475aed2dfd25141b314bb33a12c0c17654da923d3eaacba
7
+ data.tar.gz: d6e8d04870e1d44b76d2fd8ca710e05510780b020c195b776f27cc3e12a8803f5470fcb4d046d2e1d9a976606fefcc2e49f83dda7fb6f67904106e0661ae6536
@@ -56,7 +56,7 @@ module Apiotics
56
56
  msg = system(string)
57
57
  end
58
58
 
59
- def self.openocd(worker_name)
59
+ def self.openocd(worker_name, name)
60
60
  download_directory = Rails.root.join('lib', 'openocd')
61
61
  Dir.mkdir download_directory unless Dir.exist?(download_directory)
62
62
  download_directory = Rails.root.join('lib', 'openocd', 'downloads')
@@ -65,17 +65,22 @@ module Apiotics
65
65
  config = Apiotics::Portal.openocd_worker_config(worker_name)
66
66
  config = JSON.parse(config)
67
67
  unless config["openocd_config_file_name"] == nil || config["openocd_config_file_name"] == ""
68
- path = Rails.root.join('lib', 'openocd', 'downloads', config["openocd_config_file_name"])
68
+ path = Rails.root.join('lib', 'openocd', 'downloads', config["firmware_file_name"])
69
69
  if File.exist?(path)
70
- file = File.open(path)
71
- firmware_data = file.read
72
- file.close
73
70
  else
74
71
  firmware_data = Apiotics::Portal.download_firmware(worker_name)
75
72
  file = File.new(path, 'w')
76
73
  file.write firmware_data.force_encoding(Encoding::UTF_8)
77
74
  file.close
78
75
  end
76
+ if name != nil
77
+ data = File.open(path, 'r+')
78
+ version_offset = 2048
79
+ offset = version_offset + 4 + 68 + 68 + 68
80
+ name = name + "\0"
81
+ IO.write(data, name, offset)
82
+ data.close
83
+ end
79
84
  msg = self.install_firmware(config["openocd_config_file_name"], path, config["openocd_start_address"])
80
85
  end
81
86
  return msg
@@ -91,19 +91,20 @@ module Apiotics
91
91
  instance_hash = JSON.parse(HTTParty.post("#{Apiotics.configuration.portal}api/workers", :query => {:public_key => Apiotics.configuration.public_key, :private_key => Apiotics.configuration.private_key}).body)
92
92
  klass = (worker_name.to_s + "::" + worker_name.to_s).constantize rescue nil
93
93
  unless klass == nil
94
- instance_ids = Array.new
95
- instance_hash[worker_name].each do |instance_id,status|
96
- if status == "Active"
97
- instance_ids << instance_id
94
+ instance_ids = Hash.new
95
+ instance_hash[worker_name].each do |instance_id,status_hash|
96
+ if status_hash["status"] == "Active"
97
+ instance_ids[instance_id] = status_hash
98
98
  end
99
99
  end
100
100
  stale_instances = klass.where.not(apiotics_instance: instance_ids)
101
101
  stale_instances.destroy_all
102
- instance_ids.each do |instance_id|
102
+ instance_ids.each do |instance_id, status_hash|
103
103
  i = klass.find_by(apiotics_instance: instance_id)
104
104
  if i == nil
105
105
  i = klass.new
106
106
  i.apiotics_instance = instance_id
107
+ i.name = status_hash["name"]
107
108
  i.save(:validate => false)
108
109
  Apiotics.configuration.targets[worker_name].keys.each do |key|
109
110
  subklass = (worker_name + "::" + key).constantize rescue nil
@@ -1,3 +1,3 @@
1
1
  module Apiotics
2
- VERSION = '0.1.36'
2
+ VERSION = '0.1.37'
3
3
  end
@@ -2,6 +2,7 @@ class Create<%= plural_module_name %> < ActiveRecord::Migration[5.1]
2
2
  def change
3
3
  create_table :<%= plural_table_name %> do |t|
4
4
  t.string :apiotics_instance
5
+ t.sting :name
5
6
  t.timestamps
6
7
  end
7
8
  end
@@ -1,6 +1,10 @@
1
1
  namespace :firmware do
2
- desc "Install firmware on devices"
3
- task :install, [:worker] => [:environment] do |task, args|
4
- Apiotics::Hardware.openocd(args[:worker])
2
+ desc "Install firmware on devices. Use rake firmware:install {worker_name} to install firmware on a device. Use rake firmware:install {worker_name} {instance_name} to install firmware and set a name for the device."
3
+ task :install, [:worker, :name] => [:environment] do |task, args|
4
+ if args[:name] == nil
5
+ Apiotics::Hardware.openocd(args[:worker], nil)
6
+ else
7
+ Apiotics::Hardware.openocd(args[:worker] args[:name])
8
+ end
5
9
  end
6
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apiotics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.36
4
+ version: 0.1.37
5
5
  platform: ruby
6
6
  authors:
7
7
  - MicroArx Corporation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-07 00:00:00.000000000 Z
11
+ date: 2017-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -248,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
248
248
  version: '0'
249
249
  requirements: []
250
250
  rubyforge_project:
251
- rubygems_version: 2.6.10
251
+ rubygems_version: 2.2.2
252
252
  signing_key:
253
253
  specification_version: 4
254
254
  summary: IoT For Everybody.